Debian 8 (Jessie) en configuration RAID 1 pour les nuls

62 pages, mais n'ayez crainte, ce tutoriel est un véritable livre d'images

Image d'entête

par skywodd | | Licence (voir pied de page)

Catégories : Tutoriels Administration système | Mots clefs : Guide Linux Debian RAID

Cet article n'a pas été mis à jour depuis un certain temps, son contenu n'est peut être plus d'actualité.


Dans ce tutoriel, nous allons étudier ensemble un grand classique dans le domaine de l'administration systèmes Linux : l'installation du système d'exploitation Debian avec des disques durs en configuration RAID 1 (aka configuration en "miroir"). On verra ensemble pourquoi cette configuration est si classique, ainsi que ses avantages et ses inconvénients. Je vous expliquerai ensuite, à grand renfort d'images, comment installer Debian 8 "Jessie" dans cette configuration. En bonus, nous verrons ensemble plusieurs cas d'erreurs classiques et diverses commandes bien pratiques.

Sommaire

Bonjour à toutes et à tous !

Ce tutoriel est le premier d'une longue série de tutoriels d'administration systèmes Linux.

Dans un monde ultra-connecté comme le nôtre, où votre frigo, votre grille-pain et même votre WC sont désormais connectés à internet, un maker averti se doit de connaitre un minimum de choses en Linux, en serveur et en administration systèmes. J'avais promis de faire un jour une série de tutoriels sur le sujet, c'est désormais chose faite ;)

Cette nouvelle série de tutoriels a pour but de rendre accessible au plus grand nombre des pratiques "classiques" (mais souvent complexes) d'administration systèmes Linux.

N.B. Ce ne sont pas pour autant des cours généraux d'utilisation de systèmes Linux. Un minimum de connaissances dans le domaine est requis (comme savoir utiliser un terminal de commande, lire un manuel, taper sur un clavier et savoir ne pas copier/coller des lignes de commandes bêtement sans réfléchir).

Si vous avez déjà approché un administrateur système (ce qui – entre nous, soyons franc - est très risqué, car ils mordent souvent à la moindre question de votre part), vous avez sûrement du entendre celui-ci parler de "RAID" avec ses collègues du service informatique.

Dans cet article, nous allons voir ensemble ce qui se cache derrière ce nom barbare. Nous étudierons ensemble ce "RAID", si important aux yeux des administrateurs systèmes. Pour finir, je vous expliquerai pourquoi vous devriez (sérieusement) vous y intéresser si vous imaginez dans un futur plus ou moins proche mettre en ligne un serveur de jeu, un serveur web ou n'importe quel autre type de serveur (y compris embarqué).

PS Le contenu de cet article est aussi utile pour ceux qui voudraient monter une station de travail professionnel.

Qu'est-ce qu'une configuration RAID ?

Sans entrer dans les détails (très) techniques, le RAID est une technologie (plusieurs technologies pour être précis) utilisée en informatique pour (au choix) : améliorer les performances du système de fichiers, ou améliorer la sécurité des données et la tolérance aux pannes.

RAID signifie "Redundant Array of Independent Disks", ce qui se traduit littéralement par "regroupement redondant de disques indépendants" en bon vieux français. Le principe est simple : prendre plusieurs disques séparés, les regrouper / assembler suivant une configuration bien précise et les utiliser tous ensemble comme s'il s'agissait d'un unique disque.

On peut utiliser une configuration RAID pour plusieurs raisons :

  • améliorer les performances du système de fichiers, en répartissant les données uniformément sur plusieurs disques (principe du RAID 0),

  • améliorer la sécurité des données et la tolérance aux pannes, en gardant plusieurs copies des données sur plusieurs disques séparés (principe du RAID 1),

  • un mélange des deux (principe du RAID 5, 6 ou 10).

Pour avoir plus de détails concernant les diverses configurations RAID possibles, je vous laisse un lien vers la page Wikipedia qui contient plein d'illustrations sur le sujet : https://fr.wikipedia.org/wiki/RAID_(informatique)

Dans ce tutoriel, nous allons uniquement étudier la configuration RAID 1, dite des disques "en miroir". Comme son nom l'indique, le principe de cette configuration repose sur le fait de copier les données d'un disque sur un ou plusieurs autres disques en temps réel pour créer des "miroirs" (copies) qui serviront en cas de panne du disque principal.

