Outils personnels

Retailler le disque d'une VM : Différence entre versions

De wikiGite

(type XFS (RH/CentOS7))
 
(14 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
'''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...
 
'''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...
  
'''NOTE2''' : on ne peut qu'augmenter la taille d'un disque virtuel, pas la réduire.
+
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) sur la place libre créée par extension du disque virtuel, puis en ajoutant ce PV au VG.<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.
+
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.
  
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
 +
NOTE ESXi : les disques thin peuvent être retaillés avec vmkfstools -X.
  
NOTE ESXi : les disques thin peuvent être retaillés avec vmkfstools -X. Mais 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 disque virtuel à part.
+
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)).
  
Ensuite il faut étendre les partition OS qui ont pu être créées dans les guests
+
Démarrer la VM.
 
 
=== Sur guest avec partitions standards ===
 
(Note : ceci dit, ce serait peut-être pas mal de se mettre au LVM !), utiliser une image de liveCD GParted pour redimensionner le filesystem.
 
 
 
=== Sur guest avec LVM ===
 
Démarrer la VM
 
  
 +
= Extension des partitions =
 +
== En créant une nouvelle partition ==
 
Créer une partition sur la place libre
 
Créer une partition sur la place libre
  fdisk
+
  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)
 
  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)
 
  t (entrer le numéro de la partition, puis 8e pour la passer en Linux LVM)
 
  w
 
  w
Reboot si on est sur le disque système et que la table de partitions ne peut pas être relue
+
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
  
Créer un PV sur cette partition
+
== En étendant une partition existante ==
  pvcreate /dev/sda3
+
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 :)'''
Etendre le volume group ('''vgdiplay''' pour avoir son nom)
+
Exemple avec une partition /dev/sdb1 montée sur /backup. Démonter d'abord la partition :
  vgextend VolGroup00 /dev/sda3
+
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
 
Vérifier la VGsize par vgdisplay
  
Etendre un volume logique. Réperer son nom par df puis 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/LogVol04 #(prendre la Free PE / Size de vgdisplay)
+
  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/LogVol04 #(lsof s'il ne veut pas le démonter)
+
umount /dev/VolGroup00/home #(lsof s'il ne veut pas le démonter)
  e2fsck -f /dev/VolGroup00/LogVol04 #(obligatoire avant resize)
+
 
  resize2fs /dev/VolGroup00/LogVol04
+
= 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.

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