Mdadm, raid5 uitbreiden met 2 schijven?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • et36s
  • Registratie: Maart 2001
  • Laatst online: 05-10 16:24
OS: Ubuntu 10.04 server

Ik zou graag mijn thuisserver uitbreiden met 2 schijven van 2TB op het moment heb ik al een raid5 setup staan.

Met de volgende commando's heb ik een tijd geleden een enkele schijf aan mijn raid5 setup toegevoegd.

code:
1
2
mdadm --add /dev/md0 /dev/sdd1
mdadm --grow --raid-devices=4 /dev/md0


Dit werkte prima alleen duurde dat bijna een dag :( Nu wil ik graag nog eens 2 schijven toevoegen,

Kan ik dus ook een aantal schijven tegelijk toevoegen met onderstaande code?

code:
1
2
mdadm --add /dev/md0 /dev/sde1 /dev/sdf1
mdadm --grow --raid-devices=6 /dev/md0

Acties:
  • 0 Henk 'm!

Verwijderd

Ja, dat kan maar zal inderdaad geruime tijd duren omdat alle data opnieuw ingericht/verplaatst moet worden.

Daarnaast is het niet slim om met zoveel schijven raid5 te draaien omdat de kans dat een schijf crashed verdubbelt met elke schijf. Dit is ook de reden waarom raid6 bedacht is welke 2 crashed ipv 1 nog overleeft.

Ik ga er even vanuit dat je nu dus 4 schijfen in raid5 hebt er daar 2 aan wilt toevoegen. Een mogelijk snellere manier is om met de 2 nieuwe schijfen nieuwe gebroken raid5 te maken genaamd /dev/md1 en daarop een LVM physical volume. Als je geen LVM wilt gebruiken kan dat ook maar LVM kan erg handig zijn in deze.

Vervolgens copieer je alle data van je bestandssysteem op /dev/md0 naar je nieuwe bestands systeem op /dev/md1. Nadat dit is voltooid heb je dus dezelfde bestanden op zowel /dev/md0 als op /dev/md1 staan.

Laatste stap is nu om /dev/md0 weg te gooien. Schijf 4 toe te voegen aan /dev/md1 en schijven 1 t/m 3 gebruiken om een nieuwe lege raid5 /dev/md0 te maken. Als je LVM gebruikt kun je nu deze nieuwe /dev/md0 gewoon toevoegen aan de volume group en je bestandssysteem uitbreiden over de 2 raid5 array's.

Het enige wat echt tijd kost hieraan is het kopieeren van /dev/md0 naar /dev/md1. Daarnaast kunnen nu in zowel /dev/md0 als in /dev/md1 een schijf crashen zonder dat je meteen data verliest.

Hier een stappenplan:
code:
1
2
3
4
5
6
7
 1. Maak backups want dit is niet geheel zonder risico maar die backups had je al natuurlijk ;)
 2. Maak een nieuwe /dev/md1 met 3 schijfen waarvan 1 mist. In de man page van mdadm staat wel hoe.
 3. Maak een LVM PV, VG en LV met op de LV bijvoorbeeld een ext3/4 bestandssysteem. Zie de LVM2 howto.
 4. Kopieer je bestanden van /dev/md0 naar je nieuwe /dev/md1. Dit kan even duuren.
 5. Verwijder je oude /dev/md0 en voeg schijf 4 toe aan /dev/md1. Deze gaat nu in de achtergrond rebuilden.
 6. Maak een nieuwe /dev/md0 met de overige 3 schijfen en voer stap 3 uit voor deze nieuwe /dev/md0.
 7. Voeg de PV op de nieuwe /dev/md0 toe aan de VG en resize het bestandssyteem op de LV.


Hier ga ik dus even vanuit dat je bestanden kleiner dan 2TB zijn want todat je de nieuwe /dev/md0 toevoegt aan je VG en je je LV oprekt is je schijf 2TB en pas daarna 4TB. Ook is het aan te raden om niet 2 schijfen van het zelfde type/produktie datum in 1 raid5 te gooien dus voeg de oudste schijf toe aan /dev/md1. Nog beter zou zijn als je 1 van je 2 nieuwe schijfen eerst verwisseld met een van je oude schijven zodat zowel /dev/md1 als /dev/md0 bestaan uit schijven die oude/nieuwe en vooral los zijn aangeschaft. Schijven die je tegelijk aankoopt hebben de neiging om ook tegelijk te crashen dus mixen. Je kunt dit ook achteraf nog doen.

