RAID simple

RAID1 © hilsz.comCet article résume comment créer simplement un volume de données sécurisé avec Linux.
Pour simplifier, sont traitées les procédures courantes de montage et de dimensionnement, à travers le cas usuel de la mise en miroir RAID1.
Ne sont pas abordés ici le volume de boot, ni d’autres schémas de duplication, raid5/6/10, aux principes similaires, ni les opérations de remplacement de disque et de réparation en cas de panne. Ceci fera l’objet d’un autre article.
L’exemple suivant est donné pour Fedora ; il est transposable à Ubuntu, les commandes sont à exécuter en su/sudo.

0 Objectif

Créer un volume sécurisé en s’appuyant sur 2 disques, en RAID1.

1 Btrfs

La solution de choix est désormais Btrfs, qui supplante les autres procédés LVM, mdadm, ZFS et dmraid.
Btrfs
Créer 2 partitions btrfs avec gparted/parted/fdisk, par exemple, partitions logiques /dev/sda5 et /dev/sdb5.
Créer et formater le volume (ou fs filesystem) en RAID1 :
mkfs.btrfs -f -m raid1 -d raid1 /dev/sda5 /dev/sdb5
Monter le volume :
mkdir /mnt/data
mount -o device=/dev/sda5,device=/dev/sdb5 /dev/sda5 /mnt/data
Monter le volume au démarrage, ajouter dans /etc/fstab :
/dev/sda5 /mnt btrfs device=/dev/sda5,device=/dev/sdb5 1 2
Vérifier :
btrfs filesystem show /mnt/data

Pour redimensionner un volume btrfs, démonter le volume :
umount /mnt/data
Modifier la taille de chaque partition avec gparted/parted/fdisk.
Remonter et dimensionner le volume :
btrfs filesystem resize [<devid>:]<size> /mnt/data
devid = numéro de partition dans le volume (1 par défaut)
size = max | [+|-]nnnn[K|M|G], inférieure à la taille de la partition physique

2 mdadm

Cette solution décagénaire reste proposée, mais ne fonctionne pas aussi bien que Btrfs.
mdadm (software raid) s’appuie sur les formats de fs éprouvés, ext3 ou xfs. Cet exemple utilise ext3.

Créer les partitions ext3 avec gparted/parted/fdisk sur chaque disque, /dev/sda5 et /dev/sdb5.
Les formater en ext3 :
mkfs.ext3 /dev/sda5 -v -b 4096 (et resp. /dev/sdb5)

Avec Fedora 20, neutraliser SELinux, installer mdadm.
Activer le module RAID1 :
modprobe raid1
Au démarrage, rajouter cette commande dans /etc/rc.d/rc.local

Effacer les superblocs existants :
mdadm --zero-superblock /dev/sda5 (et resp. /dev/sdb5)
Supprimer toute trace de RAID hardware/fakeraid :
dmraid -an
dmraid -r -E
rd.dm=0 en option kernel

Préparer chaque partition du volume RAID1 :
fdisk /dev/sda (resp. /dev/sdb)
t
5
fd (type de partition ‘Linux raid auto’, au lieu de 83 ‘Linux’ ext2/ext3/ext4)
w

Créer et nommer le volume virtuel (par exemple, /dev/md2), le formater (en ext3), le monter (par exemple en /mnt/data), le monter au démarrage (éditer /etc/fstab), par :
mdadm --create --verbose /dev/md2 --level=mirror --raid-devices=2 /dev/sda5 /dev/sdb5
mkfs.ext3 -v -b 4096 /dev/md2
(mkdir /mnt/data)
mount /dev/md2 /mnt/data
Ajouter à /etc/fstab :
/dev/md2 /mnt/data ext3 rw 0 0

Afficher en permanence, utile pour visualiser la configuration et l’avancement de la synchronisation :
watch -n1 cat /proc/mdstat
Pour arrêter la sync (cf /proc/mdstat) :
echo 0 > /proc/sys/dev/raid/speed_limit_min
Pour la redémarrer ou l’accélérer, laisser 1000 (défaut) ou 100000 :
echo 100000 > /proc/sys/dev/raid/speed_limit_min

Redimensionner chaque partition, avec gparted/resize2fs, en démontant le volume par :
umount /mnt/data
mdadm --stop /dev/md2
En RAID1, la taille est réduite à la plus petite des 2 partitions si différentes.

3 Autres solutions RAID

ZFS reste la référence, notamment avec FreeBSD et FreeNAS.

dmraid est à proscrire.

4 Synchronisation avec décalage

Btrfs et ZFS permettent des snapshots. Programmer un cron quotidien par exemple, snapshot à monter en cas de reprise.

DirSyncPro est une alternative au RAID pour dupliquer sélectivement des répertoires ou des fichiers, par des jobs avec fréquence et retard programmables, compression éventuelle et gestion des conflits (contrairement à rsync+cron).

Rappel : outre gparted pour les partitions, on peut dupliquer un disque entier par :
yum install pv
dd if=/dev/sda bs=128M conv=notrunc,noerror | pv | dd of=/dev/sdb bs=128M conv=notrunc,noerror

5 Liens utiles

Btrfs
http://btrfs.wiki.kernel.org
http://www.howtoforge.com/a-beginners-guide-to-btrfs
mdraid
http://raid.wiki.kernel.org
http://www.howtoforge.com/software-raid1-grub-boot-fedora-8
http://www.howtoforge.com/how-to-set-up-software-raid1-on-a-running-system-incl-grub2-configuration-ubuntu-10.04
ZFS
http://open-zfs.org
DirSyncPro
http://www.dirsyncpro.org

04 mars 2014 par Admin
Catégories : IT, Tech | Tags: , | 1 commentaire

Un commentaire

  1. Ping : Cet article décrit une architecture simple pour serveur privé.

Laisser un commentaire