Réaliser du LVM sur CentOS
Aujourd’hui petit article sur l’utilisation basique de LVM sur une CentOS 7. Cet article servira surtout de mémo personnel, comme c’est le cas pour celui traitant de Vim.
Bien, comme dit en préface nous allons parler aujourd’hui d’un incontournable du monde GNU/Linux, j’ai nommé: LVM !
Qu’est-ce donc ? Demandons rapidement à ce bon vieux Wikipédia :
La gestion par volumes logiques (en anglais, logical volume management ou LVM) est à la fois une méthode et un logiciel de gestion de l’utilisation des espaces de stockage d’un ordinateur. Il permet de gérer, sécuriser et optimiser de manière souple les espaces de stockage en ligne dans les systèmes d’exploitation de type UNIX.
Wikipédia – 2019
LVM va donc nous permettre de « remplacer » en quelque sorte notre système de partitions avec ses nombreuses limitations… Par exemple, plus de « partitions primaires et secondaires« , ou mieux encore: nous allons pouvoir redimensionner la taille d’un système de fichiers sans devoir se pré-occuper de l’emplacement des données sur notre/nos disque(s) !
1) Comprendre le fonctionnement de base
Comme une image vaut mieux que mille mots, voici un schéma réalisé par AdrienD tiré de Linuxtricks.fr :
- PV (Volume physique) : Disque dur, SSD, volume RAID…
- VG (Groupe de volumes) : Groupe de disques dur, SSD, volumes RAIDs.
- LV (Volume logique) : « pseudo-partitions », ce sont donc des morceaux d’un groupe de volume que l’on a découpés et que l’on va ensuite formater pour ensuite pouvoir les monter et les utiliser.
- FS (Système de fichiers) : Manière de stocker les fichiers sur un disque dur. On peut citer les très connus exfat, brtfs, ntfs…
- Point de montage : Répertoire permettant d’accéder aux données d’une partition, d’un volume logique, etc.
Les volumes logiques peuvent donc être redimensionnés à chaud, sans le moindre soucis ! Il va de soi cependant que lors du dysfonctionnement d’un disque dur ou autre, vous risquez de perdre toutes les données de votre groupe de volume ! C’est pourquoi LVM est en général utilisé avec du RAID sur les systèmes critiques.
2) Installation et utilisation classique
LVM est installé par défaut sur la quasi-totalité des distributions GNU/Linux, si ce n’est pas le cas, voyez directement via la documentation de votre distribution 😉
(En général, quand vous démarrez le Live-CD d’une Fedora, Debian, ou autre distribution « classique », l’installateur vous proposera d’ailleurs le partitionnement classique ou partitionnement via LVM)
Bien, nous allons partir d’un exemple très simple avec le démarrage d’un Live-CD d’une CentOS 7, au moment de l’installation.
Cette machine possède :
- 1x disque dur de 20Go
- 1x disque dur de 20Go
- 1x disque dur de 40Go
Nous aurons donc un total de 80 Go utilisables de cette manière. Ici, nous allons (pour l’installation) commencer par créer un RAID-1 avec nos 2 disques de 20Go, puis ensuite nous créérons un groupe de volume LVM avec nos différents volumes logiques.
Contrairement à d’autres distributions, CentOS propose un partitionnement manuel dit « de haut en bas », dans le sens où, d’habitude, nous devons créer notre groupe de volume/raid/autre avant de créer nos différentes partitions ou nos différents volumes logiques, mais ici l’installateur nous propose de d’abord créer nos partitions, et ensuite de choisir un éventuel RAID ou groupe de volumes.
Nous allons donc partir sur ce partitionnement là, en sachant que (comme toujours), il n’y a pas réellement de meilleur partitionnement, cela dépend beaucoup des besoins, et ici ce sera sur un serveur de test (pour plus d’info sur le partitionnement, je vous renvois à cet article où il est abordé) :
- Un volume logique racine (/) de 15 Go ;
- Un volume logique swap de 2 Go ;
- Un volume logique home de 4 Go ;
- Une partition classique boot de 1 Go ;
Comme on peut le voir ici, il me reste encore environ 1 Go~ non-utilisés ; nous pourrons l’ajouter par la suite, ce n’est pas bien grave. Je précise aussi que ces volumes logiques sont tous en ext4 (sauf la swap bien entendu).
Concernant le boot, il doit obligatoirement être en partition standard, et non pas en volume logique.
Bien ! Pour commencer, nous sélectionnons donc nos deux disques de 20 Go, et nous cliquons sur Je vais configurer le partionnement.
CentOS nous indique maintenant qu’il n’y a pas encore de point de montage, et nous ne propose d’en créer un premier (LVM, btrfs, Thin LVM, ou partition standard). Sans surprise, nous choisissons donc LVM !
Ici je ne vais pas détailler pour chaque partition, il convient simplement de choisir le fameux point de montage voulu ainsi que la capacité souhaitée. Vous pouvez tout naturellement vous baser sur l’image ci-dessous si besoin 😉
Voici donc le rendu du partitionnement, après la création des points de montages cités plus haut :
A partir de là, on clique sur Volume Group à droite, et on choisi Création d’un nouveau groupe de volumes :
On le nommera donc vg01 (par convention, mais nous aurions pu le nommer par exemple « lvm-01 » ou autre), et nous choisissons le niveau de RAID « RAID1 ».
Il faudra simplement vérifier que nos différents points de montages feront bien partis du volume group vg, et non plus celui créé automatiquement par centos :
Si ce n’est pas le cas, cliquez simplement à droite et choisissez le bon volume group. Une fois que tout est bon, vous pouvez cliquer sur Terminer et poursuivre le reste de l’installation de manière classique.
3) Démarrage et vérification du RAID et du LVM
Une fois le reste de l’installation effectuée, nous pouvons démarrer notre serveur et vérifier en premier lieu si le RAID-1 est bel et bien actif via la commande :
cat /proc/mdstat
Comme on peut le voir, le RAID-1 est bien reconnu et actif, avec nos deux disques (sda2 et sdb1, car sda1 est le fameux /boot).
Ensuite nous pouvons passer en revu notre installation LVM, via la commande vgdisplay nom_du_vg :
Notre volume group est donc bel et bien présent et actif ! On peut d’ailleurs utiliser la commande lsblk pour avoir d’autres infos utiles et surtout pour voir la taille de notre dernier disque, que l’on va formater pour l’intégrer à notre VG :
4) Création d’un Volume physique, et ajout au groupe de volumes
Bien, comme dit ci-dessus avec la commande lsblk, on peut obtenir d’autres infos utiles, notamment voir notre RAID et nos différentes volumes logiques LVM. On peut aussi voir le disque sdc, qui n’est autre que notre disque de 40Go présent depuis le début sur notre VM 😉
Tout d’abord, nous allons en faire un volume physique :
pvcreate /dev/sdc
On peut aussi utiliser la commande pvdisplay /dev/sdc pour avoir des informations sur ce volume physique nouvellement créé :
Niquel ! On poursuit !
Pour l’intégrer dans notre VG (Volume Group pour rappel) :
vgextend vg01 /dev/sdc
On peut d’ailleurs refaire un petit vgdisplay pour voir que désormais notre nombre de volumes physiques est passé à 3 :
La dernière étape est simplement d’en faire un volume logique :
lvcreate -n data -L 40G vg01
Ici, le paramètre -n indique le nom, -L la taille désiré et vg01 se rapporte donc au groupe de volume !
Un petit lvdisplay et on peut aperçevoir notre dernière volume logique créé précédemment :
A partir de là, si on souhaite créer un un FS il nous suffit d’utiliser le classico mkfs :
mkfs.ext4 /dev/vg01/data
Ici, nous avons donc créé un FS en EXT4 sur le volume logique data, rien de très sorcier donc.
Pour ensuite monter ce FS, c’est de nouveau comme d’habitude, via la commande mount :
mkdir /mnt/data
mount /dev/vg01/data /mnt/data
Nous avons donc créé un sous-dossier dans /mnt, nommé data (on aurait pu l’appeler autrement, mais je trouvais ça cohérent) et nous avons ensuite monté notre volume logique dans ce répertoire ! Avec la commande mount relié à un grep, nous pouvons voir que ce volume est correctement monté 😁
Et on peut donc désormais s’y rendre et y créer des fichiers, dossiers…
Et bien voilà ! Cet article se veut basique, donc je n’ai pas encore parlé de la suppression de volumes logiques/physiques ni même du redimensionnement… tout ceci fera l’objet d’un second article. Mine de rien, vous savez désormais comment installer une CentOS avec LVM, et comment rajouter un disque en tant que volume physique, puis en faire un volume logique, et enfin le monter ! Pas mal pour un début 😉
2 comments