LVM – Logical Volume Management

Logical Volume Management

Algemeen

Met Logical Volume Management (lvm) kan flexiber omgegaan worden met de vraag naar opslagruimte. Je zit niet meer vast aan eenmaal bedachte grootes van partities maar er kan geschoven worden met de beschikbare ruimte. Er zijn grofweg drie lagen te onderscheiden:

  1. De fysieke harddisk
  2. Een of meerdere volume groepen (vg’s)
  3. Een of meerdere logical volumes (lv’s)

Afbeelding: Redhat

Kort samengevat: Op een fysieke harddisk worden een of meerdere vg’s aangemaakt. In een vg worden de lv’s aangemaakt. De opslagruimte die een vg biedt kan uitgebreid worden door bijv. een extra disk aan toe te voegen. De totaal beschikbare ruimte in een vg kan flexibel aan de lv’s worden verdeeld.

In praktijk kan op een 100GB harddisk in eerste instantie 50GB gebruikt worden en wordt 50GB vrij gelaten om later toe te wijzen. Mocht in praktijk blijken dat bijvoorbeeld het mountpoint /opt meer ruimte nodig heeft dan voorzien terwijl de ruimte aan /home niet of nauwelijks gebruikt wordt dan kan de toegewezen ruimte aan /home worden verkleind met lvreduce en met lvextend kan de vrijgekomen ruimte aan /opt worden toegevoegd. Dit dynamisch omgaan met beschikbare diskruimte is dan ook aan te raden.

lvcreate : Aanmaken van een nieuw logical volume

Om een logical volume (lv) aan te maken moet eerst het lv zelf aangemaakt worden in een bestaande volume group (vg). Daarna moet het aangemaakte lv worden voorzien van een filesyteem en kan hierna worden gemount.

In dit voorbeeld wordt een logical volume lv_imap aangemaakt van 500MB in de volume group vg_data en het nieuwe lv wordt voorzien van de ext4 filesysteem:

   lvcreate -n lv_imap --size 500M vg_data
   mkfs.ext4 /dev/vg_data/lv_imap

Nu kan als er een mountpoint is aangemaakt met mount /dev/vg_data/lv_imap /mnt/imap of iets dergelijks de nieuwe lv worden gemount. Er zou ook een soortgelijke regel in /etc/fstab opgenomen kunnen worden. Echter is het beter om de UUID te gebruiken in plaats van de devicenaam. Het UUID is onveranderlijk en kan worden opgevraagd met:

  blkid /dev/vg_data/lv_imap
  /dev/vg_data/lv_imap: UUID="3c6980c7-b12d-43e6-b536-00d32194c4da" TYPE="ext4"

Dit UUID kan dan worden gebruikt in de fstab:

  UUID=3c6980c7-b12d-43e6-b536-00d32194c4da   /mnt/imap   ext4  defaults  1 2

Let op In /etc/ftab wordt het gevonden UUID gebruikt z_o_n_d_e_r de aanhalingstekens. Dit is zelfs een (instinker) vraagje op diverse linux examens! Dit is verwarrend omdat blkid een keurige bruikbare regel lijkt op te leveren maar met aanhalingstekens die dus niet in de fstab gebruikt kan worden.

lvextend : Vergroten van een bestaand logical volume

Dit gaat in twee stappen. Eerst wordt het volume en daarna wordt het filesysteem op het volume vergroot. In dit voorbeeld wordt het logical volume lv_var vergroot met 1GB:

  lvextend -L +1G dev/vg_mx1/lv_var
  resize2fs /dev/vg_mx1/lv_var

Bij het vergroten van het filesysteem met resize2fs komt de melding Filesystem at /dev/mapper/vg_mx1-lv_var is mounted on /var; on-line resizing required indien het filesysteem, in dit voorbeeld, als /vargemount is. Bij ext4 filesystems kan het vergroten zonder problemen on-the-fly gebeuren.

Categories: ,