Sur mon serveur intranet, j'ai une partition / dev / sda5 de 100,00 Gio, que j'utilise comme volume physique pour lvm2.
- C'est le seul volume physique de mon groupe de volumes vg01.
- vg01 contient actuellement un volume logique lv01, utilisant l'intégralité de 100,00 Gio - enfin, en fait 99,99 Gio en raison d'un certain arrondi (c'est là que le problème commence).
- lv01 contient un système de fichiers ext3, utilisant tout l'espace.
Je veux réduire lv01 à environ 97 Gio, donc je peux créer lv02 avec env. 3 Gio (j'en ai besoin pour prendre des instantanés lvm).
Ce que j'ai fait jusqu'à présent:
e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G
Cela a bien fonctionné. Mais maintenant je vais devoir courir
lvreduce --size ? /dev/mapper/vg01-lv01
Et je ne sais pas quelle valeur exacte je devrai spécifier. La lvreduce
page de manuel avertit explicitement que la taille résultante ne doit pas être inférieure au système de fichiers. Je ne veux pas non plus l'agrandir. Mais maintenant, j'ai des chiffres différents:
- J'ai spécifié
97G
dans resize2fs. df -h
dit, c'est 96 G.df
dit, c'est 100115936 blocs 1K.- lvdisplay (bien sûr) rapporte toujours 99,99 Gio pour le volume logique.
Que dois-je spécifier lvreduce
?
Éditer:
La réponse actuellement acceptée fournit une bonne solution de contournement. Cependant, afin d'intégrer de telles choses dans des scripts solides, etc., je préférerais généralement utiliser des mesures précises à la place. Ou peut-être existe-t-il déjà un script ou un outil fiable (!) Qui exécute la procédure de redimensionnement en une seule étape?
resize2fs
pour réduire le système de fichiers à 90 Go environ, puis fouiller avec des arguments pourlvreduce
(suivi deresize2fs
) pour voir ce qui fonctionne le mieux.Réponses:
D'après mon expérience, LVM et resize2fs ont les mêmes idées sur ce que signifie "97G", donc spécifier la même taille aux deux endroits devrait être correct. Cependant, je suis paranoïaque, et dans la mesure du possible, utilisez toujours la stratégie suggérée par larsks dans les commentaires de la question et redimensionnée pour être un Go plus petit que je le souhaitais, faites la lvresize à la taille que je voulais, puis réexécutez resize2fs (sans taille) pour le laisser se dilater pour remplir le LV entier.
la source
Je pense que c'est mieux d'utiliser l'option --resizefs pour lvreduce / lvresize:
Certes, cela ne vous aide pas maintenant , mais cela pourrait le devenir à l'avenir.
la source