JUST WRITE

늘렸는데 늘어나지 않았습니다?! - AWS EBS 용량 늘리기 본문

Cloud

늘렸는데 늘어나지 않았습니다?! - AWS EBS 용량 늘리기

천재보단범재 2023. 8. 1. 18:56

AWS EBS 용량 늘리기

늘렸는데 늘어나지 않았습니다?!

AWS EC2 4EA에 Kubernetes Cluster를 구축해서 사용 중에 있습니다.

비용을 최소한으로 하기 때문에 Disk, Memory를 최소한으로 사용하고 있습니다.

그러나 사용하다 보니 Pod이 제대로 실행되지 않았습니다.

Pod이 Evicted 상태로 되었습니다.

<>

describe command로 Pod의 상태를 보면 DiskPressure로 인해서 Pod이 제대로 실행되지 않았습니다.

Kubernetes Evicted

Kubernetes Cluster의 Worker의 Disk를 늘려야 했습니다.

이번 포스팅에서는 AWS EBS 사이즈 늘린 후 적용하는 방법을 정리해 보도록 하겠습니다.

EBS 용량 Up

AWS EC2에 Kubernetes Cluster를 구성할 때, Docker Data와 Kubernetes PV Disk를 따로 구성하였습니다.

EC2를 생성할 때 Root Volume을 구성합니다.

Root Volume은 최소한으로 구성하고 따로 EBS를 생성한 후 mount 하여 사용하였습니다.

AWS EC2 스토리지 구성

어떻게 구성했는지 아래 포스팅을 확인해 주시길 바랍니다.

 

명령어 한 번에 Kubernetes 설치하기 - Terraform으로 Kubernetes 설치

명령어 한 번에 Kubernetes 설치하기 개발 환경을 자주 구성하다 보니 Kubernetes Cluster를 구성하는 일이 많았습니다. Kubernetes Cluster 구성은 단계도 많고 쉽지 않아 할 때마다 새로웠습니다. 구성을 간

developnote-blog.tistory.com

Kubernetes Cluster의 EC2를 중지시킨 후 EBS 용량을 늘렸습니다.

AWS Console에서 EBS Size를 쉽게 늘릴 수 있습니다.

각 Worker Node의 EBS를 40G -> 60G로 늘렸습니다.

AWS Console EBS(1)
AWS Console EBS(2)

이제 EC2를 재시작하고 용량을 확인해 보겠습니다.

Console에서도 60G로 변경된 것을 확인하였습니다.

AWS Console EC2 스토리지

근데 ssh로 접속해서 확인해 보니 40G 그대로였습니다.

$ df -hT
Filesystem      Type   Size  Used Avail Use% Mounted on
/dev/root       ext4   9.6G  4.4G  5.2G  46% /
tmpfs           tmpfs  7.8G     0  7.8G   0% /dev/shm
tmpfs           tmpfs  3.1G  3.4M  3.1G   1% /run
tmpfs           tmpfs  5.0M     0  5.0M   0% /run/lock
/dev/nvme1n1    ext4    40G   15G   23G  40% /data
/dev/nvme0n1p15 vfat   105M  6.1M   99M   6% /boot/efi
tmpfs           tmpfs  1.6G  4.0K  1.6G   1% /run/user/1000

Extend File System

EBS Size를 늘렸다고 바로 적용되지 않습니다.

fdisk command를 통해 partition을 재정의해줍니다.

가장 좋은 방식은 기존 partition을 삭제 후 새롭게 재정의하는 것이 좋습니다.

이번에는 backup을 못하는 불가피한 상황이라 extended로 진행하였습니다.

$ sudo fdisk /dev/nvme1n1

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.

The device contains 'ext4' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x88aa58c2.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): e
Partition number (1-4, default 1): 1
First sector (2048-125829119, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-125829119, default 125829119):

Created a new partition 1 of type 'Extended' and of size 60 GiB.

Command (m for help): p
Disk /dev/nvme1n1: 60 GiB, 64424509440 bytes, 125829120 sectors
Disk model: Amazon Elastic Block Store
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x88aa58c2

Device         Boot Start       End   Sectors Size Id Type
/dev/nvme1n1p1       2048 125829119 125827072  60G  5 Extended

fdisk로 partition을 수정하였다고 끝난 게 아닙니다.

resize2fs command로 수정한 partition을 reload 합니다.

$ sudo resize2fs /dev/nvme1n1
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/nvme1n1 is mounted on /data; on-line resizing required
old_desc_blocks = 5, new_desc_blocks = 8
The filesystem on /dev/nvme1n1 is now 15728640 (4k) blocks lon

resize2fs command까지 작업하면 해당 EBS가 40G가 아닌 60G로 EC2에도 적용된 것을 확인할 수 있습니다.

$ df -hT
Filesystem      Type   Size  Used Avail Use% Mounted on
/dev/root       ext4   9.6G  4.4G  5.2G  46% /
tmpfs           tmpfs  7.8G     0  7.8G   0% /dev/shm
tmpfs           tmpfs  3.1G  3.4M  3.1G   1% /run
tmpfs           tmpfs  5.0M     0  5.0M   0% /run/lock
/dev/nvme1n1    ext4    59G   15G   42G  27% /data
/dev/nvme0n1p15 vfat   105M  6.1M   99M   6% /boot/efi
tmpfs           tmpfs  1.6G  4.0K  1.6G   1% /run/user/1000

해당 작업을 disk type을 ext4인 경우입니다.

만약 disk type이 xfs라면 아래 command로 가능합니다.

$ sudo xfs_growfs -d /data

정리

이번 경험으로 Linux에서 Disk를 어떻게 다루는지 다시 한번 생각하는 계기가 되었습니다.

Cloud 환경이 편하기도 하지만 최소한의 세팅은 필요하다는 것을 느꼈습니다.

[참고사이트]

더보기
728x90
반응형
Comments