{{indexmenu_n>40}}
## Ajouter de la place sur une machine virtuelle
Cet article nécessite de comprendre [les bases de LVM](https://doc.ubuntu-fr.org/lvm).
Il faut être `root` pour toutes les commandes.
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.
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]].
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
Cette étape n'est nécessaire que si une partition LVM est utilisée comme Physical Volume.
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.