La configuration RAID 1 a l'énorme avantage de permettre une tolérance aux pannes. Si vous avez une configuration RAID 1 avec deux disques (le minimum pour ce genre de configuration), si un des deux disques tombe en panne, le second prend le relai et permet de continuer de travailler sans perdre de données. Une fois que le disque défaillant est remplacé, les données du disque sain sont copiées sur le nouveau disque et la boucle est bouclée.

La configuration RAID 1 a deux gros inconvénients, premièrement, il faut faire plusieurs écritures, sur plusieurs disques physiques quand on fait une unique écriture sur le disque virtuel RAID. Les performances d'écritures sont donc réduites (pas de beaucoup en général, mais réduites quand même) et limitées par la vitesse d'écriture du disque le plus lent. De plus, tous les disques d'une même "grappe" (d'un même disque virtuel) doivent être identiques en taille, formatage et performance.

N.B. Astuce d'admin : achetez la moitié de vos disques chez un fournisseur différent (en faisant bien attention de prendre les mêmes modèles). Si vous achetez vos disques au même endroit, au même moment, vous risquez de tomber sur un même lot, qui risque fort de tomber en panne en même temps. Or, si tous les disques tombent en panne en même temps, vous êtes foutus (et vos données aussi).

Deuxièmement, comme il faut copier les données sur plusieurs disques pour avoir de la redondance, cela signifie que l'on "gâche" un ou plusieurs disques pour faire les miroirs. Exemple classique : vous achetez deux disques de 1To, vous les mettez en RAID 1, au final vous avez 1To, pas 2To. Entre sécurité des données et budget, il faut choisir. Personnellement, je vous conseille de choisir la sécurité des données. Le budget c'est un problème ponctuel, alors qu'une perte de données, c'est souvent un problème permanent par la suite. Beaucoup d'entreprises (petites ou grandes) ont mis la clef sous la porte après avoir perdu des années de dossiers techniques, de comptabilité et autres documents, par souci de budget plusieurs années auparavant.

PS Un jour j'ai perdu le contenu d'un disque dur contenant des données importantes. Ce jour-là, j'ai appris quelque chose d'essentiel : on ne prend conscience de l'importance de ses données (et des sauvegardes) que quand on les a perdues.

Qu'est-ce que n'est pas une configuration RAID ?

Maintenant que l'on a vu (rapidement) ce qu'était une configuration RAID, ce qu'elle apportait et ses limites. On va s'intéresser à ce que n'est pas une configuration RAID. Beaucoup (trop) de gens pensent que les configurations RAID sont des solutions techniques miracles qui permettent de résoudre tous les problèmes du monde. C'est bien évidemment faux.

Une configuration RAID n'est pas :

  • une solution de sauvegarde, si plusieurs disques tombent en panne en même temps, vos données sont perdues (la tolérance aux pannes, en nombre de disques, dépend de la configuration RAID),

  • infaillible, c'est rare, mais des corruptions de données sont toujours possibles.

  • simple à mettre en oeuvre, configurer et maintenir une grappe de disques peut se transformer en enfer et se retourner contre vous. "Comprendre avant de faire", c'est une règle d'or en administration systèmes et tout particulièrement en gestion de grappes RAID.

  • toujours avantageuse, parfois, il vaut mieux ne pas avoir de RAID et des sauvegardes bien exécutées, qu'un RAID mal configuré et des sauvegardes corrompues / inexistantes.

  • une solution anti-oups, si un virus ou une fausse manipulation modifient ou suppriment un fichier, il sera supprimé sur tous les disques de la grappe.

  • une solution anti-jesaispasquoi, si un incendie, une inondation, une attaque extraterrestre ou plus simplement, un éclair vient détruire toutes les machines d'une pièce, disques compris, c'est mort.

