Oppgradering av filtjener – RAID1 og LVM

Siden jeg kjøpte mine første 1 TB-disker har de stått konfigurert som enkeltdisker, og ikke i noen form for RAID. Jeg har riktig nok hatt to 320 GB WD-disker i RAID1 hvor jeg har lagret det viktigste, men planen har alltid vært å migrere til en eller annen form for RAID for resten av lagringsplassen også.

De siste månedene har jeg skaffet meg tre ekstra disker, slik at jeg totalt har 6 x 1 TB. Diskene er av typen WD Caviar Green Power, som er ypperlige disker til mindre avanserte filtjenere fordi Green Power-serien kan spinne ned til 5400 RPM når lasten ikke er stor. Det fører til mindre slitasje, mindre strømforbruk og mindre varmeutvikling.

Jeg vurderte både RAID5 og RAID6, men landet til slutt på RAID1 + LVM.

Hva er RAID1?

RAID1 gjør at innholdet på to eller flere disker speiles. Så når det skrives data til den ène disken i RAID’et, skrives det samme til de andre diskene. På den måten kan en av diskene bli ødelagt uten at noe data blir tapt.

Hva er LVM?

LVM (Logical Volume Manager) er en litt spesiell måte å behandle diskplass på. Disker (eller RAID) legges til i volumgrupper, som igjen deles opp i logiske volum. Disse volumene formaterer man med et filsystem, og dukker så opp som èn disk. Du kan lese litt mer om LVM på Linuxguiden.no.

Diskplassen brer seg altså over flere disker. Hvis man f.eks har tre disker på 500 GB satt opp i LVM, får man tilsammen 1500 GB på ett logisk volum (som for operativsystemet vises som èn “disk”). Fordelen er at man slipper å lagre på separate disker, alt dette tar LVM seg av.

Likevel er det en risiko forbundet med dette, fordi man kan risikere å miste mye data hvis èn av diskene ryker. Derfor har jeg valgt å legge LVM oppå RAID1.

Og så da?

Et bilde kan kanskje forklare det hele bedre:

lvm

  • Nederst finner vi sda, sdb, sdc etc. er her altså de fysiske diskene, i alt seks stykker.
  • md1, md2 og md3 er RAID’ene, som er satt opp som RAID1 med to disker i hvert RAID.
  • Så er det opprettet en volumgruppe med LVM hvor md1, md2 og md3 er lagt til. Det betyr at LVM har full råderett over disse tre RAID’ene.
  • Oppå volumgruppene kan man opprette logiske volum med forskjellige størrelser. Det kan være greit om man f.eks skal avsette en viss plass til forskjellige formål.

Selv har jeg kun ett logisk volum, fordi jeg og samboeren er de eneste brukerne, og vi har dermed ikke noe problem med å holde styr på hva som opptar plass.

Komme i gang

Under Ubuntu trenger du å installere følgende pakker:

sudo apt-get install lvm2 dmsetup mdadm

Diskene setter man opp med èn partisjon hver:

cfdisk (util-linux-ng 2.14)

 Disk Drive: /dev/sdf
 Size: 1000204886016 bytes, 1000.2 GB
 Heads: 255   Sectors per Track: 63   Cylinders: 121601

 Name          Flags         Part Type     FS Type          [Label]        Size (MB)
 -------------------------------------------------------------------------------------------
 sdf1                 Primary         Linux raid autodetect                  1000202.28

Her ser man at FS Type er satt til Linux raid autodetect.

To og to disker legges til i RAID:

mdadm --create /dev/md* --level=1 --raid-devices=2 /dev/sde1 /dev/sdf1

Her oppretter vi /dev/md* (hvor * er nummeret på raidet), med level 1 (altså speiling), med 2 disker.

Når jeg så har gjort det for alle diskene kan vi begynne med LVM. Først legger vi til diskene som fysiske volum:

pvcreate /dev/md1 /dev/md2 /dev/md3

Deretter oppretter man en volumgruppe:

vgcreate "navn-på-volumgruppe" /dev/md1 /dev/md2 /dev/md3

Du kan bruke kommandoen vgdisplay for å vise informasjon om volumgruppene. Jeg kalte volumgruppen min “data”:

--- Volume group ---
 VG Name               data
 System ID             
 Format                lvm2
 Metadata Areas        3
 Metadata Sequence No  13
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                1
 Open LV               1
 Max PV                0
 Cur PV                3
 Act PV                3
 VG Size               2.73 TB
 PE Size               4.00 MB
 Total PE              715398
 Alloc PE / Size       691200 / 2.64 TB
 Free  PE / Size       24198 / 94.52 GB
 VG UUID               CkVeCs-cg0I-FMCy-FQjc-An9k-NdyF-W7wdsH

Deretter opprettes et eller flere logiske volum:

lvcreate --name "navn-på-logisk-volum" --size 40G "navn-på-volumgruppe"

Nå opprettes altså et logisk volum på 40 GB. Man kan bruke kommandoen lvdisplay for å vise informasjon om de logiske volumene. Jeg har kun benyttet meg av ett logisk volum som er på 2.6 TB og er kalt “lvm”:

--- Logical volume ---
 LV Name                /dev/data/lvm
 VG Name                data
 LV UUID                4OkJt3-77FF-qReq-Zdss-NEAr-GmjW-3zUuZw
 LV Write Access        read/write
 LV Status              available
 # open                 1
 LV Size                2.64 TB
 Current LE             691200
 Segments               3
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           254:0

Når man har opprettet et logisk volum må man også legge et filsystem på topp. Her har jeg brukt EXT3:

mkfs.ext3 /dev/navn-på-volumgruppe/navn-på-logisk-volum

I mitt tilfelle:

mkfs.ext3 /dev/data/lvm

Avhengig av hvor stort det logiske volumet er kan det ta tid. Til slutt monterte jeg “disken” slik:

mount /dev/data/lvm /media/lvm

Da kan jeg med df -h se den nye “disken”:

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/data-lvm  2.6T  1.5T 1009G  61% /media/lvm

Hele LVM’et er altså på 2.6 TB, med ca 1.5 TB brukt.

Forstørring av et logisk volum

Du kan forstørre et logisk volum hvis du trenger mer plass, forutsatt at det er ledig plass på volumgruppen det logiske volumet ligger i.

Først må du demontere “disken”:

umount /media/lvm

Deretter bruker du lvextend til å fortelle LVM at det logiske volumet skal forstørres:

lvextend -L50G /dev/navn-på-volumgruppe/navn-på-logisk-volum

Her utvider man det logiske volumet til 50 GB.

De forskjellige filsystemene håndterer forstørring på forskjellig måte, men jeg tar for meg EXT3. Disse to kommandoene sjekker og forstørrer EXT3-filsystemet til den størrelsen det logiske volumet nå er:

e2fsck -f /dev/navn-på-volumgruppe/navn-på-logisk-volum
resize2fs /dev/navn-på-volumgruppe/navn-på-logisk-volum

Dette kan selvsagt ta tid hvis du forstørrer stort. Deretter kan du bare montere “disken” på nytt:

mount /dev/navn-på-volumgruppe/navn-på-logisk-volum /media/lvm

Dette var en enkel gjennomgang av LVM, og det finnes mye mer man kan sette seg inn i. Ta et søk på Google så finner du fort flere guider som går igjennom alle aspekter av LVM.

Leave a Reply