Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:kvm [29/10/2012 15:03] paskal |
doc:systeme:kvm [13/01/2014 02:54] MicP [Créer le fichier image-disque] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== KVM (Kernel-based Virtual Machine) ====== | + | ====== KVM ====== |
- | ===== Préambule ===== | + | (Kernel-based Virtual Machine) |
- | ''KVM'' est en fait un fork ((fork : on crée un nouveau projet à partir d'un autre à l'identique)) de QEMU, mais les développeurs des deux projets essayent de ne pas trop diverger et leurs codes sources respectifs sont fréquemment resynchronisés. \\ | + | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=2255 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME |
- | La principale modification apportée est le support du module kvm. | + | |
- | Lorsqu'on parle de KVM, on parle généralement de l'ensemble : la version modifiée de ''QEMU'' et le module ''kvm''. | + | ===== Introduction ===== |
+ | ''KVM'' est un [[http://fr.wikipedia.org/wiki/Hyperviseur | hyperviseur de type 1]] ("bare metal") qui permet à ''Qemu'' la virtualisation simultanée de différents systèmes d'exploitation sur la même machine hôte. \\ | ||
- | Les technologies mises en place par les deux principaux fondeurs que sont AMD et Intel étant différentes, le module kvm se décline en deux sous-modules : | + | ''KVM'' est un module du noyau Linux permettant aux applications de l'espace utilisateur d'utiliser les fonctionnalités de virtualisation matérielle. \\ |
- | * kvm-intel | + | ''KVM'' permet à ''Qemu'' de virtualiser une architecture sur un hôte de même architecture et exploitera alors pleinement l'accélération matérielle que ''KVM'' pourra lui apporter. \\ |
- | * kvm-amd | + | |
- | le module kvm n'étant là en fait que pour fournir à l'émulateur une abstraction supplémentaire. | + | |
+ | L'accélération matérielle par ''KVM'' ne sera possible que pour les microprocesseurs pourvu de la technologie ''Intel VT-x'' et ''AMD-V''. \\ | ||
+ | L'accès direct au matériel (bus PCI, Carte Graphique, etc..) depuis les machines virtuelles nécessitera aussi que la carte mère soit équipée d'un chipset pouvant exploiter les technologies ''Intel Vt-d'' et ''AMD-Vi'' de ces microprocesseur. | ||
===== Vérification ===== | ===== Vérification ===== | ||
Vérifiez que : | Vérifiez que : | ||
- | - Votre processeur supporte la virtualisation matérielle. \\ Tapez cette commande :<code bash>$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo</code>__Si un résultat s'affiche__, c'est que le processeur supporte la virtualisation. :-) | + | - Votre processeur supporte la virtualisation matérielle. \\ Tapez cette commande :<code user>egrep '^flags.*(vmx|svm)' /proc/cpuinfo</code>__Si un résultat s'affiche__, c'est que le processeur supporte la virtualisation. :-) |
- | - Et vérifiez alors aussi que ce support est bien **activé** par le [[manuel:bios | BIOS]]. | + | - Il y a aussi :<code user>grep -E --color 'vmx|svm' /proc/cpuinfo</code> qui mettra en évidence le ''flag'' recherché. |
+ | - Et vérifiez alors aussi que ce support est bien **activé** par le [[:doc:materiel:bios | BIOS]]. | ||
//Merci à //**bendia**// de ses remarques sur ce tuto dans le forum ici// : | //Merci à //**bendia**// de ses remarques sur ce tuto dans le forum ici// : | ||
Ligne 26: | Ligne 27: | ||
===== Installation ===== | ===== Installation ===== | ||
- | Installer kvm et qemu : | + | Mettre à jour la liste des paquetages, \\ |
- | # aptitude install kvm qemu | + | pour installer ensuite les paquetages qemu-kvm et libvirt-bin : |
+ | <code root>apt-get update && apt-get install qemu-kvm libvirt-bin</code> | ||
- | ===== Charger le module ===== | + | =====Faire partie du groupe ''kvm''===== |
- | Charger le module de votre processeur : | + | Utilisez la commande ''adduser'' pour ajouter votre nom d'utilisateur au groupe ''kvm'' : |
+ | <code root>adduser <VotreNomUser> kvm</code> | ||
- | Pour AMD : | + | Bien sûr, ''<VotreNomUser>'' est à remplacer par le pseudo //''user''// de l'utilisateur. |
- | # modprobe kvm-amd | + | <note important>Se dé-connecter et se re-connecter à sa session pour que cette modification soit prise en compte par le système !</note> |
- | + | ||
- | Pour INTEL : | + | |
- | # modprobe kvm-intel | + | |
- | + | ||
- | ===== Partager les droits kvm ===== | + | |
- | + | ||
- | Ajouter votre utilisateur au groupe kvm avec cette adduser : | + | |
- | + | ||
- | # adduser <VotreUser> kvm | + | |
- | + | ||
- | Bien sûr, ''<VotreUser>'' est à remplacer par le pseudo //''user''// de l'utilisateur. | + | |
- | <note important>Redémarrer votre session pour prendre en compte cette commande !</note> | + | |
//Merci "veillant" //**captnfab**// pour l'ajout de cette remarque !// :-) | //Merci "veillant" //**captnfab**// pour l'ajout de cette remarque !// :-) | ||
- | ===== Créer une image ===== | + | ===== Créer le fichier image-disque ===== |
- | + | ||
- | Créer le fichier image qui va accueillir ce système : | + | |
- | + | ||
- | $ qemu-img create -f qcow2 /emplacement/du/fichier_image.img 10G | + | |
+ | Créer le fichier //image-disque// qui va être utilisé comme disque dur par votre machine virtuelle : | ||
+ | <code user>kvm-img create -f qcow2 /emplacement/du/fichier_image.qcow2 10G</code> | ||
Où : | Où : | ||
+ | * ''emplacement/du/fichier_image.qcow2'' => est le chemin (répertoire) suivit du nom du fichier //image-disque// qui va être créé. | ||
+ | * ''10G'' => sera la taille __**virtuelle**__ de l'espace disponible dans ce disque __**virtuel**__. | ||
- | * ''emplacement/du/fichier_image.img'' => est l’emplacement du fichier qui sera créé. | + | <note important>ATTENTION ! kemu utilise l'unité Gib et l'installateur Debian utilise l'unité GB : |
- | * ''10G'' => est la taille __**virtuelle**__ de ce système de fichier __**virtuel**__. | + | * 1GB = 10^9 B |
+ | * 1GiB = 2^30 B = 1.073741824 GB | ||
+ | et donc 10Gib correspondront à 10,7GB.\\ | ||
+ | Un grand merci à vince06fr sur le forum, [[http://debian-facile.org/viewtopic.php?pid=54073#p54073|là]] ! Lucide, le gars =) | ||
+ | </note> | ||
+ | <note> | ||
+ | Le format ''qcow2'' (''Q''emu ''C''opy ''O''n ''W''rite version ''2'') est un format d'espace de stockage optimisé, \\ | ||
+ | l'espace occupé par le fichier //image-disque// sera très nettement inférieur à l'espace disponible sur le support de données. \\ | ||
+ | Mais à mesure que des données seront écrites sur le //disque//, la taille du fichier va augmenter. \\ | ||
+ | \\ | ||
+ | Le nom d'extension du fichier (ici ''qcow2'') n'est pas indispensable mais aidera beaucoup l'utilisateur quand il va avoir besoin de trier ses fichiers. | ||
+ | </note> | ||
- | ===== Installez un système virtuel sans réseau virtuel bridge ===== | + | ===== Installez un système d'exploitation sur votre machine virtuelle ===== |
- | ==== Avec un CD-ROM ==== | + | ==== Depuis le lecteur CD-ROM ==== |
+ | <code user>kvm -m 2G -cpu host /emplacement/du/fichier_image.qcow2 -cdrom /dev/cdrom -boot d</code> | ||
- | Tapez : | + | * ''-m 2G'' Une quantité de 2GiB de mémoire RAM sera utilisable par la machine virtuelle. |
- | $ kvm -m 512 -cdrom /dev/cdrom -boot d emplacement/du/fichier_image.img | + | * ''-cpu host'' Le microprocesseur de la machine virtuelle aura les mêmes caractéristiques que celles du microprocesseur de la machine hôte. |
+ | * ''-cdrom'' Un lecteur de //cdrom//, ou un fichier //image-ISO//. | ||
+ | * ''-boot d'' Le périphérique de //boot// sera le lecteur de cdrom, ou le fichier //image-ISO//. | ||
- | * ''512'' est la quantité de mémoire à utiliser. | + | ==== En utilisant un fichier image-ISO ==== |
+ | <code user>kvm -m 2G -cpu host /emplacement/du/fichier_image.qcow2 -cdrom /emplacement/de/l_image.iso -boot d</code> | ||
- | ==== Avec une image ISO sans la graver ==== | + | ===== Démarrez votre machine virtuelle ===== |
+ | <note tip> | ||
+ | Pour que les actions du clavier et de la souris soient pris en compte par la fenêtre de la machine virtuelle, cliquez sur celle-ci. \\ | ||
+ | Pour //libérer// le clavier et la souris de la fenêtre de virtualisation, utilisez la combinaisons de touches ''CTRL-ALT''. | ||
+ | </note> | ||
- | Tapez : | + | Une fois l'installation terminée, vous pourrez démarrer cette machine virtuelle \\ |
- | $ kvm -m 512 -cdrom emplacement/de/l_image.iso -boot d emplacement/du/fichier_image.img | + | avec la ligne de commande suivante : |
+ | <code user>kvm -m 2G -cpu host /emplacement/du/fichier_image.qcow2</code> | ||
- | ==== Démarrez le système créé ==== | + | <note important>ATTENTION ! : |
- | + | Dans votre machine virtuelle, il se peut que le pavé numérique ait besoin d'être réactivé \\ | |
- | <note tip>Pour quitter la fenêtre de virtualisation et revenir à celle de votre pc physique, utilisez les combinaisons de touches ''CTRL-ALT''.</note> | + | en tapant deux fois sur la touche ''Ver-Num'' (ou ''Num-Lock''). |
- | + | ||
- | Une fois l'installation terminée, démarrez votre système virtuel ainsi : | + | |
- | $ kvm -m 512 emplacement/du/fichier_image.img | + | |
- | + | ||
- | <note important>ATTENTION ! Sur un clavier ''usb azerty'' : | + | |
- | * En ''graphique'', les fonctions de blocage des chiffres ou des lettres majuscules ne fonctionnent pas. Il faut bien garder la touche ''Maj'' apppuyée pour les utiliser. | + | |
- | * En console, le clavier numérique reste en numérique et les Majuscules s'obtiennent seulement la touche Maj appuyée constamment. | + | |
</note> | </note> | ||
- | + | ===== bug carte graphique ===== | |
- | + | ||
- | + | ||
- | ==== Avec un CD-ROM ==== | + | |
- | + | ||
- | Tapez : | + | |
- | $ kvm -net nic,model=rtl8139,vlan=0,macaddr=00:11:22:33:44:55 -net tap,vlan=0,ifname=tap0,script=no -enable-kvm -m 512 -cdrom /dev/cdrom -boot d emplacement/du/fichier_image.img | + | |
- | + | ||
- | * ''macaddr=00:11:22:33:44:55'' Cette adresse MAC (Media Access Control) sera automatiquement modifiée pour la connection au reseau internet. | + | |
- | * ''model=rtl8139'' pour indiquer une carte reseau realtek. Ouvrir le ''$ man kvm'' puis taper : ''/model=''. | + | |
- | + | ||
- | == Nota : == | + | |
- | + | ||
- | Une adresse MAC (Media Access Control address) est un identifiant physique stocké dans une carte réseau ou une interface réseau similaire et utilisé pour attribuer mondialement une adresse unique. \\ | + | |
- | Une adresse MAC est constituée de 6 octets et est généralement représentée sous la forme hexadécimale en séparant les octets par un double point ou un tiret. \\ | + | |
- | **Par exemple :** \\ | + | |
- | ''5E:FF:56:A2:AF:15'' (elle est également appelée adresse physique). | + | |
- | + | ||
- | L'adresse : ''FF:FF:FF:FF:FF:FF'' est particulière, les données sont envoyées à l'ensemble du réseau local (adresse de broadcast). | + | |
- | + | ||
- | + | ||
- | ==== Avec une image ISO sans la graver ==== | + | |
- | + | ||
- | Tapez : | + | |
- | $ kvm -net nic,model=rtl8139,vlan=0,macaddr=00:11:22:33:44:55 -net tap,vlan=0,ifname=tap0,script=no -enable-kvm -m 512 -cdrom emplacement/de/l_image.iso -boot d emplacement/du/fichier_image.img | + | |
- | + | ||
- | ===== bug carte reseau ===== | + | |
**Le 27/02/2012** | **Le 27/02/2012** | ||
Ligne 137: | Ligne 115: | ||
Afin de bénéficier de toute la commmodité d'un réseau où les machines virtuelles créées sont bien intégrées au réseau des machines physiques déjà présentes, suivre d'abord ce tuto : | Afin de bénéficier de toute la commmodité d'un réseau où les machines virtuelles créées sont bien intégrées au réseau des machines physiques déjà présentes, suivre d'abord ce tuto : | ||
- | * [[manuel:config:tapbridge | Configurer un réseau virtuel]] | + | * [[:doc:reseau:interfaces:tapbridge | Configurer un réseau virtuel]] |
==== Démarrez le système et le réseau virtuel créé ==== | ==== Démarrez le système et le réseau virtuel créé ==== | ||
Ligne 144: | Ligne 122: | ||
Vérifiez que ''tap0'' est activé, tapez en root : | Vérifiez que ''tap0'' est activé, tapez en root : | ||
- | # ifup tap0 | + | <code root>ifup tap0</code> |
Démarrez votre système virtuel par cette commande : | Démarrez votre système virtuel par cette commande : | ||
- | $ kvm -net nic,model=rtl8139,vlan=0,macaddr=00:11:22:33:44:55 -net tap,vlan=0,ifname=tap0,script=no -enable-kvm -m 512 emplacement/du/fichier_image.img | + | <code user>kvm -net nic,model=rtl8139,vlan=0,macaddr=00:11:22:33:44:55 -net tap,vlan=0,ifname=tap0,script=no -enable-kvm -m 512 emplacement/du/fichier_image.img</code> |
===== Ajouter virtuellement une clé usb au démarrage ===== | ===== Ajouter virtuellement une clé usb au démarrage ===== | ||
- | Insérer et identifier la clé usb par la commmande [[commande:fdisk | FDISK]] : | + | Insérer et identifier la clé usb par la commmande [[:doc:systeme:fdisk | FDISK]] : |
- | # fdisk -l | + | <code root>fdisk -l</code> |
Et ajoutez : \\ | Et ajoutez : \\ | ||
Ligne 164: | Ligne 142: | ||
Par exemple, la ligne complète avec le réseau virtuel également : | Par exemple, la ligne complète avec le réseau virtuel également : | ||
- | $ kvm -net nic,model=rtl8139,vlan=0,macaddr=00:11:22:33:44:55 -net tap,vlan=0,ifname=tap0,script=no -enable-kvm -usbdevice disk:/dev/<votre_clé_usb> -m 512 emplacement/du/fichier_image.img | + | <code user>kvm -net nic,model=rtl8139,vlan=0,macaddr=00:11:22:33:44:55 -net tap,vlan=0,ifname=tap0,script=no -enable-kvm -usbdevice disk:/dev/<votre_clé_usb> -m 512 emplacement/du/fichier_image.img</code> |
//Merci pour cette information à ce cher //**adrien**// sur le salon #slackware-fr qu'est un vrai geek sympa !// :-D | //Merci pour cette information à ce cher //**adrien**// sur le salon #slackware-fr qu'est un vrai geek sympa !// :-D | ||
Ligne 170: | Ligne 148: | ||
===== Voir : ===== | ===== Voir : ===== | ||
- | [[logiciel:qemu|QEMU - Emulateur]] \\ | + | [[:doc:systeme:qemu|QEMU - Emulateur]] \\ |
===== Exercices Divers ===== | ===== Exercices Divers ===== | ||
Voir le ''TP 01 kvm'' là : \\ | Voir le ''TP 01 kvm'' là : \\ | ||
- | [[travaux_pratique:kvm_tp01|TP 01 KVM]] | + | [[:doc:autres:vm:qemu:tp01|TP 01 KVM]] |
===== Liens ===== | ===== Liens ===== |