136 votes

Comment augmenter l'espace disque d'un invité KVM ?

J'ai installé un invité Ubuntu sur un hôte CentOS KVM avec initialement 6 Go d'espace disque. Comment puis-je augmenter l'espace disque de l'invité Ubuntu à partir de la ligne de commande ?

EDIT #1 : J'utilise un fichier d'image disque (qemu).

1 votes

Redimensionnement en ligne : serverfault.com/a/952868/30946

6voto

David Spillett Points 22424

Si vous utilisez LVM dans la VM, le plus simple serait d'ajouter un nouveau disque virtuel à la VM et d'y étendre le groupe de volumes et les volumes logiques.

Pour vérifier si vous utilisez LVM, exécutez sudo pvs; sudo vgs; sudo lvs vous obtiendrez quelque chose comme ça :

PV         VG     Fmt  Attr PSize  PFree
/dev/vda1  vgWWW  lvm2 a-   30.00g    0

VG     #PV #LV #SN Attr   VSize  VFree
vgWWW    1   2   0 wz--n- 30.00g    0

LV   VG    Attr   LSize 
root vgWWW -wi-ao 28.80g
swap vgWWW -wi-ao  1.19g

si le système d'exploitation de la VM utilise LVM. Dans l'exemple ci-dessus, la VM possède un disque virtuel de 30 Go, configuré à l'aide de LVM avec un groupe de volumes appelé vgWWW contenant deux volumes logiques, un pour le swap et un pour tout le reste.

Si LV est utilisé dans la VM :

  1. Arrêtez la VM
  2. Sur l'hôte, créez un nouveau fichier de disque virtuel et ajoutez-le à la VM.
  3. Redémarrez la VM et connectez-vous
  4. Marquez le nouveau lecteur comme étant un volume physique pour LVM avec sudo pvcreate /dev/vdb
  5. Étendez le groupe de volume pour inclure ce nouveau bloc de disque avec sudo vgextend vgWWW /dev/vdb
  6. Étendre le volume logique pour occuper le nouvel espace avec sudo lvextend --extents +100%FREE /dev/vgWWW/root (ou quelque chose comme sudo lvextend --size +8G /dev/vgWWW/root si vous ne voulez pas le faire croître entièrement, cet exemple ajoutera 8 Go au volume).
  7. Redimensionnez le système de fichiers avec resize2fs /dev/vgWWW/root

Note : ce qui précède suppose que les noms des vg/lv sont les mêmes que dans mon exemple, ce qui est peu probable, changez-les comme il convient, également si la VM a déjà un lecteur virtuel appelé vdb le nouveau sera autre chose ( vdc et ainsi de suite)

Note : resize2fs ne fonctionnera que sur les systèmes de fichiers ext2, ext3 et ext4. Si vous utilisez un autre système de fichiers, le programme se trompera et ne fera rien.

Note : comme vous redimensionnez un système de fichiers actif resize2fs ne vous demandera pas d'exécuter fsck comme il le ferait pour un système de fichiers non monté, il ira de l'avant. Vous pourriez vouloir exécuter un système de fichiers en lecture seule pour vérifier qu'il n'y a pas de problème avant de continuer.

0 votes

Cela peut également être fait avec une interface graphique qui est assez agréable. centos.org/docs/5/html/Deployment_Guide-en-US/

5voto

Hojat Modaresi Points 151

De cette façon, vous pouvez étendre la partition que vous voulez :

    # see what partitions you have? 
    virt-filesystems --long -h --all -a olddisk

    truncate -r olddisk newdisk
    truncate -s +5G newdisk

    # Note "/dev/sda2" is a partition inside the "olddisk" file.
    virt-resize --expand /dev/sda2 olddisk newdisk

Voir d'autres exemples aquí .

3voto

Martin Murphy Points 1210

Il existe une possibilité d'augmenter la taille du disque de votre VM sans redémarrer la VM si vous utilisez un lecteur virtio et LVM.

  1. Utilisez virt-manager ou virsh pour définir un nouveau disque vide

  2. Le kernel devrait voir un nouveau /dev/vdb

  3. (Optionnel) Créez une partition primaire avec fdisk pour obtenir /dev/vdb1, puis utilisez kpartx -a /dev/vdb pour relire la table de partition

  4. Utilisez vgextend vg_name /dev/vdb1 (ou /dev/vdb si vous n'avez pas créé de partition)

  5. Utilisez lvextend -l +100%FREE /dev/vg_name/lv_name

  6. Utilisez resize2fs /dev/vg_name/lv_name pour étendre votre système de fichiers

Vous avez terminé.

2 votes

J'ajouterai que libguestfs.org/virt-resize.1.html devrait également aider.

2voto

Jeff Points 1

Une autre façon de procéder

truncate -s +2G vm1.img 

faites un rescan du disque et après vous pourrez faire votre lvm resize.

1voto

Diego Mijelshon Points 40314

Si vous avez LVM dans votre VM, c'est très facile et rapide.

  1. Éteignez la VM (machine invitée).
  2. Dans votre machine hôte, ajoutez un nouveau périphérique de stockage.
  3. Allumez l'invité.
  4. Système ouvert -> Administration -> Gestion des volumes logiques (ou tapez sudo system-config-lvm en terminal)*.

J'ai trouvé l'interface graphique assez intuitive, mais suivez les étapes suivantes si vous avez des problèmes.

  1. Ouvrez "Entités non initialisées" et trouvez votre nouveau lecteur.
  2. Après avoir sélectionné le nouveau lecteur, sous l'image, vous devriez trouver un bouton d'initialisation. Appuyez dessus.
  3. Il vous posera des questions sur le partitionnement - vous n'en avez pas besoin.
  4. Une fois terminé, ajoutez votre disque au groupe de volume existant.
  5. Enfin, vous devez faire croître votre ou vos volumes logiques - cela se fait dans la vue logique du groupe en modifiant les propriétés de votre volume.
  6. Sauvegardez et vous avez terminé. Il n'est pas nécessaire de redémarrer la VM.

Note ! Au moins sur CentOS 6 LVM GUI n'est pas installé par défaut, mais vous pouvez l'installer avec yum install system-config-lvm .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X