LVM

From TD-er's Wiki
Jump to navigationJump to search

Dit artikel is een onderdeel van de installatie handleiding van de XEN server. De gebruikte voorbeelden zijn dan ook hierop van toepassing.



Met LVM is het mogelijk om meerdere fysieke schijven of RAID-arrays te combineren tot een groep. Zo'n groep is makkelijk te vergroten of in te krimpen en ook de logische volumes (te vergelijken met partities op een schijf) in die groep kunnen onderling verschoven worden, of zelfs van groep verhuizen zonder dat deze verwijderd hoeven te worden en opnieuw aangemaakt.

Schematisch overzicht van de relatie tussen PV, VG en LV

Een Logisch volume is terug te vinden als /dev/<VG>/<LV> Hierdoor ben je dus niet meer gebonden aan fysieke stations en PV's kunnen zelfs op een compleet andere computer staan.

Meer informatie over LVM (met praktijkvoorbeelden)

PhysicalVolumes

Voordat je een VolumeGroup kunt aanmaken moet je uiteraard een PhysicalVolume hebben:

pvcreate /dev/md0

VolumeGroup

We willen een LVM-opslag aanmaken, zodat deze later eventueel uit te breiden is met meer schijven. De VolumeGroup (VG) noemen we "StorageRepository":

vgcreate StorageRepository /dev/md0

Met "vgscan" kunnen we het resultaat bekijken:

[root@xenserver-1 ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "StorageRepository" using metadata type lvm2

Hierna kun je het resultaat bekijken met vgdisplay:

[root@xenserver-1 ~]# vgdisplay
 --- Volume group ---
 VG Name               StorageRepository
 System ID
 Format                lvm2
 Metadata Areas        1
 Metadata Sequence No  3
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                2
 Open LV               0
 Max PV                0
 Cur PV                1
 Act PV                1
 VG Size               690.99 GB
 PE Size               4.00 MB
 Total PE              176893
 Alloc PE / Size       176640 / 690.00 GB
 Free  PE / Size       253 / 1012.00 MB
 VG UUID               Q1iK9l-ufjo-doO1-ipRR-yREH-xzkV-ZTTxoQ

LogicalVolumes

Binnen deze "StorageRepository" VolumeGroup (vg) willen we 2 logische volumes aanmaken:

  • een 600 GB volume voor de virtuele machines
lvcreate --name local-SR --size 600G StorageRepository
  • een 90 GB volume voor de shared-storage
lvcreate --name shared-SR --size 90G StorageRepository

Hierna kun je het resultaat bekijken met lvdisplay:

[root@xenserver-1 ~]# lvdisplay
 --- Logical volume ---
 LV Name                /dev/StorageRepository/local-SR
 VG Name                StorageRepository
 LV UUID                jPf5Ny-W4z4-rX1V-eZGd-Zixf-y2wv-8lwj0u
 LV Write Access        read/write
 LV Status              available
 # open                 0
 LV Size                600.00 GB
 Current LE             153600
 Segments               1
 Allocation             inherit
 Read ahead sectors     0
 Block device           252:0
 --- Logical volume ---
 LV Name                /dev/StorageRepository/shared-SR
 VG Name                StorageRepository
 LV UUID                zy1E04-SET7-lvhH-z1sK-pLM3-5hyt-C3kxgC
 LV Write Access        read/write
 LV Status              available
 # open                 0
 LV Size                90.00 GB
 Current LE             23040
 Segments               1
 Allocation             inherit
 Read ahead sectors     0
 Block device           252:1

Of wat overzichtelijker:

[root@xenserver-1 ~]# lvscan
  ACTIVE            '/dev/StorageRepository/local-SR' [600.00 GB] inherit
  ACTIVE            '/dev/StorageRepository/shared-SR' [90.00 GB] inherit

LVM volumes starten bij boot

Voor het starten van LVM is er niet meer nodig dan dat het volgende tijdens boot wordt uitgevoerd:

/sbin/vgscan
/sbin/vgchange -ay

Maak start-script aan in /etc/init.d (filenaam: lvm)

#!/bin/sh
case "$1" in
  start)
    /sbin/vgscan
    /sbin/vgchange -ay
    ;;
  stop)
    /sbin/vgchange -an
    ;;
  restart|force-reload)
    ;;
esac
exit 0

Maak script executable:

chmod 755 /etc/init.d/lvm

Plaats symbolic-link in /etc/rc3.d/

ln -s ../init.d/lvm S20lvm