가상화란 컴퓨팅 리소스의 추상화를 통해 다수의 운영 체제 또는 애플리케이션 이미지가 하나의 물리적 서버를 공유하도록 함으로써 총소유비용을 극적으로 절감하고 관리성을 개선할 수 있게 하는 프로세스를 말한다.위 내용은 오라클의 Virtualization Technology Center에 나와있다. (내가 찾은것 중에서 가상화를 가장 잘 표현한 말이라 생각한다) 쉽게 말하면 [시스템 자원 추상화]이고 이를 통해 [비용 절감]을 목적으로 한다.
┌──┐ │VM│ └─┬┘ ┌───────┴───────┐ 시스템가상화 프로세스가상화 ┌─────┴─────┐ ┌───┴───┐ │ │ HW가상화 HW에뮬레이션 │ │ 에뮬레이터 ┌───┴───┐ 다중시스템 동적변환기 Type 1 Type 2 ┌─────┬─┘ ┌───┼───┐ VirtualBox ┌─┴─┐ 멀티태스크 OS변환 ISA&ABI ISA&OS Language Java 반가상화 전가상화 │ xVM ┌─┴─┐ OS가상화 Zone H/W지원 바이너리변환 xVM
┌───────┐create┌────┐install ┌─────┐ready┌─────┐ ┌────┐ │ │─────→│CON │────────→│ │────→│ │boot│ │ │NOT │ │FIG │ │INST │ │READY│───→│RUNN│ │CREATED│←─────│URED│←────────│ALLED│←────│ │ │ING │ └───────┘delete└────┘uninstall└─────┘halt └─────┘ └────┘ ↑ shutdown │ └──────────────────────┘ 주) incomplete 상태는 install 하다가 실패한 경우이다.
root@wl ~ # zoneadm list -cv 1) ID NAME STATUS PATH BRAND IP 0 global running / native shared root@wl ~ # mkdir -m 700 /export/zone1 2) root@wl ~ # zonecfg -z zone1 3) zone1: 그런 영역은 구성되지 않음 새 영역 구성을 시작하려면 'create'을(를) 사용하십시오. zonecfg:zone1> create zonecfg:zone1> set zonepath=/export/zone1 zonecfg:zone1> set autoboot=true zonecfg:zone1> add inherit-pkg-dir zonecfg:zone1:inherit-pkg-dir> set dir=/opt zonecfg:zone1:inherit-pkg-dir> end zonecfg:zone1> add net zonecfg:zone1:net> set address=192.168.0.20 zonecfg:zone1:net> set physical=vmxnet0 zonecfg:zone1:net> end zonecfg:zone1> verify zonecfg:zone1> commit zonecfg:zone1> exit root@wl ~ # cat /etc/zones/zone1.xml 4) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE zone PUBLIC "-//Sun Microsystems Inc//DTD Zones//EN" "file:///usr/share/lib/xml/dtd/zonecfg.dtd.1"> <!-- DO NOT EDIT THIS FILE. Use zonecfg(1M) instead. --> <zone name="zone1" zonepath="/export/zone1" autoboot="true"> <inherited-pkg-dir directory="/lib"/> <inherited-pkg-dir directory="/platform"/> <inherited-pkg-dir directory="/sbin"/> <inherited-pkg-dir directory="/usr"/> <inherited-pkg-dir directory="/opt"/> <network address="192.168.0.20" physical="vmxnet0"/> </zone> root@wl ~ # zoneadm list -cv 4) ID NAME STATUS PATH BRAND IP 0 global running / native shared - zone1 configured /export/zone1 native shared root@wl ~ # zonecfg -z zone1 info 4) zonename: zone1 zonepath: /export/zone1 brand: native autoboot: true bootargs: pool: limitpriv: scheduling-class: ip-type: shared inherit-pkg-dir: dir: /lib inherit-pkg-dir: dir: /platform inherit-pkg-dir: dir: /sbin inherit-pkg-dir: dir: /usr inherit-pkg-dir: dir: /opt net: address: 192.168.0.20 physical: vmxnet0 root@wl ~ # zoneadm -z zone1 install 5) Preparing to install zone <zone1>. Creating list of files to copy from the global zone. Copying <2383> files to the zone. Initializing zone product registry. Determining zone package initialization order. Preparing to initialize <1089> packages on the zone. Initializing package <1089> of <1089>: percent complete: 100% Initialized <1089> packages on zone. Zone <zone1> is initialized. Installation of <1> packages was skipped. The file </export/zone1/root/var/sadm/system/logs/install_log> contains a log of the zone installation. root@wl ~ # zoneadm list -cv | grep zone1 - zone1 installed /export/zone1 native shared root@wl ~ # zoneadm -z zone1 ready 6) root@wl ~ # zoneadm list -cv | grep zone1 1 zone1 ready /export/zone1 native shared root@wl ~ # zoneadm -z zone1 boot 7) root@wl ~ # zoneadm list -cv | grep zone1 1 zone1 running /export/zone1 native shared root@wl ~ # zlogin zone1 8) [영역 'zone1' pts/3에 연결됨] Sun Microsystems Inc. SunOS 5.10 Generic January 2005 # Ctrl+D ['zone1' pts/3 영역에 대한 연결이 닫힘] root@wl ~ # zlogin -C zone1 8) [영역 'zone1' 콘솔에 연결됨] zone1 console login: zone1 console login: ~. [영역 'zone1' 콘솔에 대한 연결이 닫힘] root@wl ~ # zoneadm -z zone1 halt 9) root@wl ~ # zoneadm list -cv | grep zone1 - zone1 installed /export/zone1 native shared root@wl ~ # zoneadm -z zone1 uninstall 10) zone1 영역을 uninstall하시겠습니까? (y/[n])? y root@wl ~ # zoneadm list -cv | grep zone1 - zone1 configured /export/zone1 native shared root@wl ~ # zonecfg -z zone1 11) zonecfg:zone1> delete zone1 영역을 삭제하시겠습니까? (y/[n])? y zonecfg:zone1> exit root@wl ~ # zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / native shared root@wl ~ #1) ID값 0을 가진 global이란 존은 항상 생성되어있다. 솔라리스의 기본 존이다. 여기에 zone1 이라는 존을 생성할 것이다.
root@wl ~ # wget http://www.solanara.net/downloads/centos39.distro 1) root@wl ~ # cp centos39.distro /usr/lib/brand/lx/distros root@wl ~ # mkdir CentOSISO root@wl ~ # cd CentOSISO root@wl ~/CentOSISO # wget http://ftp2.riken.jp/Linux/centos/3.9/isos/i386/CentOS-3.9-i386-binDVD.iso 2) root@wl ~/CentOSISO # cd .. root@wl ~ # mkdir -m 700 /export/lxzone 3) root@wl ~ # zonecfg -z lxzone 4) lxzone: 그런 영역은 구성되지 않음 새 영역 구성을 시작하려면 'create'을(를) 사용하십시오. zonecfg:lxzone> create -t SUNWlx zonecfg:lxzone> set zonepath=/export/lxzone zonecfg:lxzone> set autoboot=true zonecfg:lxzone> add net zonecfg:lxzone:net> set address=192.168.0.30 zonecfg:lxzone:net> set physical=e1000g0 zonecfg:lxzone:net> end zonecfg:lxzone> add capped-memory zonecfg:lxzone:capped-memory> set locked=256m zonecfg:lxzone:capped-memory> end zonecfg:lxzone> exit root@wl ~ # zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / native shared - lxzone configured /export/lxzone lx shared root@wl ~ # zoneadm -z lxzone install -d ~/CentOSISO all 5) Installing distribution 'CentOS 3.9'... Installing cluster 'all' Installing miniroot for zone 'lxzone'. Attempting to locate 31 packages... Installing 31 miniroot packages... Setting up the initial lx brand environment. System configuration modifications complete. Duplicating miniroot; this may take a few minutes... Booting zone miniroot... Miniroot zone setup complete. Performing full install for zone 'lxzone'. Attempting to locate 956 packages... Installing zone 'lxzone' from ISO "/root/CentOSISO/CentOS-3.9-i386-binDVD.iso". Installing 956 packages; this may take several minutes... Completing installation; this may take a few minutes. Setting up the initial lx brand environment. System configuration modifications complete. Installation of CentOS 3.9 to zone 'lxzone' completed 2009년 2월 13일 금요일 오전 11시 39분 21초. Installation of zone 'lxzone' completed successfully. Details saved to log file: "/export/lxzone/root/var/log/lxzone.install.10794.log" root@wl ~ # zoneadm -z lxzone boot 6) root@wl ~ # zlogin -C lxzone 7) [영역 'lxzone' 콘솔에 연결됨] CentOS release 3.9 (Final) Kernel 2.4.21 on an i686 lxzone login: root [root@lxzone root]# uname -a Linux lxzone 2.4.21 BrandZ fake linux i686 i686 i386 GNU/Linux [root@lxzone root]# vi /etc/sysconfig/network 8) NETWORKING=yes HOSTNAME=lxzone [root@lxzone root]# vi /etc/hosts 192.168.0.30 lxzone [root@lxzone root]# reboot1) centos39.distro 파일을 받는다. 솔라리스 10에서는 CentOS 3.9를 정식지원하지 않는다. 필자가 직접 만들었다.

