클라우드 사용하면서 스토리지 확장 후 파티션 적용까지

  • 20th August 2025
  • 3 min read

클라우드를 쓰다 보면 어느 순간 스토리지 용량이 부족해지는 경우가 생겼다. 실제로 사용 중이던 디스크가 100GB였는데, 더 많은 데이터의 저장이 필요해서 200GB로 확장을 했다. 그런데 문제는 클라우드 콘솔에서 용량을 늘렸는데도, 서버에서 df -h를 찍어보니 여전히 100GB로만 보인다는 것이다. 

해결방법을 간단히 정리해본다. (환경은 XFS 파일시스템, /home 디렉터리)

  • 클라우드 콘솔에서 디스크 용량만 늘리면 OS에는 블록 디바이스만 커짐.

  • 파티션 확장(growpart) + 파일시스템 확장(XFS는 xfs_growfs, ext4는 resize2fs)을 해야 df -h에 반영됨.

  • XFS는 온라인 확장 가능(마운트 해제/재부팅 불필요) → 안전하지만 스냅샷 백업은 권장.

환경 & 전제

  • 디스크: /dev/xvdb (확장 후 200GB)

  • 파티션: /dev/xvdb1 (확장 전 100GB)

  • 파일시스템: XFS

  • 마운트 지점: /home

참고: 디바이스 이름은 클라우드/하이퍼바이저에 따라 /dev/xvdb, /dev/sdb, /dev/nvme0n1 등으로 다를 수 있습니다.

왜 이런 일이 생길까?

클라우드에서 볼륨 크기를 키우면 블록 디바이스의 총 용량만 증가합니다. 하지만 운영체제에서 사용하는 파티션 테이블파일시스템 메타데이터는 기존 크기를 기준으로 유지되기 때문에, df -h에는 이전 크기가 그대로 표시됩니다.

해결하려면 순서대로:

  1. 디바이스가 정말 커졌는지 확인 → 2) 파티션을 여유 공간까지 확장 → 3) 파일시스템을 새 파티션 크기에 맞게 확장

사전 점검 체크리스트

# 블록 디바이스와 파티션 구조 확인
lsblk
fdisk -l

# 파일시스템 유형과 마운트 지점 확인
mount | grep -E "xvdb|nvme|sdb"
  • 디바이스 크기가 이미 200GB로 보이는지?

  • 대상 파티션(/dev/xvdb1)이 어디에 마운트되어 있고, FS 타입이 xfs/ext4 중 무엇인지?

실제 사례 로그 (확장 전 상태)

# fdisk -l (요약)
Disk /dev/xvdb: 214.7 GB, ...
/dev/xvdb1            2048   209715199   104856576   83  Linux  # ← 파티션은 100GB 수준

# 마운트 상태
/dev/xvdb1 on /home type xfs (...)

단계별 실전 절차 (XFS)

1) 파티션 확장

growpart로 파티션 테이블을 여유 공간 끝까지 키웁니다.

준비: 패키지 설치 (둘 중 환경에 맞게)

# RHEL/CentOS/Alma/Rocky
sudo yum install -y cloud-utils-growpart

# Ubuntu/Debian
sudo apt-get update && sudo apt-get install -y cloud-guest-utils

실행

sudo growpart /dev/xvdb 1

성공 예시 출력

CHANGED: partition=1 start=2048 old: size=209713152 end=209715200 new: size=419428319 end=419430367

2) 파일시스템(XFS) 확장

XFS는 온라인 확장이 가능하므로 마운트 해제 없이 진행합니다.

sudo xfs_growfs /home   # 또는 sudo xfs_growfs <마운트지점>

성공 예시 출력

meta-data=/dev/xvdb1 ...
data blocks changed from 26214144 to 52428539

3) 확인

df -h /home
lsblk

확인 예시 출력

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvdb1      200G   82G  119G  41% /home

NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
xvdb    202:16   0   200G  0 disk
└─xvdb1 202:17   0   200G  0 part /home

파일시스템 타입별 명령어 요약

파일시스템

파티션 확장

파일시스템 확장

XFS

growpart /dev/DEVICE PART

xfs_growfs <mountpoint>

ext4

growpart /dev/DEVICE PART

resize2fs /dev/DEVICEPART

예시

  • XFS: growpart /dev/xvdb 1 && xfs_growfs /home

  • ext4: growpart /dev/xvdb 1 && resize2fs /dev/xvdb1

LVM을 사용하는 경우(보너스)

LVM 위의 XFS/ext4라면 순서가 조금 다릅니다.

  1. 볼륨 크기 확인: lsblk, vgs, pvs, lvs

  2. PV 확장: (파티션 확장 후) pvresize /dev/DEVICEPART

  3. LV 확장: lvextend -l +100%FREE /dev/VGNAME/LVNAME

  4. 파일시스템 확장:

    • XFS: xfs_growfs /mountpoint

    • ext4: resize2fs /dev/VGNAME/LVNAME

NVMe 디바이스일 때의 표기

  • 디바이스 이름: /dev/nvme0n1, 파티션: /dev/nvme0n1p1

  • 명령은 동일합니다