Online vergroten LVM filesysteem

  LVM / filesystemen / RAID / DISK

Dit document beschrijft hoe een filesysteem online te vergroten als er gebruik word gemaakt van LVM. Het filesysteem dat we willen vergroten is /var/tmp dat zit in de system volumegroup (boot VG). het huidige filesysteem is 128MB en moet vergroot worden naar 1,5GB.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg.root-lv.root
                      496M  294M  178M  63% /
/dev/mapper/vg.root-lv.var
                      496M   69M  402M  15% /var
/dev/mapper/vg.root-lv.varspool
                      124M  5.6M  112M   5% /var/spool
/dev/mapper/vg.root-lv.varlog
                      124M  9.0M  109M   8% /var/log
/dev/mapper/vg.root-lv.varlogbh
                      124M  5.6M  113M   5% /var/log/bash_hist
/dev/mapper/vg.root-lv.vartmp
                      124M  5.6M  113M   5% /var/tmp
/dev/mapper/vg.root-lv.opt
                      248M  220M   16M  94% /opt

Vergroten Logical Volume (LVM)

controleer eerst of er voldoende ruimte is in de VG (vg.root) gebruik hier voor vgdisplay of vgs, ik gebruik vgs.

# vgs
 VG      #PV #LV #SN Attr   VSize  VFree
 vg.appl   1   0   0 wz--n- 19.97G 19.97G
 vg.root   1  17   0 wz--n- 16.88G  8.34G

Er is genoeg ruimte. maak nu eerst de Logical Volume groter. met lvextend. met lvs kan je de huidige grote bekijken.

# lvs
  LV            VG      Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  lv.home       vg.root -wi-ao   1.00G
  lv.opt        vg.root -wi-ao 256.00M
  lv.paging00   vg.root -wi-ao   1.00G
  lv.root       vg.root -wi-ao 512.00M
  lv.tmp        vg.root -wi-ao 768.00M
  lv.usr        vg.root -wi-ao   2.50G
  lv.usrlocal   vg.root -wi-ao 128.00M
  lv.var        vg.root -wi-ao 512.00M
  lv.varlog     vg.root -wi-ao 128.00M
  lv.vartmp     vg.root -wi-ao 128.00M

vergroot lv.vartmp met lvextend

# lvextend -L 1.5G /dev/mapper/vg.root-lv.vartmp
  Extending logical volume lv.vartmp to 1.50 GB
  Logical volume lv.vartmp successfully resized
 

controle of hij groter is geworden

# lvs
  LV            VG      Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  lv.home       vg.root -wi-ao   1.00G
  lv.opt        vg.root -wi-ao 256.00M
  lv.paging00   vg.root -wi-ao   1.00G
  lv.root       vg.root -wi-ao 512.00M
  lv.tmp        vg.root -wi-ao 768.00M
  lv.usr        vg.root -wi-ao   2.50G
  lv.usrlocal   vg.root -wi-ao 128.00M
  lv.var        vg.root -wi-ao 512.00M
  lv.varlog     vg.root -wi-ao 128.00M
  lv.vartmp     vg.root -wi-ao   1.50G

Vergroten Filesysteem

de onderliggende LV is nu vergroot nu moet alleen het filesysteem nog vergroot worden. dit kan ook online afhankelijk van de gebruikte kernel versie gebruik je hier de volgende tools voor. ext2online voor oudere versies en resize2fs voor de nieuwere kernel. in de praktijk voor Centos4/RHEL4 ext2online en voor Centos5/RHEL5 resize2fs
CentOS 4 / RHEL4

# ext2online /dev/mapper/vg.root-lv.vartmp

CentOS 5 / RHEL5

# resize2fs /dev/mapper/vg.root-lv.vartmp
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/mapper/vg.root-lv.vartmp is mounted on /var/tmp; on-line resizing required
Performing an on-line resize of /dev/mapper/vg.root-lv.vartmp to 1572864 (1k) blocks.
The filesystem on /dev/mapper/vg.root-lv.vartmp is now 1572864 blocks long.

Controle of alles is goed gegaan.

# df -h /var/tmp
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg.root-lv.vartmp
                      1.5G  6.8M  1.4G   1% /var/tmp

Als je gebruik maakt van ext4 filesystemen op RHEL5 dan kan je ook geen geen resize2fs meer gebruiken, je krijgt dan de volgende fout melding.

 # resize2fs /dev/mapper/vg.appl-lv.hdoopdata
 resize2fs 1.39 (29-May-2006)
 resize2fs: Filesystem has unsupported feature(s) while trying to open /dev/mapper/vg.appl-lv.hdoopdata
 Couldn't find valid filesystem superblock.

Om toch te kunnen resizeen heb je resize4fs nodig. deze vind je in e4fsprogs.

 # yum install e4fsprogs
 # resize4fs /dev/mapper/vg.appl-lv.hdoopdata
 resize4fs 1.41.12 (17-May-2010)
 Filesystem at /dev/mapper/vg.appl-lv.hdoopdata is mounted on /data; on-line resizing required
 old desc_blocks = 1, new_desc_blocks = 1
 Performing an on-line resize of /dev/mapper/vg.appl-lv.hdoopdata to 786432 (4k) blocks.
 The filesystem on /dev/mapper/vg.appl-lv.hdoopdata is now 786432 blocks long.