Installation de Debian Wheezy (7.0) sur du RAID + LVM

Bonjour à tous,

Aujourd’hui la première partie d’un tuto qui en comptera 2 : l’installation de la nouvelle version majeure de Debian (la 7, aka Wheezy) sur du RAID soft + LVM. Dans la seconde partie, nous verrons comment ajouter un disque supplémentaire à notre RAID et comment étendre les volumes LVM.

Mais tout d’abord, pourquoi se casser la tête à installer Debian sur Du RAID + LVM plutôt que sur un ou plusieurs disques tout simplement,  ou bien sur du raid tout simple ou bien encore sur du LVM seul ? Attention, TL ;DR incoming !

RAID et LVM ensemble ? Pourquoi ?

–          Pourquoi LVM ? LVM permet de s’affranchir des limites imposées par la notion de partition notamment lorsqu’on veut ajouter un disque dur à une install existante et agrandir par exemple la partition /var pour un site web ou le /home pour un serveur de fichiers par exemple. En effet, un des avantages de LVM est qu’il permet de créer des volumes indépendamment de la taille des disques sur lesquels il s’appuie. En effet, un volume LVM peut s’étendre sur plusieurs disques  et permet ainsi de faire une sorte de JBOD software en plus poussé. Ainsi, en ajoutant un disque supplémentaire à une installation existante il suffira d’agrandir le groupe de volumes LVM afin d’utiliser ce nouveau disque puis d’agrandir les volumes logiques et les partitions qu’ils contiennent. De plus, LVM apporte une fonctionnalité très intéressante, les snapshots, qui permet de faire régulièrement des « photographies » de l’état des données et de pouvoir ainsi revenir à une version antérieure et ce de façon différentielle donc en minimisant l’espace occupé.

–          Pourquoi du RAID ? Dans le cas d’un serveur, la disponibilité est une caractéristique primordiale. Contrairement à un poste client, un serveur doit être disponible en permanence et seules de courtes interruptions peuvent être tolérées dans certains cas. SI l’un des disques du serveur venait à rendre l’âme, il faudrait éteindre le serveur, changer le disque, restaurer les données et ce genre de manipulations prend bien souvent plusieurs minutes voire heures car rien ne se passe jamais comme prévu (Murphy quand tu nous tiens  L ). Dans le cas du RAID, et l’on parle ici des modes 1 et 5 (voire 6 pour les aisés 😮 ), la défaillance de l’un des disques (voire 2 pour le RAID 6) n’est pas suffisante pour paralyser le système. Tout au plus celui-ci fonctionnera-t-il en mode dégradé le temps de la réparation mais il fonctionnera.

–          Pourquoi du RAID +LVM ? Et bien pour une raison simple : si l’un des disques où se trouve un LVM foire, les données sont perdues ! Enfin, pas vraiment mais le temps pour les récupérer sera bien trop important pour que l’interruption de service soit acceptable. En couplant LVM à du RAID 1, 5 ou 6 (ou tout autre RAID à tolérance de panne), on s’assure de pouvoir maintenir le système en fonctionnement dans le cas d’une défaillance de disque. Et la seconde raison est que l’on a une flexibilité concernant la gestion de l’espace disque apportée par LVM.

En gros, en couplant du RAID + LVM on s’assure d’une part une sécurité en cas de souci d’un des disques, et d’autre part de la flexibilité si l’espace vient à manquer (rajout d’un disque, extension du raid puis LVM puis FS et hop, le tout à chaud \o/).

Et la subtilité de cette installation, c’est qu’il n’y aura pas qu’un seul RAID mais 2 ! En effet, pour s’assurer que la machine démarre quoi qu’il arrive, la partition /boot sera installée sur du RAID 1 afin que même avec un seul disque la machine démarre, et pour le reste des partitions du RAID 5, pour le compromis redondance/espace perdu (là ou du RAID 1 condamne la moitié du stockage, le RAID 5 permet d’avoir une capacité totale de n-1 disques, donc  33% de perte avec 3 disques, 25% avec 4 ainsi de suite).

Dernière remarque, on parle ici de RAID software, car bien que moins performant que du RAID hardware, il est aussi moins couteux mais surtout en cas de panne il est plus facile de récupérer les données avec un live-cd par exemple car il est totalement indépendant du matériel. Ce sera donc mdadm qui gèrera toute la partie RAID.

Installation !

Trêve de blablas, je sens que je vous perds, donc on passe à l’install ! Pour les débutants, vous avez toutes les captures pour vous aider en annotation, et pour les confirmés, seulement les plus importantes pour aller plus vite.

Notre config comporte donc 3 disques de 20Go qui nous permettront de concevoir une RAID1 + spare et un RAID5. C’est parti.