※ Solaris Express Community Edition의 경우 # uname -a SunOS wlx 5.11 snv_122 i86pc i386 i86pc ※ Solaris xVM의 경우 # uname -a SunOS wlx 5.11 snv_122 i86pc i386 i86xpv
root@wl ~ # wget http://download.virtualbox.org/virtualbox/3.2.0/VirtualBox-3.2.0-61806-SunOS.tar.gz
root@wl ~ # mkdir VirtualBox
root@wl ~ # cd VirtualBox
root@wl ~/VirtualBox # tar xvfz ../VirtualBox-3.2.0-61806-SunOS.tar.gz
root@wl ~/VirtualBox # pkgadd -d VirtualBox-3.2.0-SunOS-r61806.pkg
The following packages are available:
1 SUNWvbox Oracle VM VirtualBox
(i386) 3.2.0,REV=2010.05.18.20.24.61806
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:
패키지 예 <SUNWvbox>(을)를 </root/VirtualBox-3.2.0-SunOS-r61806.pkg>에서 처리 중
Oracle VM VirtualBox(i386) 3.2.0,REV=2010.05.18.20.24.61806
VirtualBox Personal Use and Evaluation License (PUEL)
...
다음의 파일은 setuid/setgid 권한과 함께 설치되는 중입니다:
/opt/VirtualBox/amd64/VBoxBFE <setuid root>
/opt/VirtualBox/amd64/VBoxHeadless <setuid root>
/opt/VirtualBox/amd64/VBoxNetAdpCtl <setuid root>
/opt/VirtualBox/amd64/VBoxNetDHCP <setuid root>
/opt/VirtualBox/amd64/VBoxSDL <setuid root>
/opt/VirtualBox/amd64/VirtualBox <setuid root>
/opt/VirtualBox/i386/VBoxBFE <setuid root>
/opt/VirtualBox/i386/VBoxHeadless <setuid root>
/opt/VirtualBox/i386/VBoxNetAdpCtl <setuid root>
/opt/VirtualBox/i386/VBoxNetDHCP <setuid root>
/opt/VirtualBox/i386/VBoxSDL <setuid root>
/opt/VirtualBox/i386/VirtualBox <setuid root>
이 파일들을 setuid/setgid 파일로 설치하겠습니까? [y,n,?,q] y
이 패키지에는 설치 과정 중 수퍼유저 권한으로 실행될 스크립트가
있습니다.
<SUNWvbox>(을)를 계속 설치하겠습니까 [y,n,?] y
Oracle VM VirtualBox(을)를 <SUNWvbox>(으)로 설치
## 1째 (전체: 1) 부분 설치
/etc/hostname.vboxnet0
/opt/VirtualBox/64/VBoxPython.so
...
/opt/VirtualBox/vboxshell.py
/platform/i86pc/kernel/drv/amd64/vboxdrv
...
/platform/i86pc/kernel/drv/vboxusbmon.conf
/usr/bin/VBoxHeadless <심볼릭 링크>
/usr/bin/VBoxManage <심볼릭 링크>
/usr/bin/VBoxQtconfig <심볼릭 링크>
/usr/bin/VBoxSDL <심볼릭 링크>
/usr/bin/VirtualBox <심볼릭 링크>
/usr/share/applications/virtualbox.desktop
/usr/share/pixmaps/VBox.png
/var/svc/manifest/application/virtualbox/virtualbox-webservice.xml
/var/svc/manifest/application/virtualbox/virtualbox-zoneaccess.xml
[ 클래스 <none> 검증 ]
/opt/VirtualBox/VBoxBFE <연결된 경로 이름>
/opt/VirtualBox/VBoxISAExec <연결된 경로 이름>
/opt/VirtualBox/VBoxManage <연결된 경로 이름>
/opt/VirtualBox/VBoxSDL <연결된 경로 이름>
/opt/VirtualBox/VBoxTestOGL <연결된 경로 이름>
/opt/VirtualBox/VBoxZoneAccess <연결된 경로 이름>
/opt/VirtualBox/VirtualBox <연결된 경로 이름>
/opt/VirtualBox/vboxwebsrv <연결된 경로 이름>
/opt/VirtualBox/webtest <연결된 경로 이름>
## 설치 후 스크립트 실행
Checking for older bits...
Installing new ones...
Loading VirtualBox kernel modules...
- Loaded: Host module
- Loaded: NetAdapter module
- Loaded: NetFilter module
Configuring services...
- Loaded: Web service
- Loaded: Zone access service
Installing Python bindings...
- Installed: Bindings for Python 2.4
Updating the boot archive...
<SUNWvbox>(이)가 성공적으로 설치되었습니다.
root@wl ~/VirtualBox # VirtualBox 1)
1) VirtualBox를 실행한다. /opt/VirtualBox/UserManual.pdf 에 매뉴얼이 있다.|
|
Copyright © 2004-2010 Jo HoSeok. All rights reserved. |