Nous évaluons KVM pour la virtualisation de Linux sur quelques projets. Tout va bien jusqu'à présent. Mais une de nos exigences est la possibilité d'ajouter de l'espace disque à un invité en cours d'exécution sans le redémarrer ou le prendre. Hors ligne. Est-ce possible avec kvm?
La seule chose que j'ai trouvée jusqu'à présent (mais elle n'a pas encore été testée) est la possibilité de faire appel à des disques à la machine. Si je passe à cet itinéraire, je pourrais toujours ajouter le nouveau disque à un groupe de volumes LVM sur l'invité, puis prolonger le volume logique choisi. Le plus gros inconvénient de cette approche est que, avec le temps, nous pourrions vous retrouver avec des personnes variables de disques virtuels. L'espace disque "réel" serait fourni à l'hôte sur un SAN. Nous pouvons donc toujours ajouter plus d'espace à l'hôte à chaque fois.
Je pense que vous êtes coincé de faire ce que vous avez mentionné si vous voulez le faire sans prendre la machine.
Pourquoi ne pas simplement donner les lunes de machines virtuelles directement sur le SAN et gérer l'espace là-bas? Cela fonctionne mieux si vous souhaitez utiliser des fonctionnalités telles que la migration en direct.
KVM est basé sur QEMU de sorte que tout le support de format image provient de ce projet. Voici un bon comment redimensionnez les différents formats que le support QEMU/KVM. Mais le forum QEMU serait un bon endroit pour poser cette question si vous n'obtenez aucune réponse solide ici.
Une autre option qui peut ne pas être idéale est d'utiliser un très grand format d'image Qcow2 ou autre pour les entraînements. Vous pouvez donc donner à chaque machine un petit lecteur pour le système d'exploitation et une grande image rare pour les données sous LVM. Cela garderait au moins le nombre de lecteurs virtuels/d'images que vous devez gérer. Mais ce mince provisioning pourrait être un problème si vous faites ceci à 1 000 machines et tout le monde vous emmène sur l'espace libre qu'ils voient.
Xen je crois avoir les mêmes limitations actuellement.
Je sais que c'est une vieille question mais je l'ai trouvée en googling pour la solution et j'espère que cela pourrait aider quelqu'un d'autre.
Comme pour aujourd'hui, il est possible de redimensionner le disque dur de la machine. J'ai trouvé un chemin de travail ici:
https://bugzilla.redhat.com/show_bug.cgi?id=648594
Les étapes suivantes doivent être effectuées:
Découvrez un nom de fichier et KVM Nom du périphérique du disque dur que vous souhaitez redimensionner:
root@vhstage02:/data# virsh dumpxml test | xpath -e /domain/devices/disk
Found 2 nodes in stdin:
-- NODE --
<disk type="file" device="disk">
<driver name="qemu" type="qcow2" />
<source file="/data/test.img" />
<backingStore />
<target dev="vda" bus="virtio" />
<alias name="virtio-disk0" />
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0" />
</disk>
-- NODE --
<disk type="file" device="cdrom">
<driver name="qemu" type="raw" />
<source file="/data/images/debian-8.2.0-AMD64-netinst.iso" />
<backingStore />
<target dev="hda" bus="ide" />
<readonly />
<alias name="ide0-1-1" />
<address type="drive" controller="0" bus="1" target="0" unit="1" />
</disk>
Celui intéressant pour nous est le disque. Vous devriez rechercher source
et alias
blocs. Pour moi le nom de fichier est test.img
et nom d'alias est virtio-disk0
. À ce nom, vous devez préparer drive-
Pour obtenir le nom du lecteur QEMU.
Maintenant, nous redimensionnons réellement le lecteur à l'aide du moniteur QEMU:
virsh qemu-monitor-command test block_resize drive-virtio-disk0 100G --hmp
Notez que le nom de fichier a été utilisé sans extension et lecteur .IMG - a été ajouté à l'alias de disque. Le 100g est la taille résultante du lecteur que nous voulons avoir
Connectez-vous à la machine et vérifiez que la taille réelle a été modifiée:
root@test:~# fdisk -l
Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7e6e7f71
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 499711 497664 243M 83 Linux
/dev/vda2 501758 167770111 167268354 79.8G 5 Extended
/dev/vda5 501760 167770111 167268352 79.8G 8e Linux LVM
C'est ça! Vous pouvez maintenant créer de nouvelles partitions ou redimensionnez-vous.
Afaik, ce n'est pas possible - vous pouvez ajouter de nouvelles images de disque et vous pouvez également indiquer que vous pouvez également ajouter de nouvelles images à un volume LVM, mais afin de redimensionner une image de disque active et amorçable, vous devez pouvoir la fermer. bas et éditez les partitions.
Voici une bonne explication pour développer une image. Bien que cela nécessite une fermeture, vous pouvez probablement vous échapper à quelques minutes de temps d'arrêt, surtout si vous évitez l'option d'image --Nonsparse et DD le disque GParted à un fichier ISO et montrez-vous dans votre invité KVM. en avance. J'espère que cela t'aides.
Il est possible de déplacer un système Linux entre les disques lorsqu'il est en cours d'exécution. La limitation est que vous ne pouvez pas modifier partitions sur un disque qui a partitions en cours d'utilisation.
Pour ce faire, votre système de fichiers racines doit être sur un LVM, cela signifie souvent que vous devez avoir un système de fichiers de démarrage distinct (ce n'est pas cependant essentiel, cela facilite simplement les choses)
Après avoir branché le nouveau disque, vous l'ajoutez à la LVM avec VGEXTEND, utilisez PVMove pour déplacer le rootfs sur le nouveau disque, utilisez LvexTend et ReSize2FS pour développer respectivement le volume logique et le système de fichiers, puis utilisez VGRece pour supprimer l'ancien disque du volume. grouper. Une fois supprimé, l'ancien volume peut être débranché.
Pour le cas simple, vous avez un disque minuscule pour le système de fichiers de démarrage que vous n'avez jamais à toucher. Mais si c'est sur c'est propre, c'est facile de démonter le débrancher, branchez-le un nouveau et reconstruisez le disque de démarrage sans arrêter le système. (Juste ne pas écraser pendant que vous le faites)
Remarque: Resize2fs peut également réduire les systèmes de fichiers.