본 포스팅은 Oracle Cloud에서 Block stroage (= HDD) 생성하는 방법을 설명합니다. 블록 스토리지는 물리적으로 SSD라고 하고 성능은 용량에 따라서 조절된다고 합니다. 블록 볼륨은 부트 볼륨과 별도록 네트워크 하드 드라이브를 생성하고 VM의 파일 시스템에서 이를 마운트 하는 방식을 사용합니다.
오라클 클라우드에서 블록 스토리지를 추가하는 방법은 아래와 같이 3단계가 필요합니다.
- 오라클 클라이우드 콘솔 (Web UI)에서 블록 볼륨 리소스 생성
- 블록 볼륨을 VM 인스턴스에 연결
- VM 인스턴스에서 블록 볼륨을 파일 시스템으로 마운트
1. 블록 볼륨 리소스 생성
Oracle Cloud에 로그인하여 좌측 메인 메뉴에서 ① 블록 스토리지 > 블록 볼륨을 선택합니다.
블록 스토리지 메뉴에 진입에서 아래 순서로 블록 볼륨을 생성합니다.
① 좌측 메뉴에서 블록 스토리지 > '블록 볼륨' 선택
② 블록 볼륨 생성
③ 블록 볼륨 이름 입력 (e.g. hdd)
④ 블록 크기 및 성능 메뉴에서 '사용자 지정'을 선택합니다. 블록 볼륨의 성능을 조정할 수 있다고 하지만, 기본 값으로 선택합니다. 기본 볼륨의 성능이 설명되어 있고, 100GB 크기로 만드는 경우 45MB/s 정도의 성능이라고 하니 PC의 HDD급 이상의 성능입니다. (※ PC의 SSD는 150MB/s 이상)
⑤ 블록 볼륨의 크기를 입력합니다. (무료가 100 GB까지라고 해서 100GB로 입력했으나 Boot 볼륨과 별도의 100GB가 무료인지 확실하지는 않습니다. 항상 무료 조건에 맞지 않는 경우 과금된다는 메시지를 보여줍니다.)
⑥ 블록 볼륨을 생성을 실행합니다.
2. 블록 볼륨을 VM 인스턴스에 연결
오라클 클라우드 메뉴에서 블록스토리지 > 블록 볼륨 메뉴에 진입합니다.
① 블록 볼륨 메뉴에서 '연결된 인스턴스'를 클릭합니다.
② '인스턴스에 연결' 을 실행합니다.
③ '인스턴스에 연결' 메뉴를 누르면 상세 옵션을 선택합니다.
- ISCSI 선택
- 읽기/쓰기 선택
④ 장치 이름을 선택합니다.
⑤ '연결'을 선택합니다.
VM 인스턴스와 블럭블록 볼륨의 연결이 완료되면 인스턴스 하위의 연결된 볼륨 메뉴에서도 블록 볼륨 링크가 생성됩니다. 또는 블록 볼륨 하위에 '연결된 인스턴스' 메뉴에서 연결된 VM 링크가 생성됩니다. 이 메뉴에서 ISCSI 명령 및 정보를 복사하고 VM의 파일 시스템에 마운트해야 합니다.
⑥ '연결된 블록 볼륨' 또는 '연결된 인스턴스' 메뉴에서 상세 메뉴 확인 후 'ISCSI 명령 및 정보' 선택
⑦ 명령어 내용을 Copy & Paste 합니다.
3. VM 인스턴스에서 블록 볼륨을 파일 시스템으로 마운트
VM에 SSH 원격 접속을 하고 $ lsblk 명령어로 현재 VM의 파일 시스템을 확인합니다.
$ lsblk
앞에 2단계에서 저장한 ISCSI 명령어를 입력합니다. 대략 아래와 같은 명령어입니다.
$ sudo iscsiadm -m node -o new -T iqn.2015-12.com.oracleiaas:d00000-0000-0000-0000-00000 -p 169.000.0.0:0000
$sudo iscsiadm -m node -o update -T iqn.2015-12.com.oracleiaas:d00000-0000-0000-0000-00000 -n node.startup -v automatic
$sudo iscsiadm -m node -T iqn.2015-12.com.oracleiaas:d00000-0000-0000-0000-00000 -p 169.000.0.0:000 -l
명령어를 모두 실행하고 $lsblk로 블록 볼륨이 마운트 되어 있는지 확인합니다. 아래 실행 결과 그림의 마지막 라인에서 /sdb로 100G disk 가 마운트 되어 있음을 확인할 수 있습니다.
$ lsblk
마운트 한 블록 볼륨을 ext4로 포맷하고, /mnt/disks/sdb에서 심볼릭 링크를 연결합니다. 부팅할 때 mount 옵션을 설정하기 위한 블록 볼륨의 UUID를 확인합니다
# 블록 볼륨을 ext4로 포맷
$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
# Symlink 연결
$ sudo mkdir -p /mnt/disks/sdb
$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/sdb
$ sudo chmod a+w /mnt/disks/sdb
# /etc/fstab 작성을 위한 HDD의 UUID 확인
# sudo blkid /dev/sdb
/dev/sdb: UUID="90000-0000-0000-90000000000" TYPE="ext4"
/etc/fstab을 vi 로 연결 아래와 같이 폅집합니다. 여기서 주의해야 할 점은 블록 볼륨이 네트워크 드라이브이기 때문에 _netdev 옵션을 사용해야 합니다.
$ vi vi /etc/fstab
# sudo vi /etc/fstab 에 아래 내용 추가 (재 부팅 시 마운트)
UUID=UUID_VALUE /mnt/disks/sdb ext4 discard,defaults,nobootwait 0 2* _netdev
UUID="90000-0000-0000-90000000000" /mnt/disks/sdb ext4 discard,defaults,noatime,_netdev 0 2
$ sudo mount -all
mount -all 한 결과를 확인하기 위해서 dh명령어로 /mnt/disks/sdb 에 마운트 여부를 확인합니다.
관련 글
[개발환경/Oracle Cloud] - 오라클 클라우드 '항상' 무료 만들기 (Google Cloud 무료 조건 비교)
[개발환경/Oracle Cloud] - Oracle Cloud 블록 스토리지 추가 방법 (HDD 추가 가이드)
[개발환경/Oracle Cloud] - Oracle Cloud 고정 IP (공인 IP) 할당하기
[개발환경/Oracle Cloud] - Oracle Cloud 방화벽 설정 (http/https 특정 포트 열기)
[개발환경/Oracle Cloud] - Oracle Cloud SSH Key 여러 개 등록하기 (여러 PC에서 Cloud Access)
[개발환경/Google Cloud Platform] - Google Cloud Platform을 활용하여 평생 '무료' PC 만들기
[개발환경/Google Cloud Platform] - GCP(Google Cloud) 방화벽 설정: 프로토콜과 포트를 사용 허용 또는 거부하기
[개발환경/Google Cloud Platform] - GCP(Google Cloud) 하드 디스크 추가하기 (영구 디스크는 30GB까지 무료)
[개발환경/Google Cloud Platform] - GCP(Google Cloud) 원격 데스크 톱(RDP) 연결: Linux 용 Chrome RDP
댓글