User Tools

Site Tools


informatique:linux:raid0_sous_linux

This is an old revision of the document!


RAID stripping

Le RAID logiciel sous Linux

Le RAID est un mécanisme de gestion de unités de stockage, qui peut être matériel (via une carte dédiée) ou logiciel (géré par le système d'exploitation ou un driver). Il existe différents type de RAID (0, 1, 5, etc) qui déterminent chacun un mode de gestion. Je ne m'attarde pas là dessus, pour plus d'info, aller voir wikipédia : le RAID.

Installation de Debian avec RAID0

Le but de cet article est de décrire la procédure que j'ai utilisée pour installer une Debian Lenny sur 2 disques dur en RAID0 logiciel avec Linux Software RAID. Mes motivations sont :

  • pas de perte d'espace disque
  • tirer parti des performances maximale avec mon matériel (disques et CPU/carte mère)
  • un RAID logiciel car je n'ai pas de contrôleur RAID matériel

Le RAID0 ne permet pas de redondance ni de récupération des données en cas de crash disque ; qu'à cela ne tienne je fais de la synchronisation régulièrement.

J'ai suivi la doc disponible sur ubuntu-fr : Comment installer ubuntu sur RAID 0

Situation actuelle :

  • 2 disques durs SATA de 1 To chacun

Voici ce que je veux faire :

  • une partition de swap de 1Go
  • un /boot de 1Go aussi
  • un / de 6Go
  • le reste dans /data

Voici le résultat du partitionnement de mes disques (GB = Go) :

/dev/sda
  /dev/sda1 de 1GB   (swap)
  /dev/sda2 de 3GB   (RAID) -> la moitié du futur /
  /dev/sda3 de 996GB (RAID) -> la moitié du futur /data
/dev/sdb
  /dev/sdb1 de 1GB   (ext3) -> /boot (penser à sélectionner "indicateur d'amorçage : présent")
  /dev/sdb2 de 3GB   (RAID) -> l'autre moitié du futur /
  /dev/sdb3 de 996GB (RAID) -> l'autre moitié du futur /data

Je vais ensuite créer 2 volumes RAID0 avec l'installateur Debian :

  • /dev/sda2 et /dev/sdb2 qui formeront le volume /dev/md0
  • /dev/sda3 et /dev/sdb3 qui formeront le volume /dev/md1

NB : La partition /boot ne peut pas être créée sur du raid logiciel pour pouvoir booter dessus ; mais cela ne pose pas de problème de performance car elle n'est plus utilisée une fois la machine bootée.

Création d'un RAID1

à la main

Lister les disques et partitions sur la machine (on doit être root sinon ça n'affiche rien, même pas un message d'erreur) :

sudo fdisk -l | grep Disque
 Disque /dev/sda: 6442 Mo, 6442450944 octets
 Disque /dev/sdc: 1073 Mo, 1073741824 octets
 Disque /dev/sdb: 1073 Mo, 1073741824 octets

On va faire un RAID1 avec les disques {/dev/sdc,d} = on doit créer 2 partitions primaires de type “fd” (Linux raid auto) sur tout l'espace de chaque disque.

⇒ Cela nous donne donc /dev/sdb1 et /dev/sdc1 2 partitions d'environs 1 gigaoctet chacune.

Créer un volume RAID1 ; y rattacher les 2 partitions de 1 Go

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd{b,c}1

cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdb1[0] sdc1[1]
      1044096 blocks [2/2] [UU]
      
unused devices: <none>

On déclare un disque en erreur (“faulty”)

mdadm /dev/md0 --fail /dev/sdb1

cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdc1[1] sdb1[2](F)
      1044096 blocks [2/1] [_U]
      
unused devices: <none>

On retire les disques défectueux du volume RAID

mdadm /dev/md0 --remove failed

cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdc1[1]
      1044096 blocks [2/1] [_U]
      
unused devices: <none>

On ajoute un nouveau disque dans le RAID = le nouveau disque se resynchronise

mdadm /dev/md0 --add /dev/sdb1

cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdb1[2] sdc1[1]
      1044096 blocks [2/1] [_U]
      [=>...................]  recovery =  8.7% (91776/1044096) finish=0.3min speed=45888K/sec
      
unused devices: <none>

Puis on formate la nouvelle partition RAID (/dev/md0 en ext3 :

mke2fs -T ext3 /dev/md0

Automatisation du montage :

vi /etc/fstab
 /dev/md0       /mnt/RAID1      ext3    defaults        1 0

Divers

Monitorer son RAID

cat /proc/mdstat 
 Personalities : [raid0] 
 md1 : active raid0 sda3[0] sdb3[1]
       1945696256 blocks 64k chunks
       
 md0 : active raid0 sda2[0] sdb2[1]
       5863552 blocks 64k chunks
       
 unused devices: <none>

On peut avoir plus de détails avec :

mdadm --detail /dev/md1
    /dev/md1:
         Version : 00.90
   Creation Time : Sat Feb  7 12:49:57 2009
      Raid Level : raid0
      Array Size : 1945696256 (1855.56 GiB 1992.39 GB)
    Raid Devices : 2
   Total Devices : 2
 Preferred Minor : 1
     Persistence : Superblock is persistent
 
     Update Time : Tue Feb 10 20:31:42 2009
           State : clean
  Active Devices : 2
 Working Devices : 2
  Failed Devices : 0
   Spare Devices : 0
 
      Chunk Size : 64K
  
            UUID : 9695e8d2:87d83bd5:e070d1d4:842cdf7e
          Events : 0.5
  
     Number   Major   Minor   RaidDevice State
        0       8        3        0      active sync   /dev/sda3
        1       8       19        1      active sync   /dev/sdb3

Créer un volume RAID1 avec un seul disque

Il s'agit ici de créer un RAID 1 avec un seul disque, donc un RAID en défaut (pas de réplication de données mais la machine fonctionne toujours). Cela permet par exemple de préparer une machine avec un seul disque en attendant la livraison du second.

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 missing

→ On créer /dev/md0 en RAID1 en utilisant 2 partitions : /dev/sda1 et une qui manque en temps normal c'est plus utile d'utiliser une 2nde partition

Liens

informatique/linux/raid0_sous_linux.1262675513.txt.gz · Last modified: 2013/10/14 20:54 (external edit)