실행 중인 가상머신의 볼륨 스토리지 확장

백준호·2024년 7월 17일
1

실행 중인 클라우드 가상 머신의 볼륨 스토리지를 확장하였을 때, 클라우드 콘솔 내 용량 확장 작업 외에 직접 인스턴스에 접속하여 명령어를 입력해 작업해야 하는 부분이 있다.


바로 파일 시스템을 확장하는 작업이다. 파일 시스템을 확장하는 작업이 왜 필요한지, 또 완벽하게 자동화 되지 않고 수동으로 작업해야하는 이유에 대해서 알아보자.

가상머신 볼륨 스토리지 확장 과정

볼륨 스토리지를 확장하는 과정은 크게 3단계로 나뉜다. 첫번째는 물리적인 볼륨 확장, 두번째는 파티션 확장, 마지막은 파일 시스템 확장이다. 각 단계에서 어떤 일이 일어나는시 살펴보자.

1. 물리적인 볼륨 확장

클라우드 콘솔에서 우리가 볼륨을 확장 명령을 하였을 때 일어나는 작업이다. CSP 실제 인프라 레벨에서 일어나며 스토리지 디바이스에 더 많은 공간을 할당하는 것을 의미한다.

NHN Cloud를 이용하여 20G의 볼륨 스토리지를 가지는 인스턴스를 생성하였다. 그 후 인스턴스의 물리적인 저장장치(블록 디바이스) 목록을 확인하는 명령어인 sudo lsblk를 이용해 저장장치 목록을 출력한 화면이다.

현재 가상 블록 디바이스(virtual device a, vda) 하나에 단일 파티션(vda1)으로 저장장치가 구성된 것을 볼 수 있다.

여기서 NHN Cloud 콘솔을 이용해 용량을 2GB 증가시킨 후 다시 동일한 명령어를 입력해보았다.

가상 블록 디바이스는 22G로 증설되었지만 현재 사용하고 있는 파티션은 20G 그대로인 것을 볼 수 있다. 이 말은 즉 아직 우리는 22G를 사용하지 못하고 20G만을 사용할 수 있다는 뜻이다.

2. 파티션 확장

두번째 단계는 파티션 확장이다. 파티션이란 물리적 저장 장치를 논리적으로 분할한 단위를 말하는데, 여러 독립적인 영역으로 저장장치를 나눠 용도를 구분하거나 독립적인 파일 시스템을 가지게 할 수 있다. 이러한 파티션을 가상머신이 여러개 가지고 있고, 특정 파티션에 증설된 저장 용량을 할당하고 싶은 경우에는 파티션 확장을 진행한다.

현재 생성한 가상머신에는 하나의 단일 파티션이 존재하고, 이 파티션을 루트 경로에 마운트하여 사용하고 있다. 따라서 우리는 이 파티션을 확장해야하며 sudo growpart /dev/vda 1 명령어를 이용해 파티션을 확장한다.

이제 파티션이 성공적으로 확장된 것을 볼 수 있다.

3. 파일 시스템 확장

마지막 단계인 파일 시스템 확장이다. 앞선 단계에서 물리적인 저장장치, 파티션의 확장을 수행하였지만, 실제 파일을 관리하는 파일 시스템은 이를 알아채지 못하고 있다. 따라서 직접 파일 시스템을 확장 해주어야 하는 것이다.

df -hT 명령어를 통해 실제 파일 시스템이 인식하고 있는 용량을 확인해보자.

하단을 보면 /dev/vda1(파티션)이 루트 경로에 마운트 되어있고 20G로 인식하고 있다는 것을 볼 수 있다. 파일 시스템은 xfs, ext4 등 용도에 따라 여러 종류의 파일 시스템이 존재하는데, 현재는 xfs 파일 시스템을 기준으로 확장해보겠다.

현재 파티션이 루트 경로(/)에 마운트 되어 있기 때문에 sudo xfs_growfs -d / 명령어를 이용해 파일 시스템을 확장해준다. 그 후 다시 파일 시스템이 인식하고 있는 용량을 확인하면

정상적으로 파일 시스템도 확장되었고 우리는 비로소 확장된 용량의 스토리지를 이용할 수 있다.

왜 수동으로?

우리는 1단계를 CSP 콘솔에서 수행하였고 2단계 부터는 직접 인스턴스에 접속해서 명령어를 통해 작업하였다. 왜 자동화 하지 않고 수동으로 확장을 해야하는 것일까?

위 물음에 대한 답변은 각 단계에서 수행하는 행동에서 알 수 있다. 파티션 확장 단계부터는 실제 가상머신 내부의 파티션 구성, 파일 시스템 구성에 따라 복잡한 작업을 수행한다. 위 예시에서는 단일 파일 시스템, 단일 파티션으로 확장을 진행하였지만 여러 파티션이 분할되어 있고 각 파티션마다 다른 파일 시스템을 쓸 경우에는 과정이 더욱 복잡해진다. 이러한 복잡한 과정이 있기 때문에 파티션 확장과 파일 시스템 확장은 가상머신을 사용하는 사용자에게 넘겨 정교한 커스터마이징을 할 수 있도록 하는 것이다.

또한 CSP의 SLA(서비스 수준 계약)을 살펴보면 OS 관리는 사용자의 영역임을 볼 수 있다. 실제 물리적인 인프라를 CSP가 제공해주고, 세부적인 OS 조작을 사용자가 수행하는 역할을 명확히 분리하는 이유도 있는 것이다.


관련 자료

EBS 볼륨 크기 조정 후 파일 시스템 확장 - Amazon EBS

콘솔 사용 가이드 - NHN Cloud 사용자 가이드

AWS Service Level Agreement - What you need to know | Logicata

profile
회고하는 개발자

0개의 댓글