Les partitions LVM doivent-elles être utilisées dans des images de machine virtuelle?


45

LVM doit-il être utilisé pour les partitions lors de la création d'images de machine virtuelle (par exemple, des images KVM)? Il semble que cela ajoute de la complexité si vous voulez, par exemple, monter une image qcow2 dans l'hôte si l'image contient des partitions LVM.

D'un autre côté, il ne semble pas que les avantages des partitions LVM soient aussi importants sur une image de machine virtuelle, car il est beaucoup plus facile de mettre une machine virtuelle hors ligne et de redimensionner des partitions que sur un système physique.


Avez-vous des questions sur l'utilisation de volumes logiques en tant que disques entiers ou en tant que partitions qui constituent à leur tour un disque dans une machine virtuelle?
Nils

@Nils Je parle de LV en tant que partitions constituant un disque. Par exemple, la partition "/" et la partition de swap en tant que volumes logiques à l'intérieur d'un groupe de volumes.
Lorin Hochstein

Juste pour clarifier, il semble que vous demandiez d’utiliser LVM du côté invité. Il est beaucoup plus facile à gérer si vous utilisez LVM côté hôte, passez un disque ou deux et utilisez-les sans partitionnement sur l'invité.
Tobu

La surcharge de LVM est comprise entre 10e et 9 secondes.
Emmanuel

Réponses:


21

"Ça dépend."

Si vous vous trouvez dans un environnement que vous contrôlez (vmware ou kvm ou autre) et que vous pouvez prendre vos propres décisions sur la qualité de service du disque, il est recommandé de ne pas utiliser LVM dans vos ordinateurs virtuels. Cela n'apporte pas beaucoup de flexibilité que vous ne pouviez pas obtenir au niveau de l'hyperviseur.

N'oubliez pas que l'hyperviseur est déjà en train de réaliser efficacement ces tâches. Si vous voulez pouvoir redimensionner arbitrairement les systèmes de fichiers (une bonne idée), créez simplement un disque virtuel distinct pour chaque système de fichiers.

Une chose à laquelle vous pourriez penser en allant dans cette voie. Vous n'avez même pas nécessairement besoin de mettre des partitions sur vos disques virtuels de cette façon. Par exemple, vous pouvez créer un disque virtuel pour /home; c'est à l' /dev/vdcintérieur de votre vm. Lors de la création du système de fichiers, faites quelque chose comme mke2fs -j /dev/vdcau lieu de spécifier une partition.

C'est une bonne idée, mais ... la plupart des outils (et des autres administrateurs qui vous suivent) s'attendent à voir des partitions sur chaque disque. Je recommanderais simplement de mettre une seule partition sur le disque et d'en finir. Cependant, cela signifie une étape supplémentaire lors du redimensionnement du système de fichiers. Et n'oubliez pas d'aligner correctement vos partitions - le bon principe de base est de démarrer la première partition à 1 Mo.

Tout cela dit - Faire tout cela au niveau de l'hyperviseur signifie que vous devez probablement redémarrer la VM pour redimensionner les partitions. L'utilisation de LVM vous permettrait d'ajouter à chaud un disque virtuel (en supposant que votre combinaison hyperviseur / système d'exploitation le permette) et de développer le système de fichiers sans redémarrer. C'est définitivement un avantage.


Pendant ce temps, si vous utilisez un fournisseur de cloud, c'est plus subtil.

Je ne connais pas grand chose d'Azure, de GCP ou de tout autre joueur plus petit, je ne peux donc pas vous aider.

Avec AWS, vous pouvez suivre mon conseil ci-dessus et vous irez souvent très bien. Vous pouvez (maintenant) augmenter la taille des volumes EBS (disques virtuels) à la volée, redimensionner les partitions, etc.

Cependant, dans le cas général, il peut être judicieux de tout placer sur un seul grand volume EBS et d’utiliser LVM (ou, je suppose, des partitions simples). Amazon vous donne une limite IOPS sur chaque volume. Par défaut, cette limite est adaptée à la taille du volume. Par exemple, pour les gp2volumes, vous obtenez 3 IOPS par Go (minimum de 100 IOPS). Voir https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html.

Pour la plupart des charges de travail, vous souhaiterez que toutes vos IOPS disponibles soient disponibles pour tout système de fichiers, en fonction des besoins du moment. Il est donc logique de créer un grand volume EBS, de regrouper toutes vos IOPS dans un compartiment et de partitionner / LVM.

Exemple:

3 disques avec systèmes de fichiers / zones d'échange indépendants, chacun d'une taille de 100 Go. Chacun obtient 300 IOPS. Les performances sont limitées à 300 IOPS sur chaque disque.

1 disque, 300 Go en taille. Partitions LVM sur le disque de 100 Go chacune. Le disque obtient 900 IOPS. Toutes les partitions peuvent utiliser l’ensemble des 900 IOPS.


7

Les volumes logiques sont plus faciles à créer, redimensionner, supprimer à la volée.
La question "à LVM ou non" a toujours la même réponse, cela dépend :)
Cela a du sens si vous avez besoin de flexibilité au niveau du (des) disque (s), de la / des partition (s).
Cela n'a pas de sens si vous n'avez pas besoin de la flexibilité fournie par LVM ou si vous ne souhaitez pas tirer parti des autres fonctionnalités de LVM.


5

