Dear Friends,
I ran into a problem where my openstack machine ran out of space. My Logical FS /dev/mapper/centos-root was only 50GB and most of the space was lost.
Solution:
LVM
I Added a new 500GB HDD (sdb), created partition with parted (sdb1) and gave the below commands:
[root@stack opt]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
Next Check your Volumes with “vgdisplay” command
[root@stack opt]# vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 465.27 GiB PE Size 4.00 MiB Total PE 119109 Alloc PE / Size 119109 / 465.27 GiB Free PE / Size 0 / 0 VG UUID TrvUI3-Xt7U-6vzF-5RtW-OfK0-OCOy-Tejrb6 --- Volume group --- VG Name cinder-volumes System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 20.60 GiB PE Size 4.00 MiB Total PE 5273 Alloc PE / Size 0 / 0 Free PE / Size 5273 / 20.60 GiB VG UUID 9LDtLm-52Un-1QJA-yc3q-13vE-LqEc-hX0kiU
From above you can see that i have two volume groups: “centos” and “cinder-volumes”
Then i extended my centos volume by the below command:
[root@stack opt]# vgextend centos /dev/sdb1 Volume group "centos" successfully extended
Then issue the pvscan command:
[root@stack opt]# pvscan PV /dev/sda2 VG centos lvm2 [465.27 GiB / 0 free] PV /dev/sdb1 VG centos lvm2 [465.76 GiB / 465.76 GiB free] PV /dev/loop1 VG cinder-volumes lvm2 [20.60 GiB / 20.60 GiB free] Total: 3 [951.62 GiB] / in use: 3 [951.62 GiB] / in no VG: 0 [0 ]
Issue the lvdisplay command to list the logical volumes
[root@stack opt]# lvdisplay --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID UOe0cx-ruLe-pD31-dLP0-bPEW-ePYb-Gc5da7 LV Write Access read/write LV Creation host, time localhost, 2017-06-21 11:10:40 +0600 LV Status available # open 2 LV Size 11.76 GiB Current LE 3010 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 --- Logical volume --- LV Path /dev/centos/home LV Name home VG Name centos LV UUID TTSL4v-dBZ4-CAFd-2pxK-ev4B-38Zj-LVeX2s LV Write Access read/write LV Creation host, time localhost, 2017-06-21 11:10:41 +0600 LV Status available # open 1 LV Size 403.51 GiB Current LE 103299 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID U63MqA-Sadu-zxFb-Nyy7-kkDO-N4uj-c3iodO LV Write Access read/write LV Creation host, time localhost, 2017-06-21 11:10:43 +0600 LV Status available # open 1 LV Size 50.00 GiB Current LE 12800 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1
For me the interesting LV was
— Logical volume —
LV Path /dev/centos/root
Then i issued the lvextend command on this Logical Volume
[root@stack opt]# lvextend /dev/centos/root /dev/sdb1 Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 515.76 GiB (132034 extents). Logical volume centos/root successfully resized.
df command will not show the change at this moment
[root@stack opt]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 50G 31G 20G 62% / devtmpfs 12G 0 12G 0% /dev tmpfs 12G 4.0K 12G 1% /dev/shm tmpfs 12G 505M 12G 5% /run tmpfs 12G 0 12G 0% /sys/fs/cgroup /dev/loop0 1.9G 6.1M 1.7G 1% /srv/node/swiftloopback /dev/sda1 494M 161M 334M 33% /boot /dev/mapper/centos-home 404G 33M 404G 1% /home tmpfs 2.4G 0 2.4G 0% /run/user/1000
Changes will take effect after you issue the resize command. Since i am using XFS therefore i will use the xfs_growfs command to resize the disk
[root@stack opt]# xfs_growfs /dev/centos/root meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=3276800 blks = sectsz=4096 attr=2, projid32bit=1 = crc=0 finobt=0 spinodes=0 data = bsize=4096 blocks=13107200, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=6400, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 13107200 to 135202816
Now we will issue the df command to check if the drive space is increased.
[root@stack opt]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 516G 31G 485G 6% / devtmpfs 12G 0 12G 0% /dev tmpfs 12G 4.0K 12G 1% /dev/shm tmpfs 12G 505M 12G 5% /run tmpfs 12G 0 12G 0% /sys/fs/cgroup /dev/loop0 1.9G 6.1M 1.7G 1% /srv/node/swiftloopback /dev/sda1 494M 161M 334M 33% /boot /dev/mapper/centos-home 404G 33M 404G 1% /home tmpfs 2.4G 0 2.4G 0% /run/user/1000 [root@stack opt]#
Great we can see that the size has been increased from 50GB to 516GB. Thanks to LVM.
Thanks & Best Regards,
Salman A. Francis
YouTube: LinuxKing
Facebook: LinuxKing, LZHProject, LinuxZeroToHero