Auteur : Sébastien Lange (doownek)

Date : Janvier 2006

Mise en place RAID 1 sous Debian sur Sparc

Sommaire

Introduction

La Distribution Sarge ne propose pas, pour les architectures Sparc, la mise en place d'un RAID soft pendant l'installation, donc pour contourner ce problème nous devons faire une installation provisoire sur une partition qui pourra être réutilisée. Le mieux est de prendre la partition qui sera la swap une fois le RAID1 mis en place. Je vous conseille d'installer sans swap, nous activerons le swap lorsque le Raid sera en place.

Mise en place du RAID1

Lorsque votre système est installé, il faut installer mdadm qui permet de mettre en place le RAID1:

#apt-get install mdadm

Préparation des disques

Il suffit de lancer fdisk pour définir les partitions, attention de ne pas toucher à la partition sda1 car vous risquez de perdre votre système fraîchement installé. Attention les partitions qui seront en RAID1 doivent avoir la même taille, la tolérance max est de 1%.

#fdisk /dev/sda

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 17274 cylinders

Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System

   /dev/sda1             0       954    976896   83  Linux native

   /dev/sda2           954     17274  16711680   fd  Linux raid autodetect

   /dev/sda3             0     17274  17688576    5  Whole disk

 

#fdisk /dev/sdb

Disk /dev/sdb (Sun disk label): 19 heads, 248 sectors, 7508 cylinders

Units = cylinders of 4712 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System

   /dev/sdb1  u          1       415    975384   82  Linux swap

   /dev/sdb2           415      7508  16711108   fd  Linux raid autodetect

   /dev/sdb3             0      7508  17688848    5  Whole disk

Comme vous pouvez le remarquer, la partition swap débute à 1 et non à 0. Les premiers blocks sur les systèmes de fichiers ext2 et ext3 ne sont pas utilisés, par contre les partitions MD et swap commencent au premier block défini ce qui est gênant car SILO écrit au block 0.

Une fois partitionné, nous pouvons créer le miroir :

#mdadm --create /dev/md0 --level 1 --raid-devices=2 /dev/sda2 /dev/sdb2

Ensuite, nous pouvons vérifier la synchronisation :

# cat /proc/mdstat

Personalities : [raid1]

md0 : active raid1 sdb2[1] sda2[0]

      16711040 blocks [2/2] [UU]

      [==========>..........]  resync = 50.3% (8410688/16711040) finish=7.2min speed=19043K/sec

unused devices:

Une fois synchronisé, vous devez avoir le résultat suivant :

#cat /proc/mdstat :

Personalities : [raid1]

md0 : active raid1 sda2[0] sdb2[1]

      16711040 blocks [2/2] [UU]

unused devices:

Ensuite, il faut renseigner le mdadm.conf :

#mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Maintenant nous pouvons formater la partition md0 :

#mkfs.ext3 /dev/md0

Compilation du noyau

Tout d'abord vous devez installer les outils pour compiler le noyau à la sauce Debian :

#apt-get install kernel-package

Pour lancer le menuconfig, nous devons installer libncurses5-dev

#apt-get install libncurses5-dev

Je vous conseille de télécharger le dernier noyau sur le site du noyau Linux.

Une fois téléchargé:

#make menuconfig

Attention de bien mettre en dur les options suivantes :

Multi-device support (RAID and LVM)  ---> 

 [*] Multiple devices driver support (RAID and LVM)

<*>   RAID support

< >     Linear (append) mode

< >     RAID-0 (striping) mode

<*>     RAID-1 (mirroring) mode

< >     RAID-10 (mirrored striping) mode (EXPERIMENTAL)

< >     RAID-4/RAID-5 mode

< >     RAID-6 mode (EXPERIMENTAL)

< >     Multipath I/O support

< >     Faulty test module for MD

< >   Device mapper support

             

Bien sûr, il est nécessaire d'y intégrer aussi les drivers du contrôleur SCSI en dur

Ensuite, il suffit de lancer la compilation:

#make-kpkg clean

#make-kpkg kernel_image

Une fois la compilation terminée:

#dpkg -i ../kernel-image-2.6.x-sparc64_10.00.Custom_sparc.deb (x étant la version de votre noyau)

Copie du système

Il faut d'abord monter la md0 et la partition où le système est installé:

#mkdir /mnt/md0

#mount /dev/md0 /mnt/md0

#mkdir /mnt/sda1

#mount /dev/sda1 /mnt/sda1

Ensuite, nous utilisons rsync pour copier le système sur md0

#apt-get install rsync

#rsync -a /mnt/sda1/ /mnt/md0

Préparation du système

Une fois copié, nous allons rentrer dans notre nouveau système :

#chroot /mnt/md0

Ensuite, nous allons modifier le silo.conf

#vi /etc/silo.conf:

partition=1

default=LinuxRaid

read-only

timeout=100