En fait, j'aime bien utiliser les LV car ils ne sont pas facilement accessibles depuis le serveur virtuel. Ainsi, ces fichiers ne peuvent pas être facilement détruits / déplacés par hasard.

Autres caractéristiques importantes des LV:

  • Vous pouvez faire des instantanés
  • Vous pouvez analyser les E / S du disque en fonction de LV ( iostat)
  • Facile à redimensionner
  • En utilisant des instantanés, vous pouvez créer un clone cohérent de systèmes en cours d'exécution.

Pour réduire la complexité, j'utilise un LV en tant que disque (pas en tant que partition). L'inconvénient est que je ne peux facilement redimensionner la dernière partition du "disque" - mais la disposition de mon disque standard-VM en tient compte (la dernière partition contient donc les données importantes de l'application).


2

En plus de la flexibilité, les images de machines virtuelles basées sur LVM ont potentiellement moins de temps système, car elles ne sont pas accessibles via un système de fichiers. D'autre part, il vous empêche de déplacer facilement les images, comme vous le feriez avec un fichier. Pas impossible, mais un peu plus compliqué


1
C'est une réponse à une question différente. La question ici concernait l'utilisation de LVM dans les invités, et non l'utilisation de LVM sur l'hôte (LV pour stocker les disques de VM).
Stéphane Chazelas

1
Non, la question portait sur l’utilisation de LVM POUR les invités, pas DANS les invités.
HDave

2

Ma propre expérience ....

Je voulais utiliser un volume logique (LV) avec LVM2 pour un système de fichiers ext4; pas en tant que disque, ou plutôt, simplement en tant que disque brut non partitionné pour le fs.

Ce que j’ai trouvé, c’est que le démarrage de la machine virtuelle serait arrêté au stade initrd; si je commentais l' /etc/fstabentrée, la machine démarrerait. Laisser l' /etc/fstabentrée commentée n'était pas une solution avec laquelle j'étais heureux de vivre. J'ai donc créé une image disque normale (toujours un volume logique), puis partitionné avec une partition à l'aide de fdisket créé le système de fichiers sur cette image. Pas d'autres problèmes.

Les montures pertinentes dans ma /etc/fstabutilisaient UUID.

J'ai pensé à utiliser un fichier ou un système de fichiers, mais j'ai décidé de ne pas le

Dans mon cas, j'utilise un système basé sur Debian Jessie, Devuan


1

En fait, je n'utilise que LVM pour le stockage de sauvegarde au niveau de l'hyperviseur, les fichiers d'image étant destinés aux oiseaux. Je recommanderais également de les utiliser au niveau des invités. Il est vrai que vous ne bénéficierez pas de la mise en commun de sources de stockage disparates ou de l'augmentation de la capacité totale d'espace disque disponible (vous pouvez l'obtenir tout aussi facilement en redimensionnant ce que présente l'hyperviseur), mais vous allouez parfois trop à un seul système de fichiers. . Vous voudrez peut-être un moyen facile de prendre 1 Go de / opt et de le donner à / var (par exemple). Si vous créez des partitions régulières à l'intérieur de la machine virtuelle, le redimensionnement sera d'autant plus difficile.


1

En plus des autres bonnes réponses, la seule bonne raison d'utiliser LVM dans une machine virtuelle est que vous souhaitez créer un environnement de test et acquérir une expérience pratique de LVM.

Vous pouvez consulter divers HOWTO et tutoriels, vous familiariser avec les tâches administratives courantes (et parfois moins communes) de LVM, configurer différents scénarios de défaillance et apprendre à les gérer.

c'est à dire comme un outil d'auto-apprentissage.


0

Edit: Ce qui suit n’est plus vrai. L'utilisation de l'allocation dynamique fournie par LVM pour les images de disque de machine virtuelle présente probablement un intérêt situationnel;

Exécutez-vous des machines virtuelles de développement sur un ordinateur portable? alors vous êtes probablement mieux avec QCow2.

Vous gérez une batterie de machines virtuelles pouvant utiliser d’énormes quantités de stockage sur plusieurs disques? LVM est probablement un bon moyen de gérer ce stockage.


Une des raisons de ne pas utiliser LVM est que vous ne pouvez pas surcharger le stockage en utilisant LVM. Si vous créez 10 ordinateurs virtuels avec 100 Go de stockage, vous avez besoin de 1 000 Go de disque, même si 9 ordinateurs virtuels sur dix n'utiliseront jamais que 20 Go de leurs systèmes de fichiers. Les images de disque fragmenté ou les images au format qcow2 peuvent signifier que seul le stockage réellement utilisé par les invités doit leur être attribué.

Si cela vous est réellement utile dépend de ce dont vous avez besoin de votre stockage.


2
Vous pouvez réellement surcharger le stockage en utilisant des instantanés LVM. Il y a des frais généraux, cependant.
derobert

3
et en fait, les versions les plus récentes de LVM prennent en charge un "pool limité", ce qui est surchargé de travail sans instantané.
derobert

C'est un point valide, bien que incorrect. le fait que la méthode "standard" / à la volée d'utilisation des partitions / disques LVM aboutisse au scénario décrit mérite certainement d'être signalé. Cependant, la réponse pourrait être modifiée pour indiquer que cela ajouterait encore plus de complexité au parcours d'apprentissage .
ILMostro_7
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.