[Linux] RAID1 schijf 'vervangen'

Pagina: 1
Acties:

  • eborn
  • Registratie: April 2000
  • Laatst online: 02:36
Sinds een paar maanden gebruik ik software-RAID onder Linux om twee schijven van ongeveer 80GB in RAID1 te laten draaien. In het verleden heb ik slechte ervaringen gehad met defecte harddisks, dus dit leek me de veiligste oplossing.

De uitgangssituatie is momenteel als volgt:

code:
1
2
3
4
5
6
/dev/md0 bestaat uit /dev/hdb1 en /dev/hdc1 (RAID1, 5GB, /var)
/dev/md1 bestaat uit /dev/hdb3 en /dev/hdc3 (RAID1, 70GB, /home)

/dev/hdb2 en /dev/hdc2 zijn gereserveerd als swap
/dev/hdb4 is gemount als /backup voor verwijder-'foutjes' (de schijven waren niet
van identieke afmetingen,  dus deze ruimte was eigenlijk over)


Het volgende is nu het geval: ik wil binnenkort een 160GB schijf kopen. Eigenlijk zou deze schijf in mijn desktop komen, maar ik verwacht daar niet de volledige ruimte te gaan gebruiken. Daarom wil ik hem bijplaatsen in de server, zodat de andere gezinsleden er ook gebruik van kunnen maken.

Het idee is om een bestaande 80GB uit het array te halen (het liefst de schijf zonder de extra /backup partitie) en deze te vervangen door de 160GB. De 80GB die hiermee extra vrijkomt wil ik gebruiken als extra opslag, zonder RAID. Voornamelijk voor bestanden die tijdelijk weggeschreven moeten worden, maar niet van cruciaal belang zijn (denk aan gedigitaliseerde film).

Mijn vraag is daarom als volgt: volgens mij moet het mogelijk zijn om /dev/hdc uit de machine te halen. Mijn stappenplan zou als volgt zijn:

• Ik hang de nieuwe schijf in de machine (vermoedelijk op een extra Promise ATA100 kaart, omdat het moederbord nu maar UDMA2 aankan)
• Ik zorg dat de partities overeen komen met de partities op de oude 80GB
• De extra ruimte (ongeveer 80GB) zet ik onder een nieuwe partitie (/dev/hde3 o.i.d.)
• Ik voeg de nieuwe schijf toe aan het array met raidhotadd /dev/md0 /dev/hde1 en raidhotadd /dev/md1 /dev/hde2
• Als ik het goed heb gaat Linux nu mijn extra disk syncen (?) Het voordeel om dit met twee actieve disks te doen is extra snelheid (neem ik aan). De informatie kan nu van beide 80GB disks gehaald worden.
• Zodra het syncen klaar is haal ik de overtollige 80GB-schijf uit het array met raidhotremove /dev/md0 /dev/hdc1 en raidhotremove /dev/md1 /dev/hdc2[/i][/li]
• Hierna vervang ik de oude schijf (/dev/hdc) uit /etc/raidtab en vervang ik die door /dev/hde.
• Tenslotte haal ik de schijf fysiek uit het systeem.

Het idee is leuk, maar gaat dit werken? :) Zijn er mensen die dit gedaan hebben en kunnen vertellen waar ik nog extra op moet letten? Of is het helemaal niet mogelijk op deze manier en moet ik het gewoon niet proberen? Dat is namelijk het enige waar ik me nog zorgen over maak. Uiteraard maak ik eerst een backup van belangrijke zaken (zover dat nog niet gebeurd). Maar als het zonder enige vorm van dataverlies kan is het natuurlijk nog mooier. En het is meteen een leuk expirement waar nog wat ervaring uit te halen is.

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 18:40
Ikzelf zou voor de zekerheid die 80GB schijf er gewoon uit halen, daar je op die schijf zowel je backups als een mirror hebt. Mocht er dan wat mis gaan met het toevoegen van de nieuwe schijf, dan kun je altijd nog de partitie met data van je 80GB schijf gebruiken om deze naar de nieuwe raid1 te kopieëren.

