====== Disks en RAID ====== ===== Accélérer la reconstruction ===== Liens: *http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html *http://www.admin-linux.fr/?p=5944 ===== 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: 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 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: 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 ===== | :!: OUPS ! J'AI PETE MON RAID ! | Lien: http://www.howtoforge.com/how-to-resize-raid-partitions-shrink-and-grow-software-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: 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 Maintenant, on réduit la taille du RAID ! Une petite vue d'abord: % mdadm --detail /dev/md127 /dev/md127: Version : 1.2 Creation Time : Mon Feb 7 18:47:19 2011 Raid Level : raid1 Array Size : 389647224 (371.60 GiB 399.00 GB) Used Dev Size : 389647224 (371.60 GiB 399.00 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Fri Feb 11 15:39:33 2011 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : k8:1 (local to host k8) UUID : 35a2c269:40cdcca3:d63b29c2:7c9f4067 Events : 49934 Number Major Minor RaidDevice State 0 8 2 0 active sync /dev/sda2 2 8 18 1 active sync /dev/sdb2 On note que: % echo $(( 389647224 / ( 1024 * 1024 ) )) 371 Donc, on va specifier 360G, soit: % echo $(( 377487360 / ( 1024 * 1024 ) )) 360 Donc ''377487360'' : % mdadm --grow /dev/md127 --size=377487360 mdadm: component size of /dev/md127 has been set to 377487360K Vérifions: % mdadm --detail /dev/md127 /dev/md127: Version : 1.2 Creation Time : Mon Feb 7 18:47:19 2011 Raid Level : raid1 Array Size : 377487360 (360.00 GiB 386.55 GB) Used Dev Size : 377487360 (360.00 GiB 386.55 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Fri Feb 11 15:54:44 2011 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : k8:1 (local to host k8) UUID : 35a2c269:40cdcca3:d63b29c2:7c9f4067 Events : 49935 Number Major Minor RaidDevice State 0 8 2 0 active sync /dev/sda2 2 8 18 1 active sync /dev/sdb2 Ce n'est que la couche "systeme de fichiers" en fait. Maintenant, il faut reduire les PARTITIONS DES DISKS, qui sont (toujours) : % 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 On remarque que : % echo $(( ( 779296768 * 512 ) / ( 1024 * 1024 * 1024 ) )) 371 Ce qui est la taille en GIGA qu'on a pour la partition. On vise maintenant, pour 365 G: % echo $(( ( 365 * 1024 * 1024 * 1024 ) / 512 )) 765460480 Ce qu'on mettre comme nouvelle taille de partition ! Mais il faut demonter le disk de son RAID d'abord ! Umount de LVM % /etc/init.d/lvm stop Puis arret du RAID: % mdadm --stop /dev/md126 mdadm: stopped /dev/md126 % mdadm --stop /dev/md127 mdadm: stopped /dev/md127 On recupere les confs: % sfdisk -d /dev/sda >sda.txt % sfdisk -d /dev/sdb >sdb.txt On edite "sda.txt" et "sdb.txt" pour avoir a la fin: % cat sda.txt # partition table of /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 974848, Id=fd, bootable /dev/sda2 : start= 976896, size=765460480, Id=fd /dev/sda3 : start= 0, size= 0, Id= 0 /dev/sda4 : start= 0, size= 0, Id= 0 Et go! % cat sda.txt | sfdisk /dev/sda % cat sdb.txt | sfdisk /dev/sda ( Ajouter "--force" si nécessaire) % sync Et voila ? Remonter le RAID: % mdadm --examine /dev/sda1 /dev/sda1: Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : ac816ca9:98d73e89:a9ff5ea7:95e87521 Name : k8:0 (local to host k8) Creation Time : Mon Feb 7 18:47:07 2011 Raid Level : raid1 Raid Devices : 2 Avail Dev Size : 974824 (476.07 MiB 499.11 MB) Array Size : 974824 (476.07 MiB 499.11 MB) Data Offset : 24 sectors Super Offset : 8 sectors State : clean Device UUID : 0b78552d:51cabf56:74cc011f:7085a015 Update Time : Fri Feb 11 15:23:26 2011 Checksum : 285db283 - correct Events : 326 Device Role : Active device 0 Array State : AA ('A' == active, '.' == missing) % mdadm /dev/md126 --assemble -u ac816ca9:98d73e89:a9ff5ea7:95e87521 Et alors: % cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md1 : active raid1 sda2[0] sdb2[2] 377487360 blocks super 1.2 [2/2] [UU] md0 : active raid1 sda1[0] sdb1[2] 487412 blocks super 1.2 [2/2] [UU] unused devices: Tout est monté ??? curieux... En fait, les RAID sont apparu en "md0" et "md1" (comme en prod en fait) ... Et donc: % mdadm --detail /dev/md1 /dev/md1: Version : 1.2 Creation Time : Mon Feb 7 18:47:19 2011 Raid Level : raid1 Array Size : 377487360 (360.00 GiB 386.55 GB) Used Dev Size : 377487360 (360.00 GiB 386.55 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Fri Feb 11 16:08:54 2011 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : k8:1 (local to host k8) UUID : 35a2c269:40cdcca3:d63b29c2:7c9f4067 Events : 49935 Number Major Minor RaidDevice State 0 8 2 0 active sync /dev/sda2 2 8 18 1 active sync /dev/sdb2 | :!: OUPS ! J'AI PETE MON RAID ! |