Acties:
  • 0 Henk 'm!

Verwijderd

je kan ook de rebuild-speed omhoog schroeven:
http://www.cyberciti.biz/...resync-rebuild-speed.html

Acties:
  • 0 Henk 'm!

  • et36s
  • Registratie: Maart 2001
  • Laatst online: 05-10 16:24
Bedankt voor de zeer uitgebreide uitleg :) daar ga ik eens mee aan de slag.

Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 06-10 13:38

deadinspace

The what goes where now?

Verwijderd schreef op zaterdag 31 juli 2010 @ 01:34:
Daarnaast is het niet slim om met zoveel schijven raid5 te draaien omdat de kans dat een schijf crashed verdubbelt met elke schijf.
Huh, hoezo verdubbelt de kans met elke schijf?
Vervolgens copieer je alle data van je bestandssysteem op /dev/md0 naar je nieuwe bestands systeem op /dev/md1.
En wat als dat niet past? Zijn md0 is 6TB, en onder jouw voorstel is zijn md1 maar 4TB.
Daarnaast kunnen nu in zowel /dev/md0 als in /dev/md1 een schijf crashen zonder dat je meteen data verliest.
Ja, maar hij houdt dan wel maar een capaciteit van 8TB over, terwijl hij met zijn originele plan 10TB zou hebben. Dan kan hij beter raid6 over 6 disks nemen, dan heeft hij ook 8TB, maar dan wel met een betere bescherming dan volgens jouw plan.

(alle groottes onder de aanname dat al de schijven van de TS 2TB zijn)

[ Voor 4% gewijzigd door deadinspace op 31-07-2010 16:19 ]


Acties:
  • 0 Henk 'm!

Verwijderd

@Dekkertje
Dit gaat niet om een rebuild waarbij 2 schijfen lezen en 1 schrijft maar een resize/grow/migration waarbij de huidige stripes op de schijfen opnieuw worden verdeelt. Neemt niet weg dat jouw tip zeker het rebuilden achteraf kan helpen.

@Deadinspace
deadinspace schreef op zaterdag 31 juli 2010 @ 16:19:
[...]

Huh, hoezo verdubbelt de kans met elke schijf?
Stel een schijf heeft een verwachte levensduur van 5 jaar. Dus ergens in die 5 jaar gaat die schijf kapot. Nu heb je 2 schijfen met elk een verwachte levensduur van 5 jaar. Elk jaar is er dus een kans dat niet 1 maar 2 schijfen kapot gaan in het zelfde jaar. Nu heb je 3 schijfen... etc.

In een array van 3 schijfen is er dus 3x zoveel kans dat 1 van die schijfen kapot gaat t.o.v van 1 schijf.
[...]

En wat als dat niet past? Zijn md0 is 6TB, en onder jouw voorstel is zijn md1 maar 4TB.
Dat is inderdaad de catch dus de TS zal tijdelijk mogelijk wat ruimte moeten maken. De TS zou 1 schijf uit zijn huidige /dev/md0 kunnen halen en daarmee dus die array ook broken maken en daar tijdelijk wat opzetten maar dat is natuurlijk erg risky omdat je dan effectief met 2x een raid0 + 1 losse schijf zit. Maar de vraag van de TS was hoe hij een lang duurige raid resize/grow/migration kon vermijden en dit is mijn suggestie.
[...]

Ja, maar hij houdt dan wel maar een capaciteit van 8TB over, terwijl hij met zijn originele plan 10TB zou hebben. Dan kan hij beter raid6 over 6 disks nemen, dan heeft hij ook 8TB, maar dan wel met een betere bescherming dan volgens jouw plan.

(alle groottes onder de aanname dat al de schijven van de TS 2TB zijn)
Klopt, ik zie nu ook dat hij schijven van 2TB gebruikt ipv 1TB maar voor het princiepe maakt het niks uit.

Acties:
  • 0 Henk 'm!

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 27-09 08:46

smokalot

titel onder

Verwijderd schreef op zaterdag 31 juli 2010 @ 19:40:
@Deadinspace

[...]


Stel een schijf heeft een verwachte levensduur van 5 jaar. Dus ergens in die 5 jaar gaat die schijf kapot. Nu heb je 2 schijfen met elk een verwachte levensduur van 5 jaar. Elk jaar is er dus een kans dat niet 1 maar 2 schijfen kapot gaan in het zelfde jaar. Nu heb je 3 schijfen... etc.

