본문 바로가기
서버인프라/리눅스

Linux Disk resize

by techwold ted 2022. 10. 9.

리눅스 디스크 resize 에 대해서 알아 보려 합니다

우선 ncloud에서 서버를 1대 생성하고 10Gb에 디스크를 하나 생성 합니다.

 

시나리오

/data 의 디스크를 20Gb 로 확장 할 계획입니다.

root@s183bc4a92df:~# fdisk -l
Disk /dev/xvda: 50 GiB, 53687091200 bytes, 104857600 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: 0x7354504e

Device     Boot Start       End   Sectors Size Id Type
/dev/xvda1       2048 104855551 104853504  50G 83 Linux


Disk /dev/xvdb: 10 GiB, 10737418240 bytes, 20971520 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
root@s183bc4a92df:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           391M  712K  391M   1% /run
/dev/xvda1       49G  2.8G   44G   6% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           391M     0  391M   0% /run/user/0
/dev/xvdb1      9.8G   37M  9.3G   1% /data
root@s183bc4a92df:~#

 

우선 nCloud의 해당 disk를 연결된 서버를 꺼야 합니다.

해당 부분은 정말 불편한 사항인거 같습니다. 서버 사용중지 후 사이즈를 20Gb로 변경합니다.

이제 다시 서버 실행 하고 disk 확인을 해보겠습니다.

아래와 같이 확인 가능 합니다. /dev/xvdb 가 20Gb로 바뀐 걸 확인 할 수 있습니다. 하지만 아직 추가된 10Gb에 대해서는 아직 인식 되지 않았죠..

root@s183bc4a92df:~# fdisk -l
Disk /dev/xvda: 50 GiB, 53687091200 bytes, 104857600 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: 0x7354504e

Device     Boot Start       End   Sectors Size Id Type
/dev/xvda1       2048 104855551 104853504  50G 83 Linux


Disk /dev/xvdb: 20 GiB, 21474836480 bytes, 41943040 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: 0x925611b6

Device     Boot Start      End  Sectors Size Id Type
/dev/xvdb1       2048 20971519 20969472  10G 83 Linux
root@s183bc4a92df:~#

다음을 확인해 보겠습니다.

좀더 명확하게 xvdb와 xvdb1 차이를 확인 할수 있을 겁니다.

우리의 목적은 xvdb의 20Gb 와 xvdb1도 20Gb로 만드는 것입니다. 이제 그것을 해보도록 하겠습니다.

root@s183bc4a92df:~# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  50G  0 disk
└─xvda1 202:1    0  50G  0 part /
xvdb    202:16   0  20G  0 disk
└─xvdb1 202:17   0  10G  0 part /data

아래와 같이 명령어 실행을 해주세요

root@s183bc4a92df:~# growpart /dev/xvdb 1
CHANGED: partition=1 start=2048 old: size=20969472 end=20971520 new: size=41940959 end=41943007

그리고 변경 됐는지 확인해 보겠습니다.

이제 20Gb로 우리가 원하는 방향으로 변경 되었습니다.

root@s183bc4a92df:~# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  50G  0 disk
└─xvda1 202:1    0  50G  0 part /
xvdb    202:16   0  20G  0 disk
└─xvdb1 202:17   0  20G  0 part /data

하지만 아직도 우리는 20Gb를 사용 할 수 없습니다. 

아래 확인을 해보겠습니다. 아래 와 같이 아직도 /data mount 는 9.3Gb 즉 10Gb로 인식 되고 있고 우리느 이것을 바로 사용하기 위해서 한번 더 작업을 해야 합니다.

root@s183bc4a92df:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           391M  716K  391M   1% /run
/dev/xvda1       49G  2.8G   44G   6% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/xvdb1      9.8G   37M  9.3G   1% /data
tmpfs           391M     0  391M   0% /run/user/0
root@s183bc4a92df:~#

이제 본격적으로 사용 할 수 있도록 해보겠습니다.

아래와 같이 확인해 보시면 이제는 19Gb로 인식 된 것을 확인 할 수 있습니다.

root@s183bc4a92df:~# resize2fs /dev/xvdb1
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/xvdb1 is mounted on /data; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/xvdb1 is now 5242619 (4k) blocks long.

root@s183bc4a92df:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           391M  716K  391M   1% /run
/dev/xvda1       49G  2.8G   44G   6% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/xvdb1       20G   44M   19G   1% /data
tmpfs           391M     0  391M   0% /run/user/0

저도 이 글을 쓰며 네이버의 불편한 점을 알게 되었습니다.

우리는 Iaas, saas, paas 로 많은 서비스를 운영하다 보니 예전에는 많이 사용하지 않았던 디스크 추가 할당 작업이 늘어났습니다. 지금부터라도 확실히 익혀두시면 좋을거 같습니다.

 

많은 과정을 거치는 것처럼 보이지만 사실 확인 하는 과정이 길었던 거지

명령어는 몇개 되지 않습니다. 그리고 저는 Ubuntu 에서 실행해서 growpart 명령어가 있는데, CentOS에서는 yum install cloud-utils-growpart 를 하여 명령어 설치를 해야 합니다.

해당 사항도 잘 참고 하시기 바랍니다.

 

많은 도움이 되셨기를 바라며, 궁금 사항은 항상 뎃글 부탁드립니다.

'서버인프라 > 리눅스' 카테고리의 다른 글

SCP 파일 전송  (0) 2022.10.24
사설 아이피 대역  (0) 2022.10.12
리눅스 history 날짜 시간 생성  (0) 2022.10.07
리눅스 디스크 추가  (1) 2022.10.07
Linux Time Zone 설정  (0) 2022.02.18

댓글