Search

[OCI] 블록 볼륨 연결 및 사용법 (with LVM)

작성일시
2024/09/21 09:13
수정일시
2024/11/14 14:50
스택
Oracle Cloud Infrastructure
카테고리
Tip
태그
블록 볼륨
Block Volume
Oracle Cloud
1 more property

개요

OCI 에서 블록 볼륨을 VM에 연결하고 사용하는 방법을 정리한 내용, 블록 볼륨을 만들었으나 VM 에서 어떻게 적용해야 할지 모르는 사람들 위한 글
볼륨을 사용할 VM은 Oracle Linux 9 버전을 기준으로 작성
볼륨의 확장 및 관리가 편하도록 블록 볼륨을 바로 파일 시스템으로 포맷해서 사용하는 것이 아닌, LVM 으로 만들어서 사용할 예정

OCI 블록 볼륨 정보 확인

VM 콘솔의 좌측 리소스 메뉴 중에서 연결된 블록 볼륨 항목을 선택하면 아래와 같이 연결된 블록 볼륨을 확인할 수 있다.
더블 클릭으로 사진을 확대할 수 있습니다.
연결을 원하는 볼륨의 우측 … 메뉴를 누르고 파란색 사각형으로 표시된 iSCSI 명령 및 정보 항목을 클릭하면 iSCSI 명령을 알 수 있다.
접속 부분에 있는 명령어를 그대로 복사해서 VM에서 사용하면 iSCSI 볼륨을 연결할 수 있다.

블록 볼륨 마운트 (Oracle Linux 9)

블록 볼륨이 연결된 VM 에서 fdisk 명령어로 연결된 디스크를 확인하여 블록 디바이스를 확인한다.
sudo fdisk -l
Shell
복사
새로운 디스크를 Logical Volume 으로 만들기 위해서 필요한 과정은 다음과 같다.
Physical Volume 생성
Volume Group 생성
Physical Volume → Volume Group 에 추가
Volume Group 에서 Logical Volume 을 생성
Logical Volume 에 파일 시스템을 생성 (XFS)
이 과정을 명령어로 풀어서 쓰면 아래와 같으며, 원하는 이름만 설정하면 그대로 사용할 수 있다.
sudo pvcreate <블록 디바이스> sudo vgcreate <볼륨 그룹 이름> <블록 디바이스> sudo vgextend <볼륨 그룹 이름> <블록 디바이스> sudo lvcreate -n <논리 볼륨 이름> -l 100%FREE <볼륨 그룹 이름> sudo mkfs.xfs /dev/<볼륨 그룹 이름>/<논리 볼륨 이름> sudo mkdir <마운트 위치> sudo mount /dev/<볼륨 그룹 이름>/<논리 볼륨 이름> <마운트 위치>
Shell
복사
예를 들어, 확인된 블록 디바이스가 /dev/sdb 라고 가정하면 이런식으로 사용하면 된다.
sudo pvcreate /dev/sdb sudo vgcreate my_vg /dev/sdb sudo vgextend my_vg /dev/sdb sudo lvcreate -n my_lv -l 100%FREE my_vg sudo mkfs.xfs /dev/my_vg/my_lv sudo mkdir /mnt/my_volume sudo mount /dev/my_vg/my_lv /mnt/my_volume
Shell
복사
여기까지 정상적으로 했다면, df 명령어로 마운트된 볼륨의 정보를 확인할 수 있다.
df -h
Shell
복사

자동 마운트 설정

현재 상태로 볼륨을 사용하는 것엔 문제가 없으나, 마운트는 재부팅을 하면 초기화되기 때문에 실제로 안정적인 서비스 운영을 위해선 자동 마운트 설정을 해주어야 한다.
OCI 에서 권장하는 방법은 UUID를 이용한 마운트 설정이므로 blkid 명령어로 UUID를 확인한다.
sudo blkid # ... 출력 중간 생략 /dev/mapper/my_vg-my_lv: UUID="<UUID>" TYPE="xfs"
Shell
복사
명령어를 실행하면 다양한 블록 디바이스들의 UUID가 표시될 텐데, 그중에서 내가 만든 Volume Group 이름과 Logical Volume 이름을 가진 디바이스의 UUID 부분만 복사한다. (위의 예시에 <UUID> 내용)
/etc/fstab 파일을 열어 맨 아래에 이하의 내용을 추가한다. (root 권한 필요)
OCI 측에서는 _netdev nofail 옵션을 같이 사용하길 권장하고 있으므로 같이 넣어준다. _netdev 옵션은 네트워크 인터페이스가 초기화되기 전에 볼륨을 마운트를 시도하는 걸 방지하기 위함이고 nofail 옵션은 사용자 정의 이미지를 사용하여 새로운 인스턴스를 생성할 경우 마운트 실패로 인해 인스턴스 시작이 안되는 문제가 있다고 한다.
# ... 파일 내용 생략 UUID=<UUID> <마운트 할 경로> xfs defaults,_netdev,nofail 0 2
Shell
복사
정상적으로 설정했는지 확인하기 위해서 장치를 재부팅한다.
sudo reboot
Shell
복사

참조