Je le répète une seconde fois, pour être bien clair. Les configurations RAID existent uniquement dans le but de permettre un gain de performances et/ou de tolérances aux pannes. Cela ne vous dispense en aucun cas de faire des sauvegardes. Si vous perdez des données à cause d'une soudaine coupure de courant (ou d'un bête vol), ne blâmez pas le logiciel qui gère votre grappe de disques, blâmez-vous vous même de ne pas avoir sauvegardé ces données ou de ne pas avoir vérifié que les sauvegardes sont bonnes ("une sauvegarde est corrompue jusqu'à preuve du contraire", règle d'or n°2 en administration systèmes).

On a tendance à trop faire confiance aux configurations RAID, en oubliant que ces configurations sont conçues par des humains qui font des erreurs et ne peuvent pas tout prendre en compte. Ce sont des outils puissants et robustes, mais il ne faut pas se reposer uniquement sur ces outils.

Le RAID sous Linux avec "mdadm"

Dans ce chapitre, on va voir comment faire du RAID sous Linux, avec l'utilitaire "mdadm" et le système d'exploitation Debian 8 "Jessie".

Mdadm est l'utilitaire de facto pour tout ce qui touche aux configurations RAID sous Linux. Ne cherchez pas ailleurs, si vous voulez faire du RAID sous Linux, c'est mdadm qu'il vous faut.

Connaitre les limites pour ne pas les franchir

Avant de continuer plus loin, je dois vous prévenir de plusieurs petites choses.

Capture d'écran d'un serveur qui démarre avec seulement un disque dans la grappe RAID

Oups.

Premièrement, mdadm est un système de RAID logiciel, ce n'est pas un système de RAID matériel. Si une coupure de courant éteint le serveur subitement, vos disques passeront en mode dégradé (aka mode "panique à l'étage du service informatique"). C'est garanti. Vous aurez alors droit à une vérification complète des disques (qui peut prendre plusieurs jours) et souvent à quelques jolies d'erreurs d'écritures.

Les systèmes de RAID logiciel permettent une grande flexibilité d'administration, une compatibilité entre plusieurs systèmes utilisant le même logiciel (contrairement aux systèmes RAID matériels, qui ne sont compatibles qu'avec eux même) et un coût d'installation faible (pas de carte RAID à plus de 400€ pièce à payer).

Cependant, les systèmes RAID logiciels sont très sensibles aux arrêts brusques (coupure de courant, crash système, etc.), aux erreurs logicielles (une simple erreur dans le programme mdadm pourrait ruiner la journée de plusieurs milliers d'administrateurs systèmes) et aux particularités liées au matériel (système de diagnostic, disque éjectable à chaud, etc.).

Pour faire simple, si vous utilisez un serveur avec du RAID logiciel, il doit obligatoirement être relié à un onduleur (avec batterie) pour éviter autant que possible les coupures de courant soudaines.

N.B. Les disques réseaux, aka "NAS", utilisent du RAID logiciel. Vous comprenez donc maintenant pourquoi les constructeurs recommandent de brancher un onduleur à son NAS.

N.B. Évitez comme le diable les cartes RAID pseudo-matérielles, comme les cartes / chipsets "Intel Rapid Storage" ou les cartes RAID sans marque à 30€. Non seulement vous aurez les mêmes problèmes qu'avec du RAID logiciel, mais en plus vous aurez tous les défauts du RAID matériel (sans les avantages). Une "vraie" carte RAID matérielle est très facilement reconnaissable par la présence d'une batterie sur la carte, de RAM et par son prix minimum de 400€ pour les moins chères. Mais pour être franc, un RAID logiciel bien configuré, avec un onduleur sur l'alimentation du serveur, vaut largement mieux qu'une carte RAID matérielle dans la plupart des cas.

Deuxièmement, il n'y a pas de deuxièmement, c'était une feinte. C'est le premier avril aujourd'hui, il fallait bien que je glisse un poisson dans cet article !

Installation de Debian Jessie en RAID 1

N.B. L'installation a été réalisée dans une machine virtuelle VirtualBox afin de faire des captures d'écran à chaque étape. Cela ne change rien aux étapes d'installation, mais dans les captures d'écran, vous pourrez voir que les disques sont de tailles peu conventionnelles ;)

Étape 0 : télécharger une iso d'installation

La première étape d'installation du système d'exploitation Debian est bien évidemment de télécharger l'installateur sur le site officiel du projet Debian : https://www.debian.org/distrib/netinst

Je vous laisse choisir la version qui convient le mieux pour votre machine : amd64 pour les processeurs 64 bits ou i386 pour les processeurs 32 bits. Libre à vous ensuite d'en faire un cd ou une clef USB bootable (avec l'utilitaire Rufus par exemple : https://rufus.akeo.ie/).

Ecran d’accueil de l'installateur Debian

Ecran d’accueil de l'installateur Debian

Une fois l'installateur lancé, choisissez "installer" dans le menu. J'utilise l'installateur graphique pour cet article, cela rend mieux pour les captures d'écrans ;)

N.B. Une connexion internet est requise pour réaliser l'installation. Connectez votre machine en Ethernet à votre box / routeur avant de lancer l'installation.

Étape 1 : choix de la langue et du clavier

Ecran de choix de la langue de l'installateur Debian.

