L’objectif ici est de mettre en place une architecture basée sur LVM (Logical Volume Manager) correspondant au schéma ci-dessous. il s’agit d’un exemple fictif (mais possible) permettant de recouvrir plusieurs cas de figure.
Description
Hard Drives
Les disques durs physiques :
/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
Les disques sont partionnés.
Partitions
Les partitions de chaque disque physique :
- Le disque
/dev/sda
est partitionné en/dev/sda
,/dev/sda
,/dev/sda
- Le disque
/dev/sdb
est partitionné en/dev/sdb1
,/dev/sdb2
- Le disque
/dev/sdc
est partitionné en/dev/sdc1
- Le disque
/dev/sdd
est partitionné en/dev/sdd1
,/dev/sdd2
- Le disque
/dev/sde
est partitionné en/dev/sde1
,/dev/sde2
,/dev/sde3
,/dev/sde4
Les partitions composent les PV (Physical Volumes).
Physical Volumes (PV)
Les volumes physiques sont les partitions brutes des disques (ici, sda, sdb, etc.) :
/dev/sda1
,/dev/sda2
,/dev/sda3
/dev/sdb1
,/dev/sdb2
/dev/sdc1
/dev/sdd1
,/dev/sdd2
/dev/sde1
,/dev/sde2
,/dev/sde3
,/dev/sde4
Volume Groups (VG)
Les groupes de volumes sont créés à partir des volumes physiques (PV) :
VG_DATAS
VG_BACKUP
Ils permettent d’organiser et d’agréger l’espace de stockage pour les volumes logiques.
Logical Volumes (LV)
Chaque volume logique est un bloc virtuel de stockage créé dans un groupe de volumes (VG).
/dev/VG_DATAS/LV_HOME
/dev/VG_DATAS/LV_DOCUMENTS
/dev/VG_BACKUP/LV_ARCHIVES
Ce sont les partitions logiques qui accueillent les systèmes de fichiers.
File Systems
Les points de montage où les systèmes de fichiers sont accessibles pour les utilisateurs :
/mnt/home
/mnt/documents
/mnt/archives
Création de l’architecture
Base
À ce stade les disques sur le serveur sont tels que :
# lsblk |
Création des partitions sur chaque disque dur
Les disques utilisés dans le schéma sont /dev/sda
, /dev/sdb
, /dev/sdc
, /dev/sdd
, et /dev/sde
.
Partionnement
Pour les partitionner, on utilise fdisk
. On crée :
- Une table des partitions GPT (
g
) - Une nouvelle partition (
n
), de 5Go, répété plusieurs fois si besoin - De type (
t
) LVM (Linux LVM
), répété plusieurs fois si besoin
# fdisk /dev/sda |
Ensuite, créer les autres partitions sur la même procédure.
Par la suite, on peut donner un nom à chaque partition avec parted
:
# parted /dev/sda |
Pour vérifier, avec parted --list
ou parted /dev/sdX --print
:
# parted --list |
Informer le noyau des nouvelles partitions avec partprobe :
Pour informer le noyau de l éxistance des nouvelles partitions, on utilise partprobe
:
# partprobe /dev/sda |
Vérification
Avec lsblk
:
# lsblk |
Création des volumes physiques (PV)
Pour chaque partition dans le schéma, il fault les initialiser les partitions comme PV (volumes physiques) :
# pvcreate /dev/sda1 /dev/sda2 /dev/sda3 |
Ou dirctement :
# pvcreate /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb1 /dev/sdb2 /dev/sdc1 /dev/sdd1 /dev/sdd2 /dev/sde1 /dev/sde2 /dev/sde3 /dev/sde4 |
Retour commande :
Physical volume "/dev/sda1" successfully created. |
S’assurer que les modifications de périphériques ont bien été prises en compte avec udevadm settle
:
# udevadm settle |
Cela va préparer les partitions à être incluses dans des groupes de volumes (VG).
Création des groupes de volumes (VG)
Création de 2 VG, VG_DATAS
et VG_BACKUP
, qui sont des regroupent des PV :
# vgcreate VG_DATAS /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb1 /dev/sdb2 /dev/sdc1 |
Retour commande :
# vgcreate VG_DATAS /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb1 /dev/sdb2 /dev/sdc1 |
# vgcreate VG_DATAS /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb1 /dev/sdb2 /dev/sdc1 |
Création des volumes logiques (LV)
Après avoir créé les VG, on peut créer les LV.
Chaque volume logique sera un espace qui pourra être utilisé pour un système de fichiers.
Les volumes logiques à créer sont :
/dev/VG_DATAS/LV_HOME
/dev/VG_DATAS/LV_DOCUMENTS
/dev/VG_BACKUP/LV_ARCHIVES
Création des LV :
# lvcreate -n LV_HOME -L 5G VG_DATAS |
Les options :
n
: spécifie le nom du volume logiqueL
: spécifie la taille du volume logique
# lvcreate -n LV_HOME -L 5G VG_DATAS |
# lvcreate -n LV_DOCUMENTS -L 15G VG_DATAS |
# lvcreate -n LV_ARCHIVES -L 20G VG_BACKUP |
À ce stade, un lsblk
donnera :
sda 8:32 0 16G 0 disk |
Le résultat de la commande peut paraître désorganisé mais :
LVM choisit automatiquement où placer les extensions des volumes logiques, en fonction de l’espace disponible dans les PV du VG.
Lors de la création ou de l’extension d’un volume logique (LV), LVM répartit les données dans le VG de manière à utiliser l’espace disponible. Il ne se soucie pas de maintenir une cohérence géographique, et c’est pourquoi un même volume logique peut être réparti sur plusieurs PV.
Pour forcer à utiliser un PV en particulier, il est possible de le spécifier :
# lvcreate -L 5G -n LV_TRASH /dev/VG_DATAS /dev/sda3 |
Formater les volumes logiques
Une fois les LV créés, il faut les formater avec un système de fichiers (par exemple ext4) :
# mkfs.ext4 /dev/VG_DATAS/LV_HOME |
Création d’un système de fichiers mkfs.ext4 pour le LV LV_DOCUMENTS
:
# mkfs.ext4 /dev/VG_DATAS/LV_DOCUMENTS |
mke2fs 1.46.5 (30-Dec-2021) |
Création d’un système de fichiers mkfs.ext4 pour le LV LV_HOME
:
# mkfs.ext4 /dev/VG_DATAS/LV_HOME |
mke2fs 1.46.5 (30-Dec-2021) |
Création d’un système de fichiers mkfs.ext4 pour le LV LV_TRASH
:
# mkfs.ext4 /dev/VG_DATAS/LV_TRASH |
mke2fs 1.46.5 (30-Dec-2021) |
Création d’un système de fichiers mkfs.ext4 pour le LV LV_ARCHIVES
:
# mkfs.ext4 /dev/VG_BACKUP/LV_ARCHIVES |
mke2fs 1.46.5 (30-Dec-2021) |
Monter les volumes logiques
Création des points de montage et montage des volumes logiques :
# mkdir -p /mnt/home /mnt/documents /mnt/archives |
# mount /dev/VG_DATAS/LV_HOME /mnt/home |
Ajouter les montages dans /etc/fstab pour les montages automatiques
Pour que ces volumes soient montés automatiquement au démarrage, il faut créer les entrées dans ton fichier
/etc/fstab` :
/dev/VG_DATAS/LV_HOME /mnt/home ext4 defaults 0 0 |
Recharger la configuration avec systemctl daemon-reload
:
# systemctl daemon-reload |
Vérification de l’espace libre et des volumes
Vérification de la configuration :
# vgdisplay |
# lvdisplay |
# df -h |
Vérification (les tailles ne correspondent pas ici, beaucoup de tests entre temps) :
# df -h |
Filesystem Size Used Avail Use% Mounted on |
VG Display :
# vgdisplay |
--- Volume group --- |
LV Display :
# lvdisplay |
--- Logical volume --- |
Documentation
Internet
MAN
ChatGPT
xakz
Merci à xakz pour le complément d'informations :)