Situasi
Volume /opt/appdata-shared dah penuh. 100%. EBS dah di-extend kat AWS Console dari 320G ke 350G, tapi OS belum nampak ruang tu.
Setup dia guna LVM dengan filesystem XFS. Kena buat beberapa langkah sebelum ruang tu boleh dipakai.
Semak Keadaan Semasa
[root@prod-node7 sysops]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 40G 0 disk
`-xvda1 202:1 0 40G 0 part /
xvdc 202:32 0 80G 0 disk
`-DataGroup-DataVolume 253:0 0 80G 0 lvm /opt/appdata
xvdg 202:96 0 350G 0 disk
`-StorageGroup-StorageVolume 253:1 0 320G 0 lvm /opt/appdata-shared
Nampak tak? xvdg dah tunjuk 350G sebab EBS dah di-extend, tapi LVM masih nampak 320G. PV belum tahu pasal tambahan tu.
[root@prod-node7 sysops]# pvs
PV VG Fmt Attr PSize PFree
/dev/xvdc DataGroup lvm2 a-- <80.00g 0
/dev/xvdg StorageGroup lvm2 a-- <320.00g 0
Step 1: Resize Physical Volume
Bagitau LVM supaya baca semula saiz disk tu.
[root@prod-node7 sysops]# pvresize /dev/xvdg
Physical volume "/dev/xvdg" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
Check balik. Sekarang PFree dah ada 30G.
[root@prod-node7 sysops]# pvs
PV VG Fmt Attr PSize PFree
/dev/xvdc DataGroup lvm2 a-- <80.00g 0
/dev/xvdg StorageGroup lvm2 a-- <350.00g 30.00g
Step 2: Extend Logical Volume
Guna semua ruang kosong yang ada dalam VG tu.
[root@prod-node7 sysops]# lvextend -l +100%FREE /dev/mapper/StorageGroup-StorageVolume
Size of logical volume StorageGroup/StorageVolume changed from <320.00 GiB (81919 extents) to <350.00 GiB (89599 extents).
Logical volume StorageGroup/StorageVolume successfully resized.
Check VG sekali lagi. VFree dah balik ke 0, bermakna semua ruang dah masuk ke LV.
[root@prod-node7 sysops]# vgs
VG #PV #LV #SN Attr VSize VFree
DataGroup 1 1 0 wz--n- <80.00g 0
StorageGroup 1 1 0 wz--n- <350.00g 0
Step 3: Grow Filesystem
LV dah besar, tapi filesystem belum tahu. df -h masih tunjuk 320G dan 100% penuh.
[root@prod-node7 sysops]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/StorageGroup-StorageVolume 320G 320G 91M 100% /opt/appdata-shared
Untuk XFS, guna xfs_growfs. Boleh buat masa filesystem tu masih mounted, tak perlu unmount.
[root@prod-node7 sysops]# xfs_growfs -d /opt/appdata-shared
meta-data=/dev/mapper/StorageGroup-StorageVolume isize=512 agcount=13, agsize=6553344 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=83886080, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=4096, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 83886080 to 91750400
Kalau ko guna ext4, command dia lain sikit:
resize2fs /dev/mapper/StorageGroup-StorageVolume
Verify lepas growfs:
[root@prod-node7 sysops]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/StorageGroup-StorageVolume 350G 320G 30G 92% /opt/appdata-shared
Ringkasan Flow
- Extend EBS volume kat AWS Console dulu.
pvresize /dev/xvdgsupaya LVM nampak saiz baru.lvextend -l +100%FREE /dev/mapper/StorageGroup-StorageVolumeuntuk extend logical volume.xfs_growfs -d /opt/appdata-shareduntuk grow filesystem. Tak perlu unmount.
Semua step ni boleh buat live. Confluence atau app lain yang tengah running tak perlu di-restart.