LFCS: Sådan styres og oprettes LVM ved hjælp af kommandoer vgcreate, lvcreate og lvextend - Del 11


På grund af ændringerne i LFCS-eksamenskravene, der træder i kraft den 2. februar 2016, tilføjer vi også de nødvendige emner til LFCE-serien.

En af de vigtigste beslutninger under installation af et Linux-system er den mængde lagerplads, der skal tildeles til systemfiler, hjemmekataloger og andre. Hvis du laver en fejl på det tidspunkt, kan det være besværligt og noget risikabelt at dyrke en partition, der er løbet tør for plads.

Logical Volumes Management (også kendt som LVM), som er blevet en standard for installation af de fleste (hvis ikke alle) Linux-distributioner, har adskillige fordele i forhold til traditionel partitioneringsstyring. Måske er det mest kendetegnende ved LVM, at det giver mulighed for at ændre størrelsen på logiske divisioner (reduceret eller øget) efter eget valg uden meget besvær.

LVM's struktur består af:

  1. En eller flere hele harddiske eller partitioner er konfigureret som fysiske diskenheder (PV'er).
  2. En volumengruppe (VG) oprettes ved hjælp af en eller flere fysiske diskenheder. Du kan tænke på en volumengruppe som en enkelt lagerenhed.
  3. Flere logiske diskenheder kan derefter oprettes i en volumengruppe. Hvert logisk volumen svarer noget til en traditionel partition - med den fordel, at den kan ændres efter ønske, som vi nævnte tidligere.

I denne artikel bruger vi tre diske på hver 8 GB (/ dev/sdb,/dev/sdc og/dev/sdd) til at skabe tre fysiske diskenheder. Du kan enten oprette PV'er direkte oven på enheden eller partitionere den først.

Selvom vi har valgt at gå med den første metode, hvis du beslutter at gå med den anden (som forklaret i del 4 - Opret partitioner og filsystemer i Linux i denne serie), skal du sørge for at konfigurere hver partition som type 8e .

Oprettelse af fysiske volumener, volumengrupper og logiske volumener

For at oprette fysiske diskenheder oven på/dev/sdb,/dev/sdc og/dev/sdd skal du gøre:

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

Du kan liste de nyoprettede solceller med:

# pvs

og få detaljerede oplysninger om hver PV med:

# pvdisplay /dev/sdX

(hvor X er b, c eller d)

Hvis du udelader /dev/sdX som parameter, får du information om alle PV'er.

For at oprette en diskenhedsgruppe med navnet vg00 ved hjælp af /dev/sdb og /dev/sdc (vi gemmer /dev/sdd for senere at illustrere muligheden for at tilføje andre enheder for at udvide lagringskapacitet, når det er nødvendigt):

# vgcreate vg00 /dev/sdb /dev/sdc

Som det var tilfældet med fysiske volumener, kan du også se oplysninger om denne volumengruppe ved at udstede:

# vgdisplay vg00

Da vg00 er dannet med to 8 GB diske, vises det som et enkelt 16 GB drev:

Når det drejer sig om at skabe logiske volumener, skal fordelingen af plads tage hensyn til både nuværende og fremtidige behov. Det betragtes som god praksis at navngive hver logisk volumen efter den tilsigtede anvendelse.

Lad os f.eks. Oprette to LV'er med navnet vol_projects (10 GB) og vol_backups (resterende plads), som vi senere kan bruge til at gemme henholdsvis projektdokumentation og systembackups.

Indstillingen -n bruges til at angive et navn til LV, hvorimod -L indstiller en fast størrelse, og -l (små bogstaver L) er bruges til at angive en procentdel af den resterende plads i containeren 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 grundlæggende oplysninger med:

# lvs

og detaljerede oplysninger med

# lvdisplay

For at se oplysninger om en enkelt LV skal du bruge lvdisplay med VG og LV som parametre som følger:

# lvdisplay vg00/vol_projects

På billedet ovenfor kan vi se, at LV'erne blev oprettet som lagerenheder (se linjen LV-sti). Før hver logiske lydstyrke kan bruges, skal vi oprette et filsystem oven på det.

Vi bruger ext4 som et eksempel her, da det giver os både mulighed for at øge og reducere størrelsen på hver LV (i modsætning til xfs, der kun giver mulighed for at øge størrelsen):

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

I det næste afsnit forklarer vi, hvordan du ændrer størrelsen på logiske volumener og tilføjer ekstra fysisk lagerplads, når behovet opstår.

Ændring af størrelse på logiske volumener og udvidelse af volumengrupper

Forestil dig nu følgende scenarie. Du begynder at løbe tør for plads i vol_backups , mens du har masser af plads til rådighed i vol_projects . På grund af karakteren af LVM kan vi nemt reducere størrelsen på sidstnævnte (f.eks. 2,5 GB) og tildele den til den tidligere, mens størrelsen på hvert filsystem ændres på samme tid.

Heldigvis er dette lige så let som at gøre:

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

Det er vigtigt at medtage minustegnene (-) eller plus (+) , mens størrelsen på en logisk lydstyrke ændres. Ellers indstiller du en fast størrelse for LV i stedet for at ændre størrelsen på den.

Det kan ske, at du ankommer til et punkt, hvor størrelsen på logiske diskenheder ikke længere kan løse dine lagerbehov, og du skal købe en ekstra lagerenhed. Hvis du holder det simpelt, skal du bruge en anden disk. Vi vil simulere denne situation ved at tilføje den resterende solcelle fra vores oprindelige opsætning (/dev/sdd ).

For at tilføje /dev/sdd til vg00 skal du gøre

# vgextend vg00 /dev/sdd

Hvis du kører vgdisplay vg00 før og efter den forrige kommando, vil du se stigningen i størrelsen på VG:

# vgdisplay vg00

Nu kan du bruge det nyligt tilføjede rum til at ændre størrelsen på de eksisterende LV'er efter dine behov eller til at oprette yderligere efter behov.

Montering af logiske volumener ved opstart og efter behov

Naturligvis ville det ikke være noget formål at oprette logiske diskenheder, hvis vi ikke rent faktisk vil bruge dem! For bedre at identificere et logisk volumen bliver vi nødt til at finde ud af, hvad dets UUID (en attribut, der ikke ændrer sig, der entydigt identificerer en formateret lagerenhed) er.

For at gøre det skal du bruge blkid efterfulgt af stien til hver enhed:

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

Opret monteringspunkter for hver LV:

# mkdir /home/projects
# mkdir /home/backups

og indsæt de tilsvarende poster i /etc/fstab (sørg for at bruge de UUID'er, der er opnået 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

Gem derefter ændringerne, og monter LV'erne:

# mount -a
# mount | grep home

Når det kommer til faktisk at bruge LV'erne, skal du tildele de korrekte ugo + rwx -tilladelser som forklaret i del 8 - Administrer brugere og grupper i Linux i denne serie.

Resumé

I denne artikel har vi introduceret del 6 - Opret og administrer RAID i Linux i denne serie), du kan ikke kun nyde skalerbarhed (leveret af LVM), men også redundans (tilbudt af RAID).

I denne type opsætning vil du typisk finde LVM oven på RAID, dvs. konfigurere RAID først og derefter konfigurere LVM oven på den.

Hvis du har spørgsmål om denne artikel eller forslag til at forbedre den, er du velkommen til at kontakte os ved hjælp af nedenstående kommentarformular.