image=/boot/vmlinuz

        root=/dev/sda1

        label=Linux

        initrd=/boot/initrd.img

 

image=/boot/vmlinuz

        append="md=0,/dev/sda2,/dev/sdb2"

        root=/dev/md0

        label=LinuxRaid

        initrd=/boot/initrd.img

Je conseille de laisser l'ancien pour l'instant dans le cas où votre Raid ne démarre pas.

On modifie le /etc/fstab pour prendre au compte le Raid et activer le swap sur la partition /dev/sdb1

#chroot /mnt/md0

#vi /etc/fstab:

               

proc            /proc           proc    defaults        0       0

/dev/sdb1       none            swap    sw              0       0

/dev/md0        /               ext3    defaults,errors=remount-ro 0       1

#/dev/sda1       none            swap    sw                      0       0

/dev/scd0       /media/cdrom0   iso9660 ro,user,noauto  0       0

On formate la partition swap

#mkswap /dev/sdb1

On exécute silo

#silo

/etc/silo.conf appears to be valid

On quitte l'environnement chroot.

#exit

On démonte les partitions

#umount /mnt/sda1

#umount /mnt/md0

Et on reboot

#shutdown -g0 -i6 -y

Dans l'openBoot :

ok boot disk0:1 <= pour démarrer sur la partition 2 du premier disque

Si toutefois, le Raid ne démarre pas, il suffit de redémarrer votre ancien système, au démarrage de Silo, il suffit de taper Linux, une fois démarré, vous devez assembler vos disques:

#mdadm --assemble /dev/md0 /dev/sda2 /dev/sdb2

Ensuite vérifiez le bon fonctionnement de /dev/md0 dans /proc/mdstat. Maintenant, vous pouvez regarder d'où vient le problème.

Une fois votre système Raid démarré

Maintenant que vous êtes sur votre nouveau système, on peut mettre la partition /dev/sda1 en swap :

# fdisk /dev/sda

   Device Flag    Start       End    Blocks   Id  System

/dev/sda1  u          1       954    975872   82  Linux swap

/dev/sda2           954     17274  16711680   fd  Linux raid autodetect

/dev/sda3             0     17274  17688576    5  Whole disk

Formater la partition:

#mkswap /dev/sda1

Activer la swap :

#swapon /dev/sda1

Et la rajouter dans /etc/fstab

#echo "/dev/sda1               none            swap    sw                      0       0" >> /etc/fstab

Vous pouvez modifier le /etc/silo.conf :

#vi /etc/silo.conf

partition=1

default=LinuxRaid

read-only

timeout=10

 

image=/boot/vmlinuz

        append="md=0,/dev/sda2,/dev/sdb2"

        root=/dev/md0

        label=LinuxRaid

 

image=/boot/vmlinuz.old

        append="md=0,/dev/sda2,/dev/sdb2"

        root=/dev/md0

        label=LinuxRaidOLD

 

#silo

/etc/silo.conf appears to be valid

Et voilà vous avez un système Raid 1 sous Debian :-)

Annexe : Quelques commandes sur la gestion du Raid

Pour surveiller le raid si un disque est fail, un mail est envoyé à root :

# mdadm --monitor --mail=root@domain --delay=120 --daemonise /dev/md0

Pour mettre en panne le disque /dev/sdb par exemple :

# mdadm /dev/md0 --fail /dev/sdb

mdadm: set /dev/sdb faulty in /dev/md0

Pour supprimer un disque en panne :

# mdadm /dev/md0 --remove /dev/sdb

mdadm: hot removed /dev/sdb

Pour ajouter un disque en RAID 1 :

# mdadm /dev/md0 --add /dev/sdb

mdadm: hot added /dev/sdb

Vérification de /dev/md0

# mdadm --detail /dev/md0

/dev/md0:

        Version : 00.90.02

  Creation Time : Tue Dec 13 22:22:50 2005

     Raid Level : raid1

     Array Size : 16711040 (15.94 GiB 17.11 GB)

    Device Size : 16711040 (15.94 GiB 17.11 GB)

   Raid Devices : 2

  Total Devices : 2

Preferred Minor : 0

    Persistence : Superblock is persistent

 

    Update Time : Sun Dec 18 22:30:23 2005

          State : clean

 Active Devices : 2

Working Devices : 2

 Failed Devices : 0

  Spare Devices : 0

 

           UUID : 794806a5:0840e6e7:29b07997:7355fd9e

         Events : 0.2966

 

    Number   Major   Minor   RaidDevice State

       0       8        2        0      active sync   /dev/sda2

       1       8       18        1      active sync   /dev/sdb2

Liens

  1. Le site de la distribution Debian

Sébastien Lange

Début de page Début de page Début de page

Dernière mise à jour de cette page : Mercredi 27 janvier 2007. Version : 1.0.6

[Accueil | Editorial | Forums | Petites Annonces | Articles | Téléchargement | Sélection de Liens | Infos Site | ]