Une fois la machine démarrée avec le CD de Wheezy en version i386 ou x64  en fonction de votre matos (ça marche aussi avec une VM et des ISO, comme je l’ai fait pour ce tuto), on choisit « Install » (1) puis la langue, ici French (2)  et le pays donc la France dans mon cas (3). Il faut ensuite choisir la disposition du clavier (4) puis attendre le chargement des composants d’installation (5).

Nommez ensuite votre machine (6) puis donnez-lui (ou pas) un nom de domaine (testdomain.lan dans mon cas) (7). Choisissez un mot de passe pour le compte supadmin (root) et confirmez-le dans l’écran suivant (8 et 9). Il faut à présent créer un compte standard donc renseignez le Nom complet (10), choisissez un nom d’utilisateur (11) et un mot de passe (12) que vous confirmez (13).

C’est là que les choses sérieuses commencent ! Choisissez le partitionnement manuel (14). L’assistant d’installation vous affiche maintenant la liste des disques durs installés (15). Choisissez le premier puis appuyez sur entrée, l’assistant vous demande si vous souhaitez créer une nouvelle table des partitions sur le disque (16), acceptez. Répétez l’opération sur les autres disques afin que l’on ait 3 disques tout neufs et d’arriver à la configuration ci-contre (17).

Configuration des RAID 1 et 5

Choisissez maintenant l’espace libre du premier disque puis « Créer une nouvelle partition » (18). Celle-ci servira à stocker la partition de boot on choisit donc 500MB (19) (ou plus, c’est selon, les mises à jour de kernel ayant tendance à vite remplir le /boot), puis « Primaire » (20) et enfin « Début » pour la localiser au début du disque (21).

Dans les caractéristiques de la partition, pour « Utiliser comme » (22), choisir « volume physique pour RAID » (23). Choisir ensuite un indicateur d’amorçage « présent » (24) pour que cette partition soit bootable et enfin « Fin du paramétrage de cette partition ».

De retour sur l’écran des disques (25), choisir ensuite l’espace libre restant du premier disque et on va répéter l’opération pour créer la deuxième partition RAID qui servira pour le RAID 5 contenant le système. On choisit donc de « Créer une nouvelle partition », puis sa taille (26). Vu que ce sera la dernière partition je prends l’espace restant comme suggéré. De même elle peut à nouveau être « Primaire » (27), un maximum de 4 partitions primaires par disque étant possible et n’en ayant que 2 dans cette config.

Il faut maintenant réitérer la manipulation pour les 2 autres disques, en prenant soin de bien choisir des tailles de partition identiques sinon ça va foirer pour la suite ! Une fois cette opération effectuée, vous devez avoir 2 partitions RAID sur chaque disque et plus d’espace inutilisé (28).

C’est là qu’intervient la définition des RAID. Choisissez « Configurer le RAID avec gestion logicielle ». Le système demande si il faut appliquer les changements faits aux disques, bien sûr on valide (29) ! Il faut ensuite « Créer un périphérique multidisque » (30), de type RAID1 (31) avec 2 périphériques actifs (32) et 1 périphérique de réserve dans l’ensemble (33). On va ensuite choisir les périphériques actifs en cochant les cases avec la touche espace. On sélectionne /dev/sda1 et /dev/sdb1 (les premières partitions des 2 premiers disques) (34) puis dans l’écran suivant on sélectionne /dev/sdc1 en guise de périphérique de réserve (35). Le RAID 1 est terminé.

On va répéter la même opération pour créer le RAID 5 (36) sauf qu’il y aura cette fois 3 périphériques actifs (37) et 0 disque de réserve (38). Sélectionnez les 3 partitions restantes (/dev/sda2, /dev/sdb2 et /dev/sdc2) (39). Le RAID 5 est prêt, on choisit donc « Terminer » (40).

Configuration de LVM

On choisit maintenant « Configurer le gestionnaire de volumes logiques (LVM) » (41) puis on accepte de conserver l’organisation des partitions (42).  On choisit « Créer un groupe de volumes » (43) et on le nomme « boot » (44) car c’est lui qui contiendra la partition de boot. On lui affecte le périphérique « /dev/md0 » en le sélectionnant avec la touche espace (45). md0 est le premier RAID c’est-à-dire le RAID1. On valide et on conserve cette organisation des partitions (46).

On crée ensuite un second groupe de volumes que l’on va appeler « lvmgrp » (47) et qui lui sera composé de « /dev/md1 » (le RAID5) (48) puis on valide et on conserve à nouveau l’organisation des partitions (49).

On va maintenant passer à la création des volumes logiques (50). Ce sont eux qui contiendront les partitions du système. On choisit de créer un volume logique puis on choisit le groupe de volumes « boot » (51). On nomme ce volume « boot » lui aussi (52) puis on lui laisse la taille par défaut (la totalité de l’espace du groupe de volumes) (53).

