Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:systeme:matos:lvm [2013/11/26 20:27] – bn8 | informatique:systeme:matos:lvm [2024/05/22 13:25] (Version actuelle) – [Réduire un LV] bn8 | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
===== Fonctionnement général ===== | ===== Fonctionnement général ===== | ||
+ | |||
+ | ==== Augmenter un PV ==== | ||
+ | |||
+ | * Si votre //PV// est une partition d'un // | ||
+ | * Utiliser ensuite la commande suivante pour redimensionner votre //PV// : < | ||
+ | |||
+ | **Avec :** | ||
+ | |||
+ | * **[device] :** Le // | ||
+ | |||
+ | |||
==== Réduire un PV ==== | ==== Réduire un PV ==== | ||
Ligne 9: | Ligne 20: | ||
* **[size] :** la nouvelle taille du //PV// (exemple : //30G//) | * **[size] :** la nouvelle taille du //PV// (exemple : //30G//) | ||
* **[device]] :** le // | * **[device]] :** le // | ||
- | * Si votre //PV// est une partition et que vous souhaitez le // | + | * Si votre //PV// est une partition et que vous souhaitez le // |
* Si vous devez réduire physiquement la taille du disque (cas du disque d'une machine virtuelle par exemple), c'est ici qu'il faut le faire, machiné éteinte. | * Si vous devez réduire physiquement la taille du disque (cas du disque d'une machine virtuelle par exemple), c'est ici qu'il faut le faire, machiné éteinte. | ||
* Si votre //PV// est une partition et que vous l'avez réduit précédemment plus que nécessaire, | * Si votre //PV// est une partition et que vous l'avez réduit précédemment plus que nécessaire, | ||
* Redimensionner ensuite le //PV// à la taille du // | * Redimensionner ensuite le //PV// à la taille du // | ||
- | ==== Réduire un LV ==== | + | <note tip>Il est possible d' |
- | Pour un système | + | |
- | * On démonte si nécessaire le LV | + | Commencer par lister les segments des LV : <code bash># pvs -v --segments /dev/vdc |
+ | PV | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
- | umount | + | On voit ici que le LV `var` est divisé en trois segments et que l'on a plusieurs espaces libres dans le PV. Il faut alors déplacer les segments au début du disque dans un espace libre, tant qu'à faire de manière contiguë avec un autre segment du même LV (et dans le bon ordre, cf. champ //Start// du LV = la seconde colonne portant ce nom). Ici, on va donc commencer par déplacer le second segment dans l' |
+ | <code bash> | ||
- | * On check le FS (obligatoire) | + | et donc ici : |
+ | <code bash># pvmove --alloc anywhere / | ||
+ | /dev/vdc: Moved: 0,01% | ||
+ | /dev/vdc: Moved: 3,98% | ||
+ | [...] | ||
+ | /dev/vdc: Moved: 97,44% | ||
+ | /dev/vdc: Moved: 100,00% | ||
+ | </ | ||
- | | + | On affiche à nouveau les segments : |
+ | <code bash> | ||
+ | # pvs -v --segments /dev/vdc | ||
+ | PV | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </code> | ||
- | * On resize au minimum | + | On va pouvoir maintenant déplacer |
+ | <code bash> | ||
+ | # pvmove --alloc anywhere / | ||
+ | /dev/vdc: Moved: 0,02% | ||
+ | /dev/vdc: Moved: 3,17% | ||
+ | [...] | ||
+ | /dev/vdc: Moved: 100,00% | ||
+ | </ | ||
+ | On affiche à nouveau les segments : | ||
+ | <code bash> | ||
+ | # pvs -v --segments /dev/vdc | ||
+ | PV | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
- | resize2fs | + | Pour finir, on déplace maintenant le LV `log` juste après le LV `var` : |
+ | <code bash> | ||
+ | # pvmove | ||
+ | /dev/vdc: Moved: 1,17% | ||
+ | /dev/vdc: Moved: 36,02% | ||
+ | /dev/vdc: Moved: 66,48% | ||
+ | | ||
+ | </code> | ||
- | * On mount le FS pour voir si çà c'est bien passé | + | On affiche à nouveau les segments : |
+ | <code bash> | ||
+ | # pvs -v --segments /dev/vdc | ||
+ | PV | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
- | mount / | + | Les LVs sont maintenant au début |
- | + | </note> | |
- | * df non indique sa nouvelle taille | + | ==== Réduire un LV ==== |
- | + | Pour un système de fichiers EXT3/EXT4 : | |
- | / | + | |
- | + | ||
- | * On démonte le LV | + | |
- | + | ||
- | umount / | + | |
- | + | ||
- | * On resize le LV à la taille voulue | + | |
- | + | ||
- | lvreduce -L 5G / | + | |
- | + | ||
- | * On check le FS (obligatoire) | + | |
- | + | ||
- | e2fsck -f / | + | |
- | + | ||
- | * On resize le FS à la taille | + | |
- | + | ||
- | resize2fs | + | |
- | + | ||
- | * On remonte le LV | + | |
- | + | ||
- | mount /dev/vg/lv | + | |
+ | * On commence par définir quelques variables: <code bash> | ||
+ | LV=/ | ||
+ | SIZE=xxxG | ||
+ | </ | ||
+ | * On réduit ensuite le file-system du LV à son minimum :<code bash> | ||
+ | # On démonte si nécessaire le LV | ||
+ | umount $LV | ||
+ | # On check le FS (obligatoire) | ||
+ | e2fsck -f $LV | ||
+ | # On resize au minimum le FS | ||
+ | resize2fs -M $LV | ||
+ | # On mount le FS pour voir si ça c'est bien passé | ||
+ | mount $LV | ||
+ | # On vérifie la taille minimum nécessaire pour le FS | ||
+ | df $LV | ||
+ | </ | ||
+ | * Le résultat du '' | ||
+ | * On peut ensuite alors réduire le LV et réajuster/ | ||
+ | # On démonte le LV | ||
+ | umount $LV | ||
+ | # On resize le LV à la taille voulue | ||
+ | lvreduce -L $SIZE $LV | ||
+ | # On check le FS (obligatoire) | ||
+ | e2fsck -f $LV | ||
+ | # On resize le FS à la taille du LV | ||
+ | resize2fs $LV | ||
+ | # On remonte le LV | ||
+ | mount $LV | ||
+ | </ | ||
===== Snapshot ===== | ===== Snapshot ===== | ||