technique:infrastructure:resize_vm_disks

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
technique:infrastructure:resize_vm_disks [2021/11/22 23:57] – ↷ Page déplacée de technique:infrastructure:machines_virtuelles:resize_vm_disks à technique:infrastructure:resize_vm_disks qduchemitechnique:infrastructure:resize_vm_disks [2021/11/22 23:57] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. qduchemi
Ligne 1: Ligne 1:
 +{{indexmenu_n>40}}
 +## Ajouter de la place sur une machine virtuelle
  
 +<bootnote warning>Cet article nécessite de comprendre [les bases de LVM](https://doc.ubuntu-fr.org/lvm).
 +Il faut être `root` pour toutes les commandes.</bootnote>
 +
 +Il peut arriver que sur une machine virtuelle, un volume logique soit quasiment plein (par exemple, celui monté sur `/var/lib/docker`). 
 +
 +Si le disque virtuel de la machine virtuelle est aussi plein, l'opération nécessite plusieurs étapes. 
 +
 +<bootnote important>Il peut arriver qu'il reste de l'espace disque libre même si les partitions sont pleines. On peut le vérifier dans la colonne `VFree` de la commande `vgs`. S'il en reste, on pourra simplement [[technique:infrastructure:resize_vm_disks#augmenter_la_taille_du_logical_volume|augmenter la taille de la partition logique]].</bootnote>
 +
 +Toutes les opérations se font à chaud, pas besoin de redémarrage.
 +
 +### Augmentation de la taille du disque sur Proxmox
 +
 +On pensera à activer [[technique:old:alice_bob:hotplug_vm|le hotplug des VM]] s'il n'est pas activé pour éviter un redémarrage de la VM.
 +Pour augmenter la taille d'un disque, on se rend dans l'onglet `Hardware` de la machine virtuelle, puis on choisit l'option `Resize disk` ainsi que le nombre de G à ajouter. Par exemple, pour augmenter le premier disque de `pica02` :
 +
 +{{ :technique:infrastructure:machines_virtuelles:vm_resize_disk.png?direct |}}
 +
 +Une fois le redimensionnement effectué, on devrait constater que le disque associé sur la machine a bien augmenté de taille (`fdisk -l`).
 +
 +### Augmentation des partitions sur la machine virtuelle
 +
 +<bootnote warning>Cette étape n'est nécessaire que si une partition LVM est utilisée comme Physical Volume.</bootnote>
 +Si le PV utilise un disque entier, on peut passer à l'étape suivante. Pour le savoir, utilisez la commande qui suit et regardez si le disque en question contient une partition LVM : si oui, il faut passer par cette étape.
 +
 +En général, lorsque les machines virtuelles sont installées, le partitionnement automatique avec LVM va créer ce schéma : une partition standard pour le `/boot`, le reste avec LVM.
 +
 +```bash
 +$ fdisk -l /dev/sd*
 +Périphérique Amorçage  Début       Fin  Secteurs Taille Id Type
 +/dev/sda1    *          2048    499711    497664    XM 83 Linux
 +/dev/sda2             501758 125829119 125327362    YG  5 Étendue
 +/dev/sda5             501760 125829119 125327360    YG 8e LVM Linux
 +```
 +
 +La partition à étendre sera donc la partition étendue, puis la partition LVM. Pour ce faire :
 +
 +```bash
 +$ parted /dev/sda
 +# Les numéros peuvent changer sur votre installation
 +(parted) resizepart 2 100%
 +(parted) quit
 +```
 +
 +On vérifie que la partition étendue s'étend sur tout l'espace disponible. On réalise alors la même opération avec la partition LVM.
 +
 +```bash
 +$ parted /dev/sda
 +(parted) resizepart 5 100%
 +(parted) quit
 +```
 +
 +À ce stade, les partitions occupent tout l'espace disponible alloué sur l'interface web Proxmox.
 +
 +### Augmentation du Physical Volume
 +
 +Une simple commande suffit pour que le PV associé à `/dev/sda5` mette à jour sa taille disponible :
 +```bash
 +$ pvresize /dev/sda5
 +```
 +
 +Dans mon exemple, **avant** :
 +```bash
 +$ pvs
 +  PV         VG   Fmt  Attr PSize  PFree
 +  /dev/sda5  vg00 lvm2 a--  59,76g    0 
 +  /dev/sdb   vg01 lvm2 a--  30,00g    0
 +```
 +
 +**Après** :
 +```bash
 +$ pvs
 +  PV         VG   Fmt  Attr PSize  PFree 
 +  /dev/sda5  vg00 lvm2 a--  99,76g 40,00g
 +  /dev/sdb   vg01 lvm2 a--  30,00g     0
 +```
 +
 +Le VG est "étendu" automatiquement.
 +
 +### Augmenter la taille du Logical Volume
 +
 +On en vient enfin à notre but : mettre à jour à chaud la taille de notre volume logique, qui est monté (sur `/`, ou `/DATA`, ou `/var/lib/docker`...)
 +
 +Par exemple, on veut augmenter dans notre cas le LV monté sur `/` :
 +```bash
 +lvdisplay /dev/vg00/root
 +  --- Logical volume ---
 +  LV Path                /dev/vg00/root
 +  LV Name                root
 +  VG Name                vg00
 +  [...]
 +  LV Size                57,90 GiB
 +```
 +
 +Pour ce faire :
 +```bash
 +$ lvresize --extents +100%FREE --resizefs /dev/mapper/vg00/root
 +```
 +
 +Nous utilisons le système de fichiers `ext4`, donc l'option `--resizefs` fonctionne même si la partition est montée.
 +À ce stade, l'espace est disponible et il n'y a pas de redémarrage à faire.