Modèle de Serveur Debian Raid5 et LVM passe partout

Les machines récentes multiplient les périphériques, tels que le nombre de disques connectables, de quoi faire de bon serveur à coût plus réduit qu’il y a quelques années.

Un serveur doit répondre à un certain nombre de critères dont celui de la tolérance de panne.

Voici donc un modèle ou proposition générique de serveur Debian sur un support RAID5 et LVM.

Pré-requis

Qui dit RAID5 implique un nombre minimal de disques. Le modèle décrit ci dessous implique l’utilisation de 4 disques de 400GO. Pour votre utilisation, vous aurez besoin d’adapter les chiffres données.

Installation

L’installation est standard, et utilise le CD d’installation de Debian.

On procède à l’installation classique jusqu’au moment du partitionnement des disques, donc nous choisirons le partitionnement manuel

Partitionnement

Partitionner les disques comme suit :

disktailletypeplacepoint de montageAmorcefile system
sda18Gbprimarydebut/bootouiext3
sdb18Gbprimarydebutsansouiext3
sdc18Gbprimarydebutswap
sdd18Gbprimarydebutswap

Note sur la partition boot

Il est possible de monter la partition boot sur du RAID1. J’ai choisi cette option pour deux raisons :

  • Le Raid1 en boot génère des warning par le grub. En tant que serveur, je préfère écarter ce genre de message.
  • En utilisant deux partitions distinctes, cela me permet de créer un boot de secours en cas de mauvaise manipulation.

Note sur le swap

Sur nos machines, la mémoire utilisée est en général supérieure à 1Go voire plus, ce qui ne justifie pas de swap, la mémoire restant suffisante. Dans la géométrie RAID5, nous utilisons en général des tailles de disques identiques pour ne pas perdre d’espace disque.

Pour ces deux raisons, deux partions swap sont créés, parce qu’il y a de la place à combler, et que nous activerons si vraiment le besoin s’en fait sentir. Dans ce cas, pour des raisons de performance, nous activerons le swap de sdd2 en priorité, car le sdd1 ne sera pas par défaut sollicité car étant utilisé comme spare du RAID5.

Poursuivons notre partitionnement :

disktailletypeplacepoint de montageAmorcefile system
sda2le resteprimarydebutraid
sdb2le resteprimarydebutraid
sdc2le resteprimarydebutraid
sdd2le resteprimarydebutraid

Configuration du RAID

Dans le menu configurer le raid logiciel, procéder à la configuration suivante :

type raid 5
nombre de périphérique 3
nombre de périphérique de réserve 1
Sélectionner les périphériques raid

[] /dev/sda1
[*] /dev/sda2
[] /dev/sda1
[*] /dev/sda2
[] /dev/sda1
[*] /dev/sda2
[] /dev/sda1
[] /dev/sda2

Sélectionner les périphériques raid de réserve

[] /dev/sda1
[] /dev/sda1
[] /dev/sda1
[] /dev/sda1
[*] /dev/sda2

Dans cette configuration, nous avons un disque de réserve en cas de crash d’un des disques.

Configuration de LVM

Dans le menu configurer le gestionnaire de volume (LVM), procéder à la configuration suivante :

Nom : LVM

Sélectionner les périphériques

[*] /dev/md0

puis créer les volumes logiques :
Dans LVM, ROOT 20G
Dans LVM, HOME 100G
Dans LVM, VAR 20G
Dans LVM, OPT 50G
Dans LVM, SRV 100G
Dans LVM, USR 50G
Dans LVM, TMP 1G
et terminer les modifications.

Dans ce cas de figure, il reste quelques centaines de GO que je pourrais utiliser pour effectuer des backups et pour agrandir les partitions existantes selon l’évolution des applications du serveur, ce qui me garantit une certaine pérennité.

Petit point sur VAR et SRV

Selon l’architecture FHS, et contrairement à la philosophie de plusieurs distributions linux, le répertoire /var ne doit pas contenir les données applicatives mais doit être stocker dans /srv. A ce titre, dans ce modèle, les bases de donnée, les sites web, ftp, les repositories git, cvs, svn, etc… seront stocké dans /srv. De plus lors de backup de type données applicatives, une seule opération sera effectué, la sauvegarde de /srv.

Affectation des volumes logiques

Il ne reste plus qu’à formater et à adjoindre un point de montage pour les volumes logiques de LVM

volumepoint de montagefile system
ROOT/ext3
HOME/homeext3
VAR/varext3
opt/optext3
SRV/srvext3
USR/usrext3
TMP/tmpext3

Appliquer les modifications et poursuivre l’installation standard.

Des messages d’avertissement apparaitront pour nous informer que la partition /dev/sdb2 n’a pas de point de montage, ce qui est normal, nous pouvons donc finaliser l’installation de Debian.

Démarrage du serveur

Après démarrage du serveur nous pouvons vérifier notre installation

root@localhost:~# mount
/dev/mapper/LVM-ROOT on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
/dev/mapper/LVM-HOME on /home type ext3 (rw)
/dev/mapper/LVM-OPT on /opt type ext3 (rw)
/dev/mapper/LVM-SRV on /srv type ext3 (rw)
/dev/mapper/LVM-TMP on /tmp type ext3 (rw)
/dev/mapper/LVM-USR on /usr type ext3 (rw)
/dev/mapper/LVM-VAR on /var type ext3 (rw)
root@SrvDev:~#

Comme évoqué plus haut nous allons modifier le fichier fstab pour :

  • Désactivation des swap au démarrage (mais que l’on garde tout de même au cas où le besoin s’en ferait sentir)
  • Affecter les priorités sur les swap (Plus le chiffre est élevé, plus la priorité est élevée.)
# /etc/fstab: static file system information.
.
.
.
# swap was on /dev/sdc1 during installation
UUID=xxxxx none            swap    sw,noauto,pri=1              0       0
# swap was on /dev/sdd1 during installation
UUID=xxxxx none            swap    sw,noauto,pri=2             0       0
.
.
.

Pour terminer

Vous voilà donc avec un serveur polyvalent et d’une tolérance de panne assez élevée, qui après être équipé de scripts de maintenance du système, hébergera vos sites web et diverses applications.

Cet article vous a été utile ? Partage it !

Laisser un commentaire

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

Si vous le souhaitez, renseignez le champ 'Nom' de cette façon : 'VotreNom@VotreMotClef' pour obtenir une ancre optimisée pour les moteurs de recherche.