Kennisbank › Opslag Bestandssystemen › LVM: opslag die meebeweegt
opslag bestandssystemen starter 09 September 2026

LVM: opslag die meebeweegt

LVM: opslag die meebeweegt Uw `/home`-partitie zit vol, maar `/var` heeft nog 200 GB over. Met klassieke partities betekent dat: backup maken, partities

LVM (Logical Volume Manager) is geen bestandssysteem. Het is een laag tussen uw fysieke schijven en uw bestandssysteem, die schijven en partities onttrekt aan hun vaste grootte. Dit artikel legt uit hoe die laag werkt, wat u ermee kunt, en waar de grenzen liggen. Voor beheerders die opslag willen beheren die meegroeit met de vraag — niet met de oorspronkelijke partitie-indeling.

Vereisten

  • Een Linux-systeem met LVM-ondersteuning. Alle mainstream distributies hebben dit standaard aan boord: RHEL 8 en 9, Debian 10-12, Ubuntu 20.04-24.04.
  • `root`-toegang of sudo-rechten.
  • Een vrije schijf of partitie om mee te oefenen. Werken op een systeem waar al data staat, is geen goed begin.
  • De pakketten `lvm2` (voor LVM zelf) en een bestandssysteem naar keuze — `ext4` is het veiligst om mee te starten.

De drie lagen

LVM kent drie niveaus, en het helpt om die hiërarchie in uw hoofd te houden voordat u commando's gaat typen.

Physical Volumes (PVs) zijn de ruwe bouwstenen: hele schijven zoals `/dev/sdb`, of partities zoals `/dev/sdb1`. U initialiseert ze met `pvcreate`, waarmee LVM er metadata op zet.

Volume Groups (VGs) verzamelen een of meer PVs tot één pool. Een VG is geen opslag die u direct kunt gebruiken — het is de voorraadkast waaruit u later volumes snijdt. Twee schijven van 1 TB worden samen een VG van 2 TB, of een VG van 1,5 TB als u de rest reserveert.

Logical Volumes (LVs) zijn wat u uiteindelijk formatteert en mount. Een LV lijkt op een partitie, maar zit niet vast aan één fysieke schijf. Hij kan ruimte uit meerdere schijven tegelijk gebruiken, en u kunt hem vergroten of verkleinen terwijl het systeem draait — mits het bestandssysteem dat toestaat.

Deze abstractie is de kern. Een klassieke partitie is een vast stuk van één schijf; een LV is een flexibel stuk uit een gedeelde pool.

Waarom LVM, en wat het kost

LVM bestaat omdat statische partities een probleem oplossen dat u pas tegenkomt als het te laat is. U kunt een partitie niet eenvoudig vergroten met ruimte van een andere partitie — de partities liggen naast elkaar op dezelfde schijf, en u zou ze allemaal moeten verschuiven om er ruimte tussen te maken.

LVM lost dat op door een tussenlaag te creëren. Maar die tussenlaag kost iets: u voegt een abstractielaag toe tussen hardware en bestandssysteem. Dat betekent extra metadata, een extra stap bij het opstarten (LVM moet zijn volumes activeren), en een extra plek waar iets mis kan gaan. Op een systeem met één schijf en een vaste workload is het eerlijk gezegd overbodig. Op een server waar opslagbehoeften veranderen — databases die groeien, logpartities die volstromen, backups die tijdelijk veel ruimte vragen — betaalt de flexibiliteit zich terug.

De commando's

De standaard allocatie-eenheid binnen een VG is de extent, standaard 4 MB in de meeste implementaties. Alles wat u doet met LVM draait om het toewijzen van extents aan volumes. Dit is de praktische kern.

1. Maak een Physical Volume

pvcreate /dev/sdb

Dit zet LVM-metadata op `/dev/sdb`. De schijf is nu een PV. Controleer met `pvs` of `pvdisplay` dat LVM hem herkent. Let op: dit wist de schijf niet, maar het maakt hem wel klaar voor LVM-beheer — zet er geen bestaande data op waar u nog iets mee moet.

2. Maak een Volume Group

vgcreate vg_data /dev/sdb

Dit combineert de PV tot een VG met de naam `vg_data`. U kunt later meer schijven toevoegen met `vgextend vg_data /dev/sdc`, waardoor de pool groeit. Het voordeel hiervan wordt duidelijk in stap 3.

3. Maak een Logical Volume

lvcreate -L 100G -n lv_home vg_data

Dit maakt een LV van 100 GB met de naam `lv_home` uit de pool `vg_data`. Het volume verschijnt als `/dev/vg_data/lv_home`. U kunt hier nu een bestandssysteem op zetten en het mounten, net als een gewone partitie.

De echte kracht zit in wat hierna komt. Stel dat 100 GB niet genoeg blijkt.

4. Breid het volume uit

lvextend -L +50G /dev/vg_data/lv_home
resize2fs /dev/vg_data/lv_home