Ecran de choix de la langue

Ecran de choix du pays de l'installateur Debian.

Ecran de choix du pays

Ecran de choix du clavier de l'installateur Debian

Ecran de choix du clavier

Je passe rapidement sur cette étape, il s'agit juste de choisir la langue du système.

Étape 2 : choix du nom de machine et du nom de domaine

Ecran de choix du nom de machine de l'installateur Debian

Ecran de choix du nom de machine

Lorsque l'installateur vous demande le nom de la machine, saisissez un nom facilement reconnaissable. Ce nom vous permettra plus tard de savoir sur quelle machine vous travaillez.

Ecran de choix du nom de domaine de l'installateur Debian

Ecran de choix du nom de domaine

De plus, si la machine en question est liée à un nom de domaine (carnetdumaker.net par exemple), saisissez le nom de domaine en question lorsque l'installateur vous le demande, sinon laissez le champ vide.

Étape 3 : création des utilisateurs

Ecran de choix du mot de passe super-utilisateur de l'installateur Debian

Ecran de choix du mot de passe super-utilisateur

Ecran de choix du nom d'utilisateur de l'installateur Debian

Ecran de choix du nom d'utilisateur

Ecran de choix du nom d'utilisateur (pour connexion) de l'installateur Debian

Ecran de choix du nom d'utilisateur (pour connexion)

Ecran de choix du mot de passe utilisateur de l'installateur Debian

Ecran de choix du mot de passe utilisateur

Choisissez ensuite un mot de passe pour le compte super-utilisateur ("root", qui a tous les droits sur la machine), un nom d'utilisateur pour votre compte et un mot de passe pour votre compte.

Azerty ou Qwerty, attention aux mots de passe

