RAID logiciel : mdadm

RAID logiciel : mdadm

En ce moment j’ai pour projet de mettre en œuvre une baie de disque offrant des services de haute disponibilité et de tolérance de panne avec notamment la mise en œuvre d’un RAID logiciel ( RAID5 au final ) ainsi qu’un bonding d’interfaces pour accroître les débits réseaux.

Note bon mon réseau étant en 100M/s et offrant donc des taux maximum de 12Mo/s le simple RAID logiciel ne sers a rien, quel que soit le niveau choisi, les utilisateurs ne voyant absolument pas la différence à travers le réseau.

S’agissant ici d’un RAID logiciel, il est important de noter que seule la lecture des données sera optimisée ( doublée dans le cas du RAID0 ). En effet l’écriture et le stripping des données étant géré par la couche logicielle; cette dernière ne sait pas écrire en parallèle les données sur les deux disques. Le RAID0 logiciel se contente de lire le fichier et de copier alternativement les données sur un disque puis sur l’autre.

Paquets : sys-fs/mdadm: constitue l’utilitaire d’administration des volumes RAID

Création des partitions:

Pour mes tests j’ai créé une partition sur hdb:

/dev/hdb3 66 127 498015 fd Linux raid autodetect

et une autre sur hdc:

/dev/hdc2 6 67 498015 fd Linux raid autodetect

pour les créer de même taille, utilisons cfdisk qui offre une interface ncurses et permet notamment de saisir une taille en MB. le type de la partition a créer est fd.

Configuration du noyau

on vérifie l’état du support RAID dans le noyau :

localhost# grep RAID /usr/src/linux/.config
# CONFIG_RAID_ATTRS is not set
CONFIG_BLK_DEV_3W_XXXX_RAID=y
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID456=m

on charge ensuite le module relatif au RAID souhaité

localhost# modprobe raid0

vérifions

localhost# lsmod | grep raid
raid456               119068  0
async_xor               6016  1 raid456
async_memcpy            5504  1 raid456
async_tx                6272  3 raid456,async_xor,async_memcpy
xor                    17932  2 raid456,async_xor
raid0                  10240  1
md_mod                 70428  3 raid456,raid0
localhost#

création des volumes RAID

Arrive maintenant la mise en œuvre du RAID logiciel à proprement parler:

Nous allons utiliser les partitions /dev/hdb3 et /dev/hdc2 pour créer un RAID0 représenté par le point de montage /dev/md0

localhost# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/hdc2 /dev/hdb3

fixer la configuration dans le ficheir de /etc/mdadm.conf en ajoutant la ligne suivante.

On obtient l’UUID d’un Array en tapant la commande suivante :

localhost# mdadm -D /dev/md0

ARRAY /dev/md0 level=raid0 num-devices=2 UUID=27b4e3b9:5eaf5ab5:80c8e32f:86a4b030

Ajout du service à la séquence de boot:

localhost# rc-update add mdadm boot

suppression d’un disque dans un Array:

Pour pouvoir supprimer un disque d’un array il convient dans un premier temps de le mettre en erreur le périphérique à retirer avec la commande suivante :

localhost# mdadm --manage /dev/md0 --fail /dev/hdc2

Il est ensuite possible de retirer le périphérique de l’Array.

localhost# mdadm --manage /dev/md0 --remove /dev/hdc2

Enfin on peut arreter l’Array avec la commande suivante.

localhost# mdadm --manage --stop /dev/md0

Problèmes rencontrés:

liens connexes:

One thought on “RAID logiciel : mdadm

Laisser un commentaire

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