Vervangen van een kapotte Hard Disk in een Software RAID array
Dit document beschrijft het vervangen van een Harddisk in een software RAID array. Dit document kan gebruikt worden bij een raid 1 array maar ook voor een raid 5. In dit voorbeeld had ik een kapotte harddisk in een server met 4 disken van 1,5TB, met daarop een raid 1 configuratie (/boot) en raid 5 voor (overige filesystem (lvm)). het systeem starten op met de melding dat het het een degraded raid array had gedetecteerd, door op op y te drukken kon het systeem gewoon gestart worden. Na controle van de status van de array waren wel alle disken in gebruik en waren er geen failed disken. In de syslog waren wel veel disk errors terug te vinden. De disk was dus aan vervanging toe.
Inrichting
Dit systeem is als volgt ingericht. we hebben 4 disken van 1,5TB. alle disken hebben 2 partitions.
sda1 144553 (141MB) - sda2 1464991447 (1,36TB) sdb1 144553 (141MB) - sdb2 1464991447 (1,36TB) sdc1 144553 (141MB) - sdc2 1464991447 (1,36TB) sdd1 144553 (141MB) - sdd2 1464991447 (1,36TB)
Omdat je niet kan booten van een software raid5 is er tussen sda1 en sdb2 een RAID1 array gemaakt md0
sda1 + sdb1 = md0 (RAID1)
De 4 grote partitie zijn samen gevoegd tot 1 grote RAID5 partitie. zonder spare disk we willen de maximale ruimte beschikbaar hebben.
sda2 + sdb2 + sdc2 + sdd2 = md1 (RAID5 zonder spare)
Hoe zien we of er een disk kapot is?
In 1 van de automatische maandelijks checks was er al een melding geweest van mogelijke problemen. De RAID status gaf echter geen problemen. In de Syslog waren wel media error gelogd van sda. Na een upgrade moest het systeem opnieuwe gestarte worden, het systeem starten op met de melding dat het het een degraded raid array had gedetecteerd, door op op y te drukken kon het systeem gewoon gestart worden. Na controle van de status van de array waren wel alle disken wel weer actief, mdadm gaf geen failed disken. In de syslog waren wel weer veel disk errors terug te vinden. hoewel de software RAID wel goed leek te functioneren is er besloten om de disk toch maar te vervangen, de gevens op dit systeem zijn te belangrijk om risico’s mee te lopen.
Normaal gesproken kan je een degraded disk ook herkennen aan de hand van de mdstat output. gebruik bv cat /proc/mdstat om de status te bekijken.
$ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda1[2] sdb1[1] 144448 blocks [2/1] [UU] md1 : active raid5 sda2[4](F) sdc2[1] sdb2[2] sdd2[3] 4394974080 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU]
in plaats van [UU] zie je nu een [_U] dat houd in dat je een degraded array hebtif you have a degraded RAID1 array. '”`UNIQ–google-00000002-QINU`”‘
Verwijderen van een Failed Disk
We gaan dus /dev/sda vervangen, voordat we dat kunnen doen moeten we eerst alle partitions van /dev/sda uit beide raid configuratie’s halen. voordat we kunnen verwijderen moeten we hem eerst /dev/sda1 en /dev/sda2 markeren als failed.
# mdadm --manage /dev/md0 --fail /dev/sda1 mdadm: set /dev/sda0 faulty in /dev/md0 # # mdadm --manage /dev/md1 --fail /dev/sda2 mdadm: set /dev/sda2 faulty in /dev/md1
Je kan de status weer controleren met cat /proc/mdstat maar je kan ook mdadm gebruiken. Bij cat /proc/mdstat zul je nu in beide array’s 1 U missen en bij de verwijderde partitie zal er een (F) achter staan.
$ sudo mdadm --detail /dev/md1 /dev/md1: Version : 00.90 Creation Time : Thu Feb 18 15:24:13 2010 Raid Level : raid5 Array Size : 4394974080 (4191.37 GiB 4500.45 GB) Used Dev Size : 1464991360 (1397.12 GiB 1500.15 GB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 1 Persistence : Superblock is persistent Update Time : Mon Jul 26 21:45:32 2010 State : active, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K UUID : 9b4567c4:f05a97c3:c055aef6:0916ba60 Events : 0.1312682 Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 34 1 active sync /dev/sdc2 2 8 18 2 active sync /dev/sdb2 3 8 50 3 active sync /dev/sdd2 4 8 2 - faulty spare /dev/sda2
De disk/partition is nu nog steeds onderdeel van de ARRAY. Om de disk uit de array te halen gebruik je het volgende commando. dit doe je uiteraard voor elke RAID array.
# mdadm --manage /dev/md1 --remove /dev/sda2 mdadm: hot removed /dev/sda2 # mdadm --manage /dev/md0 --remove /dev/sda1 mdadm: hot removed /dev/sda1
De Ouput van cat /proc/mdstat
cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdc1[1] 144448 blocks [2/1] [_U] md1 : active raid5 sdc2[1] sdb2[2] sdd2[3] 4394974080 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU] unused devices: <none>
De Ouput van mdadm
# mdadm --detail /dev/md0 /dev/md0: Version : 00.90 Creation Time : Thu Feb 18 15:23:58 2010 Raid Level : raid1 Array Size : 144448 (141.09 MiB 147.91 MB) Used Dev Size : 144448 (141.09 MiB 147.91 MB) Raid Devices : 2 Total Devices : 1 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Mon Jul 26 21:46:44 2010 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 0 Spare Devices : 0 UUID : db890b8f:fd40224d:4dbcc10e:bdacaa8b Events : 0.225 Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 33 1 active sync /dev/sdb1 # # mdadm --detail /dev/md1 /dev/md1: Version : 00.90 Creation Time : Thu Feb 18 15:24:13 2010 Raid Level : raid5 Array Size : 4394974080 (4191.37 GiB 4500.45 GB) Used Dev Size : 1464991360 (1397.12 GiB 1500.15 GB) Raid Devices : 4 Total Devices : 3 Preferred Minor : 1 Persistence : Superblock is persistent Update Time : Mon Jul 26 21:47:03 2010 State : active, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K UUID : 9b4567c4:f05a97c3:c055aef6:0916ba60 Events : 0.1312727 Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 34 1 active sync /dev/sdc2 2 8 18 2 active sync /dev/sdb2 3 8 50 3 active sync /dev/sdd2
Dit ziet er verder goed uit we gaan nu het systeem uitzetten om de disk te vervangen. Voor dat ik het systeem uitzet controlleer ik eerst het serienummer van de disk zodat we zeker weten dat we de juiste vervangen. volg SCSI Hard Disk Model, Serie Nummer enz document om achter het serienummer te komen je kan hier eventueel ook type nummer uithalen. '”`UNIQ–google-00000006-QINU`”‘
Systeem uitzetten en de disk vervangen
shutdown -h now
Vervang de kapotte disk en plaats de nieuwe disk in het systeem let er op dat deze disk minmaal even groot is als de oude anders gaat het niet werken.
Als de disk vervangen is gaan we het systeem proberen te booten. als het goed staat de bootloader op 2 disken. waarschijnlijk staat je bios in gesteld dat hij alleen van de eerste disk wilt opstarten. kies daarom vanuit je bios het opstart menu en kies om van de 2 disk te booten. Als dit allemaal niet lukt kan je ook nog van een live CD/DVD opstarten. en vanuit de live CD/DVD de RAID configuratie herstellen.
We gaan vanuit dat het systeem gewoon weer gestart word dus gaan we de RAID array herstellen.
Disk toevoegen
We controleren of we alle disken weer zien. fdisk -l als het goed is zie je de nieuwe disk op de zelfde plaats als de oude, in mijn geval als /dev/sda. als eerste moeten we de partitie table aanmaken op de nieuwe disk. je kan het met de hand doen. met de kans op fouten, maar je kan de partition table ook copieren van een andere disk met sfdisk, een uitgebreide uitleg over het copieren/clonen van de partition table staat in het Clone partition table artikel.
# sfdisk -d /dev/sda | sfdisk /dev/sdb
uiteraard weer een extra controle met fdisk -l of de juiste partition indeling is gemaakt.
De volgende stap is het toevoegen van de partitions aan de juiste RAID array’s.
# mdadm --manage /dev/md0 --add /dev/sda1 mdadm: re-added /dev/sda1 # # mdadm --manage /dev/md1 --add /dev/sda2 mdadm: re-added /dev/sda2
Beide array’s worden nu gesynchroniseerd. je kan dit process volgen dmv cat /proc/mdstat
# cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md1 : active raid5 sdd2[3] sdb2[1] sda2[0] sdc2[2] 5860104000 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] [===>.................] resync = 15.2% (298208388/1953368000) finish=362.8min speed=76019K/sec md0 : active raid1 sda1[1] sdb1[0] 146368 blocks [2/2] [UU] unused devices: <none>
Houd er rekening mee dat het rebuilden van dit soort grote array’s nog al wat tijd kan kosten, in dit geval was het systeem ongeveer 18 uur bezig met rebuilden..
Omdat we hier te maken hebben met de eerste disk vergeet niet om grub-install te draaien. om de disk bootable te maken.
Recente reacties