braveo:docexploit:kvm
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
braveo:docexploit:kvm [2014/09/06 13:56] – [Étendre un volume logique] arnaudr | braveo:docexploit:kvm [2024/04/16 22:26] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== VIRSH ====== | ||
+ | Avec la commande virsh, vous accédez a un shell d' | ||
+ | pour avoir de l'aide dans ce shell la commande help est fort utile | ||
+ | |||
+ | sinon on peut l' | ||
+ | |||
+ | Démarrer une VM | ||
+ | virsh start nom-de-la-VM | ||
+ | |||
+ | arrêter une VM | ||
+ | virsh shutdown nom-de-la-VM | ||
+ | |||
+ | si la machine ne veut pas s' | ||
+ | virsh destroy nom-de-la-VM | ||
+ | |||
+ | Afficher la liste des machines virtuelles et l' | ||
+ | virsh list | ||
+ | |||
+ | pour supprimer la VM | ||
+ | virsh destroy / | ||
+ | attention cela de ne supprime pas le fichier image disque !!!! | ||
+ | |||
+ | pour prendre en compte les modifications du fichier de définition xml | ||
+ | ou pour créer une nouvelle machine virtuelle à partir du fichier xml | ||
+ | virsh define / | ||
+ | ====== le fichier XML ====== | ||
+ | Chaque machine virtuelle posséde un fichier XML de configuration détaillant les caractéristiques de votre machine virtuelle: type d' | ||
+ | |||
+ | |||
+ | Voici le fichier Le-Nom-De-La-Machine.xml de notre VM que nous avons créé précédement. | ||
+ | |||
+ | Par défaut, le fichier xml est accessible dans / | ||
+ | |||
+ | <domain type=' | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <os> | ||
+ | <type arch=' | ||
+ | <boot dev=' | ||
+ | </os> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | <clock offset=' | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <disk type=' | ||
+ | <driver name=' | ||
+ | <source file='/ | ||
+ | <target dev=' | ||
+ | <address type=' | ||
+ | </ | ||
+ | <disk type=' | ||
+ | <driver name=' | ||
+ | <target dev=' | ||
+ | < | ||
+ | <address type=' | ||
+ | </ | ||
+ | < | ||
+ | <address type=' | ||
+ | </ | ||
+ | < | ||
+ | <mac address=' | ||
+ | <source bridge=' | ||
+ | <model type=' | ||
+ | <address type=' | ||
+ | </ | ||
+ | <serial type=' | ||
+ | <target port=' | ||
+ | </ | ||
+ | <console type=' | ||
+ | <target port=' | ||
+ | </ | ||
+ | <input type=' | ||
+ | < | ||
+ | < | ||
+ | <model type=' | ||
+ | <address type=' | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | La création d'une machine virtuelle se fait par **virsh create Le-Nom-De-La-Machine.xml** | ||
+ | |||
+ | Vous pouvez contrôler que votre machine est exécutée en faisant un **virsh list**. | ||
+ | |||
+ | |||
+ | ====== Comment monter une partition kvm sur le système hôte ====== | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | Il faut installer le paquet kpartx : | ||
+ | aptitude install kpartx | ||
+ | |||
+ | Ensuite, vous devez saisir les commandes suivantes : | ||
+ | losetup /dev/loop0 le fichier de la VM | ||
+ | par exemple pour la partition truc se trouvant dans / | ||
+ | losetup /dev/loop0 / | ||
+ | puis : | ||
+ | kpartx -av /dev/loop0 | ||
+ | et enfin pour monter la partition sur le point de montage /media/disk par ex : | ||
+ | mount / | ||
+ | (où x est un numéro suivant le nb de partition qu'il y a sur la VM). | ||
+ | |||
+ | Faites ce que vous avez à faire puis n' | ||
+ | |||
+ | Pour défaire ce montage : | ||
+ | |||
+ | losetup -a | ||
+ | donne la liste des statuts des partitions | ||
+ | |||
+ | exemple de résultat : | ||
+ | /dev/loop0: [000e]:6346 (/ | ||
+ | |||
+ | la commande : | ||
+ | kpartx -d /dev/loop0 | ||
+ | permet de détacher la partition (/ | ||
+ | |||
+ | Puis un : | ||
+ | losetup -d /dev/loop0 | ||
+ | permet de défaire le montage effectué auparavant. | ||
+ | |||
+ | ====== Autre méthode bien plus simple ====== | ||
+ | |||
+ | On peut commencer par rechercher la partition à monter : | ||
+ | # lvscan | grep apache | ||
+ | | ||
+ | Le résultat : \\ | ||
+ | \\ | ||
+ | **ACTIVE | ||
+ | |||
+ | Nous allons utiliser la commande kpartx. Elle permet de lire la table des partitions à partir d'un fichier périphérique spécifié (ici / | ||
+ | # kpartx -av / | ||
+ | |||
+ | Si tout se passe bien, la commande nous retourne : \\ | ||
+ | \\ | ||
+ | **add map vg0-apache1 (254:23): 0 9949184 linear / | ||
+ | **add map vg0-apache2 (254:24): 0 530434 linear / | ||
+ | **add map vg0-apache5 (254:25): 0 530432 254:24 2** | ||
+ | |||
+ | \\ | ||
+ | Montage de la partition : | ||
+ | # mkdir / | ||
+ | # mount / | ||
+ | | ||
+ | < | ||
+ | Vérifions: | ||
+ | # ls / | ||
+ | **bin | ||
+ | **boot | ||
+ | \\ | ||
+ | Une fois les manipulations terminées, il faut démonter la partition proprement : \\ | ||
+ | # umount / | ||
+ | # kpartx -d / | ||
+ | \\ | ||
+ | | ||
+ | ====== Agrandir ou diminuer une partition lvm ====== | ||
+ | |||
+ | === Étendre un volume logique === | ||
+ | |||
+ | Pour étendre un volume logique, il suffit de dire à lvextend de combien vous voulez augmenter la taille | ||
+ | |||
+ | **Nous souhaitons augmenter de 10Go notre volume logique.** | ||
+ | <note important> | ||
+ | |||
+ | < | ||
+ | umount /mnt/data | ||
+ | lvextend -L+10G / | ||
+ | e2fsck -f / | ||
+ | resize2fs / | ||
+ | mount / | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Réduire un volume logique === | ||
+ | |||
+ | **Nous souhaitons diminuer de 5Go notre volume logique.** | ||
+ | < | ||
+ | umount /mnt/data | ||
+ | e2fsck -f / | ||
+ | resize2fs / | ||
+ | lvreduce -L-5G / | ||
+ | mount / | ||
+ | </ | ||
+ | |||
+ | === Ajout des nouvelles partitions au groupe de volume === | ||
+ | |||
+ | Nous avons une partition par exemple /dev/sda1 et nous souhaitons l' | ||
+ | vgextend vg0 /dev/sda1 | ||
+ | | ||
+ | Si tout ce passe bien nous obtenons : | ||
+ | **Volume Group " | ||
+ | |||
+ | ======Quelques ressources ====== | ||
+ | [[https:// | ||
+ | |||
+ | | ||
+ | |