LFCS: Hvordan administrere og opprette LVM ved å bruke vgcreate, lvcreate og lvextend kommandoer - del 11


På grunn av endringene i LFCS-eksamenkravene gjelder feb. 2, 2016, legger vi til de nødvendige emnene til LFCS-serien publisert her. For å forberede deg til denne eksamenen oppfordres du sterkt til å bruke LFCE-serien også.

En av de viktigste avgjørelsene når du installerer et Linux-system er mengden lagringsplass som skal tildeles for systemfiler, hjemmekataloger og andre. Hvis du gjør en feil på det tidspunktet, kan det være tyngende og noe risikabelt å vokse en partisjon som har gått tom for plass.

Logical Volumes Management (også kjent som LVM), som har blitt en standard for installasjon av de fleste (om ikke alle) Linux-distribusjoner, har mange fordeler i forhold til tradisjonell partisjonsadministrasjon. Det kanskje mest karakteristiske trekk ved LVM er at det lar logiske inndelinger endre størrelse (reduseres eller økes) etter ønske uten mye problemer.

Strukturen til LVM består av:

  1. En eller flere hele harddisker eller partisjoner er konfigurert som fysiske volumer (PV-er).
  2. En volumgruppe (VG) opprettes ved å bruke ett eller flere fysiske volumer. Du kan tenke på en volumgruppe som en enkelt lagringsenhet.
  3. Flere logiske volumer kan deretter opprettes i en volumgruppe. Hvert logiske volum tilsvarer noe som en tradisjonell partisjon – med fordelen at den kan endres etter ønske som vi nevnte tidligere.

I denne artikkelen vil vi bruke tre disker på 8 GB hver (/dev/sdb, /dev/sdc og /dev /sdd) for å lage tre fysiske volumer. Du kan enten lage PV-ene direkte på toppen av enheten, eller partisjonere den først.

Selv om vi har valgt å gå med den første metoden, hvis du bestemmer deg for å gå med den andre (som forklart i del 4 – Lag partisjoner og filsystemer i Linux av denne serien), sørg for å konfigurere hver partisjon som type 8e.

Opprette fysiske volumer, volumgrupper og logiske volumer

For å lage fysiske volumer på toppen av /dev/sdb, /dev/sdc og /dev/sdd, gjør du:

pvcreate /dev/sdb /dev/sdc /dev/sdd

Du kan liste de nyopprettede PV-ene med:

pvs

og få detaljert informasjon om hver PV med:

pvdisplay /dev/sdX

(der X er b, c eller d)

Hvis du utelater /dev/sdX som parameter, vil du få informasjon om alle PV-ene.

For å opprette en volumgruppe kalt vg00 ved å bruke /dev/sdb og /dev/sdc (vi lagrer /dev/sdd for senere for å illustrere muligheten for å legge til andre enheter for å utvide lagringskapasiteten ved behov):

vgcreate vg00 /dev/sdb /dev/sdc

Som det var tilfellet med fysiske volumer, kan du også se informasjon om denne volumgruppen ved å utstede:

vgdisplay vg00

Siden vg00 består av to 8 GB-disker, vil den vises som en enkelt 16 GB-stasjon:

Når det gjelder å skape logiske volumer, må plassfordelingen ta hensyn til både nåværende og fremtidige behov. Det anses som god praksis å navngi hvert logisk volum i henhold til tiltenkt bruk.

La oss for eksempel lage to LV-er kalt vol_projects (10 GB) og vol_backups (resterende plass), som vi kan bruke senere til å lagre prosjektdokumentasjon og systemsikkerhetskopiering, henholdsvis.

Alternativet -n brukes til å indikere et navn for LV, mens -L angir en fast størrelse og -l (små bokstaver L) er brukes til å angi en prosentandel av den gjenværende plassen i beholderen VG.

lvcreate -n vol_projects -L 10G vg00
lvcreate -n vol_backups -l 100%FREE vg00

Som før kan du se listen over LV-er og grunnleggende informasjon med:

lvs

og detaljert informasjon med

lvdisplay

