twenty-first century code monkey

Migrering af Linux RAID1 til nye diske

Nogen af jer har måske opdaget at min blog har været lidt ustabil det meste af ugen – især i aftentimerne. Den korte forklaring er at jeg har udskiftet harddiskene i min server – den lange tekniske forklaring følger her…

Diskene i min server har gennem de sidste 5 år været 2 stk. Maxtor 250GB SATA diske i et RAID1 setup. RAID’et styres af mdadm i Linux. Der er sådan set ikke noget galt med de gamle diske, der er stadig ledig plads og ingen fejl, men jeg synes efterhånden alderen tynger lidt – så efter længere tids overvejelser har jeg købt og installere 2 stk. Western Digital 2TB SATA diske. Mit mål var at migrere det eksisterende RAID1 setup til de nye diske og det er lykkedes.

Min opskrift

Denne opskrift følges naturligvis på eget ansvar, men jeg har som sagt haft held med at bruge den. Mit RAID1 setup er baseret på partition 1 på /dev/sda og /dev/sdb, dvs. RAID partitionen /dev/md0 bruger de underliggende /dev/sda1 (disk 1) og /dev/sdb1 (disk 2). RAID partitionen bruger ext3 som filsystem.

1. Fjern den gamle disk

Jeg startede med at fjerne den gamle disk 2 fra RAID’et.

sudo mdadm --manage /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1

Dernæst slukkedes jeg serveren og erstattede den fysiske disk 2 med den nye disk.

2. Kopier partitionstabellen

Når serveren er boot’et igen er det tid til at oprette partitionstabellen på den nye disk. Det gøres lettest ved at kopiere den fra disk 1. Denne kommando dumper partitionstabellen fra disk 1 og bruger den til at oprette partitionstabellen på den nye disk 2.

sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb

3. Tilføj den nye disk

Herefter et det blot et spørgsmål om at tilføje den nye disk 2 til RAID’et – så er den ene disk migreret til det nye setup.

sudo mdadm --manage /dev/md0 --add /dev/sdb1

Efter denne kommando er kørt skal RAID’et synces, det sker automatisk men tager lang tid. Sync tiden for mit RAID på 250GB var omtrent to timer, mens det er omtrent 10 timer for mit RAID på 2TB.

Når sync’en er færdig gentages processen blot med den anden disk. Husk at holde styr på /dev/sda og /dev/sdb!

Når begge nye diske er tilføjet og RAID’et er sync’et færdig, så er migrering til de nye diske gennemført. I mit tilfælde har jeg dog 7/8 af de nye disken som ikke er i brug, fordi jeg kopierede partitionstabellen fra de gamle diske, dvs. RAID partitionen /dev/md0 er stadig kun på 250GB selvom diskene er på 2TB. For at kunne bruge hele disken skulle jeg igennem tre trin.

4. Udvid partitionstabellen

Først skal partitionerne /dev/sda1 og /dev/sdb1 udvides til at fylde hele disken. Det gøres ved at fjerne den ene disk fra RADI’et som i punkt 1. Herefter udvidde jeg partitionen med fdisk ved at slette den eksisterede partition og oprette en ny der fylder hele disken. Bemærk det er yderst vigtigt at start sektoren på den gamle og nye partition matcher – ellers er filsystemet ubrugeligt! Tilsidst tilføjes disken til RAID’et igen som i punkt 3 og RAID’et sync’es. Ændringen af partitionstabellen gentages herefter for den anden disk.

5. Udvid RAID’et

Når partitionerne er udvidet er det tid til at udvide RAID partitionen/dev/md0.

sudo mdadm --grow /dev/md0 --size=max

Kommandoen tager et kort øjeblik, men bagefter skal diskene synce igen, hvilket tager lang tid – i mit tilfælde en nats tid.

6. Udvid filsystemet

Tilsidst er det blot et spørgsmål om at udvide filsystemet i RAID partitionen. Det kan i nogle tilfælde gøres online med ext3, men det var ikke tilfældet med mine diske, så jeg måtte boote fra en Live CD og udvide filsystemet herfra.

sudo reize2fs /dev/md0

Det tog omtrent 2 timer at udvide filsystemet fra 250GB til 2TB.

Herefter et det blot at boot’e serveren igen og nyde den ekstra plads 🙂

3 Kommentarer

  1. Stefan

    Tillykke med det nye udstyr – jeg kan se på opskriften at jeg måske lige venter lidt med at overveje Linux 🙂
    If it ain’t broke – why fix it – gælder naturligvis ikke XBMC-setup’et 🙂

  2. Mr x

    Interessant!

    Hvilken Linux distribution bruger du? Ubuntu server?

  3. Tommy

    Jeg bruger Debian som Ubuntu server er baseret på. Det er lige før min server er fra før Ubuntus tid – kan være resten af hardwaren skal skiftes på et tidspunkt 🙂

© 2024 Tommy Winther

Tema af Anders NorenOp ↑