L'installateur est par défaut en clavier Qwerty, si vous utilisez un clavier Azerty, cela va poser des problèmes par la suite avec les mots de passe.

  • Si la machine est accessible localement uniquement (donc inaccessible depuis l'extérieur du réseau local), je vous conseille de choisir un mot de passe bidon, comme "azerty" durant l'installation, puis de le changer une fois l'installation terminée.

    Si vous saisissez un mot de passe fort lors de l'installation, que le clavier est en Qwerty puis en Azerty une fois l'installation terminée, votre mot de passe fort va se retourner contre vous. Il est préférable dans le cas d'un serveur local d'avoir un mot de passe faible durant l'installation et la configuration initiale, puis un mot de passe fort, avec toutes les protections adéquates une fois l'installation terminée.

  • Si la machine est accessible depuis internet (serveur dédié chez un hébergeur par exemple), je vous conseille de choisir un mot de passe aléatoire d'une dizaine de caractères contenant des minuscules et des majuscules, pas de chiffre ou de caractères spéciaux. Immédiatement après la fin de l'installation du serveur, connectez-vous avec le mot de passe et changez-le par un mot de passe (très) fort.

    PS Idéalement, générez un mot de passe aléatoire avant de commencer l'installation et notez-le sur un post-it, avec son équivalence en clavier Qwerty (au cas où).

N.B. En aucun cas, vous ne devez mettre un mot de passe faible sur un serveur accessible depuis internet. Des robots scannent toutes les adresses IP disponibles à la recherche de serveurs vulnérables. J'ai en moyenne un scan toutes les 4 minutes sur le serveur du site. Si vous avez le malheur de mettre un mot de passe faible durant l'installation, à peine le serveur redémarré, il sera déjà piraté.

Dans tous les cas, une fois l'installation terminée, votre compte et le compte root doivent disposer d'un mot de passe fort.

Un mot de passe fort est un mot de passe :

  • aléatoire,

  • de 12 caractères ou plus,

  • contenant des chiffres, des minuscules et des majuscules (plus idéalement, des caractères spéciaux),

  • qui ne fait partie d'aucun dictionnaire,

  • qui ne contient pas de répétition ou de suffixe numérique (exemple : aaabbbccc, ou toto1234),

  • qui est unique pour le service / compte en question.

Pour faire simple, installez Keepass Pro (gratuit et open source) et laissez-le gérer vos mots de passe.

Étape 4 : création des tables de partitions

Ecran de choix de partitionnement de l'installateur Debian

Ecran de choix de partitionnement

Une fois arrivé à l'étape du partitionnement des disques, choisissez l'option manuelle.

Ecran de choix de choix de disque de l'installateur Debian

Ecran de choix de choix de disque

Ecran de choix de création de MBR de l'installateur Debian

Ecran de choix de création de MBR

Résultat de la création des tables de partitions

Résultat de la création des tables de partitions

Sélectionnez un disque dur, créez une nouvelle table de partitions sur le disque et répétez l'opération pour chaque disque dur du système.

Étape 5 : création des partitions RAID

Ecran de choix de création d'une nouvelle partition de l'installateur Debian

Ecran de choix de création d'une nouvelle partition

Une fois les tables de partitions créées, sélectionnez l'espace vide du disque dur puis créez une nouvelle partition.

Ecran de choix de création d'une nouvelle partition de l'installateur Debian (choix de la taille de la partition)

Ecran de choix de création d'une nouvelle partition (choix de la taille de la partition)

Ecran de choix de création d'une nouvelle partition de l'installateur Debian (choix du type de partition)

Ecran de choix de création d'une nouvelle partition (choix du type de partition)

Ecran de choix de création d'une nouvelle partition de l'installateur Debian (choix du l'emplacement de la partition)

Ecran de choix de création d'une nouvelle partition (choix du l'emplacement de la partition)

Choisissez la taille de la partition (voir plus bas), le type (primaire) et l'emplacement (début).

Ecran récapitulatif de création d'une nouvelle partition de l'installateur Debian

Ecran récapitulatif de création d'une nouvelle partition

Ecran de choix du type de système de fichiers d'une nouvelle partition de l'installateur Debian

Ecran de choix du type de système de fichiers

Ecran de choix de l'indicateur "bootable" d'une nouvelle partition de l'installateur Debian

Ecran de choix de l'indicateur "bootable" d'une nouvelle partition

Modifiez le type de système de fichiers en "volume physique pour RAID".

Pensez à mettre l'indicateur d'amorçage à "présent" sur la première partition qui sert au démarrage du système.

Exemple de création de partition

Et de une

Exemple de schéma de partitionnement complet

Et de quatre, ouf

Une fois terminée, vous devriez obtenir une nouvelle ligne dans la table de partitions, répétez l'opération pour toutes les partitions restantes.

Je vous recommande le schéma de partitions suivant :

  • Partition 1 : 512 Mo, pour stocker le code de démarrage du système,

  • Partition 2 : tout l'espace restant, pour le système et les fichiers utilisateurs,

  • Partition 3 : 10 Go, pour stocker les fichiers temporaires,

  • Partition 4 : 512 Mo, pour la partition "swap".

N.B. Si vous utilisez un SSD, pensez à garder 10% d'espace libre en fin de disque pour "l'over provisioning".

N.B. La partition de "swap" sert à stocker des données temporaires quand la mémoire RAM se fait pauvre. Elle doit être directement typée comme "fichier d'échange swap", pas comme partition physique de RAID.

PS Libre à chacun de faire son propre schéma de partitionnement. Il n'y a pas de "meilleur" schéma, tout dépend du système, de son utilisation finale et de vos connaissances. Depuis quelque temps maintenant, je suis la logique du "plus c'est simple, mieux c'est", avec quatre partitions, le strict minimum.

Exemple de schéma de partitionnement complet, en RAID 1 sur deux disques

C'est fait !

Vous avez fini de créer vos partitions ? Super, maintenant recommencez sur chaque disque miroir. Chaque disque miroir doit avoir exactement le même partitionnement, dans le bon ordre, et à l'octet prés. Ce n'est pas une blague ou un poisson d'avril.

Si vous avez pris le temps de lire toutes les étapes avant de vous lancer, vous avez compris qu'il faut noter sur un post-it les valeurs saisies dans les étapes précédentes pour pouvoir les resaisir ensuite sans erreur. Les valeurs affichaient dans la liste des partitions sont différentes de celles saisies à l'origine (arrondi, alignement, etc.) ;)

Étape 6 : création des volumes RAID

Ecran de configuration des disques RAID logiciels de l'installateur Debian

Les choses sérieuses commencent

Ecran de confirmation d'écriture des tables de partition de l'installateur Debian

Ecran de confirmation d'écriture des tables de partition

Une fois les partitions physiques configurées, il faut passer aux partitions logiques RAID. Pour cela rien de plus simple, il faut lancer l'utilitaire adéquat en haut de la liste des partitions.

Ecran de création d'un disque RAID de l'installateur Debian

Ecran de création d'un disque RAID

Ecran de choix du type de disque RAID de l'installateur Debian

Ecran de choix du type de disque RAID

Ecran de choix du nombre de disques dans la grappe RAID 1 de l'installateur Debian

