URL: https://linuxfr.org/news/gestion-de-volumes-raid-avec-lvm Title: Gestion de volumes RAID avec LVM Authors: đČ Tanguy Ortolo Davy Defaud et ZeroHeure Date: 2019ćčŽ05æ23æ„T15:39:26+02:00 License: CC By-SA Tags: lvm, stockage et raid Score: 58 Vous connaissez dĂ©jĂ LVM, le gestionnaire de volumes logiques qui permet dâagrĂ©ger et de subdiviser librement vos pĂ©riphĂ©riques de stockage. Eh bien, depuis quelques annĂ©es, LVM permet Ă©galement de dĂ©finir des volumes en RAID. LVM et RAID, version traditionnelle =================================== Pour utiliser LVM avec du RAID, on utilise dâhabitude LVM et MD, qui est lâimplĂ©mentation du RAID logiciel de Linux. Pour cela, on les empile : * soit en agrĂ©geant ses pĂ©riphĂ©riques de stockage en un volume RAID, quâon utilise ensuite comme un volume LVM physique : il sâagit de LVM auâdessus de RAID ; * soit, Ă lâinverse, ce qui est plus compliquĂ©, en agrĂ©geant en RAID des volumes LVM logiques soigneusement dĂ©finis : il sâagit donc de RAID par dessus LVM. Manque de souplesse =================== Outre le cĂŽtĂ© un peu artificiel de cet empilement, cette solution manque de souplesse pour au moins un cas dâusage. En effet, sur un ordinateur disposant de plusieurs pĂ©riphĂ©riques de stockage, on peut vouloir redonder une partie du systĂšme de fichiers en RAID, tout en laissant une autre partie sans redondance pour minimiser son utilisation du stockage. Parmi les usages qui ne mĂ©ritent pas forcĂ©ment une telle redondance : des films quâon a par ailleurs sur DVD, les nouvelles Usenet ou encore des caches de divers logiciels. Bref, ce cas dâusage passe mal. Avec du LVM sur RAID, câest tout simplement infaisable. On peut toujours partitionner ses pĂ©riphĂ©riques de stockage pour en utiliser une partie en RAID et lâautre sans, mais on retrouve alors un partitionnement statique. Avec du RAID sur LVM, câest faisable, mais câest une solution compliquĂ©e Ă gĂ©rer. Cela passe encore plus mal avec GRUB, qui peut ne pas apprĂ©cier cet empilement et ne pas rĂ©ussir Ă lire le systĂšme de fichiers oĂč il doit aller chercher le noyau Ă dĂ©marrer. On se retrouve alors Ă utiliser une partition statique dĂ©diĂ©e Ă `/boot`. ---- [RAID LVM dans la doc Red Hat](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/raid_volumes) [LVM sur le wiki Gentoo](https://wiki.gentoo.org/wiki/LVM) [Page de manuel de lvmraid(7)](https://manpages.debian.org/stretch/lvm2/lvmraid.7.en.html) ---- Nous en arrivons donc Ă cette fonctionnalitĂ© de RAID intĂ©grĂ©e Ă LVM. Rappel sur LVM ============== Avec LVM, on commence par formater ses pĂ©riphĂ©riques de stockage pour en faire des *volumes physiques* LVM, ou PV pour *physical volumes* : ce sont des pĂ©riphĂ©riques bloc, visibles dans `/dev`, quâon confie simplement Ă LVM. ```bash # Jâai deux pĂ©riphĂ©riques, sda et sdb, avec une premiĂšre partition # systĂšme EFI, et une seconde partition avec lâessentiel de lâespace, # qui sera utilisĂ© avec LVM pvcreate /dev/sda2 /dev/sdb2 ``` On agrĂšge ensuite un ou plusieurs volumes physiques pour former un *groupe de volumes*, ou VG pour *volume group* : contrairement aux volumes physiques, les groupes de volumes ne sont quâune abstraction de LVM et nâont, autant que je sache, pas dâexistence dans `/dev`. ```bash # Je donne Ă mes groupes de volume le mĂȘme nom que lâordinateur vgcreate vg-camembert /dev/sda2 /dev/sdb2 ``` On dĂ©finit ensuite des *volumes logiques* ou LV pour *logical volumes*, qui sont des pĂ©riphĂ©riques bloc Ă©mulĂ©s par LVM, apparaissant dans `/dev` et prĂȘts Ă ĂȘtre formatĂ©s et montĂ©s pour hĂ©berger un systĂšme de fichiers. ```bash lvcreate --size 10G --name root vg-camembert mkfs.ext4 -L root /dev/vg-camembert/root lvcreate --size 50G --name home vg-camembert mkfs.ext4 -L home /dev/vg-camembert/home ``` Lorsquâon crĂ©e un volume logique, on doit Ă©videmment indiquer dans quel groupe de volumes il sera mis en Ćuvre, mais on peut Ă©galement prĂ©ciser au besoin, sur quel volume physique en particulier â membre de ce groupe de volumes â il sera effectivement stockĂ©. Cette possibilitĂ© est dĂ©jĂ utile pour diverses raisons, par exemple si les volumes physiques ont des caractĂ©ristiques diffĂ©rentes ; typiquement pour stocker des films sur un gros disque dur lent et son systĂšme dâexploitation sur un petit SSD trĂšs rapide, le tout sous LVM avec un seul groupe de volumes. ```bash # sda est petit et rapide, parfait pour hĂ©berger / lvcreate --size 10G --name root vg-camembert /dev/sda1 # sdb est gros et moins rapide, ce qui me convient pour /home lvcreate --size 50G --name home vg-camembert /dev/sdb1 ``` RAID intĂ©grĂ© Ă LVM ================== Au moment de crĂ©er un volume logique, on peut donc Ă©galement indiquer quâil sâagit dâun volume RAID, en prĂ©cisant le niveau de RAID et la redondance souhaitĂ©e : ```bash # Mieux vaut mettre / en RAID1 # Le --nosync sert Ă Ă©viter lâinutile synchronisation des donnĂ©es # initialement prĂ©sentes lvcreate --size 10G --name root --type raid1 --nosync vg-camembert # Soyons fous, /home en RAID0 lvcreate --size 50G --name home --type raid0 vg-camembert ``` On peut aussi convertir un volume logique existant en RAID, ou Ă lâinverse, convertir un volume logique RAID en classique, câestâĂ âdire linĂ©aire â câest leur vrai nom, ce qui peut ĂȘtre utile en vue dâun changement de pĂ©riphĂ©rique par exemple. La page de manuel de `lvmraid(7)` donne toute les informations utiles, en particulier les commandes permettant de lancer une procĂ©dure de vĂ©rification de la correspondance des donnĂ©es dupliquĂ©es : ```bash lvchange --syncaction check vg-camembert/root ``` Avantages ========= Lâutilisation de la fonctionnalitĂ© de RAID intĂ©grĂ©e Ă LVM a lâavantage dâĂȘtre simple Ă mettre en Ćuvre, il nâest ainsi plus nĂ©cessaire de se demander dans quel ordre empiler LVM et MD, ou comment organiser tout cela : il suffit dâutiliser LVM comme dâhabitude, avec quelques options en plus, le fait dâĂȘtre en RAID ou non Ă©tant simplement une caractĂ©ristique de chaque volume logique, qui peut mĂȘme ĂȘtre changĂ©e _a posteriori_. Les volumes logiques de type RAID sont Ă©galement pris en charge par GRUB, de sorte quâil nâest pas nĂ©cessaire de mettre en place une partition `/boot` sĂ©parĂ©e.