Quelques vieux liens:
Lien1 Lien2
Apres maintes lectures, recherches et essais divers j'hesitais entre un raid logiciel / materiel.
Je
comptais acquerir une carte raid additionnelle aux alentours de 40euros
mais des reponses a un post sur ce sujet sur linux.debian.user.franch
m'en a dissuade : il paraitrait en effet
que ces cartes a pas cher n'apportent pas grand'chose par rapport a un raid soft.
Cependant comme j'avais connu quelques deboires lors d'essais dans une vmware, je decide de proceder
comme suit :
-la partition racine ne sera pas montee en raid
-la partition /var ne sera pas montee en raid.
Les avis et les tests convergent pour dire que le raid1 optimise les acces en lecture. Comme /var
est constamment en ecriture avec les logs aucun interet.
De plus le fait de ne pas monter la racine en raid me permet de faire marche arriere si un jour
je fais une grosse boulette sur le /. En effet la mise en place d'un cron avec recopie par rsync
des partoches non raid permettra de conserver un systeme coherent dans tous les cas.
Debut des operations :
materiel : 2 disques dur IDE MAXTOR 80 Go /2Mo cache parfaitement identiques.
Apres modif des partitions :
srvweb:~# fdisk -l /dev/hda
Disk /dev/hda: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1216 9767488+ 83 Linux
/dev/hda2 1217 1459 1951897+ 82 Linux swap
/dev/hda3 1460 2675 9767520 83 Linux
/dev/hda4 2676 9964 58548892+ 5 Extended
/dev/hda5 2676 3283 4883728+ 83 Linux
/dev/hda6 3284 4499 9767488+ 83 Linux
/dev/hda7 4500 5715 9767488+ 83 Linux
/dev/hda8 5716 6931 9767488+ 83 Linux
/dev/hda9 6932 9964 24362541 83 Linux
srvweb:~# fdisk -l /dev/hdc
Disk /dev/hdc: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 * 1 1216 9767488+ 83 Linux
/dev/hdc2 1217 1459 1951897+ 82 Linux swap
/dev/hdc3 1460 2675 9767520 83 Linux
/dev/hdc4 2676 9964 58548892+ 5 Extended
/dev/hdc5 2676 3283 4883728+ fd Linux raid autodetect
/dev/hdc6 3284 4499 9767488+ fd Linux raid autodetect
/dev/hdc7 4500 5715 9767488+ fd Linux raid autodetect
/dev/hdc8 5716 6931 9767488+ fd Linux raid autodetect
/dev/hdc9 6932 9964 24362541 83 Linux
srvweb:~#
Apres partitionnement : reboot puis modif du type de partition : ext3 => Linux raid autodetect
sur hdc.
Installation de raidtools2 (apt-get install raidtools2)
Installation des modules :
modprobe md
modprobe raid1
Creation du fichier /etc/raidtab :
srvweb:/etc# cat raidtab
# /usr/local
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
chunk-size 32
nr-spare-disks 0
persistent-superblock 1
device /dev/hdc5
raid-disk 0
device /dev/hda5
failed-disk 1
# /web/clients
raiddev /dev/md1
raid-level 1
nr-raid-disks 2
chunk-size 32
nr-spare-disks 0
persistent-superblock 1
device /dev/hdc6
raid-disk 0
device /dev/hda6
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/hdc7
raid-disk 0
device /dev/hda7
failed-disk 1
# /opt
raiddev /dev/md3
raid-level 1
nr-raid-disks 2
chunk-size 32
nr-spare-disks 0
persistent-superblock 1
device /dev/hdc8
raid-disk 0
device /dev/hda8
failed-disk 1
srvweb:/etc#
Creation des raids : mkraid /dev/md0 /dev/md1 /dev/md2 /dev/md3
Formattage : mkfs -t ext3 /dev/md0 /dev/md1 /dev/md2 /dev/md3
Montage des partitions : mount /dev/md0 /mnt
Recopie des fichiers : cd /usr/local; find . | cpio -pm /mnt
On procede a l'identique pour les autres partitions raid.
De la meme facon je sauvegarde les partoches non destinees au raid :
mount /dev/hdc3 /mnt; cd /var; find . | cpio -pm /mnt
mount /dev/hdc1 /mnt; cd /; find . -xdev | cpio -pm /mnt (le xdev est important
car il permet de ne pas descendre dans les autres systemes de fichiers montes)
Modification du fichier /etc/fstab qui devient :
srvweb:~/admintools# cat /etc/fstab
# /etc/fstab: static file system information.
#
#
/dev/hda1 / ext3 errors=remount-ro 0 1
/dev/hdc2 none swap sw 0 0
/dev/hda2 none swap sw 0 0
tmpfs /tmp tmpfs size=64m 0 0
proc /proc proc defaults 0 0
usbdevfs /proc/bus/usb usbfs defaults 0 0
/dev/fd0 /floppy auto user,noauto 0 0
/dev/hdd /cdrom iso9660 ro,user,noauto 0 0
/dev/hda3 /var ext3 defaults 0 2
/dev/md0 /usr/local ext3 defaults 0 2
/dev/md1 /web/clients ext3 defaults 0 2
/dev/md2 /home ext3 rw,noexec 0 2
/dev/md3 /opt ext3 defaults 0 2
/dev/hda9 /wrk ext3 defaults 0 2
/dev/hdc1 /spare/racine ext3 defaults 0 2
/dev/hdc3 /spare/var ext3 defaults 0 2
/dev/hdc9 /spare/wrk ext3 defaults 0 2
srvweb:~/admintools#
Modif du type de partition sur /dev/hda pour les partiches destinees au raid :
srvweb:~/admintools# fdisk -l /dev/hda
Disk /dev/hda: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1216 9767488+ 83 Linux
/dev/hda2 1217 1459 1951897+ 82 Linux swap
/dev/hda3 1460 2675 9767520 83 Linux
/dev/hda4 2676 9964 58548892+ 5 Extended
/dev/hda5 2676 3283 4883728+ fd Linux raid autodetect
/dev/hda6 3284 4499 9767488+ fd Linux raid autodetect
/dev/hda7 4500 5715 9767488+ fd Linux raid autodetect
/dev/hda8 5716 6931 9767488+ fd Linux raid autodetect
/dev/hda9 6932 9964 24362541 83 Linux
srvweb:~/admintools
Reboot
Lorsque j'ai la main il ne reste plus qu'a ajouter les partitions marquees failed :
srvweb:~# raidhotadd /dev/md0 /dev/hda5
srvweb:~# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 hdc8[0]
9767424 blocks [2/1] [U_]
md2 : active raid1 hdc7[0]
9767424 blocks [2/1] [U_]
md1 : active raid1 hdc6[0]
9767424 blocks [2/1] [U_]
md0 : active raid1 hda5[2] hdc5[0]
4883648 blocks [2/1] [U_]
[>....................] recovery = 3.9% (193152/4883648) finish=2.4min speed=32192K/sec
unused devices:
srvweb:~# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 hdc8[0]
9767424 blocks [2/1] [U_]
md2 : active raid1 hdc7[0]
9767424 blocks [2/1] [U_]
md1 : active raid1 hdc6[0]
9767424 blocks [2/1] [U_]
md0 : active raid1 hda5[2] hdc5[0]
4883648 blocks [2/1] [U_]
[=====>...............] recovery = 25.3% (1236224/4883648) finish=1.8min speed=33044K/sec
unused devices:
TERMINE !!!
srvweb:~# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 hda8[1] hdc8[0]
9767424 blocks [2/2] [UU]
md2 : active raid1 hda7[1] hdc7[0]
9767424 blocks [2/2] [UU]
md1 : active raid1 hda6[1] hdc6[0]
9767424 blocks [2/2] [UU]
md0 : active raid1 hda5[1] hdc5[0]
4883648 blocks [2/2] [UU]
unused devices:
srvweb:~#
Modif de /etc/raidtab en remplacant les failed-disk par raid-disk
Un dernier reboot pour etre sur que tout est en place :
srvweb:~/admintools# df -hTa
Filesystem Type Size Used Avail Use% Mounted on
/dev/hda1 ext3 9.2G 1.1G 7.6G 12% /
proc proc 0 0 0 - /proc
tmpfs tmpfs 64M 248k 63M 1% /tmp
usbdevfs usbfs 0 0 0 - /proc/bus/usb
/dev/hda3 ext3 9.2G 147M 8.5G 2% /var
/dev/md0 ext3 4.6G 529M 3.8G 12% /usr/local
/dev/md1 ext3 9.2G 368M 8.3G 5% /web/clients
/dev/md2 ext3 9.2G 101M 8.6G 2% /home
/dev/md3 ext3 9.2G 1.1G 7.6G 13% /opt
/dev/hda9 ext3 23G 33M 21G 1% /wrk
/dev/hdc1 ext3 9.2G 1.1G 7.6G 12% /spare/racine
/dev/hdc3 ext3 9.2G 147M 8.5G 2% /spare/var
/dev/hdc9 ext3 23G 33M 21G 1% /spare/wrk
none binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
none proc 0 0 0 - /opt/vservers/vweb1/proc
none devpts 0 0 0 - /opt/vservers/vweb1/dev/pts
srvweb:~/admintools#
srvweb:~/admintools# ps ax
PID TTY STAT TIME COMMAND
1 ? S 0:00 init [2]
2 ? SN 0:00 [ksoftirqd/0]
3 ? S< 0:00 [events/0]
4 ? S< 0:00 [khelper]
9 ? S< 0:00 [kthread]
17 ? S< 0:00 [kacpid]
100 ? S< 0:00 [kblockd/0]
168 ? S 0:00 [pdflush]
169 ? S 0:00 [pdflush]
113 ? S 0:00 [khubd]
170 ? S 0:00 [kswapd0]
171 ? S< 0:00 [aio/0]
759 ? S 0:00 [kseriod]
821 ? S 0:00 [scsi_eh_0]
825 ? S< 0:00 [ata/0]
855 ? S 0:00 [kjournald]
945 ? S 0:00 [md0_raid1]
955 ? S 0:00 [md1_raid1]
965 ? S 0:00 [md2_raid1]
975 ? S 0:00 [md3_raid1]
1011 ? S 0:00 [kjournald]
1012 ? S 0:00 [kjournald]
1013 ? S 0:00 [kjournald]
1014 ? S 0:00 [kjournald]
1015 ? S 0:00 [kjournald]
1016 ? S 0:00 [kjournald]
1017 ? S 0:00 [kjournald]
1018 ? S 0:00 [kjournald]
1019 ? S 0:00 [kjournald]
1151 ? Ss 0:00 /sbin/syslogd -m 0
1154 ? Ss 0:00 /sbin/klogd
etc...... etc......
Quelques petits reglages pour peaufiner :
Je deplace le répertoire /var/lib/mysql dans /opt/mysql
quitte à optimiser les accès en lecture, autant en faire
profiter mysql.
Dans le script lancé par mon crontab j'ai rajouté :
# synchro des donnees de / et de /spare/racine
/usr/bin/rsync -avzx --delete / /spare/racine
# synchro des donnees de /var et de /spare/var
/usr/bin/rsync -avzx --delete /var/ /spare/var