Lynkurs i Logical Volume Management (LVM)

I sammenheng med artikkelen om organisering av diskplass for virtuelle maskiner er det passende å gi et lite lynkurs i Logical Volume Management (LVM). Alle moderne distribusjoner inkluderer LVM 2, som under panseret er ganske annerledes fra originalen, men kommandoene er stort sett de samme.

LVM er i utgangspunktet veldig enkelt, men man må ha et godt grep på definisjonene, så heng med:
Physical Volume (PV) - et fysisk volum
Volume Group (VG) - en gruppe med fysiske volum
Logical Volume (LV) - et logisk volum

Et PV tilsvarer en disk eller en "vanlig" partisjon. Du kan f.eks. bruke fdisk for å gi all plass på disken /dev/sdb til den primære partisjonen /dev/sdb1. Deretter definerer du /dev/sdb1 som et PV. Det siste er bare en definisjon, det er lite som skjer fysisk på disken.

Neste skritt er å lage en VG. Dette er en gruppe med en eller flere PVer. PVene trenger ikke være av samme størrelse eller være like, det er eksempelvis mulig å blande PVer fra SATA og ATA disker av forskjellig størrelse. Men det er sjelden ønskelig, da er det ofte bedre å lage flere VGer med disker av samme type. Se tips lenger nede.

En VG presenterer det samme som man vanligvis assosierer med en fysisk disk eller et maskinvarebasert RAID, en ressurs som kan deles opp. For hvert VG opprettes det et directory i /dev som har samme navn som VGet.

Men istedet for å dele VGen opp i partisjoner deler man det opp i LVer. Disse fungerer akkurat som partisjoner og dukker opp i /dev/[navn på VG]/[navn på LV]. Du formaterer de som vanlig, se eksempel nedenfor, og legger de til i /etc/fstab som om de var partisjoner. Hvis du vil kan du også partisjonere de, men det skal ikke finnes noen god grunn til å gjøre dette.

Du kan altså ha n fysiske volum som til sammen utgjør en volumgruppe. Denne volumgruppen kan deles opp i m logiske volum.

Det er ikke noe i veien for å ha flere volumgrupper, men logiske volum kan ikke opprettes på tvers av volumgrupper.

Eksempel: Slå sammen to partisjoner for å få et stort område:
pvcreate /dev/sda6
pvcreate /dev/sdb6
vgcreate volumgruppe /dev/sda6 /dev/sdb6
lvcreate -L 400G -n stortomraade volumgruppe

Du kan nå formatere det logiske volumet og bruke det,
mke2fs -j /dev/volumgruppe/stortomraade
mkdir /mnt/stortomraade
mount /dev/volumgrupe/stortomraade /mnt/stortomraade

Merk at hvis du bruker det for virtuelle maskiner så skal du ikke formatere det eller mounte det.

Du kan også enkelt endre størrelsen på et logisk volum:
lvextend -L+50G /dev/volumgruppe/stortomraade
Merk at du må endre størrelsen på det underliggende filsystemet før du eventuelt reduserer et volum, og etter dersom du øker størrelsen. Dette er uavhengig av om du bruker disken for et filsystem eller til virtualisering.

For virtuelle maskiner vil det se ut som om den "fysiske disken" de ligger på har vokst, og at de nå har ledig, upartisjonert plass.

Tips:
Det er relativt uvanlig å slå sammen disker ved hjelp av LVM. Den vanligste konfigurasjonen er at volumgruppen kun inneholder et enkelt fysisk volum. Hvis du har flere disker i maskinen kan du bruke maskinvare eller programvarebasert RAID for å opprette dette fysiske volumet.

Det er ikke noe galt med eksempelet ovenfor, men som regel vil du få bedre ytelse ved å bruke RAID 0 og stripe på tvers av to eller flere disker, og så legge LVM på toppen for å få en fleksibel måte å disponere plassen på. Unntaket er om den største flaskehalsen er søketid. Dersom dataene er spredd på tvers av diskene, og prosessene som etterspør data krever tilgang til forskjellige filer samtidig, så vil du ha to lesehoder som kan søke samtidig.

Valg for kommentarvisning

Velg din foretrukket måte å vise kommentarer på og klikk på "Lagre innstillinger" for å aktivere endringene.

Palken

Jeg liker denne serien med artikler. Har lenge savnet en kort og grei oversikt over lvm, bruker selv lvm og slet med å finne noe slikt som forklarer kort og godt hva det hele dreier seg om. Veldig greit og lese noe slikt før man begir seg ut på de store how-to'ene som finnes der ute :)

gab

Det er vel vært å nevne at hvis du resizer en LV så må du la filsystemet få vite om det også. Ext2 og ext3 bruker resize2fs /dev/volumgruppe/stortomraade

Registered Linux User # 171776 (http://counter.li.org)

moma

Mange takk for denne fine artikkelserien om virtualisering/LVM. LVM er et helt nytt emne for meg. På tide å lære noe nytt.

Men jeg har testet både VMWare, KVM og VirtualBox med vanlige diskfiler (image filer). Her er min huskelapp/noen notater om det: http://www.futuredesktop.org/vmware/vmware-player-gutsy.html
Det nederste bildet viser alle VMWare, VirtualBox og KVM/QEMU kjørende samtidig. Det er bare bløff fordi når KVMs kjernemodul er lastet inn, vil den fryse VMWare og VirtualBox vil ikke starte (gir dok en fin feilmelding). VMWare og VirtualBox kan muligens kjøre samtidig, men begge to kan ikke kreve CPU-støtte for virtualisering, tror jeg nok. Har ikke testet ennå.

// moma
http://www.futuredesktop.org

oo

RAID0 ?

Du meinte vel RAID1? Du er ganske lite redd for dataene dine dersom du bruker RAID0 - evt. har spesielle krav som involverer liten sikkerhet og stor fart :)

Men ellers var det ein bra artikkel, stå på :)

ak

Mente RAID0, RAID er ingen erstatning for sikkerhetskopiering. Foroevrig, hvis du setter diskene i en server med god kjoeling er det relativt faa disker som faktisk ryker (hvis du unngaar modeller av typen IBM DeathStar), se Googles rapport http://labs.google.com/papers/disk_failures.pdf

oo

Neida, RAID != backup, enig i det. Men når disken først ryker er det gjerne kjekt å unngå nedetid om ikkje anna :)

Men som alt anna er jo typen RAID du velger avhengig av bruksområde. Hadde vore kult om du også kunne lage ein artikkel om dei forskjellige RAID-typene og kva bruksområde dei typisk har.

ak

Ok, jeg begynte å skrive en om software RAID, jeg kan ta det med der. Har litt bedre tid neste uke.

oo

Nice :)

steinmb

Supert ak, slike artikkler er virkelig nyttige. Spesielt for å få tak på def. som for nye brukere kan være noe uklare :)

--
Stein Magne

  • Skriv ut artikkel
  • Abonner med RSS

Siste kommentarer