Amazon Linux에 연결된 EBS의 볼륨 크기를 확장합니다.

소개



최근 Amazon EBS 업데이트에 '탄력 볼륨' 발표이 있었습니다.
이는 EC2에 부착된 EBS에 대해 "볼륨 크기 확장", "성능 조정", "볼륨 유형 변경"을 온라인으로 할 수 있습니다.
라는 것으로 이번, 「볼륨 사이즈의 확장」을 실시해 보고 싶습니다.

사전 확인



이번 작업하는 OS는 Amazon Linux 2016.09입니다.
우선 상황을 확인합니다.

기기 확인
$ lsblk 
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /
xvdb    202:16   0  10G  0 disk /data

현재 xvdb라는 이름으로 볼륨 크기가 10GB인 디바이스가 EC2 인스턴스에 연결되어 있습니다.

볼륨 확인
$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         236M   60K  236M    1% /dev
tmpfs            246M     0  246M    0% /dev/shm
/dev/xvda1       7.8G  984M  6.7G   13% /
/dev/xvdb        9.8G   23M  9.2G    1% /data

또한 파일 시스템에서도 10GB 볼륨이/data 영역에 마운트되어 있는지 확인할 수 있습니다.

이번에는 이 xvdb의 볼륨 크기를 확장합니다.

EBS 크기 확장



[EC2] > [볼륨]에서 대상 볼륨을 확인하고 [액션]에서 [Modify Volume]을 클릭합니다.


이번에는 20GB로 확장하므로 "Size"의 10을 20으로 변경하고 [Modify]를 클릭합니다.


"볼륨을 변경해도 괜찮습니까?"라는 메시지가 표시되면 [Yes]를 클릭합니다.


그러면 "in-use optimizing"이라는 상태가 됩니다. 변경된 크기로 확장 중입니다.


잠시 후 "in-use completed"가되면 EBS 확장 처리의 완료입니다.


파일 시스템 크기 확장



그럼 앞서 확장한 볼륨 사이즈가 제대로 20GB로 늘어나고 있는지 확인해 보겠습니다.

기기 확인
$ lsblk 
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /
xvdb    202:16   0  20G  0 disk /data

무사히, 20GB의 볼륨으로서 인식되고 있는 것을 확인할 수 있었습니다.
하지만 지금은 EBS 디바이스의 크기가 늘어났습니다.

볼륨 확인
$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         236M   60K  236M    1% /dev
tmpfs            246M     0  246M    0% /dev/shm
/dev/xvda1       7.8G  985M  6.7G   13% /
/dev/xvdb        9.8G   23M  9.2G    1% /data

그래서 아직 이대로는 OS에서 이용할 수 없습니다.
따라서 OS에서 사용할 수 있도록 resize2fs로 파일 시스템을 크기 조정합니다.
  • Amazonlinux의 경우 (파일 시스템이 ext4 인 경우)

  • 파일 시스템 확장
    $ sudo resize2fs /dev/xvdb 
    resize2fs 1.42.12 (29-Aug-2014)
    Filesystem at /dev/xvdb is mounted on /data; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 2
    The filesystem on /dev/xvdb is now 5242880 (4k) blocks long.
    

    이것으로 파일 시스템의 리사이즈 완료입니다.
  • Amazonlinux2의 경우 (파일 시스템이 xfs 인 경우)

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

    xfs 볼륨에서 resize2fs를 실행하면 다음과 유사한 오류가 발생합니다.

    실행 오류
    $ sudo resize2fs /dev/nvme0n1p1
    resize2fs 1.42.9 (28-Dec-2013)
    resize2fs: Bad magic number in super-block while trying to open /dev/nvme0n1p1
    Couldn't find valid filesystem superblock.
    

    확인



    볼륨 확인
    $ df -h
    ファイルシス   サイズ  使用  残り 使用% マウント位置
    devtmpfs         236M   60K  236M    1% /dev
    tmpfs            246M     0  246M    0% /dev/shm
    /dev/xvda1       7.8G  985M  6.7G   13% /
    /dev/xvdb         20G   28M   19G    1% /data
    

    라는 것으로 무사히 OS로부터 이용할 수 있게 되었습니다.

    결론



    이것으로 「일단 많게 확보」를 할 필요도 없어져, 「지금 필요한 사이즈」를 할당하면 좋아졌습니다.
    또한 확장 작업도 온타임으로 할 수 있으므로 비용면뿐만 아니라 운영면의 비용 절감도 가능합니다.
    이것으로 「여러 사람의 부담」이 꽤 가벼워지네요.

    좋은 웹페이지 즐겨찾기