Ne pas cliquer
Parrain-Linux
en mode deux puissance deux
Écrire un nouveau message
Page : 1
[Difficile]Virtualisation avec KVM QEMU Virt-Manager
Avatar
Tekkharibo
utilisateur
Parrain
Inscrit le : 29/10/2013
Messages : 240
Point(s) : 3987
Distribution : Debian ArchLinux
Localisation :
Albi, Tarn, France
Posté le 15/03/2015 à 10:37:50
Citer

Bonjour à tous,

Je vais vous faire un petit tuto sur la virtualisation sur linux avec KVM et QEMU et nous utiliserons virt-manager pour gérer le tout.

Avant de commencer ce tuto quelques information sur la virtualisation.

Que ce que c'est ? c'est le fait de pouvoir émuler un autre ordinateur sur son pc (comme jouer à la GameBoy sur son pc)

A quoi ça sert ? à plusieurs chose, par exemple, je veux windows sans sortir de mon linux car je ne me sert de windows que pour des applications dédiés ou je veux un linux de test sans tout casser. On le retrouve aussi pour faire de la préparation d'image pour les armboard (raspberry pi)

Pourquoi ces outils ? déjà ils sont sous licence libre (si je ne me trompe pas pour virt-manager). Ensuite qemu permet facilement de faire de la virtualisation de d'autre architecture comme arm, virt-manager est a mon gout le manager le plus complet pour qemu. Pour finir c'est light http://www.parrain-linux.com/images/emoticones/kopete020.gif


Petites choses à savoir avant de commencer l'installation.
- Le guide est basé sur ArchLinux, vous devez être capable de retrouver les paquets équivalent pour votre distribution si différente. Référez-vous à la documentation de votre distribution.
- Ce guide est destiné à des utilisateurs qui ont dépassé le stade de débutant, mais si c'est votre cas et que vous avez des questions, le forum et IRC sont disponible.
- Avoir un accès administrateur sur sa machine et savoir comment y faire appel (su, sudo, ou équivalent)
- Savoir utiliser le gestionnaire de paquets de votre distribution
- Savoir utiliser le client et serveur openssh
- Savoir utiliser le gestionnaire de services de sa distribution
- Être capable de retrouver l'adresse IP des appareils sur son réseau


Dans les partie "code" # signifie root et donc faire ATTENTION à ce qu'on fait dans le terminal en question, $ signifie que je suis en utilisateur simple donc moi même

Avant de commencer nous allons générer une paire de clé ssh pour pouvoir plus facilement administrer nos VM
- installez openssh si ce n'est pas déjà fait.
Code:
# pacman -S openssh
- on génère notre paire de clé
Code:
$ ssh-keygen -b 4096
vous pouvez laisser les paramettres par defauts
le -b c'est pour la complexité de la clé ici 4096, il est conseillé de metre une puissance de 2 en complexité.

voilà une étape de faite, vous trouverez vos clés dans $HOME/.ssh/id_rsa et $HOME/.ssh/id_rsa.pub, la id_rsa est la clé privé, A NE SURTOUT PAS COMMUNIQUERet la id_rsa.pub est la clé a communiquer par exemple a bitbucket pour les dépots git. On y reviendra plus tard.

Maintenant on va commencer à s'occuper de notre système de virtualisation
 (on peut la faire sur une machine distante)
Pour commencer, il faut charger le module kvm dans notre kernel
1. Vérification de la compatibilité
Code:
# grep -E "(vmx|svm|0xc0f)" --color=always /proc/cpuinfo
si vous avez des résultats c'est que votre matériel est compatible

2. ajouter kvm au module kernel
Code:
# modprobe -r kvm_intel
oui pour ajouter le module on commence par le supprimer ^_^ (-r pour remove)
Code:
# modprobe kvm_intel nested=1
le nested je ne sais pas pourquoi mais c'est une option du module kvm_intel

3. on va installer qemu
Code:
# pacman -S qemu
Et voilà on a fait une bonne partie du travail.

Maintenant on a kvm et qemu il nous faut virt-manager

pour que virt-manager fonctionne, il nous faut quelques outils
1.libvirt pour faire la communication
Code:
# pacman -S libvirt
maintenant il faut le lancer et on va l'ajouter au démarrage (je suis preneur de la version debian de l'ajout au démarrage)
Code:
# systemctl enable libvirtd.service
Pourquoi libvirtd alors qu'on à installer libvirt, car libvirtd c'est le daemon de libvirt qui nous permet de se connecter à qemu avec virt-manager.
On le démarre
Code:
# systemctl start libvirtd.service

2. netcat plus connu sous le nom de nc
Il faut installer la version openbsd, pourquoi je ne sais pas sauf qua ca veut pas marcher avec la version gnu
Code:
# pacman -S openbsd-netcat

3. deux outils pratique pour la suite (ebtables et dnsmasq)
Code:
# pacman -S ebtables dnsmasq
je sais par expérience qu'il vaut mieux redémarrer le service libvirtd
Code:
# systemctl restart libvirtd,service

