Naver Cloud Platform에서 Ubuntu 서버 스토리지 추가

오형상·2025년 4월 12일
0

Naver Cloud Platform

목록 보기
2/2

Naver Cloud Platform(NCP)의 Ubuntu 서버를 사용하면서 기본 제공되는 10GB 루트 디스크 용량은 금세 가득 찹니다.

특히 Docker 기반으로 React, Spring Boot 프로젝트를 빌드하고 배포할 경우,

컨테이너 이미지와 레이어들이 누적되며 디스크 사용률은 순식간에 100%에 도달하게 됩니다.

이번 글에서는 실제로 겪은 디스크 부족 상황 해결 과정과,

추가로 연결한 블록 스토리지를 Docker 전용 공간으로 이관한 과정을 공유드립니다.


문제 발생 상황

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda2       9.8G  9.7G     0 100% /
  • React 프로젝트 docker buildno space left on device 에러 발생
  • Docker 이미지 생성 및 컨테이너 실행도 중단됨
  • /var/lib/docker 디렉토리 내 이미지, 볼륨, 레이어가 대부분 차지

임시 대응: Docker 공간 정리

docker system prune -a --volumes
  • 사용하지 않는 컨테이너, 이미지, 볼륨을 모두 삭제하여 임시 공간 확보
  • 하지만 빌드 및 배포 반복 시 곧 다시 100% 도달 → 근본 해결 아님

근본 해결: 블록 스토리지 추가 및 Docker 이관

1. 블록 스토리지 10GB 추가

스토리지 생성 및 연결 방법

  1. NCP 콘솔 → 서버 → 스토리지 메뉴로 이동합니다.
  2. 스토리지 생성 버튼을 클릭합니다.

  1. 원하는 스토리지 크기와 이름을 설정한 뒤 생성합니다.

  2. 생성이 완료되면, 스토리지 목록에서 방금 만든 스토리지를 선택합니다.

  3. 스토리지 설정 버튼 클릭 후, 서버 연결을 선택합니다.

  4. 연결할 서버를 선택하고 저장합니다.생성된 스토리지 선택 후 스토리지 설정에 서버 연결 버튼 클릭해서 내 서버와 연결

/dev/vdb 이름으로 새로운 디스크가 인식됨

lsblk
vda   10G  ← 기존 루트 디스크
vdb   10G  ← 새로 추가된 블록 스토리지

2. 디스크 파티션 생성 및 포맷

  • fdisk 명령어를 사용하여 파티션을 만듭니다.
sudo fdisk /dev/vdb

입력 흐름은 다음과 같습니다:

  1. n → 새 파티션 생성
  2. p → Primary 파티션 선택
  3. 엔터 3번 → 기본값으로 파티션 번호, 시작/끝 섹터 선택
  4. w → 저장 후 종료
  • 생성된 파티션(/dev/vdb1)을 ext4 파일 시스템으로 포맷합니다.
sudo mkfs.ext4 /dev/vdb1

3. 마운트 및 자동 마운트 설정

  • 마운트할 위치를 지정하기 위해 디렉토리를 만들어줍니다. 보통 /mnt 아래에 생성합니다.
  • 이제 새로 포맷한 디스크를 해당 디렉토리에 마운트합니다.
sudo mkdir /mnt/data
sudo mount /dev/vdb1 /mnt/data
  • 위 명령어로 마운트한 상태는 재부팅 시 초기화되므로, 자동 마운트 설정을 추가해줘야 합니다.
echo '/dev/vdb1 /mnt/data ext4 defaults 0 0' | sudo tee -a /etc/fstab

4. Docker 디렉토리 이동

sudo systemctl stop docker

sudo mv /var/lib/docker /mnt/data/docker
sudo ln -s /mnt/data/docker /var/lib/docker

sudo systemctl start docker
  • 기존 Docker 데이터는 mv로 안전하게 이동
  • 심볼릭 링크(/var/lib/docker → /mnt/data/docker)로 경로 유지
  • Docker는 아무 변경 없이 정상 작동, 단지 저장 위치만 변경됨

결과 및 확인

df -h
/dev/vda2       9.8G  3.2G  6.6G  33% /
/dev/vdb1       9.8G  1.2G  8.5G  13% /mnt/data
  • / 루트 디스크 여유 확보 완료
  • Docker 이미지, 빌드, 로그 모두 새 스토리지에서 작동
  • React + Spring Boot 프로젝트 빌드 및 배포 정상 수행

0개의 댓글