Nous évaluons KVM pour la virtualisation Linux sur quelques projets. Jusqu'ici tout va bien. Mais l'une de nos exigences est la possibilité d'ajouter de l'espace disque à un invité en cours d'exécution sans redémarrer ni le mettre hors ligne. Est-ce possible avec KVM?
La seule chose que j'ai trouvée jusqu'à présent (mais que je n'ai pas encore testée) est la possibilité de connecter à chaud des disques à la machine. Si je choisis cette route, je pourrais toujours ajouter le nouveau disque à un groupe de volumes LVM sur l'invité, puis étendre le volume logique choisi. Le plus gros inconvénient de cette approche est qu'au fil du temps, nous pourrions nous retrouver avec des invités disposant d'un nombre variable de disques virtuels. L'espace disque "réel" serait fourni à l'hôte via un SAN, nous pouvons donc toujours ajouter plus d'espace à l'hôte à chaque fois.
Réponses:
Je pense que vous êtes coincé à faire ce que vous avez mentionné si vous voulez le faire sans démonter la machine.
Pourquoi ne pas simplement donner les LUN des 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 de toute façon.
KVM est basé sur QEMU donc tout son support de format d'image provient de ce projet. Voici une bonne façon de redimensionner les différents formats pris en charge par Qemu / KVM. Mais le forum Qemu serait un bon endroit pour poser cette question si vous n'obtenez pas de réponses solides ici.
Une autre option qui peut ne pas être idéale consiste à utiliser un qcow2 vraiment grand ou un autre format d'image clairsemé pour les lecteurs. Vous pouvez donc donner à chaque machine un petit lecteur pour le système d'exploitation et une grande image clairsemée pour les données sous LVM. Cela conserverait au moins le nombre de lecteurs / images virtuels que vous devez gérer. Mais ce provisionnement fin pourrait être un problème si vous le faites pour 1000 machines et que tout le monde vous occupe sur l'espace libre qu'il voit.
Je pense que XEN a les mêmes limites actuellement.
la source
Je sais que c'est une vieille question, mais je l'ai trouvée en cherchant la solution sur Google et j'espère que cela peut aider quelqu'un d'autre.
Aujourd'hui, il est possible de redimensionner le disque dur de la machine. J'ai trouvé un moyen de travailler ici:
https://bugzilla.redhat.com/show_bug.cgi?id=648594
Les étapes suivantes doivent être effectuées:
Trouvez un nom de fichier et un nom de périphérique KVM du disque dur que vous souhaitez redimensionner:
Le disque qui nous intéresse est le disque. Vous devez rechercher
source
etalias
bloquer. Pour moi, le nom de fichier esttest.img
et le nom d'alias estvirtio-disk0
. À ce nom, vous devez ajouter le préfixedrive-
pour obtenir le nom du lecteur qemu.Maintenant, nous redimensionnons réellement le lecteur à l'aide du moniteur qemu:
Notez que le nom de fichier a été utilisé sans l'extension .img et que le lecteur a été ajouté à l'alias de disque. Le 100G est la taille résultante du disque que nous voulons avoir
Connectez-vous à la machine et vérifiez que la taille réelle a été modifiée:
C'est ça! Vous pouvez maintenant créer de nouvelles partitions ou redimensionner des partitions existantes.
la source
AFAIK, ce n'est pas possible - vous pouvez ajouter de nouvelles images de disque, et comme vous le faites remarquer, vous pouvez également ajouter de nouvelles images à un volume LVM, mais pour redimensionner une image de disque amorçable active, vous devez pouvoir la fermer et éditez les partitions.
Voici une bonne explication pour agrandir une image. Bien qu'il nécessite un arrêt, vous pourriez probablement vous en sortir avec seulement quelques minutes de temps d'arrêt, surtout si vous évitez l'option --nonsparse image et dd le disque gparted dans un fichier iso et montez à l'avance dans votre invité KVM. J'espère que cela t'aides.
la source
Il est possible de déplacer un système Linux entre des disques pendant son fonctionnement. La limitation est que vous ne pouvez pas modifier les partitions sur un disque qui a des partitions utilisées.
Pour ce faire, votre système de fichiers racine doit être sur un LVM, cela signifie souvent que vous devez avoir un système de fichiers de démarrage séparé (ce n'est cependant pas essentiel, cela rend les choses plus faciles)
Après avoir branché le nouveau disque, vous l'ajoutez au LVM avec vgextend, utilisez pvmove pour déplacer les rootfs vers le nouveau disque, utilisez respectivement lvextend et resize2fs pour développer le volume logique et le système de fichiers, puis utilisez vgreduce pour supprimer l'ancien disque du volume groupe. Une fois retiré, l'ancien volume peut être débranché.
Pour le cas simple, vous avez un petit disque pour le système de fichiers de démarrage que vous n'avez jamais à toucher. Mais si c'est tout seul c'est facile de le démonter, de le débrancher, d'en brancher un nouveau et de reconstruire le disque de démarrage sans arrêter le système. (ne vous plantez pas pendant que vous le faites)
Remarque: resize2fs peut également réduire les systèmes de fichiers.
la source
Pas possible atm, mais afaik c'est une fonctionnalité en cours de développement. Ce que vous pouvez faire à la place est de vous connecter à une cible iSCSI à partir de la machine virtuelle et de gérer l'espace sur cette cible du côté SAN.
la source