Block Storage (1)

임채민·2025년 8월 27일

NHN Cloud SE Study 

목록 보기
4/6
post-thumbnail

사전 준비사항

  • NHN Cloud 계정 및 프로젝트 생성
  • 실습용 인스턴스 1대 (Ubuntu 또는 CentOS/Rocky)
  • 관리자 권한 (sudo)

1) 블록 스토리지 생성 및 인스턴스 연결

1-1. 블록 스토리지 생성 및 연결

  • lab-block-storage 라는 이름의 10GB 블록 스토리지 생성
  • linux-server 인스턴스에 연결할 것이므로 가용성 영역은 kr-pub-b 선택

1-2. 연결 확인

  • vda 는 20GB 크기의 시스템 메인 디스크로, vda1~5로 파티션되어 있음
  • vdb 는 추가로 연결한 블록 스토리지 (10GB)
    • 현재 마운트되어 있지 않은 상태로, 필요시 파티셔닝해서 추가 저장공간으로 사용 가능

2) 블록 스토리지 파티션 및 파일시스템 생성

2-1. 파티션 생성

아래는 /dev/vdb 디스크에 새로운 파티션을 만드는 과정이다.

  • n : 새 파티션 생성
  • p : Primary 파티션 (기본 파티션 타입)
  • 1 : 파티션 번호 1번
  • 첫 번째 Enter : 기본 시작 위치 사용
  • 두 번째 Enter : 전체 디스크 사용 (10GB 모두)

위 과정을 거치면 /dev/vdb1 이라는 10GB 파티션이 생성된다.

  • 현재 /dev/vdb 는 비어있는 상태이므로 안전하지만, 일반적으로 이 작업은 디스크를 초기화기 때문에 기존 데이터가 있다면 모두 삭제된다.
  • 파티션 생성 후에는 보통 파일시스템을 만들고(mkfs) 마운트하는 과정이 이어진다.

2-2. 파일시스템 생성

RHEL 8부터 XFS가 기본 파일시스템이기 때문에 XFS를 만드는 것이 좋다(고 판단했다.)

2-3. 파일시스템 정보 확인

[rocky@linux-server ~]$ sudo blkid /dev/vdb1
/dev/vdb1: UUID="60570f8a-1d2a-4f71-bb01-53188017f208" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="4e1954aa-01"

3) 블록 스토리지 마운트/언마운트

3-1. 마운트 포인트 생성

  • /dev/vdb1/mnt/block-storage 에 정상적으로 마운트됨
    • 10GB 용량 중 현재 104MB 사용 (XFS 메타데이터)

3-2. 영구 마운트 설정

  • 파일시스템의 고유 식별자(UUID) 확인
    • /dev/vdb1 은 하드웨어 변경 시 바뀔 수 있지만, UUID는 절대 변하지 않음
  • 시스템 재부팅 후에도 자동으로 마운트되도록 설정
  • /etc/fstab 는 부팅 시 자동으로 마운트할 파일시스템 목록을 저장하는 파일
[rocky@linux-server ~]$ df -h | grep block-storage
/dev/vdb1                     10G  104M  9.9G   2% /mnt/block-storage
[rocky@linux-server ~]$ cat /etc/fstab | grep block-storage
UUID=60570f8a-1d2a-4f71-bb01-53188017f208 /mnt/block-storage xfs defaults 0 2

이제 10GB 블록 스토리지가 영구적으로 시스템에 통합되어 사용 가능해졌다.

언마운트하려면?

sudo umount /mnt/block-storage
또는 
sudo umount /dev/vdb1

3-3. 테스트 파일 생성

  • 새로운 10GB 디스크에 한글 텍스트 저장 및 읽기 성공
  • 마운트 포인트 /mnt/block-storage 가 올바르게 연결됨

4) 용량 확장 및 파티션 리사이징

4-1. NHN Cloud 콘솔에서 용량 확장

기존 10GB로 잡아뒀던 /dev/vdb 블록 스토리지의 용량을 20GB로 확장시켜보았다.

총 디스크 용량은 20GB로 확장되었고, 위에서 파티셔닝한 /mnt/block-storage 가 10GB로 표시된다. (나머지 10GB는 파티션되지 않은 상태)

인스턴스에서 파티션 리사이징하려면?

sudo umount /mnt/block-storage   # 언마운트 후 
sudo fdisk /dev/vdb              # 파티션 확장 

추가로 남은 10GB를 사용하려면 파티션 크기를 20GB로 확장하거나 vd2 파티션을 10GB로 별도 생성하면 된다.

4-2. 파일시스템 확장

현재 디스크는 20GB이지만 파티션이 10GB로 제한되어 있기 때문에 growpart 명령으로 파티션부터 확장하였다.

  • 파티션 크기가 정확히 2배로 확장됨
  • lsblk에서 vdb1 이 20G로 표시되는 것을 확인

  • XFS 파일시스템이 블록 수 2배 증가 (2,621,184 → 5,242,619)
  • 사용 가능한 용량 약 20GB 확인

이제 추가로 확장한 10GB 저장공간을 사용 가능한 상태가 되었다.

5) 스냅샷 생성 및 복구 시나리오 실습

5-1. 테스트 데이터 준비

생성된 데이터 구조는 아래와 같다.

/mnt/block-storage/important-data/
├── data.txt      (19 bytes) - "Critical data v1.0"
├── config.conf   (12 bytes) - "Config file"  
└── app.log       (17 bytes) - "Application logs"

5-2. 스냅샷 생성

5-3. 데이터 변경 시뮬레이션

/mnt/block-storage/important-data/
├── config.conf   (12 bytes) - "Config file" [변경 없음]
├── data.txt      (29 bytes) - "Critical data v2.0 - UPDATED" [수정됨]
└── feature.txt   (18 bytes) - "New feature added" [새로 생성]

app.log는 삭제됨

5-4. 스냅샷으로부터 복구

1) 현재 블록 스토리지 언마운트

sudo umount /mnt/block-storage 

2) NHN Cloud 콘솔에서 현재 블록 스토리지 연결을 해제

3) 복구할 스냅샷을 선택하여 블록 스토리지를 생성

4) 스냅샷으로 만든 블록 스토리지를 인스턴스에 연결

인스턴스에 접속해서 확인해보면 vdc 디스크가 연결되어 있는 것을 볼 수 있다.

5) 블록 스토리지를 마운트하고 데이터가 복구되었는지 확인

  • vdc1은 데이터 변경 이전 시점의 스냅샷
  • 마운트하자마자 원본 상태로 돌아가는 것을 확인할 수 있다.
profile
NHN Cloud IaaS System Engineer / Infra Devops Engineer

0개의 댓글