Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/01/2013, à 11:34

mcmyst

Redimensionnement volume LVM dans une VM

Bonjour à tous,

J'ai un serveur qui fait tourner plusieurs VM sous KVM.
Pour chaque VM un volume LVM lui est dédié:

lvscan (tronqué)
  ACTIVE            '/dev/vg1/vm1' [8.00 GiB] inherit
  ACTIVE            '/dev/vg1/vm2' [8.00 GiB] inherit
  ACTIVE            '/dev/vg1/vm3' [8.00 GiB] inherit

A l'intérieur de chaque VM voici ce que donne un lvscan

  ACTIVE            '/dev/kvmvg1/boot' [92.00 MiB] inherit
  ACTIVE            '/dev/kvmvg1/root' [476.00 MiB] inherit
  ACTIVE            '/dev/kvmvg1/usr' [952.00 MiB] inherit
  ACTIVE            '/dev/kvmvg1/var' [952.00 MiB] inherit
  ACTIVE            '/dev/kvmvg1/tmp' [476.00 MiB] inherit
  ACTIVE            '/dev/kvmvg1/home' [476.00 MiB] inherit
  ACTIVE            '/dev/kvmvg1/srv' [476.00 MiB] inherit
  ACTIVE            '/dev/kvmvg1/swap' [1.86 GiB] inherit

Je souhaite élargir les partitions /home et /var.
Pour ce faire, j'éteinds la VM, j'agrandis d'abord la partition LVM sur l'hôte:

lvextend -L 100G /dev/vg1/vm3

Puis je démarre la VM, et je redimension mon physical volume:

pvresize /dev/vda1
  Physical volume "/dev/vda1" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

Mais qui ne souhaite visiblement pas augmenter:

pvscan
  PV /dev/vda1   VG kvmvg1   lvm2 [8.00 GiB / 2.33 GiB free]
  Total: 1 [8.00 GiB] / in use: 1 [8.00 GiB] / in no VG: 0 [0   ]

J'ai aussi essayer de faire booter ma VM avec un cd Gparted mais je ne peux pas toucher au partitionnement (un petit verroux m'en empêche). Je pense que c'est du au fait que le volume LVM est monté sur l'hôte, mais je ne peux pas le démonter sinon la VM ne démarre pas...

Des idées ?

Merci d'avance

Hors ligne

#2 Le 25/01/2013, à 13:06

Elder

Re : Redimensionnement volume LVM dans une VM

Salut,

Je n'ai pas reproduit ton problème (pas de VM avec LVM inside) par contre j'ai peut être une idée.

Quand je redimenssionne un LV attribué comme disque virtuel à une VM :

root@xxxxxx:~# lvextend -L20G /dev/vm_vg/shinenv 
  Extending logical volume shinenv to 20,00 GiB
  Logical volume shinenv successfully resized
root@xxxxxx:~# vgchange -ay     # Pas sur que ce soit utile mais c'est un reflexe
  11 logical volume(s) in volume group "vgprodvm" now active
  12 logical volume(s) in volume group "vm_vg" now active

Tout semble bien se passer, sauf que quand je demande à la libvirt de m'afficher la taille du disque virtuel...

root@xxxxxx:~# virsh -c qemu:///system
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh # vol-info /dev/vm_vg/shinenv 
Name:           shinenv
Type:           block
Capacity:       10,00 GiB
Allocation:     10,00 GiB 

Pour régler le problème :

virsh # pool-refresh Physique
Pool Physique refreshed

virsh # vol-info /dev/vm_vg/shinenv 
Name:           shinenv
Type:           block
Capacity:       20,00 GiB
Allocation:     20,00 GiB

I hope it helps

Hors ligne

#3 Le 25/01/2013, à 13:49

mcmyst

Re : Redimensionnement volume LVM dans une VM

J'ai effectivement le même résultat que toi, après avoir fait le "pool-refresh" je suis bien passé à 100G.
Par contre une fois la VM bootée, le pvscan ne m'indique que 8G...

