VirtualBox 란?
버추얼박스(VirtualBox)는 본래 이노테크(InnoTek)가 개발한 뒤, 현재는 오라클이 개발 중인 상용, 사유 소프트웨어(제한된 GPL 버전)로, 리눅스, OS X, 솔라리스, 윈도를 게스트 운영 체제로 가상화하는 x86 가상화 소프트웨어이다. 개발된 지 몇 해가 지나, 제한된 오픈 소스 버전인 버추얼박스 OSE가 GPL 하에 2007년 1월에 공개되었다.
VMWare 워크스테이션과 마이크로소프트 버추얼 PC와 같은 다른 상용 가상화 소프트웨어와 견주어 볼 때, 버추얼박스는 기능이 부족한 편이지만 특별한 기능이 제공된다. 이를테면 원격 데스크톱 프로토콜 (RDP), iSCSI 지원, RDP를 거치는 원격 장치의 USB 지원과 같이 원격으로 가상 컴퓨터를 제어하는 기능이 있다.
버추얼박스는 인텔의 하드웨어 가상화 VT-x와 AMD의 AMD-V를 지원한다.
2007년 DesktopLinux.com의 조사에 따르면, 버추얼박스는 리눅스 데스크톱 위에 윈도 프로그램을 실행시키는 가장 인기있는 소프트웨어 패키지로 3위에 등재되었다.
2008년 2월 12일, 썬 마이크로시스템즈는 버추얼박스를 개발한 회사인 이노텍(Innotek)을 인수하였다. 2009년 4월 20일 오라클이 썬 마이크로시스템즈를 인수하면서 현재 Oracle VM VirtualBox로 배포되고 있다.
버추얼박스는 다음의 하드웨어 부품을 가상으로 구현한다:
- 하드 디스크는 VDI (가상 디스크 이미지:Virtual Disk Image) 파일로 불리는 특별한 컨테이너 포맷으로 에뮬레이트된다. 현재는 다른 가상화 프로그램에서 쓰이는 포맷과 호환되지 않는다. 그러나 버추얼박스는 VMware Virtual Machine Disk Format(VMDK)의 이미지 파일을 읽고 쓸 수 있으며, Microsoft Virtual PC의 디스크 이미지(VHD) 또한 동일하게 지원하고 있다. 즉, VMware의 디스크 이미지나 VHD 디스크 이미지를 이용하여 버추얼박스의 게스트 운영체제를 설치할 수 있다.
게다가, 버추얼박스는 iSCSI와 연결하여 가상 하드 디스크를 사용하는 기능이 있다. - 기본적으로 버추얼박스가 사용하는 그래픽 어댑터는 8 메가바이트 램을 갖춘 표준 VESA 카드이며, 그래픽 메모리 용량은 수정할 수 있다. 게스트 확장에는 더 나은 성능을 위한 특별한 비디오 드라이버가 있으며, 이를 게스트 운영 체제에 설치하여 사용할 수 있다.
- 이더넷 네트워크 어댑터로, 버추얼박스는 AMD PCNet PCI II(Am79C970A), AMD PCNet FAST III(Am79C973, 기본값), Intel PRO/1000 MT Desktop(82540EM), Intel PRO/1000 T Server(82543GC) 카드를 가상화한다.
- 사운드 카드로, 버추얼박스는 ICH AC97과 사운드 블라스터(Sound Blaster) 16 장치를 가상화한다.
- 클로즈드 소스 부분으로, USB 컨트롤러가 가상으로 구현됨으로써, 호스트에 장착된 아무 USB 장치나 게스트 운영 체제에 보이게 할 수 있다. 버추얼박스가 RDP 서버로서 동작할 경우, 호스트
에 연결되어 있는 것처럼 원격 RDP 클라이언트에 USB 장치를 사용할 수 있다.
버추얼박스는 게스트 코드를 되도록 네이티브로 수행한다. (호스트 프로세서에서 에뮬레이션 과정 없이) 인텔 링 아키텍처의 게스트 링 3에서 실행 중인 사용자 모드 코드의 경우 이 기능이 정상 동작한다. 그러나 일반적으로 수많은 권한 명령어가 포함된 게스트 링 0 코드는 “가로채기”가 필요하다. 인텔 아키텍처에서 보통 쓰이지 않는 링 1 모드에서, 게스트 운영 체제를 실제로 링 0 코드에서 실행하는 것으로 속임으로써 이러한 충돌을 해결할 수 있다.
버추얼박스는 또한 인텔 VT 및 AMD AMD-V 하드웨어 보조 가상화를 지원하기 때문에 더 나은 성능과 더 나은 보안을 제공한다.
맥 오에스 텐은 베타 버전으로 공개되어 있으며 맥 오에스 텐 10.5 (레퍼드)를 베타 2에서 지원한다.
*Vbox 처럼 리눅스 가상머신은 여러종류가 있는데, 다른포스팅에서 소개해드린 [리눅스 가상머신 KVM 설치 및 구성] 에서 조금 더 자세히 확인할수 있다.
VBOXweb-service 설치
우리는 지금부터 웹 방식의 버추얼 박스를 설치할것이다. 웹방식을 설치하는 이유는 사용자 측면에서 인터페이스가 간편하기 때문이다. 힘들게 서버에 접속후
버추얼 박스는 실행 시킬필요없이 바로 웹상에서 자신의 가상서버들을 관리할수있는 장점이 있다.
설치환경
OS : CentOS 6.6 Server Minimal Installation (No GUI) kernel 2.6.32-504.el6.x86_64
IP Address : 192.168.0.50/24
설치시작
VirtualBox를 설치하기 전에, 우리는 작업의 몇 가지를해야한다. 우선, 서버를 업데이트합니다.
- 최신버전 업데이트.
**이 과정은 상황에 따라 생략해도 상관없다. 아래 업데이트를 하게될 경우 kernel-devel 버전과 uname 으로 했을때 자신의 커널버전이
틀린경우가 발생할수있다.
yum update
- 사용자 생성
useradd admin
passwd admin
이곳의 admin 패스워드는 나중에 vbox 웹접근시의 패스워드와 동일하다.
- 중요 라이브러리 설치
버추얼박스 설치에 필요한 라이브러리를 설치해야됩니다.
yum groupinstall ‘Development Tools’
rpm -ivh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum install SDL kernel-headers dkms yum-priorities
아래는 kernel-devel 이 설치가 안되어있을경우 설치하면 된다. 확인하는 방법은
/usr/src/kernels/자신의커널버전/
이다.
자신의 커널버전에 맞는 devel 다운로드…
wget ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.6/x86_64/os/Packages/kernel-devel-2.6.32-504.el6.x86_64.rpm
rpm -Uvh kernel-devel-2.6.32-504.el6.x86_64.rpm
- 버추얼 박스 설치
지금까지는 버추얼박스를 설치하기 위한 준비과정이었다. 지금부터 본격적인 설치과정이 시작된다.
버추얼박스를 설치하는 방법은 /etc/yum.repos.d/ 디렉토리 아래에 repository 등록후 yum install 로 설치하는 방법과 수동으로 사이트 접속후 wget 으로
다운로드 받은 이후에 rpm 으로 설치하는 2가지 방법이 있다. 여기서는 이 2가지 방법을 설명하도록 한다.
4.1 repository 등록후 설치
cd /etc/yum.repos.d/
wget http://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo
yum install VirtualBox-4.3
전체 버전을 확인하고 싶으면 , yum install Virtual* 전체 검색을 하면 된다.
4.3.x 최신버전으로 설치가 될 것이다. 그러면 아래 확장모듈 설치할때에도 최신 확장모듈 버전을 다운로드 받아 설치해야된다.
정상적으로 설치가 완료되면 아래와 같은 메시지를 확인할수 있다.
Creating group ‘vboxusers’. VM users must be member of that group!
No precompiled module for this kernel found — trying to build one. Messages
emitted during module compilation will be logged to /var/log/vbox-install.log.
Stopping VirtualBox kernel modules [ OK ]
Uninstalling old VirtualBox DKMS kernel modules [ OK ]
Trying to register the VirtualBox kernel modules using DKMS [ OK ]
Starting VirtualBox kernel modules [ OK ]
4.2 수동 설치 방법
http://download.virtualbox.org/virtualbox/rpm/el/
이곳에 방문한후에 자신이 설치하고자 하는 버전을 wget 으로 다운로드 받고, rpm -ivh 방식으로 설치하면 끝난다.
- 그룹 등록
버추얼 박스를 설치하게 되면 vboxusers 라는 그룹이 자동 생성되는데, 우리가 만든 admin 이라는 계정을 vboxusers 그룹에 추가해준다.
usermod -G vboxusers admin
- 확장팩 설치
버추얼 박스 4.0을 시작으로 관리 웹 인터페이스를 통해 원격 게스트 콘솔을 연결하는 데 도움이 될수있는 확장팩을 설치해야된다. 이 확장 팩은 버추얼 박스사용자에게 다음과 같은 기능을 제공한다.
가상 USB 2.0 (EHCI) 장치
버추얼 원격 데스크톱 프로토콜 (VRDP) 지원
웹캠 통과 호스트
인텔 PXE 부팅 ROM
리눅스 호스트의 PCI 통과를위한 실험 지원
https://www.virtualbox.org/wiki/Downloads
위의 사이트에서 다운로드 가능하다.
wget http://download.virtualbox.org/virtualbox/4.3.12/Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack
[root@VM ~]# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack
0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%
Successfully installed “Oracle VM VirtualBox Extension Pack”.
위와 같은 화면이 출력되면 정상적으로 설치가 완료된 것이다.
- 아파치 설치 및 php 설치
웹 버추얼 박스는 php 오픈소스를 이용한 웹 기반 서비스이다. 때문에 아파치 및 php , php 관련 라이브러리를 설치해야된다.
소스컴파일로 설치할경우에는 경로지정만 잘 설정해주면 되며, 이곳에서는 간편히 yum 을 이용하여 설치하도록 하겠다.
yum install httpd
yum install php
yum install php-soap
아파치를 재시작한다.
service httpd restart
테스트를 위해 iptables 를 off 시킨다.
service iptables stop
리얼서버에서는 아파치 및 버추얼박스 TCP port 를 개방하면 된다.
- 버추얼박스 php 웹소스 설치 및 설정
웹페이지에서 버추얼박스를 실행시킬려면 소스파일이 필요하다. 앞에서 웹서비스에 필요한 apache, php 를 설치 완료하였다.
이곳에서 소스파일 설치 방법을 소개하도록 한다.
http://sourceforge.net/projects/phpvirtualbox/files/
위의 사이트에 접속하여 원하는 버전을 다운로드한다.
wget http://downloads.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.3-3.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fphpvirtualbox%2Ffiles%2F&ts=1440553486&use_mirror=jaist
mv phpvirtualbox-4.3-3.zip?r=http:%2F%2Fsourceforge.net%2Fprojects%2Fphpvirtualbox%2Ffiles%2F phpvirtualbox-4.3-3.zip
unzip phpvirtualbox-4.3-3.zip
mv phpvirtualbox-4.3-3 /var/www/html/vm
cp /var/www/html/vm/config.php-example /var/www/html/vm/config.php
vi /var/www/html/vm/config.php
환경설정파일을 일부 변경해준다. 자세한 내용은 버추얼박스 공식홈페이지 문서를 참조하면 된다.
var $username = ‘admin’;
var $password = ‘admin’;
var $location = ‘http://192.168.0.49:18083/’;
vi /etc/default/virtualbox
VBOXWEB_USER=root
VBOXWEB_HOST=192.168.0.49
LOGFILE=/dev/null
[root@VM ~]# /etc/init.d/vboxweb-service start
Starting VirtualBox web service [ OK ]
[root@VM ~]# chkconfig vboxweb-service on
[root@VM ~]# setenforce 0
[root@VM ~]#
- 설치 완료
리눅스 웹버추얼박스 설치가 완료되었다. 이제부터는 웹기반 버추얼박스 접속을 해보도록 하겠다.
http://192.168.0.49/vm
접속해보면 로그인 화면이 보이는데 초기 생성한 admin 계정으로 접속하면된다. 이부분은 버추얼박스 환경설정의 계정 부분과 동일해야된다.
버추얼박스를 설치하였으니, 이후 글러스터 구성 방법 nfs 구성 방법들 여러가지를 가상화 환경에서 테스트 및 구성해보도록 하겠다.