4. si ce n'est pas déjà fait, il faut installer openssh
Code:
# pacman -S openssh
Et le lancer au démarrage
Code:
# systemctl enable sshd.service

Et voila on a presque tous les outils.

Gestion de nos VM (peut être fait sur le même pc que les étapes précédentes ou sur un autre)

Pour commencer, on va installer virt-manager sinon ça va être complexe de s'en servir ^_^
Code:
# pacman -S virt-manager

Si vous vous rappelez bien ce qu'on a fait en début de tuto, on va utiliser les clés ssh que nous avons générés
Commençont par copier notre clé public au bon endroit. (remplacer user par le nom de son utilisateur) 
Code:
# cp /home/user/.ssh/id_rsa /root/.ssh/authorized_keys
ou
$ scp /home/user/.ssh/id_rsa root@dest:.ssh/authorized_keys



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! si tu as bètement copié cette ligne c'est que tu n'as pas écouté ce que j'ai dis avant et que id_rsa il ne faut surtout pas la communiquer. Je suis gentil aujourd'hui je t'aide
Code:
# rm /root/.ssh/authorized_keys
ou 
$ ssh root@dest
#rm /root/.ssh/authorized_keys
Voila les vrais commandes

Code:
# cp /home/user/.ssh/id_rsa.pub /root/.ssh/authorized_keys
ou
$ scp /home/user/.ssh/id_rsa.pub root@dest:.ssh/authorized_keys

Maintenant qu'on a nos clés ssh au bon endroit on va bientot pouvoir commencer a jouer avec nos vm
Lancez virt-manager
! vous remplacerez 192.168.1.32 sur les screens par localhost ou l'adresse ip de votre propre machine distante
Vous arrivez sur une page comme celle la.
http://picture.tekkharibo.eu/CZmcDE/J9YDYU2j.jpg

Ensuite il faut ajouter une connection vers un pc avec qemu
-Allez dand "file" en haut à gauche puis "Add Connection..." et vous tombez sur une fenetre comme celle ci (remplacez 192.168.1.32 par votre ip ou localhost)
http://picture.tekkharibo.eu/8vQfn3/pQSHkk3T.jpg
Vous pouvez choisir l'autoconnection ou pas. Ensuite on vous demande votre mot de passe root alors rentrez le http://www.parrain-linux.com/images/emoticones/kopete020.gif

Maintenant qu'on est connecté il y a un peut de configuration a faire, commencez par faire un double click sur votre connection et vous tomberez sur ça :
http://picture.tekkharibo.eu/qNvtsf/EipQSHkk.jpg
Ici vous retrouverez différentes informations sur votre systèmes comme ce qui est utilisé en ram par vos VM. Nous allons aller directement sur l'onglé "storage"
http://picture.tekkharibo.eu/vqfMEu/kk3T2vFW.jpg

Pourquoi commencer à venir ici ? pour la simple et bonne raison que si comme moi vous avez un / de 10Go et un /home de plusieurs centaines de Go c'est plus interessant de mettre les VM sur le /home sinon passez votre chemin et je vous retrouve plus bas. 
Pour cela on va commencer par créer un dossier
Code:
# mkdir /home/VM
# mkdir /home/VM/iso
Oui il vaut mieux créer un dossier pour les iso
On va supprimer le repertoire par defaut dans virt-manager a l'aide du panneau stop en bas a gauche puis de la petite crois juste à sa droite.
Maintenant on va ajouter nos nouveaux dossiers avec le plus en bas a gauche
Le premier on l'appel "default"
http://picture.tekkharibo.eu/0JClgV/WBKr8B7c.jpg
Et on ajoute le path
http://picture.tekkharibo.eu/GgZCwE/ZVqcMWwM.jpg
On fait la même manipulation pour le dossier pour les iso.

Maintenant on va aller dans l'onglet "Virtual Network", il va nous permettre de créer une interface virtuel pour avoir nos VM sur le même sous réseau comme ca mon host il communique avec mes VM et mes VM communiquent entre elles et elles ont access à internet http://www.parrain-linux.com/images/emoticones/kopete017.gif
La on supprime encore le default comme on a faut au dessus et on ajoute un nouveau comme au dessus
On lui donne un nom "default" car il en faut toujours un par défaut
http://picture.tekkharibo.eu/3sEZty/A0TrYRKn.jpg
ensuite on laisse par defaut les 2 pages suivantes qui parle d'adresse ip v4 et v6 et on arrive la dessus
http://picture.tekkharibo.eu/fA4a2n/KZoIOEaz.jpg
la deux choix s'offre a vous, soit vos vm ne communique pas avec internet et vous choisissez isolate network sinon vous choisissez forwarding to physical network et je vous conseil de laisser les paramettre par defaut pour le second choix.
Puis Finish