Que je soit sur de bien comprendre, pvscan doit me retourner la taille du volume physique ? Et non pas la taille du système de fichier ?
Car pour moi la taille du volume physique (en l'occurence ma partition LVM redimensionnée à 100G) est bien de 100G dans l'hôte. Mais ma VM n'en voit que 8...

Hors ligne

#4 Le 25/01/2013, à 14:42

Elder

Re : Redimensionnement volume LVM dans une VM

Je me suis bricolé une VM ubuntu avec un lvm...
Mon hyperviseur est une Debian wheezy mais ça ne change pas grand' chose.
(le sudo systématique me gonfle alors je suis du genre a faire sudo -s une bonne fois pour toute, il pourrait donc manquer des sudo)

Sur ma VM état de base :

root@ubdc01:~# fdisk -l /dev/vda

Disk /dev/vda: 10.7 GB, 10737418240 bytes
16 têtes, 63 secteurs/piste, 20805 cylindres, total 20971520 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x000c5e10

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/vda1   *        2048      499711      248832   83  Linux
/dev/vda2          501758    20969471    10233857    5  Étendue
/dev/vda5          501760    20969471    10233856   8e  LVM Linux

La VM est arrêtée,  sur l'hyperviseur j’agrandis le LV qui lui est alloué

 root@hyperviseur:~# lvresize -L15G /dev/vm_vg/ubdc 
  Extending logical volume ubdc to 15,00 GiB
  Logical volume ubdc successfully resized
root@hyperviseur:~# vgchange -ay

La VM est redémarrée :

root@ubdc01:~# fdisk -l /dev/vda

Disk /dev/vda: 16.1 GB, 16106127360 bytes
16 têtes, 63 secteurs/piste, 31207 cylindres, total 31457280 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x000c5e10

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/vda1   *        2048      499711      248832   83  Linux
/dev/vda2          501758    20969471    10233857    5  Étendue
/dev/vda5          501760    20969471    10233856   8e  LVM Linux

Le disque physique de la VM a bien été agrandi.
Reste a étendre le PV

root@ubdc01:~# pvscan 
  PV /dev/vda5   VG ubdc01   lvm2 [9,76 GiB / 0    free]
  Total: 1 [9,76 GiB] / in use: 1 [9,76 GiB] / in no VG: 0 [0   ]

root@ubdc01:~# pvresize --setphysicalvolumesize 16G /dev/vda5
  WARNING: /dev/vda5: Overriding real size. You could lose data.
  Physical volume "/dev/vda5" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

root@ubdc01:~# pvscan 
  PV /dev/vda5   VG ubdc01   lvm2 [16,00 GiB / 6,24 GiB free]
  Total: 1 [16,00 GiB] / in use: 1 [16,00 GiB] / in no VG: 0 [0   ]

Edit : Comme le dit le dernier message lors du pvresize, j'ai un peu dépassé les bornes, vu que j'ai oublié une opération....
Redimensionner la partition LVM au sein de la VM (je me fouette très fort... Enfin moralement) AVANT de redimensionner le PV.
Bon ça n'empeche pas ma VM de redémarrer vu que je n'ai pas encore étendu mes LV.

Pour redimensionner une partition sans passer par un support live il est toujours possible d'utiliser fdisk alors que la machine est démarrée.
C'est un peu brutal, d'autant qu'en cas d'erreur de manip bye bye système...

Fdisk ne redimensionne pas les partitions il faut les détruire et les refaire sans se tromper
Il est très important de noter les secteurs de début (au moins) des partitions que l'on souhaite redimensionner
En cas d'erreur sortir de fdisk avec [ctrl]+[c]

Ma partition LVM est un volume logique dans une partition étendue (pourquoi l'installeur l'a fait comme ça ?).
Donc avant de redimenssionner la partoche LVM il faut s'occuper de l'extended.
Comme de bien entendu la suppression de la partition étendue supprimera la partition LVM qu'il faudra donc refaire, à la bonne taille.

root@ubdc01:~# fdisk /dev/vda

Commande (m pour l'aide): p
Disk /dev/vda: 16.1 GB, 16106127360 bytes
16 têtes, 63 secteurs/piste, 31207 cylindres, total 31457280 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x000c5e10

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/vda1   *        2048      499711      248832   83  Linux
/dev/vda2          501758    20969471    10233857    5  Étendue
/dev/vda5          501760    20969471    10233856   8e  LVM Linux

Commande (m pour l'aide): d         # Suppression pure et simple de la partition étendu
Numéro de partition (1-5): 2

Commande (m pour l'aide): n          # Création de la nouvelle partition étendu
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
Numéro de partition (1-4, par défaut 2): 2     # Même n° de partition que la précédente
Premier secteur (499712-31457279, par défaut 499712): 
Utilisation de la valeur par défaut 499712
Dernier secteur, +secteurs or +taille{K,M,G} (499712-31457279, par défaut 31457279): 
Utilisation de la valeur par défaut 31457279

Commande (m pour l'aide): p

Disk /dev/vda: 16.1 GB, 16106127360 bytes
16 têtes, 63 secteurs/piste, 31207 cylindres, total 31457280 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x000c5e10

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/vda1   *        2048      499711      248832   83  Linux
/dev/vda2          499712    31457279    15478784    5  Étendue

Commande (m pour l'aide): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
Premier secteur (501760-31457279, par défaut 501760): 
Utilisation de la valeur par défaut 501760
Dernier secteur, +secteurs or +taille{K,M,G} (501760-31457279, par défaut 31457279): 
Utilisation de la valeur par défaut 31457279

Commande (m pour l'aide): p

Disk /dev/vda: 16.1 GB, 16106127360 bytes
16 têtes, 63 secteurs/piste, 31207 cylindres, total 31457280 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x000c5e10

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/vda1   *        2048      499711      248832   83  Linux
/dev/vda2          499712    31457279    15478784    5  Étendue
/dev/vda5          501760    31457279    15477760   83  Linux

Commande (m pour l'aide): t

Du coup la partition LVM qui contient le PV fait toujours moins des 16G paramétrés précedement

pvresize --setphysicalvolumesize 14G /dev/vda5
  Physical volume "/dev/vda5" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

Mais en baissant mes prétention, il ne rale plus.

I hope it helps

Dernière modification par Elder (Le 25/01/2013, à 15:23)

Hors ligne

#5 Le 25/01/2013, à 16:25

mcmyst

Re : Redimensionnement volume LVM dans une VM

Magnifique, rien à dire, juste parfait !

Hors ligne