Om Logisk Volumstyring (LVM)

LVM administrerer diskstasjoner. Den tillater at flere stasjoner og partisjoner blir kombinert til større volumgrupper, bistår i å lage sikkerhetskopier gjennom et øyeblikksbilde, og gir rom for dynamisk volumendring. Det kan også gi speiling tilsvarende et RAID 1 matrise.

En fullstendig diskusjon av LVM er utenfor rammen av denne introduksjonen, men grunnleggende konsepter presenteres nedenfor.

For å kjøre noen av kommandoene som presenteres her, må LVM2-2.03.28 pakken installeres. Alle kommandoer må kjøres som root bruker.

Administrering av disker med lvm utføres ved å bruke følgende konsepter:

fysiske volumer

Dette er fysiske disker eller partisjoner som f.eks /dev/sda3 eller /dev/sdb.

volumgrupper

Disse er navngitte grupper av fysiske volumer som kan manipuleres av administratoren. Antall fysiske volumer som utgjør en volumgruppe er vilkårlige. Fysiske volumer kan dynamisk legges til eller fjernes fra en volumgruppe.

logiske volumer

Volumgrupper kan deles inn i logiske volumer. Hvert logisk volum kan deretter formateres individuelt som om det var en vanlig Linux partisjon. Logiske volumer kan endres dynamisk etter administratorens behov.

For å gi et konkret eksempel, anta at du har to 2 TB disker. Også anta at det kreves veldig mye plass for en veldig stor database, montert på /srv/mysql. Slik vil det første settet med partisjoner se ut:

Partition  Use    Size      Partition Type
/dev/sda1  /boot  100MB     83 (Linux)
/dev/sda2  /       10GB     83 (Linux)
/dev/sda3  swap     2GB     82 (Swap)
/dev/sda4  LVM    remainder 8e (LVM)
/dev/sdb1  swap     2GB     82 (Swap)
/dev/sdb2  LVM    remainder 8e (LVM)

Initialiser først de fysiske volumene:

pvcreate /dev/sda4 /dev/sdb2
[Notat]

Notat

En full disk kan brukes som en del av et fysisk volum, men pass på at pvcreate kommando vil ødelegge all partisjonsinformasjon på den disken.

Deretter oppretter du en volumgruppe med navnet lfs-lvm:

vgcreate lfs-lvm /dev/sda4  /dev/sdb2

Statusen til volumgruppen kan kontrolleres ved å kjøre kommandoen vgscan. Lag nå de logiske volumene. Siden det er ca 3900 GB tilgjengelig, la ca 900 GB være ledig for utvidelse. Merk at det logiske volumet som heter mysql er større enn hvilken som helst fysisk disk.

lvcreate --name mysql --size 2500G lfs-lvm
lvcreate --name home  --size  500G lfs-lvm

Til slutt kan de logiske volumene formateres og monteres. I dette eksempel filsystemet jfs (jfsutils-1.1.15) brukes for demonstrasjonsformål.

mkfs -t ext4 /dev/lfs-lvm/home
mkfs -t jfs  /dev/lfs-lvm/mysql
mount /dev/lfs-lvm/home /home
mkdir -p /srv/mysql
mount /dev/lfs-lvm/mysql /srv/mysql

Det kan være nødvendig å aktivere de logiske volumene, for at de skal vises i /dev. De kan alle aktiveres samtidig ved å kjøre, som root bruker:

vgchange -a y

Et LVM logisk volum kan være vert for et rootfilsystem, men krever bruk av initramfs (opprinnelig RAM filsystem). Initramfs foreslått i «Om initramfs» lar lvm volumet sende inn root= bryteren til kjernekommandolinjen.

Hvis du ikke bruker initramfs, er det en rasetilstand i systemd som forhindrer montering av logiske volumer gjennom /etc/fstab. Du må opprette en «mount» enhet (se systemd.mount(5)) som i det følgende eksempel, som monterer /home mappen automatisk ved oppstart:

cat > /etc/systemd/system/home.mount << EOF
[Unit]
Description=Mount the lvm volume /dev/lfs-lvm/home to /home

[Mount]
What=/dev/lfs-lvm/home
Where=/home
Type=ext4
Options=default

[Install]
WantedBy=multi-user.target
EOF
[Notat]

Notat

Navnet på enheten må være navnet på monteringspunktet med `/'-tegnet erstattet av `-', og utelate den innledende.

Deretter må enheten aktiveres med:

systemctl enable home.mount

For mer informasjon om LVM, se LVM HOWTO og lvm mansidene. En god dybde veiledning er tilgjengelig fra RedHat®, selv om det noen ganger refererer til proprietære verktøy.