업무 중 Nexus 서버의 디스크 용량을 확장 해야 할 일이 생겼습니다.
당연한 이야기지만 클라우드 환경에서 디스크 용량을 수정한다고 VM의 OS에 그게 바로 반영 되지는 않습니다.
따라서 웹콘솔이던 IaC 환경이던 클라우드 상의 디스크 용량을 수정 한 뒤
VM에 접속해서 LVM을 통해 디스크 용량을 확장 해 줘야 합니다.
여기서는 GCP와 리눅스(우분투20.04) 환경 기준으로 설명 하겠습니다.
해당하는 VM에 접속해서 아래 명령어들로 작업을 진행 합니다.(sudo 권한이 있는 계정으로 진행해야 합니다.)
$ sudo fdisk -l # 정상적으로 확장된 용량이 인식되고 있는지 확인
~~~~~~~
Disk /dev/sdb: 300 GiB, 322122547200 bytes, 629145600 sectors
Disk model: PersistentDisk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: PersistentDisk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 3BBD2D1D-8757-4A79-A99C-AE201FAD30DB
Device Start End Sectors Size Type
/dev/sda1 227328 20971486 20744159 9.9G Linux filesystem
/dev/sda14 2048 10239 8192 4M BIOS boot
/dev/sda15 10240 227327 217088 106M EFI System
Partition table entries are not in disk order.
Disk /dev/mapper/nexus-install: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/nexus-datalog: 89.102 GiB, 96632569856 bytes, 188735488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
~~~~~~~
$ sudo pvscan # 현재 pv 상태 확인
$ sudo pvresize /dev/sdb # /dev/sdb PV를 resize
$ sudo pv scan # resize 후 pv 상태 확인
PV /dev/sdb VG nexus lvm2 [<300.00 GiB / 0 free]
Total: 1 [<300.00 GiB] / in use: 1 [<300.00 GiB] / in no VG: 0 [0 ]
$ sudo vgextend nexus /dev/sdb # vg 용량 확장
$ sudo vgdisplay # vg 상태 확인
$ sudo lvextend -l +100%FREE /dev/nexus/datalog # lv에 확장한 용량을 100% 할당한다.
$ sudo lvdisplay # lv 상태 확인, datalog 디렉토리가 290GB로 확장 된 것 확인(원래 90GB 였음)
--- Logical volume ---
LV Path /dev/nexus/install
LV Name install
VG Name nexus
LV UUID EPz1cE-WWhr-gv5H-ssPT-V2df-SzPM-H6e4Ch
LV Write Access read/write
LV Creation host, time bg-cmn-dev-nex, 2022-07-13 13:59:37 +0900
LV Status available
# open 1
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/nexus/datalog
LV Name datalog
VG Name nexus
LV UUID AhCuNz-Z26o-X4B5-YuQt-8oK5-P1qu-nJUXot
LV Write Access read/write
LV Creation host, time bg-cmn-dev-nex, 2022-07-13 14:00:06 +0900
LV Status available
# open 1
LV Size <290.00 GiB
Current LE 74239
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
$ df -h # df 명령어로 제대로 OS Filesystem이 확장된 용량을 인식하고 있는지 확인
/dev/root 9.6G 3.8G 5.8G 40% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 393M 996K 392M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/loop3 68M 68M 0 100% /snap/lxd/22753
/dev/sda15 105M 5.2M 100M 5% /boot/efi
tmpfs 393M 0 393M 0% /run/user/1001
/dev/mapper/nexus-install 10G 700M 9.4G 7% /nexus
/dev/mapper/nexus-datalog 90G 79G 12G 88% /datalog
/dev/loop10 62M 62M 0 100% /snap/core20/1611
/dev/loop9 56M 56M 0 100% /snap/core18/2560
/dev/loop6 64M 64M 0 100% /snap/core20/1623
/dev/loop2 48M 48M 0 100% /snap/snapd/16778
/dev/loop11 56M 56M 0 100% /snap/core18/2566
/dev/loop0 299M 299M 0 100% /snap/google-cloud-cli/72
/dev/loop8 48M 48M 0 100% /snap/snapd/17029
/dev/loop5 300M 300M 0 100% /snap/google-cloud-cli/74
df 명렁어로 확인 해 보았을때 /dev/mapper/nexus-datalog의 용량의 90GB로 확장된 용량이 아니라 기존 용량만 인식하고 있다. 따라서 아래 명령어를 추가로 실행 해 준다
$ sudo xfs_growfs /dev/nexus/datalog
meta-data=/dev/mapper/nexus-datalog isize=512 agcount=4, agsize=5897984 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=23591936, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=11519, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 23591936 to 76020736
!! 만약 파일시스템 타입이 xfs가 아니라 ext4 등의 다른 타입이라면
아래 명령어를 사용 한다!!
$ sudo resize2fs /dev/nexus/datalog
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 9.6G 3.7G 5.9G 39% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 393M 968K 392M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/loop0 56M 56M 0 100% /snap/core18/2560
/dev/loop2 62M 62M 0 100% /snap/core20/1611
/dev/loop1 56M 56M 0 100% /snap/core18/2566
/dev/loop3 68M 68M 0 100% /snap/lxd/22753
/dev/loop4 64M 64M 0 100% /snap/core20/1623
/dev/loop5 300M 300M 0 100% /snap/google-cloud-cli/74
/dev/loop6 299M 299M 0 100% /snap/google-cloud-cli/72
/dev/loop7 48M 48M 0 100% /snap/snapd/16778
/dev/loop8 48M 48M 0 100% /snap/snapd/17029
/dev/sda15 105M 5.2M 100M 5% /boot/efi
/dev/mapper/nexus-datalog 290G 80G 210G 28% /datalog
/dev/mapper/nexus-install 10G 700M 9.4G 7% /nexus
tmpfs 393M 0 393M 0% /run/user/1001
tmpfs 393M 0 393M 0% /run/user/1005
/dev/mapper/nexus-datalog 용량이 290GB로 정상적으로 인식 되는 것을 확인.
'IT > Linux' 카테고리의 다른 글
리눅스 루트 볼륨을 LVM을 사용하여 증설하기 (0) | 2024.10.11 |
---|---|
LVM을 사용하여 CentOS8에 파일시스템을 추가하고 삭제하기. (0) | 2024.04.27 |
[Linux] 리눅스에서 유저 생성 후 bash shell에서 사용자@호스트가 보이지 않을 때. (0) | 2022.07.20 |
[Linux] pvcreate 명령어를 찾을 수 없을 때. (0) | 2022.07.20 |
[Linux] GCE에 Volume Mount 하기. (0) | 2022.05.26 |