Hvordan sette opp et software-raid?

Heia bloggen! I dag skal vi lære om linux raid :)

Du spør kanskje, hvorfor tulle med det der nerdete RAID greia? “Koffor ikkje”, sier jeg da. Et RAID består av flere “inexpensive disks” i et rendundant array (stokker du litt om på ordene så har du forkortelsen på RAID). Disse kan settes opp i ganske mange konfigurasjoner, alt fra JBOD som bare er en haug med disker, til RAID 60 som er meget sikkert. Likevel et raid er IKKE et alternativ for backup. Brenner boksen din opp, så synd for deg, du skulle brukt dropbox. Vel vel, let’s get goin’.

La oss gå ut ifra at du allerede har koblet opp boksen din med de diskene du vil ha, og ditt favoritt (server) OS. Jeg har valg å bruke Ubuntu Server 11.10 for denne guiden, men du står fritt til å velge din engen distro. Det første vi gjør er å installere mdadm, som er software-raid kontrolleren, denne behandler raidet, og skriker deg i øret om noe skulle være feil. Da slenger vi opp en terminal, logger inn som root (bruk evt, sudo) og kjør:

apt-get install mdadm

Aight, neste steg vil så være å lage raidet, her tenkte jeg å sette opp et raid 5 array (1 paritetsdisk).

mdadm –create /dev/md0 –level=5 –raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

LOLWAT? Ok, vi forteller mdadm at vi vil lage et array med create /dev/md0, der /dev/md0 blir den nye devicen. Vi vil ha raid 5, og vi legger til 4 disker, sda, sdb, sdc, sdd. Hva med partisjoner spør du? Det er to måter å gjør dette på, sikkert fler, men jeg skal fortelle om de to måtene som blir brukt mest. Det jeg gjør over her, er å bruke hele disken til å skrive data på, uten å lage partisjoner først, partisjoner blir bare styr, stol på meg. Vi kunne laget partisjoner på forhånd, da måtte vi evt. brukt /dev/sda1 istedet for “raw-disk” /dev/sda. Da skal raidet være startet, så la oss se på statusen på det:

cat /proc/mdstat

Denne bør gi noe slikt:
cat /proc/mdstat

La oss titte på raidet fra et annet “synspunkt”, kjør:

mdadm –detail /dev/md0

mdadm --detail /dev/md0

Ok, da er vi kommet langt. La oss nå legge til raidet i konfigurasjonen til mdadm, slik at det blir husket ved neste reboot.

mdadm –examine –scan /dev/sda >> /etc/mdadm/mdadm.conf

Det vi gjør her er å legge til en linje med arrayet i mdadm.conf. Vi bruker en av diskene som parameter, fordi det er her det vil ligge en mdadm superblock. For sikkerhetsskyld, kjør:

mdadm –examine –scan /dev/sda

Og se om du får noe som ser slik ut:

“ARRAY /dev/md1 UUID=9068a6f4:a6368df1:56f3b105:bf246c64″

OBS! I nyere versjoner av mdadm gjøres dette slik:

mdadm –detail –scan /dev/sda

Om du så gjør så er det ikke mye som står igjen før vi er ferdige. Eller, litt er det nok igjen. Vi vil kanskje bruke raidet til noe, så da får vi lage et filsystem. Jeg velger her å bruke ext4, vi kunne liksågodt brukt xfs, reiserfs, osv, men la oss bruke ext4. Husk, velg et filsystem som er lett å “forstørre”, slik at neste gang du legger til en disk er det ingen problem å lage et større array.

mkfs.ext4 -m 0 /dev/md0

“-m 0″ sørger for ikke å reservere noe plass til brukeren “root” på filsystemet, hvorfor skulle vi det på et data-array?. Nå legger vi til vårt flunkende nye filsystem i /etc/fstab, slik at vi det blir automatisk mountet ved boot. Først må vi finne disk ID’en til arrayet.

ls -l /dev/disk/by-uuid/

Jeg fikk:
ls -l /dev/disk/by-uuid/

Her er det “09050cb2-d34a-48c4-a85c-1f8339cff4bb” som er interessant, kopier dette. Først lager vi en mappe, der raidet kan mountes:

mkdir -p /mnt/raid

Bruk din favoritt edior og åpne /etc/fstab.

vim /etc/fstab

Den bør se omtrent slik ut etter du er ferdig:
vim /etc/fstab

Her mounter vi raidet på /mnt/raid.

Da er vi ferdige, ta en velfortjent kaffekopp og fyll opp med data :D

Vi var visst ikke helt ferdige, var vi vel? Per request tar vi et lite avsnitt om hvordan man utvider arrayet. Om vi nå kjøper en ny disk og ønsker å utvide arrayet med denne kan vi gjøre følgende (antar at den nye disken er /dev/sde).

Legg den nye disken til arrayet med:

mdadm –add /dev/md0 /dev/sde

Så utvider vi arrayet med:

mdadm –grow /dev/md0 –raid-devices=5 (totalt antall disker i raidet, inkl ny disk)

Og til slutt kan vi utvide filsystemet så vi kan ta i bruk den nye disken:

resize2fs /dev/md0

Om vi f.eks bruker xfs som filsystem blir kommandoen litt annerledes:

xfs_growfs /mnt/raid

Merk at denne kjøres på mountpoint, ikke på selve devicen!
Sånn, nå kan du nyte kaffekopp nr 2 :)

This entry was posted in Uncategorized. Bookmark the permalink.

4 Responses to Hvordan sette opp et software-raid?

  1. Kenneth says:

    Nydelig!

  2. Kenneth says:

    Vil dere ta for dere hvordan å utvide raid arrayet ved slik løsning?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>