본문 바로가기

OS & network/cloud

오라클 OCI 클라우드 환경하에서의 버추얼박스 구동

테크넷 마스터 김재벌입니다.


요즘은 어쩌다 보니 , 블록체인을 하고 있네요...-_-;


암튼, 오늘은 오라클 클라우드 OCI 환경에서 VM 인스턴스 안에 버추얼박스를 구동하는 방법에 대해서 소개해 드릴까 합니다.


사실 클라우드 업체가 제공하는 VM에서 중첩가상화 기술을 지원하는 것은 오라클 클라우드의 라벨로 클라우드가 유일했고 , 2017년 중순경에 마이크로소프트에서 애저에서의 하이퍼V 중첩 가상화 기술을 소개 하였습니다.


그런데 , Oracle Cloud Infrastructure (OCI) 환경에서도 VM인스턴스를 생성하고 Oracle Linux 7 에서 KVM 을 만들거나 VirtualBox VM을 사용할 수 있게 되었습니다.


즉, OCI 에서 NestedVM을 지원하게 된 것이죠.

만약에 BM 인스턴스를 생성하게 되면 버추얼박스를 설치하거나 KVM 을 로컬 서버에 설치하여 평상시와 동일하게 사용이 가능합니다.


이 시스템은 베어메탈이므로 하드웨어와 기능에 대한 완벽한 접근이 가능합니다.


이에 대한 테스트와 사용을 위해서 오라클 클라우드 계정이 있어야 합니다.

해당 가입 및 트라이얼 정책에 대해서는 추후 소개 하도록 하겠습니다.




1.  클라우드 계정 생성

   cloud.oracle.com 으로 가서 무료 크레딧 $300 을 받아 계정을 생성합니다.

  -  해당 계정 생성시 크레딧카드 및 인증이 필요합니다.


2. VCN/AZ 설정


  계정을 생성한 뒤에 VCN( Virtual Cloud Network)을 생성하고 도메인과 Availability Domain 과 regions 을 설정합니다.


3. VNIC 설정 및 확인


 일단 계정이 생성되고 나면 OCI 웹 콘솔에서 기본 VNIC 연결 정보를 확인 할  수 있습니다.

 VNIC 정보는 버추얼박스 환경을 위해서 별도 생성하거나 설정해야 합니다.


4. 버추얼박스 설치 및 구성

 오라클 리눅스 7에서 yum 명령어를 이용하여 버추얼박스와 커널 모듈을 빌드 하기 위한 의존성 

 패키지를 설치 합니다.


# yum install -y kernel-uek-devel -`uname -r` gcc

# yum install -y VirtualBox-5.2

# wget https://download.virtualbox.org/virtualbox/5.2.8/Oracle_VM_VirtualBox_Extension_Pack-5.2.8.vbox-extpack

# vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.8.vbox-extpack  


이제 오라클 리눅스는 버추얼박스를 설치했고, 버추얼박스 기반의 하이퍼바이저를 사용할 수 있게 되었습니다.


5.버추얼박스 명령을 이용한 Guest VM 생성


해당 내용은 버추얼 박스의 명령어 사용법을 참고하시기 바랍니다.

# vboxmanage createvm --name oci-test --ostype oracle_64 --register

# vboxmanage modifyvm oci-test --memory 4096 --vram 128 --ioapic on

# vboxmanage modifyvm oci-test --boot1 dvd --boot2 disk --boot3 none --boot4 none

# vboxmanage modifyvm oci-test --vrde on


# vboxmanage createhd --filename oci-test.vdi --size 40960

# vboxmanage storagectl oci-test --name "SATA Controller" --add sata --controller IntelAHCI

# vboxmanage storageattach oci-test --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium oci-test.vdi

# vboxmanage storagectl oci-test --name "IDE Controller" --add ide

# vboxmanage storageattach oci-test --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium /home/opc/OracleLinux-R7-U5-BETA-Server-x86_64-dvd.iso  


가상 디스크 40G 를 생성하고 , OL7.5 iso 파일을 DVD 이미지로 연결합니다.



7.네트워크 정보 확인 (Oracle Linux)


브리지 네트워크가 OCI VINC 에 열결되도록 구성합니다. VNIC과 호스트에서 생성된 네트워크 장치를 확인합니다.

  # ip addr

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

2: ens3:  mtu 9000 qdisc mq state UP qlen 1000

    link/ether 00:00:17:02:3a:29 brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.8/24 brd 192.168.1.255 scope global dynamic ens3

       valid_lft 73962sec preferred_lft 73962sec

3: ens4:  mtu 1500 qdisc noop state DOWN qlen 1000

    link/ether 00:00:17:02:eb:ea brd ff:ff:ff:ff:ff:ff


8. 네트워크 링크 설정 

# ip link set dev ens4 up

# ip link set ens4 mtu 9000



9. 버추얼박스 VM 설정 변경 

 # vboxmanage modifyvm oci-test --nic1 bridged --bridgeadapter1 ens4 --macaddress1 00001702ebea

설정된 네트워크에 VNIC 과 MAC을 연결합니다.

MAC 주소를 사용할 때 :(콜론)을 사용하지 않습니다. (주의)



10.방화벽설정


RDP 연결을 위해서 방화벽에서 3389 포트를 열어 줍니다.

# firewall-cmd --permanent --add-port=3389/tcp

# firewall-cmd --reload


11. VM 인스턴스 시작

 # vboxmanage startvm oci-test --type headless

가상머신을 시작하며, 헤드리스 모드로 부팅하도록 합니다.



12.비디오 설정 및 품질설정

# vboxmanage modifyvm oci-test --vrdevideochannel on

# vboxmanage modifyvm oci-test --vrdevideochannelquality 70


원격 비디오와 오디오 vrde 비디오채얼을 활성화 합니다.

mjpeg 스트림 압축/손실 비율을 통해 성능을 조정합니다.



해당 포스팅은 Wim Coekaerts / SVP 의 기고문을 번역하고 커스터마이징 한 문서입니다.

원문은 아래 링크에서 참고하실 수 있습니다.


https://blogs.oracle.com/wim/running-virtualbox-inside-a-vm-instance-in-oracle-cloud-infrastructure#open




참고:  MS Azure의 중첩가상화 기능 소개


https://docs.microsoft.com/ko-kr/azure/virtual-machines/windows/nested-virtualization