Catégorie : KVM

23 mai 2019 /

Création d’un partage entre un hyperviseur KVM et une de ses machines virtuelles

[pastacode lang= »bash » manual= »systemctl%20enable%20smb%20nmb%0Asystemctl%20start%20smb%20nmb » message= »Activation de samba » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »ip%20a%20show%20dev%20virbr0″ message= »Virbr0 est le bridge linux créé par libvirt lors de son installation, il faut l’identifier » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »virsh%20net-edit%20default » message= »SI on veut modifier l’adresse de virbr0″ highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »mkdir%20%2Fpartage_vm%0Auseradd%20-m%20-d%20%2Fpartage_vm%20partage%0Achown%20-R%20partage%20%2Fpartage_vm%0Achmod%20g%2Bw%20%2Fpartage_vm%0Asmbpasswd%20-a%20partage » message= »On crée le partage et le compte utilisateur pour s’y connecter » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »%5Bglobal%5D%0A%20%20%20%20%20%20%20workgroup%20%3D%20WorkGroup%0A%20%20%20%20%20%20%20netbios%20name%20%3D%20Host%0A%20%20%20%20%20%20%20server%20string%20%3D%20serveur%20%25h%20(Samba%20%25partagevm)%0A%20%20%20%20%20%20%20%23%20On%20souhaite%20n’autoriser%20l’acc%C3%A8s%20que%20via%20certaines%20interfaces%20r%C3%A9seau%0A%20%20%20%20%20%20%20bind%20interfaces%20only%20%3D%20Yes%0A%20%20%20%20%20%20%20interfaces%20%3D%20127.0.0.1%2C%20192.168.122.1%0A%20%20%20%20%20%20%20log%20file%20%3D%20%2Fvar%2Flog%2Fsamba%2Flog.%25m%0A%20%20%20%20%20%20%20max%20log%20size%20%3D%20100%0A%0A%5Bpartage_vm%5D%0A%20%20%20%20%20%20%20path%20%3D%20%2Fpartage_vm%2F%0A%20%20%20%20%20%20%20public%20%3D%20no%0A%20%20%20%20%20%20%20browsable%20%3D%20yes%0A%20%20%20%20%20%20%20valid%20users%20%3D%20partage%0A%20%20%20%20%20%20%20guest%20ok%20%3D%20no%0A%20%20%20%20%20%20%20writable%20%3D%20yes%0A%20%20%20%20%20%20%20printable%20%3D%20no%0A%20%20%20%20%20%20%20hide%20files%20%3D%20%2Flost%2Bfound%2F%0A%20%20%20%20%20%20%20hide%20unreadable%20%3D%20yes%0A%20%20%20%20%20%20%20%23%20on%20force%20les%20permissions%0A%20%20%20%20%20%20%20create%20mask%20%3D%20777%0A%20%20%20%20%20%20%20force%20create%20mode%20%3D%20777%0A%20%20%20%20%20%20%20security%20mask%20%3D%20777%0A%20%20%20%20%20%20%20force%20security%20mode%20%3D%20777″ message= »On declare le partage dans le ficher /etc/samba/smb.conf » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »systemctl%20restart%20nmb.service%20smb.service%20%0Afirewall-cmd%20–add-service%3Dsamba%20–permanent%20–add-source%3D192.168.122.1%2F24″ message= »On redemarre samba et on ouvre les ports samba » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »smbclient%20%2F%2F192.168.122.1%2Fpartage_vm%20-U%20partage » message= »Test du serveur depuis l’hyperviseur » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »semanage%20fcontext%20-a%20-t%20samba_share_t%20’%2Fpartage_vm(%2F.*)%3F’%0Arestorecon%20-R%20%2Fpartage_vm%0A » message= »Si SELinux est actif dans un dossier specifique » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »setsebool%20-P%20samba_enable_home_dirs%20on » message= »Si SELinux est dans /home » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »ls%20-Z%20%2Fpartage_vm%0A-rw-rw-r–.%20partage%20partage%20unconfined_u%3Aobject_r%3Asamba_share_t%3As0%20truc.txt » message= »Pour vérifier le contexte de SELinux » highlight= » » provider= »manual »/]

Sur la VM, le dossier est accessible à l’adresse \\ip_de_virbr0\partage_vm

 

29 octobre 2018 /

[pastacode lang= »bash » manual= »virsh%20nodeinfo » message= »Pour afficher le nombre total de vCPU de l’hyperviseur » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »virsh%20list%20%7C%20awk%20’%7Bprint%20%241%7D’%20%7C%20grep%20-oIE%20%22%5B0-9%5D*%22%20%7C%20while%20read%20word%3B%20do%20virsh%20dominfo%20%24%7Bword%7D%20%7C%20grep%20%22CPU.s%22%3B%20done%20%7C%20awk%20’BEGIN%20%7Ba%3D0%3B%7D%20%7Ba%3Da%2B%242%3B%7D%20END%20%7Bprint%20a%3B%7D' » message= »Pour afficher le nombre de vCPU que KVM a attribué à ses VMs » highlight= » » provider= »manual »/]

 

 

27 avril 2018 /

1) Pour commencer nous allons arrêter le domaine que nous souhaitons migrer

