21. XEN KAIST 10 / SPARCS 11 alphamin ( 유민정 )
Contents 1. Virtualization 2. Installing Xen 3. Reference
Virtualization
가상화란 ? 컴퓨터에서 컴퓨터 리소스의 추상화를 일 컫는 광범위한 용어 -> 하나의 물리적 시스템에서, 이 자원을 공유 하는 다수의 가상머신을 실행시킬 수 있다.
가상화 기술의 장점 IT 자원의 운영과 관리의 효율성 극대화 비용 절감 Ex) 새로운 장비 구매 대신 가상화 기술을 적 용해 기존 시스템의 리소스 사용을 최적화 동방의 서버 수 > 실제 물리적 서버 갯수
VirtualizationEmulation Full virtualization With Hardware Assist Without Hardware Assist Para virtualization Etc. 가상화 종류
Emulation 컴퓨터 프로그램이나 전자기기가 다른 프로그램이 나 device 를 imitate 하는 능력 – QEMU, HP 프린터, 안드로이드 에뮬레이터 등 “QEMU” Quick Processor Emulator 예를들어 ARM board 를 위한 OS 나 프로그램이 다 른 환경의 컴퓨터에서 실행될 수 있게함.
본격적으로 Full virtualization 과 Para virtualization 을 알아보기에 앞서 기본 용어들부터 ! * Hypervisor * Dom0/DomU
Hypervisor(Virtual machine monitor) 호스트 컴퓨터에서 다수의 운영 체제를 동시 에 실행하기 위한 가상 플랫폼 가상 머신 생성, 관리 및 유지 신호를 전달해주는 통로역할 하드웨어 Resource 분배 (CPU scheduling, memory ….)
Hypervisor – Type1(bare-metal) 하이퍼바이저가 해당 하 드웨어 위에서 직접 실행 ex) xen, ESX Server (Vmware), 하이퍼 v,KVM
Hypervisor – Type2(host) 하이퍼바이저가 일반 프 로그램과같이 Host 운영체 제 안에서 실행 ex) Vmware server, VirtualBox, parallels workstation, Virtual pc
Dom 0 : Host OS 다른 guest domain 을 만들거나 관 리할 시 사용될 수 있다. Dom U : VM(Virtual Machine) 위에 새로 설 치하는 OS 들과 그 시스템을 가리 키는 말.
Full virtualization 물리적 하드웨어를 완벽히 시뮬레이션한 VM 을 제공하는 가상화 기술 중 하나. => 어떤 OS 든지 OS 의 수정 없이 가상 머신 위에서 실행가능 !
=> 그 OS 들은 자신들이 마치 진짜 하드웨어 위에 있는 것 처럼 느낌 !! Ex) VMWare, VirtualBox, Parallels, Microsoft VirtualPC 등
VMware (Full Virtualization)
X86 기반 OS 들은 system resource 에 직접 적으로 접근 하도록 만들어져 있다. 이를 해결하기 위해 VMM 은 OS 를 돌리기 위한 환경을 직접 Emulate 해준다. (VM) 그러나 이 방법은 무척 느린 퍼포먼스를 자 랑 …;;
CPU 의 실행 상황을 보자 ! app1 app2 app1 app2 app1 app2 app3 app4.. | guestOS1 guestOS2 Host OS Guest OS 들이 하나의 프로그램처럼 취급되어 처리 된다. Context switching app1, app2, app3,app4, guestOS1,guestOS2-> guestOS1 내의 app1, app2…->guestOS2 내의 …. 게다가 VM 까지 돌려야하니 …. 더 바쁘겠죠 ?
Hardware-assisted virtualization(HAV) OS 들이 동시에 CPU 자원을 안전하고 효율 적으로 사용 할 수 있도록 해줌 2000 년도 중반에, Intel 과 AMD 가 x86 CPU 가 가상화 지원기능 탑재 (AMD-V, Intel VT-X)
HAV 의 원리를 이해하기 위해 일단 Protection ring 이라는 것을 알아봅시다 !
Protected mode -> x86 기반 CPU 를 장착한 컴퓨터에서 프 로그램이 640KB 의 명확한 연속된 영역에만 주소를 지정하는 것으로 한정되는 프로그램 운영 모드 -> 운영체계 코드와 거의 모든 응용 프로그 램들은, 중요 데이터들이 겹쳐 쓰여지는 것을 막기 위해 보호모드에 실행
Protection level(ring) -> Protected mode 에서 운영체제가 application 을 더 잘 control 하도록 하기 위해 존재 -> 권한 level 이라고 생각하자. ( 시스템 소프트웨어의 데이터 접근 등을 제 한 할 수 있다.)
*-1 이라는 새로운 권한 level 도입 ! (Hypervisor 가 그것을 가짐 ) * 이로서 CPU 가 Guest OS 들의 존재를 인식하고 처리 !! HAV 의 원리
Kernel-based virtualization(KVM) Intel VT-X, AMD-V CPU 를 갖고있는 linux 를 위한 기술 리눅스 커널에 HAV 를 위한 여러가지 기능 을 더 탑재.-> Hypervisor 로 변신 ! Modified QEMU 필요함.
Para virtualization Guest OS 와 Host OS 의 커널 수정 ( 아까 이 OS 들은 ring0 에서 실행될 수 있다고 했는데 이를 수정시킴 ) Guest OS 들이 자신들이 Hypervisor 위에 있 다는 것을 인식 ! Ex) xen
Dom0 / DomU DomU
Guest OS 에서 하드웨어에 접근하려 할때 ! 1.Guest OS -> Xen Hypervisor -> Hardware (CPU or RAM) -- 빠르다 !! 2.Guest OS -> Host OS -> Xen Hypervisor -> Hardware (Disk, Networking)
Dom0 * 네트워크 백엔드 드라이버, 블록 백엔드 드라이버 DomU *PV 네트워크 드라이버, PV 블락 드라이버 : 네트워크와 디 스크 접근을 위해서 * 각각의 guest OS 는 independent 하다. * 현재 Sparcs 에서는 아라, OTL, LKIN, 휠세미나, 기타 개발 서버 등이 xen 위에 올려진 가상 서버 ! ( 반가상화 )
How to interact? – Disk 네트워크 ?
그렇다면 다음 중 Xen 을 이용하여 guest OS 로 설치 할 수 없는 것은 ?
quiz
Installing Xen
Installing Debian debian.org 데비안 6.0 (squeeze)
기본적인 package 설치 # apt-get install xen-linux-system-2.6-xen-686 xen- hypervisor-4.0-amd64 xen-utils xenstore-utils xenwatch xen-tools #aptitude –P install xen-linux-system #apt-get install xen-tools //xen-tools 설치. -> 첫번째 명령어를 통해 hypervisor, xen kernel 등 필요 한 package 한꺼번에 설치. 귀차나요 !!!!
GRUB default 변경 #mv –i /etc/grub.d/10_linux /etc/grub.d/21_linux #update-grub #reboot #uname – r : 커널 버전 확인
hypervisor 의 실행 확인 #xm dmesg
Xen networking. Xen networking Bridge Networking Routed Networking with NAT Two-way Routed Network
Bridge Networking
외부에서 VM 에 접근 가능 ! 웹서버 / 메일 서버 등을 구축시 사용 VM 이 네트워크 상에 노출되지 않고 VM -Host 머 신 사이에서만 교류가 일어나도록 하고 싶거나 다 른 설정을 원할 때에는 다른 네트워크 설정을 사 용한다. 나머지 두 network 에 대해서는 ng 을 참고하세요 ~ ng
Network 설정 #vi /etc/xen/xend-config.sxp 에서 (network-script network-bridge) 를 활성화 한다. 이 것 대신 * (network-script ‘network-bridge antispoof=yes’) 라 고 하면 vm 이 할당되지 않은 IP 를 사용할 수 없도 록 막는다. #/etc/init.d/xend restart
Installing Guest OS 1.Image-based VM Installing - host 머신의 특정 위치에 디스크 이미지 파일이 존재 - 백업이 매우 쉽다. - 파일 자체에 배드 섹터가 발생하면 머신 에 손상 #cd /home/xen/domains/xen1
2. Using LVM(LogicalVolumeManagement) - Disk Size 를 flexible 관리 - 성능 향상의 이점 - 백업, 1 번에 비해 다소 복잡 - But, logical volume 을 직접 나누고, file system 을 만들고, swap 파티션 따로 만 들어주는 등의 복잡한 과정을 거쳐야 한 다.( Guest OS 설치 어려움.) ( 설치 방법 ) stem_using_Logical_Volume_Management_(LVM)
Creating image_based virtual machine // image 생성시 default 옵션 설정하기 #vi /etc/xen-tools/xen-tools.conf // VM image 가 저장될 곳 설정 dir = /home/xen //VM 에 설치될 Version 선택. 아래는 debian squeeze 임 dist = `xt-guess-suite-and-mirror –suite` //OS install 방법 install-method =debootstrap // 생성시 root 비번을 설정할 때 1 로 표시 passwd=1
// The default mirror for debootstrap to install Debian-derived distributions 여기서 debootstrap 은 VM 에 Debian 을 설치할 수 있게 해 주는 Tool!( 따로 installing CD 등 필요없이 )
Make image // 우선 virtual image 를 저장할 경로 생성 # mkdir /home/xen // 이미지 생성 # xen-create-image --hostname=xen1 --size=4Gb -- swap=256Mb --ip=**** --memory =256Mb --role=udev --arch=i386
xm 명령어 & VM Run console : Attach to ’s console create : Create a domain based on destroy : Terminate a domain immediately list : List information about all/some domains (running virtual machines) pause/unpause : Pause/Unpause execution of a domain reboot : Reboot a domain shutdown : Shutdown a domain start : Start a domain save : Save a domain state to restore later. restore Restore a domain from a saved state. destroy 와 shutdown 의 차이 -> destroy 이는 컴퓨터의 전선을 뽑는 것 과 같은 효과. shutdown 은 그냥 전원 끌 께요 ~~ 라고 하는 차이 ! (destroy 같은 경우 파일에 손상이 생길 수 있다.)
#xm create /etc/xen/xen1.cfg #xm list
#xm console xen1 OR <-vm console 창으로 들어가기 #xm console 1(id) * 이때 enter!! 한 번 쳐보자 ! 안그럼 계속 커서만 깜빡ㅋ Crtl + 5 : VM console 창에서 Host 로 넘어감
putty 로 접속해 봅시당♡
만약 인터넷이 안된다면 ? 카이스트의 경우 인터넷 인증문제일꺼에 욥 !!! 다른 랜선에 연결된 컴퓨터에서 mac address 변경 후 인증을 해주세욥 !
Reference ecenttext#ajax_history_home