Le raid soft, est une technique de mirroring. Toutes les donnees ecrites sur un disque sont inscrites d'une facon similaire sur un autre. En cas de panne, les donnees seront lues depuis le second disque. Attention, il s'agit d'une technique visant a couvrir des risques de panne des disques et non du systeme.

Nous supposerons que le disque est decoupe de la maniere suivante :

/dev/hda1 /

/dev/hda2 SWAP

/dev/hda3 /home

/dev/hda5 /usr

/dev/hda6 /tmp

/dev/hda7 /var

Pour commencer, il faut installer les outils propres au Raid. Pour cela, executez la commande suivante si vous etes sous Debian:

apt-get install raidtools2

Les differents patch pour les kernels se situent sur ftp://ftp.kernel.org/pub/linux/daemons/raid/alpha ou http://download.unesp.br/linux/debian/pool/main/r/raidtools2/

Pour verifier si votre kernel supporte correctement le raid, vous pouvez visualiser le fichier /proc/mdstat qui contient toutes les informations relatives au raid. Actuellement, il ressemble a ceci :

Personalities : [raid1]

read_ahead not set

unused devices:

Il convient egalement de remplir le fichier /etc/raidtab qui contient toutes les informations necessaires a la construction du raid, comme indique ci-dessous:

# /

raiddev /dev/md0

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb1

raid-disk 0

device /dev/hda1

failed-disk 1

# swap

raiddev /dev/md1

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb2

raid-disk 0

device /dev/hda2

failed-disk 1

# /home

raiddev /dev/md2

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb3

raid-disk 0

device /dev/hda3

failed-disk 1

# /usr

raiddev /dev/md3

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb5

raid-disk 0

device /dev/hda5

failed-disk 1

# /tmp

raiddev /dev/md4

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb6

raid-disk 0

device /dev/hda6

failed-disk 1

# /var

raiddev /dev/md5

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb7

raid-disk 0

device /dev/hda7

failed-disk 1

Il faut maintenant activer les partitions Raid et les initialiser :

mknod /dev/md4 b 9 4

mknod /dev/md5 b 9 5

mkraid –really-force /dev/md0

mkraid –really-force /dev/md1

mkraid –really-force /dev/md2

mkraid –really-force /dev/md3

mkraid –really-force /dev/md4

mkraid –really-force /dev/md5

mke2fs /dev/md0

mkswap /dev/md1

mke2fs /dev/md2

mke2fs /dev/md3

mke2fs /dev/md4

mke2fs /dev/md5

Il faut maintenant monter toutes les partitions Raid pour y copier le contenu de /dev/hda

mkdir /mnt/md

mount -t ext2 /dev/md0 /mnt/md

mkdir /mnt/md/home

mount -t ext2 /dev/md2 /mnt/md/home

mkdir /mnt/md/usr

mount -t ext2 /dev/md3 /mnt/md/usr

mkdir /mnt/md/tmp

mount -t ext2 /dev/md4 /mnt/md/tmp

mkdir /mnt/md/var

mount -t ext2 /dev/md5 /mnt/md/var

mkdir /mnt/md/proc

mkdir /mnt/md/mnt

mkdir /mnt/md/mnt/cdrom

mkdir /mnt/md/mnt/floppy

cd /

tar zcvf /tmp/img.tar.gz bin boot dev etc home initrd lib root sbin usr var

cd /mnt/md

tar zxvf /tmp/img.tar.gz

chmod 777 /mnt/md/tmp

Il faut maintenant modifier le /etc/fstab et le /mnt/md/etc/fstab pour que le systeme puisse attaquer directement les partitions Raid.

# /etc/fstab: static file system information.

#

#

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

/dev/md1 none swap sw 0 0

proc /proc proc defaults 0 0

/dev/fd0 /floppy auto defaults,user,noauto 0 0

/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0

/dev/md2 /home ext2 rw 0 2

/dev/md3 /usr ext2 rw 0 2

/dev/md4 /tmp ext2 rw 0 2

/dev/md5 /var ext2 rw 0 2

Il faut maintenant remplacer le type de toutes les partitions de /dev/hdb ( 82 et 83 ), par FD , Linux raid autodetec, avec la commande cfdisk /dev/hdb.

Il est ensuite necessaire de creer une disquette de boot :

dd if=/boot/vmlinuz-2.4.9 of=/dev/fd0 bs=2k

rdev /dev/fd0 /dev/md0

rdev -r /dev/fd0 0

rdev -R /dev/fd0 1

Enfin, il faut demonter les partitions et arreter le Raid avant de rebooter la machine.

umount /mnt/md/var

umount /mnt/md/usr

umount /mnt/md/tmp

umount /mnt/md/home

umount /mnt/md

raidstop /dev/md5

raidstop /dev/md4

raidstop /dev/md3

raidstop /dev/md2

raidstop /dev/md1

raidstop /dev/md0

Maintenant que la machine a ete rebootee, il faut modifier le fichier /etc/raidtab et remplacer tous les failed- disk par raid-disk pour obtenir :

# /

raiddev /dev/md0

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb1

raid-disk 0

device /dev/hda1

raid-disk 1

# swap

raiddev /dev/md1

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb2

raid-disk 0

device /dev/hda2

raid-disk 1

# /home

raiddev /dev/md2

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb3

raid-disk 0

device /dev/hda3

raid-disk 1

# /usr

raiddev /dev/md3

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb5

raid-disk 0

device /dev/hda5

raid-disk 1

# /tmp

raiddev /dev/md4

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb6

raid-disk 0

device /dev/hda6

raid-disk 1

# /var

raiddev /dev/md5

raid-level 1

nr-raid-disks 2

chunk-size 32

nr-spare-disks 0

persistent-superblock 1

device /dev/hdb7

raid-disk 0

device /dev/hda7

raid-disk 1

Il faut enfin changer le type de toutes les partitions de /dev/hda ( 82, 83 ) par FD (de la meme facon que pour /dev/hdb) grace a la commande cfdisk /dev/hda.

Il faut ensuite rebooter avec la disquette.

Il faut maintenant modifier le fichier etc/lilo.conf pour lui preciser qu'il doit attaquer les partitions Raid. Pour cela, il faut remplacer les lignes

boot=/dev/hda

root=/dev/hda1

par

boot=/dev/md0

root=/dev/md0

et activer le lilo par

lilo -v

Il est temps d'activer le Raid grace a:

raidhotadd /dev/md0 /dev/hda1

raidhotadd /dev/md1 /dev/hda2

raidhotadd /dev/md2 /dev/hda3

raidhotadd /dev/md3 /dev/hda5

raidhotadd /dev/md4 /dev/hda6

raidhotadd /dev/md5 /dev/hda7

Il convient egalement d'installer le MBR sur le deuxieme disque grace a la commande

install-mbr /dev/hdb

linux/raid_soft_sous_linux.txt · Last modified: 2010/01/12 13:29 (external edit)