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:
- 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.
