Retailler le disque d'une VM : Différence entre versions
De wikiGite
(→type XFS (RH/CentOS7)) |
|||
(9 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 4 : | Ligne 4 : | ||
'''Synopsis''' : L'OPERATION CONSISTE A ETENDRE LE VG (Volume Group) en déclarant un nouveau PV (Physical Volume), soit sur la place libre créée par extension du disque virtuel, soit sur un nouveau disque virtuel, puis en ajoutant ce PV au Volume Group.<br> | '''Synopsis''' : L'OPERATION CONSISTE A ETENDRE LE VG (Volume Group) en déclarant un nouveau PV (Physical Volume), soit sur la place libre créée par extension du disque virtuel, soit sur un nouveau disque virtuel, puis en ajoutant ce PV au Volume Group.<br> | ||
− | Ensuite, on étend le LV (Logical Volume) sur la totalité du VG, puis idem pour le filesystem (validé avec ext2, ext3, autres formats à tester). | + | Ensuite, on étend le LV (Logical Volume) sur la totalité du VG, puis idem pour le filesystem (validé avec ext2, ext3, xfs, autres formats à tester). |
Arrêter la VM. | Arrêter la VM. | ||
Ligne 10 : | Ligne 10 : | ||
Sauvegarder la VM. | Sauvegarder la VM. | ||
− | + | = Extension du disque = | |
− | + | == Sur guest VMWare avec partitions standards == | |
− | |||
repérer le nom du vmdk puis : | repérer le nom du vmdk puis : | ||
vmware-vdiskmanager -x 190Gb /var/vm/sample_vm/sample_vm.vmdk | vmware-vdiskmanager -x 190Gb /var/vm/sample_vm/sample_vm.vmdk | ||
Ligne 18 : | Ligne 17 : | ||
Utiliser ensuite une image de liveCD GParted pour redimensionner le filesystem. | Utiliser ensuite une image de liveCD GParted pour redimensionner le filesystem. | ||
− | + | == Sur guest VMWare avec LVM == | |
− | + | Etendre le disque virtuel (vdiskmanager ou vmkfstools) ou créer un nouveau disque virtuel sur la VM (par VI Client ou avec vmkfstools pour un disque dynamique (cf procédure)). | |
− | Démarrer la VM | + | Démarrer la VM. |
− | Créer une partition sur le nouveau disque ( | + | = Extension des partitions = |
+ | == En créant une nouvelle partition == | ||
+ | Créer une partition sur la place libre | ||
+ | fdisk /dev/sda | ||
+ | (choisir si on veut créer une partition primaire s'il rester des numéros disponibles, ou une partition étendue) | ||
+ | n (entrer un numéro libre de partition, puis tout par défaut) | ||
+ | t (entrer le numéro de la partition, puis 8e pour la passer en Linux LVM) | ||
+ | w | ||
+ | ou sur le nouveau disque (exemple: /dev/sdb) | ||
fdisk /dev/sdb | fdisk /dev/sdb | ||
− | n ( | + | n (choisir partition primaire, et 1 comme numéro de partition, puis tout par défaut) |
t (entrer le numéro de la partition, puis 8e pour la passer en Linux LVM) | t (entrer le numéro de la partition, puis 8e pour la passer en Linux LVM) | ||
w | w | ||
− | Créer un PV sur cette partition | + | == En étendant une partition existante == |
− | pvcreate /dev/ | + | Si le filesystem permet une extension à chaud (xfs par exemple), on peut étendre la partition en la supprimant/recréant dans parted. '''Attention à ne pas sortir de parted pendant cette opération !! Et elle est, bien sûr, à vos risques et périls :)''' |
+ | Exemple avec une partition /dev/sdb1 montée sur /backup. Démonter d'abord la partition : | ||
+ | umount /backup | ||
+ | Dans parted : | ||
+ | print free | ||
+ | Numéro Début Fin Taille Type Système de fichiers Fanions | ||
+ | 32,3kB 1049kB 1016kB Espace libre | ||
+ | 1 1049kB 429GB 429GB primary xfs | ||
+ | 429GB 537GB 107GB Espace libre | ||
+ | |||
+ | rm 1 | ||
+ | mkpart | ||
+ | primary | ||
+ | xfs | ||
+ | 1049KB | ||
+ | 537GB | ||
+ | print free | ||
+ | q | ||
+ | Remonter la partition, puis étendre le filesystem (voir ci-dessous) | ||
+ | |||
+ | == Sur LVM == | ||
+ | Créer un PV sur cette partition (exemple avec la partition 1 d'un nouveau disque) | ||
+ | pvcreate /dev/sdb1 | ||
Etendre le volume group ('''vgdiplay''' pour avoir son nom) sur ce nouveau PV | Etendre le volume group ('''vgdiplay''' pour avoir son nom) sur ce nouveau PV | ||
− | vgextend VolGroup00 /dev/ | + | vgextend VolGroup00 /dev/sdb1 |
Vérifier la VGsize par vgdisplay | Vérifier la VGsize par vgdisplay | ||
Etendre un volume logique. Réperer son nom par df puis éventuellement par '''lvdisplay''' pour avoir le chemin exact | Etendre un volume logique. Réperer son nom par df puis éventuellement par '''lvdisplay''' pour avoir le chemin exact | ||
− | lvextend -L +160G /dev/VolGroup00/ | + | lvextend -L +160G /dev/VolGroup00/home #(prendre la Free PE / Size de vgdisplay) |
+ | ou tout simplement pour prendre la place libre (noter le "l" minuscule) | ||
+ | lvextend -l +100%FREE /dev/VolGroup00/home | ||
Puis étendre le filesystem | Puis étendre le filesystem | ||
− | df #pour repérer le device | + | df -h #pour repérer le device |
− | umount /dev/VolGroup00/ | + | umount /dev/VolGroup00/home #(lsof s'il ne veut pas le démonter) |
− | e2fsck -f /dev/VolGroup00/ | + | |
− | resize2fs /dev/VolGroup00/ | + | = Extension du filesystem = |
+ | == type EXT* == | ||
+ | df -h #pour repérer le device | ||
+ | umount /dev/VolGroup00/home #(lsof s'il ne veut pas le démonter) | ||
+ | e2fsck -f /dev/VolGroup00/home #(obligatoire avant resize) | ||
+ | resize2fs /dev/VolGroup00/home | ||
Reboot pour la forme. | Reboot pour la forme. | ||
+ | |||
+ | == type XFS (RH/CentOS7) == | ||
+ | xfs_growfs fonctionne '''sur des partitions montées''' : | ||
+ | mount /home | ||
+ | xfs_growfs /home |
Version actuelle datée du 19 janvier 2016 à 09:34
NOTE : la procédure fonctionne bien avec des partitions en LVM (Logical Volume Manager) au niveau du système invité. Pour des partitions standards étendues avec Gparted, c'est à vos risques et périls...
Il est plus difficile d'étendre un VG en lui disant que son PV a changé de taille (ce qui n'est pas "naturel") que de déclarer un nouveau PV à part.
Synopsis : L'OPERATION CONSISTE A ETENDRE LE VG (Volume Group) en déclarant un nouveau PV (Physical Volume), soit sur la place libre créée par extension du disque virtuel, soit sur un nouveau disque virtuel, puis en ajoutant ce PV au Volume Group.
Ensuite, on étend le LV (Logical Volume) sur la totalité du VG, puis idem pour le filesystem (validé avec ext2, ext3, xfs, autres formats à tester).
Arrêter la VM.
Sauvegarder la VM.
Sommaire
Extension du disque
Sur guest VMWare avec partitions standards
repérer le nom du vmdk puis :
vmware-vdiskmanager -x 190Gb /var/vm/sample_vm/sample_vm.vmdk
NOTE ESXi : les disques thin peuvent être retaillés avec vmkfstools -X.
Utiliser ensuite une image de liveCD GParted pour redimensionner le filesystem.
Sur guest VMWare avec LVM
Etendre le disque virtuel (vdiskmanager ou vmkfstools) ou créer un nouveau disque virtuel sur la VM (par VI Client ou avec vmkfstools pour un disque dynamique (cf procédure)).
Démarrer la VM.
Extension des partitions
En créant une nouvelle partition
Créer une partition sur la place libre
fdisk /dev/sda (choisir si on veut créer une partition primaire s'il rester des numéros disponibles, ou une partition étendue) n (entrer un numéro libre de partition, puis tout par défaut) t (entrer le numéro de la partition, puis 8e pour la passer en Linux LVM) w
ou sur le nouveau disque (exemple: /dev/sdb)
fdisk /dev/sdb n (choisir partition primaire, et 1 comme numéro de partition, puis tout par défaut) t (entrer le numéro de la partition, puis 8e pour la passer en Linux LVM) w
En étendant une partition existante
Si le filesystem permet une extension à chaud (xfs par exemple), on peut étendre la partition en la supprimant/recréant dans parted. Attention à ne pas sortir de parted pendant cette opération !! Et elle est, bien sûr, à vos risques et périls :) Exemple avec une partition /dev/sdb1 montée sur /backup. Démonter d'abord la partition :
umount /backup
Dans parted :
print free Numéro Début Fin Taille Type Système de fichiers Fanions 32,3kB 1049kB 1016kB Espace libre 1 1049kB 429GB 429GB primary xfs 429GB 537GB 107GB Espace libre rm 1 mkpart primary xfs 1049KB 537GB print free q
Remonter la partition, puis étendre le filesystem (voir ci-dessous)
Sur LVM
Créer un PV sur cette partition (exemple avec la partition 1 d'un nouveau disque)
pvcreate /dev/sdb1
Etendre le volume group (vgdiplay pour avoir son nom) sur ce nouveau PV
vgextend VolGroup00 /dev/sdb1
Vérifier la VGsize par vgdisplay
Etendre un volume logique. Réperer son nom par df puis éventuellement par lvdisplay pour avoir le chemin exact
lvextend -L +160G /dev/VolGroup00/home #(prendre la Free PE / Size de vgdisplay)
ou tout simplement pour prendre la place libre (noter le "l" minuscule)
lvextend -l +100%FREE /dev/VolGroup00/home
Puis étendre le filesystem
df -h #pour repérer le device umount /dev/VolGroup00/home #(lsof s'il ne veut pas le démonter)
Extension du filesystem
type EXT*
df -h #pour repérer le device umount /dev/VolGroup00/home #(lsof s'il ne veut pas le démonter) e2fsck -f /dev/VolGroup00/home #(obligatoire avant resize) resize2fs /dev/VolGroup00/home
Reboot pour la forme.
type XFS (RH/CentOS7)
xfs_growfs fonctionne sur des partitions montées :
mount /home xfs_growfs /home