파일 시스템에 남은 공간이 없다는 오류가 표시되는 경우, EBS 볼륨의 크기를 늘리려면 어떻게 해야 하나요?

4분 분량
0

Amazon Elastic Block Store(Amazon EBS)의 볼륨 크기를 늘리려고 합니다. 하지만 파일 시스템에 남은 공간이 없다는 오류 메시지를 받았습니다.

간략한 설명

EBS 볼륨의 루트 파티션이나 루트 파일 시스템을 확장하려고 하면, No space left on device 오류가 발생할 수 있습니다. 이 오류를 방지하려면, 가상 메모리에 있는 임시 파일 시스템(tmpfs)을 사용합니다. /tmp 마운트 지점 아래에 tmpfs 파일 시스템을 마운트한 다음, 루트 파티션 또는 루트 파일 시스템을 확장합니다.

다음 예는 루트 EBS 볼륨 블록 디바이스(/dev/nvme0n1)가 9GiB이고 루트 파티션(파티션 1)이 이미 8GiB임을 보여줍니다.

$ lsblkNAME          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 1CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335
FAILED: failed: sfdisk --list /dev/nvme0n1

참고: 진행하기 전에 인스턴스의 Amazon Machine Image(AMI) 백업을 생성하는 것이 좋습니다. 또는 인스턴스에 연결된 루트 EBS 볼륨의 스냅샷을 생성합니다. 백업을 통해 예상치 못한 문제가 발생했을 때 데이터를 복구할 수 있습니다.

해결 방법

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

  2. df -h 명령을 사용하여 **/**에 마운트된 루트 파티션이 꽉 찼는지(100%) 확인합니다. 다음 예제에서 /dev/nvme0n1p1은 해당 공간의 100% 를 사용합니다.

    $ df -hFilesystem      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

    연결된 블록 디바이스와 루트 **/**마운트 지점의 세부 정보를 수집하려면, 다음 명령을 실행합니다.

    $ lsblkNAME          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 -fNAME          FSTYPE LABEL           UUID                                 MOUNTPOINT
    nvme0n1
    ├─nvme0n1p1   xfs    /               afcf1342-1d40-41bd-bde9-e4ea5d87e3b6 /
    └─nvme0n1p128

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

  3. No space left on the block device이라는 오류를 방지하려면, 임시 파일 시스템 tmpfs/tmp 마운트 포인트에 마운트합니다. 이렇게 하면 /tmp에 마운트된 10Mtmpfs가 생성됩니다.

    $ sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp
  4. 루트 파티션 또는 파티션 1의 크기를 늘리려면, growpart 명령을 실행합니다. /dev/nvme0n1을 루트 파티션으로 바꿉니다.

    $ sudo growpart /dev/nvme0n1 1 CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335
  5. 파티션 1Gib를 9GiB로 확장했는지 확인하려면, lsblk 명령을 실행합니다.

    $ lsblkNAME          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 -hFilesystem      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 공식
AWS 공식업데이트됨 8달 전