In een array van 3 schijfen is er dus 3x zoveel kans dat 1 van die schijfen kapot gaat t.o.v van 1 schijf.
Ja, en dus niet 23=8 keer zo veel kans. Double parity (of zelfs triple parity) kan zinvol zijn hoor, maar dat hangt er helemaal van af hoe erg het is als je de data op je raid kwijt bent natuurlijk.

It sounds like it could be either bad hardware or software


Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 06-10 13:38

deadinspace

The what goes where now?

Verwijderd schreef op zaterdag 31 juli 2010 @ 19:40:
In een array van 3 schijfen is er dus 3x zoveel kans dat 1 van die schijfen kapot gaat t.o.v van 1 schijf.
Maar eerst schreef je dat de kans verdubbelt met elke extra schijf, en dat is natuurlijk iets anders.

Overigens zijn dat soort dingen een stuk ingewikkelder aangezien soortgelijke schijven die op dezelfde manier belast worden de vervelende neiging kunnen hebben vlak na elkaar kapot te gaan, maargoed, da's weer een ander verhaal. Veel schijven in raid5 is daarom idd geen goed idee (maar wat is "veel"?).
Klopt, ik zie nu ook dat hij schijven van 2TB gebruikt ipv 1TB maar voor het princiepe maakt het niks uit.
Dat is mijn kritiek niet. Mijn kritiek is dat jouw constructie neerkomt op raid50, welke minder bruikbare ruimte biedt dan raid5. Jouw raid50 biedt (in dit geval) evenveel storage als raid6, maar minder bescherming.

Acties:
  • 0 Henk 'm!

Verwijderd

@smokealot
Tuurlijk, riad is geen backup dus het hangt af hoe belangrijk je je data vindt of en als je het niet kwijt wil moet je het gewoon niet op raid0/1/5/6/JBOD/etc zetten maar ook een backup maken op een losse schijf/usb stick/DVD/etc.

@deadinspace
Klopt, verdubbelt was mischien iets overdreven maar de kans loopt wel behoorlijk op. Als de gemiddele levensduur van een schijf 5 jaar is en je hebt een set van 5 schijven dan overlijdt dus elk jaar statistisch 1 schijf. Daarom alleen al zou ik raid5 arrays van 5 schijfen of meer afraden en op raid6 overstappen.

Daarnaast moet je eigenlijk nooit raid met identieke schijfen uit dezelfde productie periode draaien. Ideeal zou zijn om wat oude schijfen waar nog genoeg garantie opzit op te kopen en verschillende merken te combineren. Daarnaast met de prijs van schijfen tegenwoordig zorg gewoon dat je een spare hebt die je er meteen in kunt zetten als een schijf overlijdt. Dan kun je de kappote schijf voor garantie opsturen en als die terug komt wordt dat de nieuwe spare. Simpel en veilig zeker in combinatie met een hotswap bay.

Mijn suggestie is inderdaad raid50 welke inderdaad de ruimte van raid6 heeft ipv raid5. Mede om het bovengenoemde raad ik de TS af om raid5 met 6 schijfen te gaan draaien en de TS vroeg hoe hij een migratie van raid5 met 4 schijfen naar raid5 met 6 schijfen kon vermijden en daar antwoorde ik op. Als de TS met 6 lege schijfen was begonnen zou ik gewoon raid6 of raid0 aanraden afhankelijk hoe belangrijk zijn data is.

En ik herhaal het nogmaals: raid is geen backup dus koop een spindel dvds ofzo en maak die backups

Acties:
  • 0 Henk 'm!

  • _JGC_
  • Registratie: Juli 2000
  • Nu online
Wat betreft RAID5 vs RAID6 met 2TB disks: ik zou gewoon voor RAID6 gaan. Bij een degrade draai je met RAID5 in feite gewoon RAID0, met 6 schijven betekent dat een RAID0 array over 5 schijven als er eentje uitvalt. Klinkt veilig, vind je ook niet? Het rebuilden van een array met 2TB disks kan een volle dag duren, tijdens die rebuild draai je compleet onbeveiligd. Verder willen schijven nog wel eens slechte sectoren hebben, als je die tegenkomt bij een RAID5 rebuild kan je je array niet meer recoveren zonder datacorruptie.

Acties:
  • 0 Henk 'm!

  • Q
  • Registratie: November 1999
  • Laatst online: 09:49

Q

Au Contraire Mon Capitan!

RAID 6

