Ceci est une ancienne révision du document !
Table des matières
Disks en RAID
Accélérer la reconstruction
parfois
Chaque 1er dimanche du mois:
# mdadm --detail /dev/md0 | grep -i state State : clean, resyncing
Resynchro des disks…
mdadm et des trucs simples
Voir l'etat des RAID
# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sda2[0] sdb2[1] 2000000 blocks [2/2] [UU] md0 : active raid1 sda1[0] sdb1[1] 388708608 blocks [2/2] [UU]
unused devices: <none>
Voir les details
# mdadm --detail /dev/md0
Ajouter un disk au RAID
# mdadm /dev/md0 --add /dev/sda1
Casser un RAID en retirant un disk
# mdadm /dev/md0 --fail /dev/sdb1 # mdadm /dev/md0 --remove /dev/sdb1
Arreter un RAID et liberer toutes les ressources:
# mdadm --stop /dev/md0
Forcer un monitoring avec envoi de l'etat dans un mail (si configuré):
# mdadm --monitor /dev/md0 -1 --test
Ce qui envoi un truc dans ce genre a “root”:
This is an automatically generated mail message from mdadm running on <machine> A TestMessage event had been detected on md device /dev/md0. Faithfully yours, etc. P.S. The /proc/mdstat file currently contains the following: Personalities : [raid1] md1 : active raid1 sdb2[1] sda2[0] 292969280 blocks [2/2] [UU] md0 : active raid1 sdb1[1] sda1[0] 248896 blocks [2/2] [UU] unused devices: <none>
Voir: man mdadm
RAID 1 et double boot
Methode 1
Lien: http://wickerl.bechelaren.at/Bechelaren/web/wickerl_blog.nsf/d6plinks/HWSR-6XZ8ZR
Dans une configuration RAID 1, il peut être utile que si l'un disque est mort, l'autre soit bootable aussi.
Donc, soit 2 disks: hde
et hdg
.
Alors on fait:
# grub GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub>
Installer le bootloader sur le premier disk (dans notre cas /dev/hde)
grub> device (hd0) /dev/hde grub> root (hd0,0) Filesystem type is ext2fs, partition type 0xfd grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done.
Maintenant, installer sur le second disk (dans notre cas /dev/hdg)
grub> device (hd0) /dev/hdg grub> root (hd0,0) Filesystem type is ext2fs, partition type 0xfd grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done.
Fin.
grub> quit
J'ai testé (sur un RAID en SATA) et ça fonctionne.
Methode 1b
Cette methode présupose que le fichier device.map est coohérent (et il devrait!) |
Grace a l'existence du fichier device.map
, on peut aussi faire:
# grub --device-map=/boot/grub/device.map >> root (hd0,0) >> setup (hd0) >> root (hd1,0) >> setup (hd1) >> quit
Shrink RAID
Le calcul etait mauvais: le 2ieme disk du RAID 1 ne peut booter…
On va recommencer sans rien casser…
On a une partition LVM sur un RAID …
On boot sur “systemrescuecd” …
Le disk /dev/sda
:
% sfdisk -d /dev/sda # partition table of /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 974848, Id=fd, bootable /dev/sda2 : start= 976896, size=779296768, Id=fd /dev/sda3 : start= 0, size= 0, Id= 0 /dev/sda4 : start= 0, size= 0, Id= 0
Et /dev/sdb
:
% sfdisk -d /dev/sdb # partition table of /dev/sdb unit: sectors /dev/sdb1 : start= 63, size= 974848, Id=fd, bootable /dev/sdb2 : start= 974911, size=779296768, Id=fd /dev/sdb3 : start= 0, size= 0, Id= 0 /dev/sdb4 : start= 0, size= 0, Id= 0
Le probleme, c'est que le nombre de secteur au debut, partant de 0, est different… et GRUB2 ne demarre pas sur /dev/sdb
… et pourtant, le RAID 1 est UP, mais on s'en fout un peu:
% cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md126 : active raid1 sda1[0] sdb1[2] 487412 blocks super 1.2 [2/2] [UU] md127 : active raid1 sda2[0] sdb2[2] 389647224 blocks super 1.2 [2/2] [UU] unused devices: <none>
Et la on voit:
% pvs PV VG Fmt Attr PSize PFree /dev/md127 vg0 lvm2 a- 371.59g 74.10g
On est un peu au dessus de 371G …
On reduit a 350G … /dev/md127
% pvresize --setphysicalvolumesize 350G /dev/md127 Physical volume "/dev/md127" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
Verifions
% pvs PV VG Fmt Attr PSize PFree /dev/md127 vg0 lvm2 a- 350.00g 52.50g