Ecran de choix du nombre de disques dans la grappe RAID 1

Ecran de choix du nombre de disques réservé de l'installateur Debian

Ecran de choix du nombre de disques réservé

Créez un nouveau disque logique RAID, de type RAID 1 (miroir, ou autre selon votre choix), choisissez le nombre de disques de la grappe (deux minimum pour RAID 1) et le nombre de disques vierges à réserver pour faire un remplacement automatique en cas de défaillance (optionnel).

Ecran de choix des disque de la grappe RAID 1 de l'installateur Debian

Ecran de choix des disque de la grappe RAID 1

Exemple de schéma de partitionnement avec des disques en RAID 1

Le résultat final

Choisissez les disques à ajouter dans la grappe de disques et répétez l'opération pour chaque grappe à créer (trois au total si vous utilisez mon schéma de partitionnement).

Exemple de schéma de partitionnement (partition de démarrage)

Exemple de partition de démarrage

Exemple de schéma de partitionnement (partition système)

Exemple de partition système

Exemple de schéma de partitionnement (partition pour les fichiers temporaires)

Exemple de partition pour les fichiers temporaires

Exemple de schéma de partitionnement (avec partitions sur disques RAID 1)

Le résultat final

Ensuite, en reprenant la méthodologie vue dans l'étape 5, créez les "vraies" partitions systèmes sur les disques virtuels RAID.

Choisissez EXT4 comme format de fichiers, /boot comme point de montage de la première partition, / pour la seconde et /tmp pour la troisième. Ajoutez une étiquette à chaque disque pour vous y retrouver plus tard.

Ecran de fin de la création des tables de partitions

Fin de la création des tables de partitions

Ecran d'écriture des tables de partitions de l'installateur Debian

Le point de non retour

Quand vous êtes content de vos partitions, confirmez l'écriture des tables de partitions et continuez à l'étape 7.

N.B. L'écriture des tables de partitions supprime toutes les données présentes sur les disques.

Étape 7 : finalisation de l'installation

Ecran de choix du pays pour les mises à jours

Ecran de choix du pays pour les mises à jours

Ecran de choix des serveurs de mises à jours

Ecran de choix des serveurs de mise à jours

Ecran de choix du serveur proxy pour les mises à jours

Ecran de choix du serveur proxy pour les mises à jours

Ecran de choix de participation aux statistiques anonymes de l'installateur Debian

Ecran de choix de participation aux statistiques anonymes

Choisissez le pays et le serveur de mise à jour. Spécifiez un proxy si nécessaire, sinon laissez le champ vide. Pour finir, choisissez si vous voulez participer au programme de statistiques anonymes du projet Debian.

Ecran de choix des programmes à installer de l'installateur Debian

Ecran de choix des programmes à installer

Quand l'installateur vous le demande, choisissez "serveur SSH" et "utilitaires usuels du système". Un serveur n'a pas besoin d'environnement de bureau (graphique), de serveur d'impression ou autre. Il a par contre besoin d'un terminal sécurisé de commande à distance, ce que propose le serveur SSH.

N.B. Si vous souhaitez avoir un serveur web sur le serveur, ne cochez pas "serveur web" lors de l'installation. Faites l'installation vous-même en suivant un tutoriel dédié, c'est beaucoup plus propre.

Ecran d'installation de GRUB (bootloader) de l'installateur Debian

Ecran d'installation de GRUB (bootloader)

Ecran de choix du disque cible pour l'installation de GRUB (bootloader)

Ecran de choix du disque cible pour l'installation de GRUB (bootloader)

Pour terminer l'installation, installez le code de démarrage sur un des disques physiques du serveur.

Étape 8 : voilà

Ecran de fin d'installation de Debian

Ecran de fin d'installation de Debian

Capture d'écran d'une console Debian

A vous de jouer !

Un redémarrage plus tard, et voilà, votre Debian est maintenant fonctionnel !

Connectez-vous avec le mot de passe temporaire et changez-le avec la commande passwd. N'oubliez pas de changer le mot de passe root avec su passwd.

Capture d'écran de la console d'un système Debian avec une synchronisation de disques RAID en cours (mdadm)

Synchronisation des disques en cours

N.B. Après le redémarrage, l'installation des disques continue en tâche de fond. La synchronisation des disques peut prendre plusieurs jours, voir semaines. N'oubliez donc pas de lire le chapitre bonus un peu plus bas ;)

Évitez le drame du "No boot device found" après un incident de disque

