J'ai une configuration d'environ 20 machines Linux, chacune avec environ 30 à 150 gigaoctets de données client. La taille des données augmentera probablement beaucoup plus rapidement sur certaines machines que sur d'autres. Ce sont des machines virtuelles sur un cluster VMware vSphere. Les images de disque sont stockées sur un système SAN.
J'essaie de trouver une solution qui utiliserait l'espace disque avec parcimonie, tout en permettant une croissance facile des machines individuelles.
En théorie, je créerais simplement de gros disques pour chaque machine et utiliserais l'allocation dynamique. Chaque disque se développerait selon les besoins. Cependant, il semble qu'un système de fichiers ext3 de 500 Go avec seulement 50 Go de données et un nombre assez faible d'écritures augmente facilement l'image disque, par exemple. 250 Go au fil du temps. Ou peut-être que je fais quelque chose de mal ici? (J'ai été surpris du peu que j'ai trouvé sur le sujet avec Google. BTW, il n'y a même pas de balise de provisionnement fin sur serverfault.com.)
Actuellement, je prévois de créer de gros disques à allocation dynamique - mais avec un petit volume LVM dessus. Par exemple: un volume de 100 Go sur un disque de 500 Go. De cette façon, je pouvais plus facilement augmenter le volume LVM et la taille du système de fichiers selon les besoins, même en ligne.
Maintenant pour la vraie question:
Y a-t-il de meilleures façons de procéder? (c'est-à-dire, pour augmenter la taille des données au besoin sans temps d'arrêt.)
Les solutions possibles incluent:
Utiliser un système de fichiers convivial à allocation dynamique qui essaie d'occuper les mêmes endroits encore et encore, n'augmentant ainsi pas la taille de l'image.
Trouver une méthode simple pour récupérer de l'espace libre sur la partition (re-thinning?)
Autre chose?
Une question bonus: si j'adopte mon plan actuel, recommanderiez-vous de créer des partitions sur les disques ( pvcreate /dev/sdX1
vs pvcreate /dev/sdX
)? Je pense que c'est contre les conventions d'utiliser des disques bruts sans partitions, mais cela faciliterait un peu la croissance des disques, si cela était nécessaire. Ce n'est qu'une question de goût, non?
La meilleure suggestion à laquelle je peux penser est de créer une configuration LVM avec des volumes physiques, des groupes de volumes et des volumes logiques, puis de monter ces volumes logiques en tant que système de fichiers de votre machine virtuelle via iSCSI .
Cela vous permettra de redimensionner le volume logique, puis tout ce que vous aurez à faire après cela est de redémarrer votre démon iscsi et votre logiciel de machine virtuelle et de vérifier qu'il a les nouveaux paramètres de taille, puis de redimensionner le système de fichiers de l'invité pour qu'il corresponde.
Le partitionnement fonctionnerait comme avec un disque dur standard, comme c'est la façon dont le LV apparaîtrait à l'invité de la machine virtuelle.
Edit: peu importe cela, j'ai eu la fausse impression que vous exécutiez vmware sous linux, pas linux sous vmware.
la source
Je ne sais pas comment cela fonctionne dans VMware mais Redhat RHEV-M / RHEV-H c'est possible et il prend en charge RHEL 4.8 à 5.X et en même temps pour gagner 2k3 R2 et gagner 2k8. Pour plus d'informations http://studyhat.blogspot.com/2010/05/rhev-for-servers-22-installation-and.html
la source
Autre suggestion: configurer un serveur de fichiers qui contiendra toutes vos données utilisateur.
Ce serveur de fichiers doit bien sûr être géré avec LVM pour vos besoins de gestion de capacité en ligne.
Si vous le souhaitez, vous pouvez créer une configuration ha (drbd + heartbeat) avec une copie de votre serveur de fichiers dans le SAN et une deuxième copie à l'extérieur ou similaire. (pour les paranoïdes)
Étant donné que vos clients sont basés sur Linux, vous pouvez utiliser NFS qui serait plus rapide que Samba. Un FileServer vous permettra une stratégie de sauvegarde centralisée ainsi qu'une surveillance centralisée de l'utilisation du stockage. Et en termes de votre question de provisionnement léger:
Créez votre configuration LVM comme vous le souhaitiez (dans votre exemple, un LV de 100 Go sur un PV de 500 Go, modifiez simplement les nombres correspondant à la somme de stockage dont vos machines virtuelles ont besoin). Développez ce LV si nécessaire, comme vous l'avez prévu de faire dans chaque machine virtuelle séparément. Mais faites-le UNE FOIS sur votre serveur de fichiers. Chaque fois qu'une machine virtuelle réduit son utilisation du stockage, cet espace deviendra disponible pour toutes vos machines virtuelles ;-)
Utilisez des quotas sur votre serveur de fichiers si nécessaire ou souhaité pour empêcher une seule machine virtuelle de remplir votre serveur de fichiers.
la source
Pouvez-vous étendre un volume sans arrêter la machine virtuelle qui l'utilise? Je fais souvent cela, mais je ne sais pas à quoi ressemble votre configuration de stockage ou comment VMware pourrait compliquer les choses. Si vous le pouvez, je ferais ceci
1) Ne pas éclaircir la disposition. Faites de chaque volume la taille dont vous pensez avoir besoin. 2) N'utilisez pas de partitions. Faites de chaque système de fichiers son propre volume. 3) Surveillez la croissance du système de fichiers afin de pouvoir redimensionner les volumes de manière proactive.
Quand vient le temps d'augmenter un volume
1) Sur votre SAN ou dans VMware, faites tout ce dont vous avez besoin pour augmenter le volume. 2) Sous Linux, exécutez
echo 1 > /sys/block/EXAMPLE/device/rescan
, où EXEMPLE est le nom des périphériques sous / sys / block /. 3) Sous Linux, exécutezresize2fs /dev/EXAMPLE
, où EXAMPLE est le nom du périphérique sous / dev.Cette approche fonctionne bien pour moi. J'ai pris en compte votre approche avec l'allocation dynamique et LVM, et je pense que cela fonctionnerait également.
Si vous décidez de suivre la route LVM, je vous recommande de ne pas partitionner les disques. Comme vous l'avez dit, l'absence de table de partition facilite la croissance du disque virtuel. Sans table de partition, vous pouvez simplement exécuter pvresize et Linux reconnaîtra que le volume physique a augmenté. Avec une table de partition, vous devez démonter tout système de fichiers, supprimer la table de partition, recréer la table de partition, puis exécuter pvresize. C'est beaucoup plus de travail et cela nécessite des temps d'arrêt.
la source