DB서버 용량을 500GB -> 1.5TB 증가시켜야했다.
추후 확장성을 고려해서 이번 기회에 LVM으로 구성하는 편이 낫겠다고 생각했다.
Logical Volume Manager
실습을 통해 내가 파악한 LVM구성은 아래와 같다.
PE(physical extent)와 LE(logical extent)라는 개념도 있는데, 각각 pv와 lv를 구성하는 구성요소이며 용량이 각 4MB라고 한다.
물리적 스토리지 준비
NCP 콘솔 > Storage > 추가
파티션 생성
fdisk
나 parted
와 같은 도구를 사용하여 수행
fdisk /dev/xvdc
fdisk /dev/xvdd
파티션 생성 확인
[root@test-server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 50G 0 disk
├─xvda1 202:1 0 1G 0 part /boot
└─xvda2 202:2 0 49G 0 part /
xvdb 202:16 0 10G 0 disk
└─xvdb1 202:17 0 10G 0 part /data-tmp
xvdc 202:32 0 10G 0 disk
└─xvdc1 202:33 0 10G 0 part
xvdd 202:48 0 10G 0 disk
└─xvdd1 202:49 0 10G 0 part
pv 물리적 볼륨 생성
생성한 파티션을 물리적 볼륨(LPV, Logical Physical Volume)로 설정
# fdisk로 추가한 파티션을 입
pvcreate /dev/xvdc1
pvcreate /dev/xvdd1
[root@test-server ~]# pvcreate /dev/xvdc1
Physical volume "/dev/xvdc1" successfully created.
[root@test-server ~]# pvcreate /dev/xvdd1
Physical volume "/dev/xvdd1" successfully created.
vg 볼륨 그룹 생성
물리적 볼륨을 하나의 볼륨 그룹(VG, Volume Group)으로 묶기
vgcreate data-vg /dev/xvdc1 /dev/xvdd1
[root@test-server ~]# vgcreate data-vg /dev/xvdc1 /dev/xvdd1
Volume group "data-vg" successfully created
[root@test-server ~]# vgs
VG #PV #LV #SN Attr VSize VFree
data-vg 2 1 0 wz--n- 19.99g 0
lv 논리 볼륨 생성
논리 볼륨(LV, Logical Volume)을 생성하여 필요한 크기인 3TB로 설정
XFS 파일 시스템을 사용할 것이므로 해당 논리 볼륨을 XFS로 포맷
lvcreate -l 100%VG -n data-lv data-vg
mkfs.xfs /dev/data-vg/data-lv
[root@test-server ~]# lvcreate -l 100%VG -n data-lv data-vg
Logical volume "data-lv" created.
[root@test-server ~]# mkfs.xfs /dev/data-vg/data-lv
meta-data=/dev/data-vg/data-lv isize=512 agcount=4, agsize=1310208 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5240832, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@test-server ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data-lv data-vg -wi-a----- 19.99g
마운트
생성한 XFS 파일 시스템을 원하는 경로에 마운트
mount /dev/data-vg/data-lv /data
[root@test-server ~]# mkdir /data
[root@test-server ~]# mount /dev/data-vg/data-lv /data
[root@test-server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 50G 0 disk
├─xvda1 202:1 0 1G 0 part /boot
└─xvda2 202:2 0 49G 0 part /
xvdb 202:16 0 10G 0 disk
└─xvdb1 202:17 0 10G 0 part /data-tmp
xvdc 202:32 0 10G 0 disk
└─xvdc1 202:33 0 10G 0 part
└─data--vg-data--lv 253:0 0 20G 0 lvm /data
xvdd 202:48 0 10G 0 disk
└─xvdd1 202:49 0 10G 0 part
└─data--vg-data--lv 253:0 0 20G 0 lvm /data
[root@test-server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 8.0K 1.9G 1% /dev/shm
tmpfs 1.9G 90M 1.8G 5% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/xvda2 49G 27G 23G 55% /
/dev/xvda1 1014M 246M 769M 25% /boot
tmpfs 378M 0 378M 0% /run/user/1001
overlay 49G 27G 23G 55% /var/lib/docker/overlay2/0d9fd867b80e03dc6474db6aa7e1addbae2c62018f83d0a98719208c33d31637/merged
/dev/xvdb1 10G 33M 10G 1% /data-tmp
/dev/mapper/data--vg-data--lv 20G 33M 20G 1% /data