[pastacode lang= »bash » manual= »virsh%20shutdown%20nom_VM » message= » » highlight= » » provider= »manual »/]

2) Sur l’hyperviseur source, nous allons exporter la configuration du domaine dans un fichier xml:

[pastacode lang= »bash » manual= »virsh%20dumpxml%20nom_VM%20%3E%20nom_VM.xml » message= » » highlight= » » provider= »manual »/]

3 ) Toujours sur l’hyperviseur source, on copie le ou les fichiers disques du domaine que l’on souhaite migrer, depuis son emplacement dans /var/lib/libvirt/images vers le même répertoire sur l’hyperviseur de destination.

[pastacode lang= »bash » manual= »scp%20%20-p%20%2Fvar%2Flib%2Flibvirt%2Fimages%2Fnom_VM.qcow2%20hyperviseur_destination%3A%2Fvar%2Flib%2Flibvirt%2Fimages%2F » message= » » highlight= » » provider= »manual »/]

Si le chemin du disque est différent sur l’hyperviseur de destination, il faudra le modifier le fichier xml générer dans l’étape précédente pour que cela pointe au bon endroit.

4 ) On copie également notre fichier XML sur l’hyperviseur de destination

[pastacode lang= »bash » manual= »scp%20%20-p%20nom_VM.xml%20hyperviseur_destination%3A%2Ftmp%2F » message= » » highlight= » » provider= »manual »/]

5) On intègre le domaine dans KVM à l’aide de notre fichier xml:

[pastacode lang= »bash » manual= »virsh%20define%20%2Ftmp%2Fnom_VM.xml » message= » » highlight= » » provider= »manual »/]

6) Il ne reste plus qu’a démarrer notre domaine

[pastacode lang= »bash » manual= »virsh%20start%20nom_VM » message= » » highlight= » » provider= »manual »/]

 

16 mars 2018 /

On commence par lister tous nos domaines:

virsh list --all

ID      Nom            État
----------------------------------------------------
-      Centreon      fermé
-      generic      fermé
-      Ubuntu      fermé
-      win10      fermé

Ici nous voulons faire un snapshot du domaine « Ubuntu », nous allons donc regarder si il y a des snapshot existant pour ce domaine:

virsh snapshot-list --domain Ubuntu

Nom            Creation            Time            État
------------------------------------------------------------

On vérifie si le fichier disque est bien au format qemu/qcow2:

virsh dumpxml Ubuntu | grep -i qemu

<driver name='qemu' type='qcow2' cache='none'/>
<driver name='qemu' type='qcow2'/>

Pour un domaine éteint:

virsh snapshot-create-as --domain Ubuntu --name "Snapshot_test" --description "Snapshot de test"

Domain snapshot Snapshot_test created

Pour un domaine en fonctionnement:

virsh snapshot-create-as --domain Ubuntu --name "Snapshot_test" --description "Snapshot de test" --live

Domain snapshot Snapshot_test created

On peut maintenant voir notre snapshot:

virsh snapshot-list --domain Ubuntu

Nom Creation Time État
------------------------------------------------------------
Snapshot_test 2018-03-14 20:39:53 +0100 shutoff

Pour restaurer le snapshot:

virsh shutdown --domain Ubuntu
virsh snapshot-revert --domain Ubuntu --snapshotname Snapshot_test --running

Pour supprimer le snapshot:

virsh snapshot-delete --domain Ubuntu --snapshotname Snapshot_test

Domain snapshot Snapshot_test deleted

15 décembre 2017 /

Commandes de base

Lister les vms allumées:

virsh list

Lister toutes les vms:

virsh list --all

Editer le xml d’une vm:

virsh edit nom_vm

Affiche le fichier xml sur la sortie standard:

virsh dumpxml

Manipuler les images disques:

qemu-img

Informations sur une image:

qemu-img info fichier_image

Étendre la taille de l’image:

qemu-img resize fichier_image +tailleG

Éteindre une vm par l’acpi:

virsh shutdown nom_vm

Éteindre une vm en coupant l’alim:

virsh destroy nom_vm

Démarrer une vm:

virsh start vm :

Se connecter à la console d’une vm (pour en sortir « Ctrl+Shift+5"):

 

virsh console vm :

Commandes distante:

Virsh --connect qemu+ssh://nom_hyperviseur/system nom_commande

virt-viewer --connect qemu+ssh://nom_hyperviseur/system nom_vm

Bien sur il faut un accès ssh à l’hyperviseur (et le mieux est de mettre sa clé).

Comment étendre un disque (si il n’y a pas LVM …)?

1) Éteindre la vm :

virsh shutdown vm

2) Sauvegarde de l’image disque :

cp -p fichier_image fichier_image.bak

3) Étendre l’image disque :

qemu-img resize fichier_image +tailleG

3) Démarrer la vm :

virsh start vm

4) Arrêter les services et démonter la partition

5) Avec fdisk (!!!) : détruire la partition, la recréer

6) e2fsck -f /dev/partition

7) resize2fs /dev/partition

8) e2fsck -f /dev/partition

9) remonter et démarrer les services