Pour illustrer ce chapitre, je vais vous raconter une petite histoire.

Il était une fois ...

… un administrateur système, fraichement sorti de l'université, qui se lance dans le domaine des serveurs dédiés. Cet administrateur en herbe installe son serveur, en RAID 1, le configure, le sécurise et tout content de lui, l'utilise pour ses développements informatiques quotidiens.

Un jour de semaine, le superviseur matériel du serveur envoie une alerte, un des disques montre des signes de faiblesse. Pas de problème se dit le jeune administrateur, il suffit d'éjecter le disque défaillant et d'appeler le support technique pour faire remplacer ledit disque. Quatre commandes en terminal et un ticket de support plus tard, le problème est résolu.

Le temps passe, et une mise à jour du système d'exploitation du serveur vient pointer le bout de son nez. L'administrateur en herbe, fort de ses connaissances, sait qu'il faut tenir son serveur à jour pour éviter de se retrouver avec des Chinois, Brésiliens et/ou Russes en train de boire un ver dans son /home. Il fait donc la mise à jour et redémarre le serveur.

No bootable found

No bootable found

Et soudain, c'est le drame. Le serveur ne répond plus. Plus de ping, plus de commande à distance, plus de boot. "Aucun disque de démarrage" répète le serveur, impossible se dit l'administrateur.

Le serveur est immédiatement redémarré en mode de secours. Les disques sont montés et analysés. Tout est là, pas de chinois, pas de Russes, pas même un Brésilien. Bizarre.

Cette histoire, vous l'aurez compris, est inspirée de faits réels. Mais une question reste en suspens : pourquoi le serveur a subitement cessé de démarrer ?

Un indice : pour qu'un disque soit "bootable" (démarrable), il faut qu'un petit bout de code (le bootloader) soit inscrit dans le premier secteur du disque.

Eh oui, quand on a deux disques (ou plus) dans une configuration RAID 1, il ne faut pas oublier d'installer le code de démarrage sur les disques miroirs. Sinon, une fois que le disque d'origine ayant servi à l'installation du système est remplacé, plus rien ne démarre. Et paf le serveur.

Pour choisir les disques sur lesquels le code de démarrage doit être installé, il faut exécuter la commande suivante :

1
dpkg-reconfigure -plow grub-pc

Installation manuelle de GRUB-PC (bootloader), étape 1 / 4

Installation manuelle de GRUB-PC (bootloader), étape 2 / 4

Laissez les deux premiers champs intacts, appuyez simplement sur entrée pour passer au champ / formulaire suivant.

Installation manuelle de GRUB-PC (bootloader), étape 3 / 4

Une fois sur le formulaire de sélection des disques, utilisez la touche espace pour sélectionner les disques adéquats (ne pas sélectionner les disques mdN, qui sont les disques virtuels du RAID). Une fois les disques sélectionnés, appuyez sur la touche entrée pour lancer l'installation.

Installation manuelle de GRUB-PC (bootloader), étape 4 / 4

Cette opération doit être effectuée après chaque remplacement de disque. Sinon, vous aurez une vilaine surprise au pire moment possible plus tard.

Bonus : accélérer la synchronisation des disques

Une synchronisation de disques peut prendre plusieurs dizaines de jours. Cela est dû à la façon dont mdadm gère les ressources système par défaut.

Mdadm est configuré par défaut pour utiliser le moins de ressources système possibles, dans le but de ne pas impacter les applications utilisateurs lors d'une synchronisation automatique en tâche de fond.

Il est cependant possible de lever temporairement la limitation en ressource de mdadm avec la commande suivante :

1
2
echo 125000 > /proc/sys/dev/raid/speed_limit_min
echo 400000 > /proc/sys/dev/raid/speed_limit_max

Cette commande autorise mdadm à utiliser un minimum de 125Mo/s de bande passante pour les disques durs, avec un maximum de 400Mo/s (pratique pour les SSD).

Grâce à cette autorisation exceptionnelle à pomper chaque Mo/s possible en provenance des disques, mdadm peut faire une synchronisation complète d'une grappe de disques de 1To en 45 minutes (pour peu que les disques soit récents).

Pour revenir aux valeurs par défaut (1 Mo/s) :

1
echo 1000 > /proc/sys/dev/raid/speed_limit_min

Bonus : Gestion et maintenance d'une grappe de disques

Savoir installer un système d'exploitation Debian en configuration RAID, c'est bien, mais il faut aussi savoir gérer et maintenir cette installation.

