RAID-Pagina4

Uit Linuxdocs.nl
Ga naar: navigatie, zoeken

Simuleren van een falende schijf

Als u van plan bent om RAID te gaan gebruiken om fouten te tolereren, dan wilt u natuurlijk zien of het ook echt werkt! Noudan, hoe simuleert iemand een defecte schijf?

Het korte verhaal is, dat dat niet kan, misschien als u een bijl ofzo door de schijf heen ramt om te simuleren dat de schijf faalt. U kunt nooit van tevoren weten wat er precies gaat gebeuren als een schijf het loodje legd. Het is elektrisch zelf mogelijk dat de IDE/SCSI bus ook defect raakt op dat moment, wat alle schijven zal platgooien. Ik heb nog nooit gehoord over een dergelijke ramp, maar het is mogelijk.
Het kan ook gebeuren dat de schijf een gewone lees/schijffout doorgeeft aan de bus, die dan de RAID array doorgeeft niet al te streng te zijn en komt u er met een simpele waarschuwing er vanaf. Dit is gelukkig de meest voorkomende gebeurtenis.

Onthoudt, dat u een RAID-1/4/5 oplossing voor uw array moet hebben als uw data het falen van een disk moet kunnen overleven.

Forceer het falen via hardware

Als u het falen van een schijf wilt simuleren, dan kunt u heel simpel gewoon de stekker uit de betreffende schijf trekken. U moet dit echter alleen doen als de pc uit staat. Het heeft geen zin om je te gedragen als een hotplug cowboy! Sluit het systeem gewoon af. Anders kunt u nog wel eens meer downtime tegenkomen dan dat u eigelijk gewild had!

Neem een kijkje in de systeemlogboeken, en bekijk ook /proc/mdstat om te kijken hoe het met de RAID gaat. werkt het?

Defecte schijven zullen worden gemarkeerd met een "F". Als u kijkt naar /proc/mdstat. Ook gebruikers van mdadm zullen zien dat de schijf nu gemarkeerd staat als defect.

Na het herstellen van de schijf (Met de pc uitgeschakeld natuurlijk), kunt u de schijf weer toevoegen met de opdracht:

[root@linuxdocs.nl tmp]# raidhotadd /dev/md0 /dev/sdX

alsof er nooit wat gebeurd is.

Forceer het falen van een disk softwarematig

Nieuwere versies van de raidtools komen met een raidsetfaulty opdracht. Door hiervan gebruik te maken, kunt u een falende schijf simuleren zonder de stekker eruit te trekken.

Gebruik heel simpel de opdracht:

[root@linuxdocs.nl tmp]# raidsetfaulty /dev/md1 /dev/sdc2

Dit zal de schijf /dev/sdc2 laten falen op array /dev/md1. Indien u gebruikmaakt van mdadm tikt u in:

[root@linuxdocs.nl tmp]# mdadm --manage --set-faulty /dev/md1 /dev/sdc2

Nu gaan we lol beleven. Ongeveer deze melding verschijnt in uw systeemlogboek

    kernel: raid1: Disk failure on sdc2, disabling device.
    kernel: md1: resyncing spare disk sdb7 to replace failed disk

De array zal nu worden herbouwd en als er een reserve disk aanwezig was, zal de Array daar nu gebruik van gaan maken.

Nog een leuk vers tooltje in de laatste raidtools is lsraid. Check it out:

[root@linuxdocs.nl tmp]# lsraid -a /dev/md1

Gebruikers van mdadm tikken in:

[root@linuxdocs.nl tmp]# mdadm --detail /dev/md1

En geniet van het uitzicht :)

Nu hebben we gezien wat er gebeurd als een disk faalt. Laten we de boel nu maar weer gaan fixen.

Eerst verwijderen we de defecte disk:

[root@linuxdocs.nl tmp]# raidhotremove /dev/md1 /dev/sdc2

Gebruikers van mdadm tikken in:

[root@linuxdocs.nl tmp]# mdadm /dev/md1 -r /dev/sdc2

Hou er rekening mee dat raidhotremove alleen defecte schijven uit een array kan halen

Nu mist onze array een schijf. Wacht tot het herbouwen van de array is voltooit en stuur /dev/sdc2 weer naar huis:

[root@linuxdocs.nl tmp]# raidhotadd /dev/md1 /dev/sdc2

Gebruikers van mdad tikken in:

[root@linuxdocs.nl tmp]# mdadm /dev/md1 -a /dev/sdc2

Nu de verloren zoon weer thuis is, zien we dat hij weer een actief lid is van de array /dev/md1. Zo niet, zal hij worden ingezet als een reserve disk. Dat heet nou "makkelijk beheren".


Data corruptie simuleren

RAID (Hard en Software) neemt aan dat als een schijf geen error teruggeeft het schijfproces met succes is voltooid. Dus als uw schijf de data "verpest" zonder een error terug te sturen, zal uw data ook daadwerkelijk worden vern..kt". Dit zal natuurlijk niet al te vaak voorkomen, maar het is mogelijk en kan zelfs leiden tot een corrupt bestandssysteem.

RAID kan niet en is ook nooit de bedoeling van geweest om te beschermen tegen data corruptie. Het heeft dus geen zin dit te simuleren met b.v. "dd". De RAID array zal er nooit achterkomen.

En zo hoort RAID ook te werken. RAID geeft geen garantie tegen data corruptie. Maar beschermt alleen tegen het falen van een schijf (Alleen RAID-1 en hoger natuurlijk).

RAID array's in de gaten houden

U kunt mdadm runnen als een proces als u gebruik maakt van de follow-monitor mode. Indien nodig, kan mdadm een mailtje sturen naar de systeembeheerder als er een error is ontstaan of een schijf faalt. Ook, kan er inplaats van een mailtje een 2e kans worden gegeven aan de disk om te kijken of deze echt faalt. Zo zullen niet fatale dingen automatisch kunnen worden gefixt

Laten we eens een basis voorbeeldje nemen. Tik in

[root@linuxdocs.nl tmp]# mdadm --monitor --mail=root@localhost --delay=1800 /dev/md2

Dit zal het mdadm proces de array /dev/md2 in de gaten laten houden. De "delay" parameter betekend dat de array opnieuw ingesteld word met een interval van in dit geval 1800 seconden. Uiteindelijk worden kritische fouten doorgemailt naar de systeembeheerder. En dat is nou "RAID monitoring made easy" :)



How-TO's | Hoofdpagina | Linux Nieuws | Externe links | Help