Dans cet article va être abordé la création d’un nouveau groupe de volume sur un nouveau disque fraîchement ajouté sur notre VM Debian. Les commandes de gestion présentes ici sont identiques sous beaucoup de systèmes Linux, y compris RedHat et dérivés.
Lister les disques
Pour lister la configuration actuelle des disques on peux utiliser la commande parted -l
parted -l
# Exemple pour un disque déja configuré
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 1075MB 1074MB fat32 EFI System Partition boot, esp
2 1075MB 2149MB 1074MB xfs
3 2149MB 38.7GB 36.5GB lvm
# Exemple pour un disque sans table de partition
Error: /dev/sdb: unrecognised disk label
Model: Msft Virtual Disk (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags:
Création du volume physique LVM
Ici je vais dédier partitionner le disque afin de créer une partition dédiée au lvm. La première étape est donc de créer une table de partition sur /dev/sdb.
On commence par démarrer l’édition du disque via parted
parted /dev/sdb
Il y a 2 commande a passer dans parted, la première « mklabel gpt » pour créer la table de partition. La seconde « mkpart primary 1 100% » pour créer une partition de type primaire a l’emplacement 1 utilisant 100% de l’espace disque.
Ci dessous la suite complète des commandes sur mon système :
#parted /dev/sdb
GNU Parted 3.5
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 1 100%
(parted) print
Model: Msft Virtual Disk (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 107GB 107GB primary
(parted) quit
On peux ensuite créer le volume physique via la commande pvcreate
pvcreate /dev/sdb1
On peux désormais voir notre nouveau volume physique via pvs
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 vg_system lvm2 a-- 34.00g 4.00m
/dev/sdb1 lvm2 --- <100.00g <100.00g
Création du groupe de volume
Nous allons maintenant créer notre groupe de volume qui ne contiendra que /dev/sdb et sera nommé vg_data
vgcreate vg_data /dev/sdb1
On peux valider la création via vgs
# vgs
VG #PV #LV #SN Attr VSize VFree
vg_data 1 0 0 wz--n- <100.00g <100.00g
vg_system 1 4 0 wz--n- 34.00g 4.00m
Création des volumes logiques
Ici le besoin pour les datas est de mettre à disposition de l’espace pour /opt et /tmp
Nous allons donc créer deux volumes logiques. 50 Go pour opt et 15 Go pour tmp
lvcreate -n opt -L50Go vg_data
lvcreate -n tmp -L15Go vg_data
La commande lvs nous donnera ensuite l’état des volumes nouvellement créés :
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data vg_data -wi-a----- 50.00g
tmp vg_data -wi-a----- 15.00g
home vg_system -wi-ao---- 10.00g
root vg_system -wi-ao---- 10.00g
swap vg_system -wi-ao---- 4.00g
var vg_system -wi-ao---- 10.00g
Partitionnement et montage
Dans ce cas de figure /opt est vide et /tmp ne contient rien de précieux sur un système tout juste installé. Ils n’y a donc rien à déplacer avant. Une fois les nouveaux volumes montés les données ne seront plus accessibles.
Nous allons commencer par créer les systèmes de fichiers. Ici je vais prendre xfs pour sa souplesse d’administration qui va de pair avec des volumes logiques pouvant être évoluer.
mkfs.xfs /dev/vg_data/opt
mkfs.xfs /dev/vg_data/tmp
Nous allons maintenant ajouter dans fstab la nouvelle configuration des partitions. Voici les deux lignes que j’ai ajoutée à mon fstab pour cet exemple :
/dev/mapper/vg_data-opt /opt xfs defaults 0 0
/dev/mapper/vg_data-tmp /tmp xfs defaults 0 0
Afin que le système prenne en compte sans redémarrage le nouveau fstable on recharge systemctl
systemctl daemon-reload
Et maintenant on monte les partitions via mount
mount -a
Elles sont désormais disponibles pour le système. /tmp ayant été remplacé un redémarrage de la machine peut être requis.