LVM gère les disques durs. Il permet que de multiples disques et partitions soient combinés dans de gros groupes de volumes, assiste la création de sauvegardes au travers de snapshot, et permet le redimensionnement dynamique des volumes. Il peut également fournir une fonction de miroir similaire à une grappe de RAID 1.
Une présentation complète de LVM est au-delà de la portée de cette introduction, mais les concepts de base sont présentés ci-dessous.
Pour exécuter chacune des commandes présentées ici, le paquet
LVM2-2.03.26 doit être installé. Toutes les
commandes doivent être lancées en tant qu'utilisateur root
.
La gestion des disques avec LVM est accomplie en utilisant les concepts suivants :
Il y a des disques ou des partitions physiques comme /dev/sda3 ou /dev/sdb.
On appelle groupes de volumes physiques ce qui peut être manipulé par l'administrateur. Le nombre de volumes physiques qui constituent un groupe de volumes est arbitraire. Les volumes physiques peuvent être dynamiquement ajoutés ou supprimés à partir d'un groupe de volumes.
Les groupes de volume peuvent être divisés en volumes logiques. Chaque volume logique peut être ainsi formaté individuellement comme s'il s'agissait d'une partition Linux normal. Les volumes logiques peuvent être redimensionné dynamiquement par l'administrateur en fonction des besoins.
Pour donner un exemple concret, supposez que vous ayez deux disques
de 2 To. Supposons également qu'une grande quantité d'espace est
nécessaire pour une très grosse base de données, montée sur
/srv/mysql
. Voilà à quoi rassemblerait
l'ensemble des initialisations des partitions :
Partition Use Size Partition Type
/dev/sda1 /boot 100MB 83 (Linux)
/dev/sda2 / 10GB 83 (Linux)
/dev/sda3 swap 2GB 82 (Swap)
/dev/sda4 LVM remainder 8e (LVM)
/dev/sdb1 swap 2GB 82 (Swap)
/dev/sdb2 LVM remainder 8e (LVM)
En premier initialisez les volumes physiques :
pvcreate /dev/sda4 /dev/sdb2
On peut utiliser un disque complet comme partie d'un volume physique, mais soyez conscient que la commande pvcreate va détruire les informations sur les partitions de ce disque.
Ensuite créez un groupe de volume appelé lfs-lvm:
vgcreate lfs-lvm /dev/sda4 /dev/sdb2
L'état du groupe de volumes peut être vérifié en exécutant la commande vgscan. Maintenant créez les volumes logiques. Comme il y a environ 3900 Go d'espace disponible, laissez environ 900 Go d'espace libre pour l'expansion. Notez que le volume logique appelé mysql est plus grand que chacun des disques physiques.
lvcreate --name mysql --size 2500G lfs-lvm lvcreate --name home --size 500G lfs-lvm
Finalement les volumes logiques peuvent être formatés et montés. Dans cet exemple, Le système de fichier jfs (jfsutils-1.1.15) est utilisé pour la démonstration.
mkfs -t ext4 /dev/lfs-lvm/home mkfs -t jfs /dev/lfs-lvm/mysql mount /dev/lfs-lvm/home /home mkdir -p /srv/mysql mount /dev/lfs-lvm/mysql /srv/mysql
Il peut être nécessaire d'activer ces volumes logique pour qu'ils
apparaissent dans /dev
. Vous pouvez
tous les activer en même temps en lançant, en tant qu'utilisateur
root
:
vgchange -a y
Un volume logique LVM peut accueillir un système de fichier racine,
mais nécessite l'utilisation d'un initramfs (initial RAM file
system). L'initramfs proposé dans la section intitulée
« À propos de initramfs » permet de passer le volume
lvm dans le paramètre root=
de la ligne de commande du noyau.
Si vous n'utilisez pas un initramfs, cela engendre une situation de
compétition dans systemd qui empêche
le montage des volumes logiques avec /etc/fstab
. Vous devez créer une unité « mount » (voir
systemd.mount(5))
comme dans l'exemple suivant, qui monte le répertoire /home
automatiquement au démarrage :
cat > /etc/systemd/system/home.mount << EOF
[Unit]
Description=Mount the lvm volume /dev/lfs-lvm/home to /home
[Mount]
What=/dev/lfs-lvm/home
Where=/home
Type=ext4
Options=default
[Install]
WantedBy=multi-user.target
EOF
Le nom de l'unité doit être le nom du point de montage avec le caractère « / » remplacé par le caractère « - », en omettant le premier.
Ensuite l'unité doit être activée avec :
systemctl enable home.mount
Pour plus d'information sur LVM, voir le LVM HOWTO et les pages de manuel de lvm. Un bon guide en profondeur se trouve chez RedHat®, même s'il fait parfois référence à des outils non libres.