On va réitérer l’opération de la création de volumes logiques cette fois sur le groupe de volumes « lvmgrp ». Le premier va s’appeler « root » (54)  car il contiendra la partition « / » et on lui donne une taille de 20GB (55). On répète l’opération pour les volumes « home » (56) qui fera 10GB (57) et pour « var » (58) qui fera 10GB aussi (59). Et enfin on finit avec un espace « swap » (60) de 1GB (61).

On se retrouve maintenant avec 5 volumes logiques nommés « boot », « home », « root », « swap » et « var » (62) à qui l’on va affecter les partitions du même nom !

Partitionnement

On choisit le volume « boot » et dans « Utiliser comme » (63) on choisit « système de fichiers journalisé ext4 » (64). En point de montage (65) on choisit « /boot » (66) puis « Fin du paramétrage de cette partition » (67).  On répète l’opération pour « home », « root » et « var » avec leurs points de montage respectifs. Pour le swap, l’opération consistera uniquement à choisir « Fichier d’échange <<swap>> » puis « Fin du paramétrage de cette partition ». Vous devriez vous retrouver avec la configuration montrée en (68).

Choisissez de terminer le partitionnement tout en bas de la liste et bien sûr acceptez d’appliquer les changements sur les disques (69).

Installation (la vraie !)

Le partitionnement est maintenant terminé, le système de base s’installe (70 et 71).

Vient maintenant le moment de choisir le serveur où l’on téléchargera les logiciels (paquets) supplémentaires. Je choisis la France (72) puis le serveur de debian par défaut (ftp.fr.debian.org) (73). Remplissez les informations de proxy si nécessaire (74). L’installation termine en mettant à jour la liste des paquets (75). Une fois l’installation terminée, l’assistant vous demande si vous souhaitez participer à l’étude statistique sur l’utilisation des paquets, répondez ce que vous voulez en fonctions de votre envie de coopérer (76).

Il est maintenant temps d’installer les logiciels supplémentaires (77). Pour ma part je ne choisis que les utilitaires usuels du système car j’installe le reste à la main mais vous pouvez  choisir d’installer SSH et plus encore.

Enfin, l’installeur demande s’il doit installer GRUB sur le secteur d’amorçage, on répond oui (78), puis l’installation est terminée ! (79)

Vous n’avez plus qu’à éjecter le CD/ISO et à valider « Continuer » pour redémarrer la machine sur votre système fraîchement installé !

Eh bien voilà, ce n’était pas si compliqué, si ? Votre Debian est désormais opérationnelle, il ne reste plus qu’à lui installer SSH avec une authentification par clé publique, sudo pour éviter de faire des conneries en mode root et vous voilà paré pour configurer un beau serveur avec d’autres tutos 😀 !

Dans la prochaine partie, j’expliquerai comment ajouter un disque à notre machine et agrandir les RAID, les groupes de volumes (vg), les volumes logiques (lv) et les partitions qu’ils contiennent (le fs avec resize2fs).

Sur ce, keep calm, une version PDF sera ajoutée dans les jours à venir

Tagged: , , , , , , , , ,