Je geeft het zelf al aan: het groeien van de array met 1 disk koste al een dag. Wat denk je van de tijdsduur van een rebuild als 1 disk uitvalt? In die periode ben je totaal onbeschermd en lopen de resterende disks lekker te stressen om je array weer op orde te krijgen. Guess wat could happen next.

Met 2 TB disks in een wat grotere array is RAID 6 eigenlijk een must in mijn beleving. 2x RAID 5 aan elkaar knopen kost evenveel schrijfruimte maar biedt zoals aangegeven veel minder bescherming.

Leen desnoods wat schijfruimte bij iemand om de array om te zetten.

O en btw, LVM is nergens voor nodig.

[ Voor 9% gewijzigd door Q op 02-08-2010 22:35 ]


Acties:
  • 0 Henk 'm!

  • _eXistenZ_
  • Registratie: Februari 2004
  • Laatst online: 05-10 18:21
Niet nodig, wel erg handig. Helemaal bij zulke grote partities.

There is no replacement for displacement!


Acties:
  • 0 Henk 'm!

  • Demo
  • Registratie: Juni 2000
  • Laatst online: 30-09 11:31

Demo

Probleemschietende Tovenaar

Q schreef op maandag 02 augustus 2010 @ 22:33:
O en btw, LVM is nergens voor nodig.
Dat is nogal een ongefundeerde uitspraak. Er zijn genoeg mensen die verschillende soorten data het liefst opslaan op gescheiden volumes. Of juist omgekeerd, Midas.e heeft bijvoorbeeld twee RAID-arrays van verschillende soorten schijven in zijn NAS die dmv LVM2 één groot volume vormen. Dat jij het onnodig vindt, betekent niet dat de rest van de wereld die mening deelt - anders was het immers niet uitgevonden ;)

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done


Acties:
  • 0 Henk 'm!

  • Q
  • Registratie: November 1999
  • Laatst online: 09:49

Q

Au Contraire Mon Capitan!

Demoniac schreef op dinsdag 03 augustus 2010 @ 11:03:
[...]
Dat is nogal een ongefundeerde uitspraak. Er zijn genoeg mensen die verschillende soorten data het liefst opslaan op gescheiden volumes. Of juist omgekeerd, Midas.e heeft bijvoorbeeld twee RAID-arrays van verschillende soorten schijven in zijn NAS die dmv LVM2 één groot volume vormen. Dat jij het onnodig vindt, betekent niet dat de rest van de wereld die mening deelt - anders was het immers niet uitgevonden ;)
Opmerking was van toepassing op de situatie van de TS, uiteraard. In de situatie van Midas.e is het wel nuttig.

Acties:
  • 0 Henk 'm!

  • _JGC_
  • Registratie: Juli 2000
  • Nu online
Afhankelijk van wat je wilt kan het erg handig zijn. Wil je in de toekomst meerdere arrays van verschillende grootte aanelkaar plakken of wil je snapshots gebruiken zodat je fatsoenlijk consistente backups kunt maken, dan is LVM heel makkelijk. Ik word alleen een beetje moe van standaard CentOS/RHEL installaties die altijd op LVM gedaan worden zonder dat er noodzaak voor is.

Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 06-10 13:38

deadinspace

The what goes where now?

Q schreef op maandag 02 augustus 2010 @ 22:33:
[...] Leen desnoods wat schijfruimte bij iemand om de array om te zetten. [...]
Het is (met recente kernel en mdadm) trouwens ook mogelijk om raid5 om te zetten naar raid6, dat kan misschien uitkomst bieden als de TS naar raid6 wil.

Acties:
  • 0 Henk 'm!

  • Q
  • Registratie: November 1999
  • Laatst online: 09:49

Q

Au Contraire Mon Capitan!

deadinspace schreef op dinsdag 03 augustus 2010 @ 16:57:
[...]

Het is (met recente kernel en mdadm) trouwens ook mogelijk om raid5 om te zetten naar raid6, dat kan misschien uitkomst bieden als de TS naar raid6 wil.
*Eindelijk*. Erg tof, een feature die zelfs hardware RAID controllers volgens mij zelden tot nooit hebben.

Je begint met een kleine array RAID 5 van 3 schijven. En gaat daarna gewoon schijven toevoegen. Boven de 5 a 6 schijven ga je over naar RAID 6 omdat dan de risico's op uitval van meerdere disks te groot wordt. Maar pas als het nodig is dus.

[ Voor 23% gewijzigd door Q op 04-08-2010 00:10 ]

Pagina: 1