파일 시스템에 남은 공간 없음 오류가 표시되는 경우 EBS 볼륨의 크기를 늘리려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 5월 7일

Amazon Elastic Block Store(Amazon EBS) 볼륨 크기를 늘리려고 했을 때 파일 시스템에 남은 공간 없음 오류가 표시됐습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

EBS 볼륨에서 루트 파티션이나 루트 파일 시스템을 확장할 때 디바이스에 남은 공간 없음 오류를 방지하려면 메모리에 상주하는 임시 파일 시스템인 tmpfs를 사용합니다. tmpfs 파일 시스템을 /tmp 탑재 지점 아래에 탑재한 다음, 루트 파티션 또는 루트 파일 시스템을 확장합니다.

예제

다음 예제에서는 루트 EBS 볼륨 블록 디바이스(/dev/nvme0n1)가 9GiB이고 루트 파티션(파티션 1)이 이미 8GiB임을 볼 수 있습니다.

$ lsblk
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0   9G  0 disk
├─nvme0n1p1   259:1    0   8G  0 part /
└─nvme0n1p128 259:2    0   1M  0 part

루트 파티션(파티션 1)을 늘리려고 하면 다음 오류 중 하나가 표시됩니다.  

$ sudo growpart /dev/nvme0n1 1
/bin/growpart: line 248: /tmp/growpart.fklt5u/dump.out: No space left on device
FAILED: failed to dump sfdisk info for /dev/nvme0n1

-또는-

$ sudo growpart /dev/nvme0n1 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335
FAILED: failed: sfdisk --list /dev/nvme0n1

참고: 해결 단계를 시도하기 전에 인스턴스에 연결된 루트 EBS 볼륨의 스냅샷 또는 인스턴스의 Amazon Machine Image (AMI) 백업을 생성하는 것이 좋습니다. 백업을 사용하면 예기치 못한 문제로부터 데이터를 복구할 수 있습니다.

​해결 방법

1.    참고: SSH를 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에 연결합니다.

2.    df -h 명령을 사용하여 "/" 아래에 마운트 된 루트 파티션이 가득 찼는지(100%) 확인합니다. 다음 예제는 /dev/nvme0n1p1이 공간을 100% 사용하는 경우입니다.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        460M     0  475M   0% /dev
tmpfs           478M     0  492M   0% /dev/shm
tmpfs           478M  432K  492M   1% /run
tmpfs           478M     0  492M   0% /sys/fs/cgroup
/dev/nvme0n1p1  8.0G  8.0G  664K 100% /
tmpfs            96M     0   99M   0% /run/user/1000

3.    다음 명령을 실행하여 연결된 블록 디바이스와 루트 "/" 탑재 지점에 대한 세부 정보를 수집합니다.

$ lsblk
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0   9G  0 disk
├─nvme0n1p1   259:1    0   8G  0 part /
└─nvme0n1p128 259:2    0   1M  0 part
$ lsblk -f
NAME          FSTYPE LABEL           UUID                                 MOUNTPOINT
nvme0n1
├─nvme0n1p1   xfs    /               afcf1342-1d40-41bd-bde9-e4ea5d87e3b6 /
└─nvme0n1p128

앞의 예제 결과에서 루트 EBS 볼륨의 총 공간은 9GiB이지만 루트 파티션 /dev/nvme0n1p1 또는 파티션 1은 8GiB에 불과합니다. 파일 시스템 유형은 XFS입니다.

4.    블록 디바이스에 남은 공간 없음 오류를 방지하려면 임시 파일 시스템 tmpfs/tmp 탑재 지점에 탑재합니다. 그러면 /tmp에 탑재된 10M tmpfs가 생성됩니다.

$ sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp

5.    growpart 명령을 실행하여 루트 파티션 또는 파티션 1의 크기를 늘립니다. /dev/nvme0n1을 루트 파티션으로 바꿉니다.

$ sudo growpart /dev/nvme0n1 1 
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335

lsblk 명령을 실행하여 파티션 1이 9GiB로 확장되었는지 확인합니다.

$ lsblk
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0   9G  0 disk
├─nvme0n1p1   259:1    0   9G  0 part /
└─nvme0n1p128 259:2    0   1M  0 part

6.    파일 시스템을 확장합니다. 루트 파티션 "/" 의 파일 시스템을 확인하려면 3단계를 참조하십시오.

다음 예제에서는 XFS 유형 파일 시스템이 확장됩니다.

$ sudo xfs_growfs -d /
data blocks changed from 2096635 to 2358779
         =                       sectsz=512   sunit=0 blks, lazy-count=1
log      =internal               bsize=4096   blocks=2560, version=2
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
         =                       sunit=0      swidth=0 blks
data     =                       bsize=4096   blocks=2096635, imaxpct=25
         =                       crc=1        finobt=1 spinodes=0
         =                       sectsz=512   attr=2, projid32bit=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
meta-data=/dev/nvme0n1p1         isize=512    agcount=4, agsize=524159 blks

다음 예제에서는 파티션 1의 EXT2/EXT3/EXT4 파일 시스템이 확장됩니다.

$ sudo resize2fs /dev/nvme0n1p1

7.    파일 시스템을 확장한 후 df -h 명령을 사용하여 OS가 추가 공간을 볼 수 있는지 확인합니다.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        960M     0  960M   0% /dev
tmpfs           978M     0  978M   0% /dev/shm
tmpfs           978M  392K  978M   1% /run
tmpfs           978M     0  978M   0% /sys/fs/cgroup
/dev/nvme0n1p1  9.0G  8.0G 1022M  89% /
tmpfs           196M     0  196M   0% /run/user/1000
tmpfs            10M     0   10M   0% /tmp

8.    탑재 해제 명령을 실행하여 tmpfs 파일 시스템의 탑재를 해제합니다.

$ sudo umount /tmp

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?