De eerste regel vergroot het LV met 50 GB — het systeem hoeft niet herstart. De tweede regel laat `ext4` weten dat er meer ruimte is. Met XFS gebruikt u `xfs_growfs` in plaats van `resize2fs`. Het volume blijft gemount; dit kan live, terwijl er data op staat.

Dit is waarom LVM in productieomgevingen zo gewaardeerd wordt: een database die onverwacht groeit, een logpartitie die volstroomt — u lost het op zonder downtime, zonder over te stappen naar een grotere schijf.

5. Verklein een volume — met zorg

umount /dev/vg_data/lv_home
e2fsck -f /dev/vg_data/lv_home
resize2fs /dev/vg_data/lv_home 120G
lvreduce -L 120G /dev/vg_data/lv_home
mount /dev/vg_data/lv_home /home

Verkleinen is de operatie waar LVM zijn reputatie van flexibiliteit deels verliest. Het volume moet eerst worden unmounted — verkleinen van een gemount volume is niet mogelijk. Daarna moet u het bestandssysteem eerst zelf verkleinen (`resize2fs` naar 120 GB), en pas daarna het LV (`lvreduce` naar 120 GB). In die volgorde, en niet andersom: verkleint u eerst het LV, dan beschadigt u het bestandssysteem.

Belangrijker: niet elk bestandssysteem werkt mee. `ext4` ondersteunt verkleinen wel, XFS niet. Voor XFS is verkleinen simpelweg geen optie — u zou het volume moeten kopiëren naar een kleiner nieuw volume. Dit is geen bug, maar een ontwerpkeuze van XFS, en het is de reden waarom u vooraf moet weten welk bestandssysteem u nodig hebt.

6. Voeg een schijf toe aan de pool

vgextend vg_data /dev/sdc
lvextend -l +100%FREE /dev/vg_data/lv_home
resize2fs /dev/vg_data/lv_home

Een nieuwe fysieke schijf toevoegen is de kern van LVM's schaalbaarheid. U breidt de VG uit met een nieuwe PV, en vergroot daarna het LV met alle vrije ruimte (`-l +100%FREE` gebruikt alle resterende extents). Het LV kan nu over twee fysieke schijven verspreid liggen — iets wat met klassieke partities onmogelijk is.

Verificatie

Controleer of alles correct werkt:

pvs
vgs
lvs
df -h /home

`pvs` toont uw fysieke volumes, `vgs` de volume groups met hun totale en vrije ruimte, `lvs` de logische volumes. `df -h` bevestigt dat het bestandssysteem de nieuwe grootte ziet. Als de cijfers van `lvs` en `df -h` niet overeenkomen, is het bestandssysteem nog niet aangepast — voer dan `resize2fs` opnieuw uit.

Veelgestelde problemen

Ik zie mijn LV niet na een herstart. LVM activeert volumes normaal automatisch tijdens het opstarten. Als dat niet gebeurt, activeer ze handmatig:

vgchange -ay

`resize2fs` klaagt dat het bestandssysteem niet schoon is. Draai eerst `e2fsck -f /dev/vg_data/lv_home` voordat u het bestandssysteem verkleint of vergroot. Dit controleert en repareert de metadata — overslaan is vragen om problemen.

Ik wil XFS verkleinen, maar het werkt niet. Dat klopt — XFS ondersteunt geen verkleinen. Maak een nieuw kleiner LV, kopieer de data ernaartoe met `rsync` of `xfsdump`/`xfsrestore`, en verwijder het oude volume. Dit is omslachtig, en het is de reden waarom veel beheerders voor variabele volumes ext4 gebruiken.

De grens van LVM

LVM is geen vervanging voor backups. Een LV over meerdere schijven spreidt uw data, maar biedt geen redundantie — valt één schijf uit, dan is het hele LV onbruikbaar. Wilt u dat voorkomen, dan hebt u mirroring nodig (`lvcreate --mirrors 1`) of een RAID-oplossing op een ander niveau. LVM kan dat, maar het kost schijfruimte, en het is niet de standaardconfiguratie.

Wat LVM wél doet: het maakt opslag beheerbaar op een manier die klassieke partities niet kunnen. Volumes groeien en krimpen zonder herstart, schijven komen en gaan zonder herpartitionering, en de data ligt niet meer vast aan de fysieke grenzen van één schijf. De prijs is een extra laag die u moet begrijpen — en die zich op een dag laat gelden als u hem nodig hebt.

Op systemen waar opslagbehoeften stabiel zijn, is LVM een overbodige abstractie. Op systemen waar ze dat niet zijn, is het het verschil tussen een operatie die een onderhoudsvenster vereist en een commando dat u draait terwijl de dienst gewoon blijft draaien. De kunst is weten aan welke kant u staat — en LVM installeren voordat u erachter komt dat u aan de verkeerde kant zat.

← Terug naar kennisbank
← Terug naar kennisbank