For å se informasjon om en enkelt LV, bruk lvdisplay med VG og LV som parametere, som følger:

lvdisplay vg00/vol_projects

På bildet ovenfor kan vi se at LV-ene ble opprettet som lagringsenheter (se LV Path-linjen). Før hvert logisk volum kan brukes, må vi lage et filsystem på toppen av det.

Vi vil bruke ext4 som et eksempel her siden det lar oss både øke og redusere størrelsen på hver LV (i motsetning til xfs som bare tillater å øke størrelsen):

mkfs.ext4 /dev/vg00/vol_projects
mkfs.ext4 /dev/vg00/vol_backups

I neste avsnitt vil vi forklare hvordan du endrer størrelse på logiske volumer og legger til ekstra fysisk lagringsplass når behovet oppstår for å gjøre det.

Endre størrelse på logiske volumer og utvide volumgrupper

Se nå følgende scenario. Du begynner å gå tom for plass i vol_backups, mens du har god plass tilgjengelig i vol_projects. På grunn av LVMs natur kan vi enkelt redusere størrelsen på sistnevnte (si 2,5 GB) og allokere den til førstnevnte, mens vi endrer størrelsen på hvert filsystem samtidig.

Heldigvis er dette like enkelt som å gjøre:

lvreduce -L -2.5G -r /dev/vg00/vol_projects
lvextend -l +100%FREE -r /dev/vg00/vol_backups

Det er viktig å inkludere minus (-) eller plusstegnet (+) mens du endrer størrelsen på et logisk volum. Ellers setter du en fast størrelse for LV i stedet for å endre størrelsen på den.

Det kan skje at du kommer til et punkt der endring av størrelse på logiske volumer ikke lenger kan løse lagringsbehovene dine, og du må kjøpe en ekstra lagringsenhet. For å holde det enkelt, trenger du en annen disk. Vi skal simulere denne situasjonen ved å legge til gjenværende PV fra vårt første oppsett (/dev/sdd).

For å legge til /dev/sdd til vg00, gjør du

vgextend vg00 /dev/sdd

Hvis du kjører vgdisplay vg00 før og etter forrige kommando, vil du se økningen i størrelsen på VG:

vgdisplay vg00

Nå kan du bruke den nye plassen til å endre størrelsen på de eksisterende LV-ene i henhold til dine behov, eller til å lage flere etter behov.

Montering av logiske volumer ved oppstart og på forespørsel

Selvfølgelig ville det ikke være noen vits i å lage logiske volumer hvis vi ikke skal faktisk bruke dem! For bedre å identifisere et logisk volum må vi finne ut hva dets UUID (et ikke-endrende attributt som unikt identifiserer en formatert lagringsenhet) er.

For å gjøre det, bruk blkid etterfulgt av banen til hver enhet:

blkid /dev/vg00/vol_projects
blkid /dev/vg00/vol_backups

Lag monteringspunkter for hver LV:

mkdir /home/projects
mkdir /home/backups

og sett inn de tilsvarende oppføringene i /etc/fstab (sørg for å bruke UUID-ene du har fått før):

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects	ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4	defaults 0 0

Lagre deretter endringene og monter LV-ene:

mount -a
mount | grep home

Når det gjelder å faktisk bruke LV-ene, må du tildele riktige ugo+rwx-tillatelser som forklart i del 8 – Administrer brukere og grupper i Linux i denne serien.

Sammendrag

I denne artikkelen har vi introdusert Logical Volume Management, et allsidig verktøy for å administrere lagringsenheter som gir skalerbarhet. Når kombinert med RAID (som vi forklarte i del 6 – Opprett og administrer RAID i Linux i denne serien), kan du nyte ikke bare skalerbarhet (levert av LVM), men også redundans (tilbys av RAID).

I denne typen oppsett vil du vanligvis finne LVM på toppen av RAID, det vil si konfigurere RAID først og deretter konfigurere LVM på toppen av det.

Hvis du har spørsmål om denne artikkelen, eller forslag for å forbedre den, kan du gjerne kontakte oss ved å bruke kommentarskjemaet nedenfor.