Comment diminuer la taille d'une image disque de machine virtuelle KVM?

11

Comment diminuer ou réduire la taille d'un disque de machine virtuelle KVM?

J'ai alloué un disque virtuel de 500 Go (stocké dans /var/lib/libvirt/images/vm1.img), et je trouve cela exagéré, alors maintenant je voudrais libérer une partie de cet espace pour l'utiliser avec d'autres virtuels Machines. Il semble y avoir beaucoup de réponses sur la façon d'augmenter le stockage d'images, mais pas de le diminuer. J'ai trouvé l' outil virt-resize , mais il ne semble fonctionner qu'avec des partitions de disque brutes, pas des images de disque.

Edit: j'utilise un LVM avec une partition formatée Ext4.

Edit: capture d'écran GParted montrant ma disposition de la partition LVM. Je dois faire beaucoup plus que redimensionner le système de fichiers. Je ne connais aucun moyen sûr de redimensionner un LVM. Et s'il vous plaît, ne me dites pas d'utiliser pvresize. Malgré son nom, il ne prend pas en charge le redimensionnement des LVM.

Capture d'écran GParted

J'ai essayé sudo pvresize /dev/vda5, mais cela dit simplement, physical volume "/dev/vda5" changedmais ne réduit pas réellement la taille.

J'ai essayé de commencer partedà définir manuellement la taille de la partition (très dangereux), mais cela print allme donne juste l'erreur "/ dev / sr0 label de disque non reconnu".

Edit: En suivant ces instructions , j'ai réussi à réduire à la fois mes volumes logiques et physiques (bien que je devais me rappeler d'activer et de désactiver lvm avant et après certaines commandes, que les instructions omettent.

Maintenant GParted affiche 250G d'espace libre non alloué. Comment puis-je supprimer cela de l'image de disque KVM et le restituer à l'hyperviseur sous-jacent?

Cerin
la source
Avez-vous réellement besoin de réduire la taille du disque virtuel, ou est-ce que le compactage suffirait? Vous pourriez faire ce dernier avec quelque chose comme qemu-img -O qcow2 vm1.img vm1-compact.qcow2.
Ansgar Wiechers
@AnsgarWiechers, Oui, j'ai encore besoin d'utiliser le disque et j'ai alloué beaucoup plus d'espace que je n'en aurai jamais besoin.
Cerin

Réponses:

10

Merci à ceux qui ont posté, mais vos réponses étaient bien trop vagues pour être utiles.

Après des heures de recherche sur Google, j'ai finalement trouvé un guide ( lien expurgé ) fournissant des instructions étape par étape sur la façon de réduire mon système de fichiers, mes volumes logiques et mes volumes physiques. L'astuce qui manque à la plupart des guides est la nécessité de supprimer les partitions physiques et de les recréer avec la taille correcte, car parted ne peut pas redimensionner les partitions lvm.

J'ai ensuite trouvé cette documentation sur qemu-img, qui explique comment réduire une image de disque virtuel au format brut en exécutant:

sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G
Cerin
la source
qemu-img est un excellent outil pour travailler avec des images disque pour kvm. 3 ans plus tard, votre lien semble rompu, voici la page de manuel de die.net linux.die.net/man/1/qemu-img
Louis Loudog Trottier
Et si quelqu'un veut cette commodité et est bloqué avec (ne veut pas) une machine virtuelle .qcow2, convertissez-le d'abord qemu-img convert -f qcow2 -O raw image.qcow2 image.imget ensuite vous pouvez exécuter la commande ci-dessus.
oemb1905
4

Qu'as tu besoin de faire,

  • Faites une sauvegarde
  • Réduisez le (s) système (s) de fichiers * ne faites pas cela sur un système live, je recommande d'utiliser un cd live.
  • Créez une nouvelle image disque de la taille souhaitée.
  • Exécutez un système d'exploitation en direct, avec les images nouvelles et anciennes attachées en tant que disques durs (virtuels) (non montés)
  • Créez la ou les nouvelles partitions de la même taille que les partitions redimensionnées sur l'ancien disque
  • Utilisez dd pour mettre en miroir les données vers la nouvelle partition.
  • Vous devrez peut-être purger / régénérer grub (2) pour démarrer correctement.

Cela peut être accompli via GUI et CLI

Ressources

Outils

  • gparted (lien omis à cause du spam, pas assez de rep)
daxroc
la source
La partie difficile est "Rétrécir le système de fichiers". J'utilise un LVM, aucun outil que j'ai trouvé ne prend en charge le redimensionnement. Pas même un Live CD GParted.
Cerin
Je pense que cela le couvre, je ne l'ai pas utilisé, veuillez donc signaler le bon ou le mauvais tcpdump.com/kb/os/linux/lvm-resizing-guide/shrink.html
daxroc
Il y a 2 points principaux à observer: 1) Faire les choses dans l'ordre ( réduire d' abord le système de fichiers, puis réduire la partition, puis réduire le disque). 2) La procédure / les outils pour redimensionner un système de fichiers dépendent fortement du système de fichiers réel (que l'OP a choisi de ne pas révéler). L'article @daxroc publié ne fonctionnera pas pour les systèmes de fichiers autres que ext [234].
Ansgar Wiechers
@daxroc, je dois réduire les volumes logiques et physiques. Votre lien ne couvre que la réduction du volume logique.
Cerin
D'accord. sauvegarde, nouveau disque, restauration est le plus sûr et le plus facile
dyasny
0

Cela a très bien fonctionné pour moi. Il compresse et réduit les blocs 0 dans l'image disque. L'image s'agrandira avec le temps au fur et à mesure de sa réécriture.

qemu-img convert -c -O qcow2 vmdisk.qcow2 vmdisk-comp.qcow2
Greg
la source
-4

Je recommande avant de faire quoi que ce soit de prendre une copie complète de l'image disque telle qu'elle est, puis quand tout se casse, vous pouvez simplement la recopier pour recommencer.

Il y a 3 choses que vous devez faire:

1) Agrandir l'image du disque. Chez votre hôte:

qemu-img redimensionner foo.qcow2 + 32G

Maintenant, votre invité peut voir un disque plus gros, mais a toujours de vieilles partitions et systèmes de fichiers.

2) Agrandir la partition à l'intérieur de l'image disque. Pour cela, vous devez démarrer un LiveCD sur votre invité, car vous ne pourrez pas jouer avec une partition montée. C'est assez compliqué et probablement la partie la plus dangereuse. C'est beaucoup de choses à copier ici, donc je vais juste lier à la place pour l'instant. Vous voulez faire quelque chose comme ça:

http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

OU 2b) la création d'une nouvelle partition serait plus simple (et plus sûre) si vous voulez simplement plus d'espace de stockage. Utilisez fdisk ou cfdisk, ou tout ce qui vous convient - vous devriez maintenant voir tout un tas d'espace non alloué sur votre disque invité.

3) Enfin, si vous redimensionnez votre partition existante, agrandissez le système de fichiers à l'intérieur de la nouvelle partition plus grande (c'est en fait de toute façon dans le guide lié ci-dessus). À l'intérieur de votre invité:

Ankur Dholakiya
la source
6
Il essaie de rendre l'image plus petite , pas plus grande.
Michael Hampton