Voila vous pouvez fermer cette fenetre http://www.parrain-linux.com/images/emoticones/kopete020.gif

Allez on va installer notre première VM
1. avoir un iso (pour moi une arch) que vous placez dans votre dossier iso
Code:
# cp /home/user/Download/mon.iso /my/path/iso

2. vous allez sur file -> New Virtual Machine
Pour le moment on va choisir la simplicité, vous pourrez vous amuser avec les options plus tard, vous laissez le choix par defaut
http://picture.tekkharibo.eu/tRhX0P/iw7HwhCC.jpg
Ensuite vous choisissez Use ISO image et vous cliquez sur browse...
Et vous choisissez iso a gauche (si aucun iso n'est présent et que vous êtes sur de l'avoir placé au bon endroit, avez vous pensez à appuyer sur la petite fleche en rond pour refresh ?)
http://picture.tekkharibo.eu/oEHd2D/MgddFtt1.jpg

Voila l'iso choisit, vous pouvez configurer la partie du bas ou j'ai Generic mais c'est pas obligatoire.
http://picture.tekkharibo.eu/aC22DX/enzUJFmo.jpg
Ensuite vous choisissez la ram que vous voulez lui donner ainsi que le nombre de cpu.
Puis la place (taille max du disque dur) Vous pouvez choisir d'allouer toute la place par defaut si vous avez peur de ne pas en avoir assez plus tard.
Bientot la fin, quand vous arrivez sur cette page, il faut modifier le nom de la machine et choisir le type de connection que vous voulez.
http://picture.tekkharibo.eu/gEq6YU/RW4vma0Y.jpg
Et la je vous conseil d'utiliser l'interface que nous avons crée précédament.

Voila votre VM est créée il ne reste plus qu'à faire un double click sur le nom de votre vm et de faire play en haut a gauche dans la nouvelle fenetre http://www.parrain-linux.com/images/emoticones/kopete020.gif
http://picture.tekkharibo.eu/0uAVIS/SYrRAeQe.jpg

Utilisez Alt+Ctrl pour sortir de la VM


Magissia le 17/03/2015 - clarification pré-requis
Tekkharibo le 02/07/2015 - changement de système d’hébergement des images

Dernière édition le 02/07/2015 à 00:46:31
_________________
HP EliteBook 8560p i7 2.8Ghz Ubuntu 20.04
RPi 4 2Go raspbian Domoticz
RPi 2 Octopi et Anet A8
Souris: RAT 7
Clavier: KBTalking Pure PRO 60% Black/Green

Mon Twitter
Mon hébergeur : 
PlanetHoster

Tu es nouveau et tu n'as pas encore fait ta présentation, va la faire on aime bien savoir des choses sur toi comme ou tu viens pourquoi tu es venu sur PL et sur Linux bien sur ;)

Pas de support par MP

Il me manque des accents quand je te réponds ? C'est juste que je suis en QWERTY et que je suis pas passé en US international #flemme
http://www.parrain-linux.com/promotion.php?image=PL-user.png&membre=tekkharibo
Remonter Descendre Permalien du message
Avatar
WildTux
utilisateur
Mixte
Inscrit le : 25/01/2014
Messages : 171
Point(s) : 962
Localisation :
Moustoir Ac, Morbihan, France
Posté le 12/12/2019 à 15:29:47
Citer

J'ai fait un hand-book sur github si ça peut aider.
qemu virmanager 2 nvidia

Dernière édition le 12/12/2019 à 20:35:07
_________________
WildTux, le pingouin fou.
Remonter Descendre Permalien du message
Avatar
Tekkharibo
utilisateur
Parrain
Inscrit le : 29/10/2013
Messages : 240
Point(s) : 3987
Distribution : Debian ArchLinux
Localisation :
Albi, Tarn, France
Posté le 16/10/2020 à 14:45:24
Citer

Citation de WildTux:
J'ai fait un hand-book sur github si ça peut aider.
qemu virmanager 2 nvidia

Si je comprends bien ce que tu as fais, c'est d'avoir une CG dédié à linux et une CG dédié à KVM ?

_________________
HP EliteBook 8560p i7 2.8Ghz Ubuntu 20.04
RPi 4 2Go raspbian Domoticz
RPi 2 Octopi et Anet A8
Souris: RAT 7
Clavier: KBTalking Pure PRO 60% Black/Green

Mon Twitter
Mon hébergeur : 
PlanetHoster

Tu es nouveau et tu n'as pas encore fait ta présentation, va la faire on aime bien savoir des choses sur toi comme ou tu viens pourquoi tu es venu sur PL et sur Linux bien sur ;)

Pas de support par MP

Il me manque des accents quand je te réponds ? C'est juste que je suis en QWERTY et que je suis pas passé en US international #flemme
http://www.parrain-linux.com/promotion.php?image=PL-user.png&membre=tekkharibo
Remonter Descendre Permalien du message
Écrire un nouveau message
Page : 1
Page générée en 0.0835 seconde(s).