Gebruik je trouwens 'Linux raid autodetect' (fd) partitie types? Zo nee, vergeet je /etc/raidtab niet aan te passen.

  • eborn
  • Registratie: April 2000
  • Laatst online: 02:36
Jelmer schreef op 05 mei 2004 @ 11:19:
Ikzelf zou voor de zekerheid die 80GB schijf er gewoon uit halen, daar je op die schijf zowel je backups als een mirror hebt. Mocht er dan wat mis gaan met het toevoegen van de nieuwe schijf, dan kun je altijd nog de partitie met data van je 80GB schijf gebruiken om deze naar de nieuwe raid1 te kopieëren.
Dat is inderdaad een goeie tip. Op die manier heb ik altijd nog een schijf voor noodgevallen. Good thinking B)
Gebruik je trouwens 'Linux raid autodetect' (fd) partitie types? Zo nee, vergeet je /etc/raidtab niet aan te passen.
Er gaat zo snel geen belletje rinkelen, dus ik denk het niet :) De nieuwe tactiek zou dan worden: de 80GB eruit en de 160GB erin (zonder iets aan het array te doen). raidhotadd op de 160GB doen. Laten syncen. Bij succes: oude 80GB in raidtab vervangen door de nieuwe 160GB. Nogmaals reboot ter controle. Klopt dat?

Verwijderd

Eerst met "cat /proc/mdstat" controleren of je mirror helemaal klopt.
In /etc/raidtab de partities van hdc op 'failed-disk' zetten (zie onderste regel):
code:
1
2
3
4
5
6
7
8
9
10
raiddev                 /dev/md1
raid-level              1
nr-raid-disks           2
nr-spare-disks          0
chunk-size              64
persistent-superblock   1
device                  /dev/hda1
raid-disk               0
device                  /dev/hdc1
failed-disk               1

dan voor elke partitie:
code:
1
raidhotremove /dev/md1 /dev/hdc1

Nu poweroff, schijf hdc eruit, nieuwe hdc erin, en opnieuw booten.
Met sfdisk de partitie-tabel kopieren:
code:
1
sfdisk -d /dev/hda | sfdisk /dev/hdc

In je /etc/raidtab de partities van hdc weer op 'raid-disk' zetten.
Nu voor elke partitie:
code:
1
raidhotadd /dev/md1 /dev/hdc1

Met "cat /proc/mdstat" je mirror controleren, je zal zien dat ze nu aan het synchen zijn.
Als alles klaar is kan je op hdc extra partities gaan maken.

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 12:27
Voor mijn gevoel boot de TS van z'n raid, dan moet je ook een nieuwe initrd maken...

Voor de rest klopt de vorige post wel :)

[ Voor 24% gewijzigd door pierre-oord op 06-05-2004 10:16 ]

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 18:40
Als hij al een initrd gebruikt, want dat is niet per se noodzakelijk bij raid1.

Verwijderd

raid1 gewoon mee-compilen in de kernel, scheelt een hoop gedoe.

  • eborn
  • Registratie: April 2000
  • Laatst online: 02:36
pierre-oord schreef op 06 mei 2004 @ 10:14:
Voor mijn gevoel boot de TS van z'n raid, dan moet je ook een nieuwe initrd maken...
Voor de rest klopt de vorige post wel :)
Nope, de bootdisk is nog gewoon een aparte schijf van een paar GB. Leek me wel zo handig in geval van nood ;) Bovendien stond daar al alles op en had ik geen zin om de hele zaak te verplaatsen. Het moet wel een hobby blijven he ;)

Raid is inderdaad ingebouwd in de kernel. Zo'n beetje het enige onderdeel wat niet als module gecompileerd is.

[ Voor 12% gewijzigd door eborn op 06-05-2004 11:24 ]

Pagina: 1