1. 현재 파티션 표 확인
명령어: fdisk -l
현재 vda1, vda2, vda3가 마운트되어 있으며, 사용되지 않은 vdb 디스크가 100GB 있음을 확인. 현재 LV 크기는 29GB임.
sysadmin@Storage-Node-01:~# fdisk -l
Disk /dev/vda:60 GiB,64424509440 bytes,125829120 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 4A7F1857-B833-4D08-9D5C-3A0A3DB2D192
Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 4198399 4194304 2G Linux filesystem
/dev/vda3 4198400 125827071 121628672 58G Linux filesystem
Disk /dev/vdb:100 GiB,107374182400 bytes,209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/datastore-datastore--lv:28.102 GiB,31134318592 bytes,60809216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
sysadmin@Storage-Node-01:~#
2. 새 디스크 /dev/vdb 파티션 생성
명령어: fdisk /dev/vdb
작업 순서: n(새 파티션 추가) → p(파티션 표 출력) → 1(파티션 번호 1 선택) → Enter(시작 섹터 기본값) → Enter(종료 섹터 기본값) → t(파티션 타입 변경) → 8e(Linux 타입을 "Linux LVM"으로 변경) → p(파티션 표 출력) → w(변경 사항 디스크에 쓰고 종료)
sysadmin@Storage-Node-01:~# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xa8f54781.
Command (m for help): n
Partition type
p primary partition (0 primary, 0 extended, 4 free)
e extended partition (for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199):
Created a new partition 1 of type 'Linux' and of size 100 GiB.
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'.
Command (m for help): p
Disk /dev/vdb:100 GiB,107374182400 bytes,209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa8f54781
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 209715199 209713152 100G 8e Linux LVM
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
sysadmin@Storage-Node-01:~#
3. 파티션 표 재확인
명령어: fdisk -l
새로 생성된 /dev/vdb1 파티션 확인
sysadmin@Storage-Node-01:~# fdisk -l
Disk /dev/vda:60 GiB,64424509440 bytes,125829120 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 4A7F1857-B833-4D08-9D5C-3A0A3DB2D192
Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 4198399 4194304 2G Linux filesystem
/dev/vda3 4198400 125827071 121628672 58G Linux filesystem
Disk /dev/vdb:100 GiB,107374182400 bytes,209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa8f54781
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 209715199 209713152 100G 8e Linux LVM
Disk /dev/mapper/datastore-datastore--lv:28.102 GiB,31134318592 bytes,60809216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
sysadmin@Storage-Node-01:~#
4. PV(물리 볼륨) 확인
명령어: pvs
현재 PV는 /dev/vda3 하나만 존재
VG도 datastore-vg 하나만 존재
sysadmin@Storage-Node-01:~# pvs
PV VG Fmt Attr PSize PFree
/dev/vda3 datastore-vg lvm2 a-- <58.00g 29.00g
sysadmin@Storage-Node-01:~#
5. 새 PV 생성 및 확인
명령어: pvcreate /dev/vdb1
새로 생성된 PV /dev/vdb1이 100GB 크기임을 확인
sysadmin@Storage-Node-01:~# pvcreate /dev/vdb1
Physical volume "/dev/vdb1" successfully created.
sysadmin@Storage-Node-01:~# pvs
PV VG Fmt Attr PSize PFree
/dev/vda3 datastore-vg lvm2 a-- <58.00g 29.00g
/dev/vdb1 lvm2 --- <100.00g <100.00g
sysadmin@Storage-Node-01:~#
- 새 PV를 VG에 확장
명령어: vgextend datastore-vg /dev/vdb1
VG 확장 전후 비교 확인
sysadmin@Storage-Node-01:~# vgs
VG #PV #LV #SN Attr VSize VFree
datastore-vg 1 1 0 wz--n- <58.00g 29.00g
sysadmin@Storage-Node-01:~# vgextend datastore-vg /dev/vdb1
Volume group "datastore-vg" successfully extended
sysadmin@Storage-Node-01:~# vgs
VG #PV #LV #SN Attr VSize VFree
datastore-vg 2 1 0 wz--n- 157.99g <129.00g
sysadmin@Storage-Node-01:~#
7. PV 재확인
명령어: pvs
새로 추가된 PV가 VG에 할당되었음을 확인
sysadmin@Storage-Node-01:~# pvs
PV VG Fmt Attr PSize PFree
/dev/vda3 datastore-vg lvm2 a-- <58.00g 0
/dev/vdb1 datastore-vg lvm2 a-- <100.00g <39.50g
sysadmin@Storage-Node-01:~#
8. LV(논리 볼륨) 확인
명령어: lvdisplay
현재 LV 크기는 29G이며, LV 경로는 /dev/datastore-vg/datastore-lv임
sysadmin@Storage-Node-01:~# lvdisplay
--- Logical volume ---
LV Path /dev/datastore-vg/datastore-lv
LV Name datastore-lv
VG Name datastore-vg
LV UUID wDo2pg-iIhK-ig7s-2Hwy-swrW-j1cp-Y2zpQ1
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-02-24 02:09:04 +0000
LV Status available
# open 1
LV Size <29.00 GiB
Current LE 7423
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
sysadmin@Storage-Node-01:~#
9. LV 확장
명령어:
lvextend -L +50G /dev/datastore-vg/datastore-lv lvextend -l +50%FREE /dev/datastore-vg/datastore-lv
-L와 -l 옵션의 대소문자에 주의
sysadmin@Storage-Node-01:~# lvextend -L +50G /dev/datastore-vg/datastore-lv
Size of logical volume datastore-vg/datastore-lv changed from <29.00 GiB (7423 extents) to <79.00 GiB (20223 extents).
Logical volume datastore-vg/datastore-lv successfully resized.
sysadmin@Storage-Node-01:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
datastore-lv datastore-vg -wi-ao---- <79.00g
sysadmin@Storage-Node-01:~# lvextend -l +50%FREE /dev/datastore-vg/datastore-lv
Size of logical volume datastore-vg/datastore-lv changed from <79.00 GiB (20223 extents) to <118.50 GiB (30335 extents).
Logical volume datastore-vg/datastore-lv successfully resized.
sysadmin@Storage-Node-01:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
datastore-lv datastore-vg -wi-ao---- <118.50g
sysadmin@Storage-Node-01:~#
10. LV 공간 새로고침
명령어: lvscan
sysadmin@Storage-Node-01:~# lvscan
ACTIVE '/dev/datastore-vg/datastore-lv' [<118.50 GiB] inherit
sysadmin@Storage-Node-01:~#
11. 파일시스템 타입 확인
ext4 파일시스템의 경우 resize2fs, xfs 파일시스템의 경우 xfs_growfs 명령어 사용
명령어: lsblk -f 또는 df -Th
sysadmin@Storage-Node-01:~# lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
loop1 squashfs 0 100% /snap/core20/1828
loop2 squashfs 0 100% /snap/lxd/22753
loop3 squashfs 0 100% /snap/snapd/18357
loop4 squashfs 0 100% /snap/core20/1822
loop5 squashfs 0 100% /snap/lxd/24061
sr0
vda
├─vda1
├─vda2 ext4 61ee5337-c84b-4da9-8927-cf1aa05df1aa 1.6G 11% /boot
└─vda3 LVM2_member aeuGO5-PGh7-iLWr-oYag-iy1l-gUgr-AdrUQD
└─datastore--vg-datastore--lv ext4 76558209-dbb2-4b7c-8260-618da43abcb7 7.7G 68% /
vdb
└─vdb1 LVM2_member V0zlFz-jw0X-mRXp-XAWc-3qld-Boc1-Xocb1j
└─datastore--vg-datastore--lv ext4 76558209-dbb2-4b7c-8260-618da43abcb7 7.7G 68% /
sysadmin@Storage-Node-01:~#
12. 파일시스템 확장 전 용량 확인
명령어: df -Th
df -h와 df -Th의 차이점은 파일시스템 타입(ext4 또는 xfs) 표시 여부
sysadmin@Storage-Node-01:~# df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs tmpfs 1.6G 1.7M 1.6G 1% /run
/dev/mapper/datastore--vg-datastore--lv ext4 29G 20G 7.8G 72% /
tmpfs tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/vda2 ext4 2.0G 209M 1.6G 12% /boot
/dev/loop2 squashfs 68M 68M 0 100% /snap/lxd/22753
/dev/loop3 squashfs 50M 50M 0 100% /snap/snapd/18357
/dev/loop4 squashfs 64M 64M 0 100% /snap/core20/1822
/dev/loop5 squashfs 92M 92M 0 100% /snap/lxd/24061
/dev/loop1 squashfs 64M 64M 0 100% /snap/core20/1828
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0
sysadmin@Storage-Node-01:~#
13. 파일시스템 확장
명령어: resize2fs /dev/datastore-vg/datastore-lv
sysadmin@Storage-Node-01:~# resize2fs /dev/datastore-vg/datastore-lv
resize2fs 1.45.5 (07-Jan-2020)
The filesystem on /dev/datastore-vg/datastore-lv is currently mounted on /; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 15
The filesystem on /dev/datastore-vg/datastore-lv is now 31063040 blocks long.
sysadmin@Storage-Node-01:~#
- xfs 파일시스템의 경우 xfs_growfs 명령어 사용
명령어: xfs_growfs /dev/[VG_NAME]/[LV_NAME]
sysadmin@Storage-Node-01:~# xfs_growfs /dev/datastore-vg/datastore-lv
14. 최종 용량 확인
명령어: df -h
sysadmin@Storage-Node-01:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 1.7M 1.6G 1% /run
/dev/mapper/datastore--vg-datastore--lv 117G 20G 93G 18% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/vda2 2.0G 209M 1.6G 12% /boot
/dev/loop2 68M 68M 0 100% /snap/lxd/22753
/dev/loop3 50M 50M 0 100% /snap/snapd/18357
/dev/loop4 64M 64M 0 100% /snap/core20/1822
/dev/loop5 92M 92M 0 100% /snap/lxd/24061
/dev/loop1 64M 64M 0 100% /snap/core20/1828
tmpfs 1.6G 0 1.6G 0% /run/user/0
sysadmin@Storage-Node-01:~#
확장 작업 완료.
- LV 확장 시 처음 50G 추가, 두 번째 50% 추가 후에도 약 25G가 남아있지만 VG는 100% 확장됨