Skip to content

Instantly share code, notes, and snippets.

@Kiran01bm
Created June 7, 2019 07:55
Show Gist options
  • Save Kiran01bm/ae025bd0040639b7c7c36a29d10c854c to your computer and use it in GitHub Desktop.
Save Kiran01bm/ae025bd0040639b7c7c36a29d10c854c to your computer and use it in GitHub Desktop.
EBS expansion of LVM Backed volumes
Procedure:
1. Expand EBS volume
2. Grow Partition - growpart
3. Physical Volume Resize - pvresize
4. Logical Volume Resize - lvresize
5. Resize File System - resize2fs
In this Example we have - 2 Disks, 1 VG, 2 PVs, 3 LVs and EXT4 Filesystem. For XFS use xfs_growfs instead of resize2fs
[root@ip-masked docker-compose-related]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 vg1 lvm2 a-- <12.00g 0
/dev/sdb2 vg1 lvm2 a-- <13.00g <5.01g
[root@ip-masked docker-compose-related]#
[root@ip-masked ~]# lsblk -a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme1n1 259:0 0 25G 0 disk
├─nvme1n1p1 259:1 0 12G 0 part
│ ├─vg1-nexuslv 253:0 0 9G 0 lvm /nexus-data
│ ├─vg1-jenkinslv 253:1 0 4G 0 lvm /jenkins-data
│ └─vg1-redislv 253:2 0 2G 0 lvm /redis-data
└─nvme1n1p2 259:2 0 3G 0 part
└─vg1-nexuslv 253:0 0 9G 0 lvm /nexus-data
nvme0n1 259:3 0 8G 0 disk
├─nvme0n1p1 259:4 0 8G 0 part /
└─nvme0n1p128 259:5 0 1M 0 part
[root@ip-masked ~]# sudo growpart /dev/nvme1n1 2
CHANGED: partition=2 start=25165824 old: size=6291456 end=31457280 new: size=27262943,end=52428767
[root@ip-masked ~]#
[root@ip-masked ~]#
[root@ip-masked ~]#
[root@ip-masked ~]# lsblk -a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme1n1 259:0 0 25G 0 disk
├─nvme1n1p1 259:1 0 12G 0 part
│ ├─vg1-nexuslv 253:0 0 9G 0 lvm /nexus-data
│ ├─vg1-jenkinslv 253:1 0 4G 0 lvm /jenkins-data
│ └─vg1-redislv 253:2 0 2G 0 lvm /redis-data
└─nvme1n1p2 259:2 0 13G 0 part
└─vg1-nexuslv 253:0 0 9G 0 lvm /nexus-data
nvme0n1 259:3 0 8G 0 disk
├─nvme0n1p1 259:4 0 8G 0 part /
└─nvme0n1p128 259:5 0 1M 0 part
[root@ip-masked ~]#
[root@ip-masked /]# vgs
WARNING: Not using lvmetad because duplicate PVs were found.
WARNING: Use multipath or vgimportclone to resolve duplicate PVs?
WARNING: After duplicates are resolved, run "pvscan --cache" to enable lvmetad.
VG #PV #LV #SN Attr VSize VFree
vg1 2 3 0 wz--n- 14.99g 8.00m
[root@ip-masked /]# lvs
WARNING: Not using lvmetad because duplicate PVs were found.
WARNING: Use multipath or vgimportclone to resolve duplicate PVs?
WARNING: After duplicates are resolved, run "pvscan --cache" to enable lvmetad.
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
jenkinslv vg1 -wi-ao---- 4.00g
nexuslv vg1 -wi-ao---- 8.98g
redislv vg1 -wi-ao---- 2.00g
[root@ip-masked /]#
[root@ip-masked /]# pvresize -v /dev/sdb1
Wiping internal VG cache
Wiping cache of LVM-capable devices
Archiving volume group "vg1" metadata (seqno 12).
Resizing volume "/dev/sdb1" to 25163776 sectors.
No change to size of physical volume /dev/sdb1.
Updating physical volume "/dev/sdb1"
Creating volume group backup "/etc/lvm/backup/vg1" (seqno 13).
Physical volume "/dev/sdb1" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
[root@ip-masked /]# pvresize -v /dev/sdb2
Wiping internal VG cache
Wiping cache of LVM-capable devices
Archiving volume group "vg1" metadata (seqno 13).
Resizing volume "/dev/sdb2" to 27262943 sectors.
Resizing physical volume /dev/sdb2 from 767 to 3327 extents.
Updating physical volume "/dev/sdb2"
Creating volume group backup "/etc/lvm/backup/vg1" (seqno 14).
Physical volume "/dev/sdb2" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
[root@ip-masked /]#
[root@ip-masked /]# vgs
WARNING: Not using lvmetad because duplicate PVs were found.
WARNING: Use multipath or vgimportclone to resolve duplicate PVs?
WARNING: After duplicates are resolved, run "pvscan --cache" to enable lvmetad.
VG #PV #LV #SN Attr VSize VFree
vg1 2 3 0 wz--n- 24.99g <10.01g
[root@ip-masked /]#
[root@ip-masked /]# lvresize --size +5G /dev/vg1/nexuslv
WARNING: Not using lvmetad because duplicate PVs were found.
WARNING: Use multipath or vgimportclone to resolve duplicate PVs?
WARNING: After duplicates are resolved, run "pvscan --cache" to enable lvmetad.
Size of logical volume vg1/nexuslv changed from 8.98 GiB (2300 extents) to 13.98 GiB (3580 extents).
Logical volume vg1/nexuslv successfully resized.
[root@ip-masked /]#
[root@ip-masked /]# lvs
WARNING: Not using lvmetad because duplicate PVs were found.
WARNING: Use multipath or vgimportclone to resolve duplicate PVs?
WARNING: After duplicates are resolved, run "pvscan --cache" to enable lvmetad.
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
jenkinslv vg1 -wi-ao---- 4.00g
nexuslv vg1 -wi-ao---- 13.98g
redislv vg1 -wi-ao---- 2.00g
[root@ip-masked /]#
[root@ip-masked docker-compose-related]# df -kh
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 600K 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/nvme0n1p1 8.0G 4.9G 3.2G 62% /
/dev/mapper/vg1-nexuslv 8.8G 4.8G 3.6G 58% /nexus-data
/dev/mapper/vg1-jenkinslv 3.9G 16M 3.6G 1% /jenkins-data
/dev/mapper/vg1-redislv 2.0G 6.1M 1.8G 1% /redis-data
tmpfs 389M 0 389M 0% /run/user/1000
overlay 8.0G 4.9G 3.2G 62% /var/lib/docker/overlay2/8d287410355fbb98abff379d4812574506b5227986cf3f4ea0fec4d895d420e5/merged
overlay 8.0G 4.9G 3.2G 62% /var/lib/docker/overlay2/a81da302b6b5f1fc0c94f8ce238bd3b1fb27986c6ade633ee0c001c6537c0dfc/merged
shm 64M 0 64M 0% /var/lib/docker/containers/c36bf79f21651ae3e75a71dcf17042c5bb9b66feb20526ed3cdff67d3036a460/mounts/shm
shm 64M 0 64M 0% /var/lib/docker/containers/07db9882adba3255c83ef2054092c77abe5790f05f60e1bfeafebb97177960c0/mounts/shm
overlay 8.0G 4.9G 3.2G 62% /var/lib/docker/overlay2/bd106117c05184562c61916168e072f2cca5a5e9d3edece368d0786957fad996/merged
shm 64M 0 64M 0% /var/lib/docker/containers/80b9d1df39e359905dccc700fac5ce1e42530350dbd6070a9269c16c40631580/mounts/shm
[root@ip-masked docker-compose-related]#
root@ip-masked docker-compose-related]# resize2fs /dev/vg1/nexuslv
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/nexuslv is mounted on /nexus-data; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 2
The filesystem on /dev/vg1/nexuslv is now 3665920 blocks long.
[root@ip-masked docker-compose-related]#
[root@ip-masked docker-compose-related]# df -kh
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 600K 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/nvme0n1p1 8.0G 4.9G 3.2G 62% /
/dev/mapper/vg1-nexuslv 14G 4.8G 8.3G 37% /nexus-data
/dev/mapper/vg1-jenkinslv 3.9G 16M 3.6G 1% /jenkins-data
/dev/mapper/vg1-redislv 2.0G 6.1M 1.8G 1% /redis-data
tmpfs 389M 0 389M 0% /run/user/1000
overlay 8.0G 4.9G 3.2G 62% /var/lib/docker/overlay2/8d287410355fbb98abff379d4812574506b5227986cf3f4ea0fec4d895d420e5/merged
overlay 8.0G 4.9G 3.2G 62% /var/lib/docker/overlay2/a81da302b6b5f1fc0c94f8ce238bd3b1fb27986c6ade633ee0c001c6537c0dfc/merged
shm 64M 0 64M 0% /var/lib/docker/containers/c36bf79f21651ae3e75a71dcf17042c5bb9b66feb20526ed3cdff67d3036a460/mounts/shm
shm 64M 0 64M 0% /var/lib/docker/containers/07db9882adba3255c83ef2054092c77abe5790f05f60e1bfeafebb97177960c0/mounts/shm
overlay 8.0G 4.9G 3.2G 62% /var/lib/docker/overlay2/bd106117c05184562c61916168e072f2cca5a5e9d3edece368d0786957fad996/merged
shm 64M 0 64M 0% /var/lib/docker/containers/80b9d1df39e359905dccc700fac5ce1e42530350dbd6070a9269c16c40631580/mounts/shm
[root@ip-masked docker-compose-related]#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment