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:
-
De fysieke harddisk
-
Een of meerdere volume groepen (vg’s)
-
Een of meerdere logical volumes (lv’s)
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 /var
gemount is. Bij ext4 filesystems kan het vergroten zonder problemen on-the-fly gebeuren.