Ce chapitre a pour but de vous donner quelques commandes bien pratiques pour résoudre des cas d'usages classiques.

Éjecter un disque d'une grappe de disques

Capture d'écran des emails envoyés par mdadm en cas d'erreur de disques

Aie. aie. aie.

Un disque vient de planter et son remplacement s'annonce inévitable, car mdadm vous supplie par mail de faire quelque chose. Ou plus simplement, vous souhaitez voir ce qu'il se passe quand il manque un disque dans une grappe.

N.B. Si un disque est mourant, ne redémarrez surtout pas le serveur. C'est la pire mauvaise idée qu'il soit. Avant d'éjecter un disque défaillant, il faut le retirer de la (les) grappe(s) de disques dont il fait partie. Si vous ne le faites pas, de grands malheurs s'abattront sur vous.

Capture d'écran de la procédure en cas de défaillance d'un disque avec mdadm, étape 1/ 2

Pour retirer un disque, il faut d'abord passer la grappe de disques en mode dégradée en marquant le disque comme "défaillant" (remplacer N par le numéro de disque / partition adéquat) :

1
mdadm --fail /dev/mdN /dev/sdaN

Capture d'écran de la procédure en cas de défaillance d'un disque avec mdadm, étape 2/ 2

Une fois le disque marqué comme "défaillant", on peut retirer le disque de la grappe sans souci avec la commande suivante :

1
mdadm --remove /dev/mdN /dev/sdaN

À partir de là, vous pouvez éjecter physiquement le disque du serveur, le remplacer et mettre un nouveau disque dans le serveur à la place de l'ancien.

(Re)Ajouter un disque à une grappe de disques

Imaginons que vous venez de remplacer un disque défaillant. Vous souhaitez donc maintenant l'intégrer dans la grappe de disques adéquate.

Si le disque est neuf (et uniquement si il est neuf, donc complètement vierge) : il faut d'abord cloner les partitions d'un disque existant de la grappe vers le disque neuf.

Exemple de clonage des partitions du disque sda vers sdb (à exécuter avec les droits de super-utilisateur) :

1
sfdisk -d /dev/sda | sfdisk /dev/sdb

N.B. Le nouveau disque doit être de même contenance et idéalement de même modèle / performance que les autres disques de la grappe.

Une fois le disque prêt à être intégré dans la grappe, il suffit d'exécuter la commande suivante (remplacer N par le numéro de disque / partition adéquat) :

1
mdadm --add /dev/mdN /dev/sdbN

Capture d'écran d'une grappe de disques RAID en "recovery" (mdadm)

Recovery en cours …

Le disque va alors entrer en mode "recovery" et commencer un très long processus de synchronisation avec les disques existants. Inutile d'aller vous faire un café, cela peut durer plusieurs dizaines de jours (sauf si vous utilisez l'astuce du chapitre précédent). Le serveur reste cependant parfaitement fonctionnel durant la phase de synchronisation des disques.

Voir l'état d'une grappe de disques

Pour voir l'état des grappes de disques, vous pouvez utiliser la commande suivante :

1
cat /proc/mdstat

Capture d'écran de l'état d'une grappe de disques RAID (mdadm)

Tout va bien, pour le moment.

Avec cette commande, vous avez un aperçu de l'état de tous les disques et de toutes les grappes de disques.

Le plus important est le UU en fin de ligne. Un u majuscule signifie que le disque correspondant est sain, un underscore signifie que le disque est défaillant. En cas de problème, un (F) doit s'afficher à côté du nom du disque défaillant sur la même ligne.

Pour avoir un aperçu en temps réel de l'état des disques, vous pouvez utiliser la commande suivante :

1
watch cat /proc/mdstat

Capture d'écran de l'état d'une grappe de disques RAID (mdadm) avec un monitoring quasi temps réel

Celle-ci permet d'actualiser le résultat de la commande précédente toutes les deux secondes par défaut.

Pour avoir plus de détails sur un disque en particulier, vous pouvez utiliser la commande suivante (pensez à remplacer N par le numéro de disque) :

1
mdadm --detail /dev/mdN

Conclusion

Ce tutoriel est désormais terminé.

N'hésitez pas à me faire savoir si vous avez des commentaires sur le format de l'article ou son contenu. C'est un article pilote ;)

Si ce tutoriel vous a plu, n'hésitez pas à le commenter sur le forum, à le diffuser sur les réseaux sociaux et à soutenir le site si cela vous fait plaisir.