Comments: 12

  1. kristof 4 octobre 2013 at 12 h 33 min Reply

    Merci *1000, j’étais en train de chercher à configurer un serveur de partage de fichiers pour un copain et je suis tombé sur votre article, nickel, rien à dire.
    Très pratique lorsque l’on a que trois disques à dispo car c’est la tolérance de panne qui m’intéressait (bien que ce soit un serveur muni d’un contrôleur et de hdd de 250GB, je ne voulais pas faire de « physique » et surtout utliser lvm).
    Je vais attendre la fin de l’installation car je n’ai pas intégré toute la place restante dispo du raid 5 (c’est le but, non, garder de la marge et l’attribuer quand besoin se fait sentir ?)

    • admin 5 octobre 2013 at 23 h 08 min Reply

      C’est le but en effet 🙂 Ou bien lorsqu’on rajoute un disque dans le système cela permet d’y étendre un volume existant ce qui est pratique car relativement courant.

  2. jpounet 15 octobre 2013 at 17 h 25 min Reply

    Très intéressant. Je ne m’y connais pas donc mes questions seront naïves …
    Pourquoi installer sur deux disques la partition de boot, pourquoi pas sur les trois ? Et si tu avais à disposition quatres disques, qu’aurais-tu fais au niveau RAID et au niveau LVM ? Pourquoi le swap est dans le RAID5 ? Pourquoi le grub est installé seulement sur le premier disque (va t’il se dupliquer sur le second car en RAID1 ?).
    J’ai hâte de lire les prochains tutos …

    • admin 15 octobre 2013 at 19 h 18 min Reply

      Bonsoir,

      Bon j’avais écrit un super commentaire bien développé et suite à un misclick j’ai perdu mon texte donc je vais synthétiser la réponse que je voulais faire 😮
      – /boot sur RAID1 car cela permet de booter meme si le raid5 est en carafe, la partition boot étant toujours accessible car c’est une simple copie. Pour GRUB, si il n’y a qu’un raid1 il est proposé automatiquement de l’installer sur les 2 disques, sinon il faut l’installer aussi sur le second disque. Pourquoi pas sur les 3 disques ? J’aime bien les RAID1 avec un nombre pair de disques, et sinon c’était juste pour la démonstration mais j’aurais pu faire une RAID1 de 3 disques pour le /boot 🙂
      Avec 4 disques :
      – RAID5 + 1 disques de spare (2 disques de capacité de stockage effective, pas d’intervention physique en cas de défaillance d’un disque car disque de secours déjà présent )
      – RAID5 de 4 disques, 3 disques de capacité effective mais toujours 1 seule défaillance possible
      – RAID10 : bonnes perfs et bonne sécu (RAID0 de grappes en RAID1, 2 disques de capacité effective et tolérance de 2 défaillances simultanées)
      Pour LVM :
      – garder de la place pour une extension future d’un LV
      – ajouter un LV réservé aux snapshots pour les backups

      Le Swap sur le RAID5 : la fatigue, j’ai oublié de garder de la place pour le swap sur les disques au moment de la création du RAID5, du coup j’ai du mettre la partition de swap sur le RAID5. En soi c’est pas gênant car si le système a assez de mémoire il ne swappe pas, et si jamais il manque de mémoire il bénéficie du gain de perfs du RAID5 pour le swap.

      Pour GRUB : tout dépend de l’installation. Soit le système demande si l’on souhaite booter en mode dégradé en cas de défaillance du RAID auquel cas il installe grub sur les x disques du RAID1, soit il faut procéder manuellement à l’installation de grub sur les autres disques après le premier démarrage via la commande :
      sudo grub-install --modules=raid /dev/sdX
      avec sdX le nom du disque physique. Cela passe automatiquement le flag BOOT_DEGRADED à true. Il est donc possible de perdre un disque et de pouvoir booter tranquillement 🙂

      Je vais essayer de dégager un peu de temps pour écrire d’autres tutos, je suis pas mal pris depuis cet été mais j’espère avoir un peu plus de temps libre dans les semaines à venir. Notamment pour le tuto permettant de rajouter un disque au RAID+LVM, mais aussi un tuto sur la mise en place de Zentyal.

  3. jpounet 16 octobre 2013 at 17 h 05 min Reply

    Merci pour ces réponses. J’ai a ma disposition 4 disque de 2Tb. Mon idée était de faire un Raid10 puis par dessus LVM avec un schéma de partitions idoine. Ensuite il y aura qemu/kvm pour la virtualisation.
    D’où mon intérêt pour ton article. Car je ne sais pas où placer le boot, le swap, etc.
    J’espère que tes prochains tutos m’éclaireront pour construire un server sécurisé et extensible (par exemple déplacer Debian sur ssd).

  4. Julien 28 octobre 2013 at 17 h 57 min Reply

    Une substrat supplémentaire est encore possible: chiffrer lvmgrp. Et comme ça on aurait la total
    Debian+LVM+RAID5(3hd)+Chiffrement

  5. Thibow 25 mars 2014 at 17 h 49 min Reply

    Efficace ce tuto, vraiment parfait !
    Manque plus que la version PDF tant attendu… 😉

  6. Thibaud 19 juillet 2014 at 16 h 16 min Reply

    Très bon article avec des bonnes infos, merci beaucoup.

  7. michel 7 février 2015 at 18 h 32 min Reply

    Franchement mille merci ! pour ce tuto très clair et bien commenté ! 🙂 je commence à mieux saisir le RAID les partitions …lvm…
    Que du bonheur 🙂

  8. basil noman 11 février 2015 at 14 h 52 min Reply

    merci mn frere

  9. basil noman 11 février 2015 at 14 h 52 min Reply

    merci pour larticle c a kose de toi ke je pourrai fair mon projet

  10. tropique 9 mai 2015 at 14 h 35 min Reply

    +1 pour ce super tuto parfaitement documenté.
    Pour ceux qui ont un Proliant Microserver Gen8 (ou autre) penser à activer « SATA AHCI Support » à la place du « B120i HP RAID » dans le bios, sinon le fake RAID B120i HP RAID ne reconnait pas le RAID logiciel linux, et on ne peut pas booter…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *