qemu site http://fabrice.bellard.free.fr/qemu/kqemu-tech.html
IBM site http://www.ibm.com/developerworks/kr/library/l-linuxvirt/index.html
*설치 전 CPU가상화지원 확인
cat /proc/cpuinfo
Flags 에 vmx 또는 svm 있는지 확인
vmx : intel cpu 가상화지원
svm : amd cpu 가상화지원
cpu가상화 지원되지 않을 경우 kvm
모듈 탑재되지 않음
사용하고 있는 OS확인
KVM이 고려되어 설계된 2.6.20 이후
버전의 커널을 쓰는 OS에 설치 권장
KVM 설치 전 필요한 패키지 설치
yum install compat-gcc-34* SDL SDL-devel bridge-utils uml-utilities socat sereen sysstat\ smartmontools net-snmp* iptabels-devel mysql
kvm 소스 다운로드 http://sourceforge.net/project/showfiles.php?group_id=180599
소스 설치
Tar zxvf ‘kvm소스’
./configure –prefix=/usr/local/kvm
make
make install
cp -arp script /usr/local/kvm
cp -arp kvm_stat /usr/local/kvm/bin
ln -s /usr/local/kvm/bin/qemu-system-x86_64 /bin/qemu
ln -s /usr/local/kvm/bin/qemu-img /bin/qemu-img
Modprobe kvm-intel
-> intel cpu 일 경우
Modprobe kvm-amd
-> amd cpu 일경우
*Qemu 에물레이터
KVM에 기본적으로 포함되어 있는
에뮬레이터, 가상 H/W 에뮬레이터 도구
KVM 모듈과 연동되어 구동
KVM GuestOS(VM)의 제어 99%를 담당
Qemu 독자적으로 사용 가능
두 가지 연산 모드 지원
Full System Emulation
User Mode Emulation
소스 다운로드
http://fabrice.bellard.free.fr/qemu/qemu-0.9.1.tar.gz
tar zxvf qemu-0.9.1.tar.gz
cd qemu-0.9.1
./configure ?prefix=/usr/local/qemu
make
make install
설치
소스 다운로드
http://fabrice.bellard.free.fr/qemu/kqemu-1.3.0pre11.tar.gz
tar zxvf kqemu-1.3.0pre11.tar.gz
cd kqemu-1.3.0pre11
./configure
make
make install
-> 설치되는 경로 /lib/modules/kernel-version/misc
*Qemu Accelerator Module
모듈 적재
Modprobe kqemu
Qemu 구동시 모듈과 같이 구동
qemu명령어에 ‘-kernel-kqemu’옵션사용
* 서버 OS가 X86_64일경우 qemu 명령어가
아닌 qemu-system-x86_64 명령을 사용
*Qemu guestos 설치
qemu-img
가상 하드 디스크 이미지 파일 관리 유틸
디스크 이미지 생성 예
qemu-img create ?f qcow2 cent.img 2G
-f : 지원 포맷 형식, qcow2 : qemu포맷
2G : 하드디스크 용량
CD롬 부팅 os 설치
qemu -localtime -cdrom /dev/cdrom -m 384 -boot d windows.img
Iso 파일 이용 부팅 OS설치
qemu -localtime -cdrom cdimagefile.iso -m 384 -boot d windows.img
*qemu guest os 시작
Qemu 명령어 구동
qemu -m 512 ?hda \
/home/vm_img/centos5_32.img ?boot c\
-kernel-kqemu
-m 512 : memory size 512M
-hda [경로] : 부팅할 os 이미지 파일 및 가상디스크
-boot c : 하드디스크로 부팅
floopy(a), hard(c), cd-rom(d), network(n)
-kernel-kqemu : qemu accelerator 구동
*Qemu명령어 옵션
-m : memory size 지정
-hda/-hdb [file] : ide 하드디스크 이미지 0/1
-hdc/-hdd [file] : ide 하드디스크 이미지 2/3
-cdrom [file] : cdrom장치 지정
-smp [n] : cpu갯수 지정
-k [language] : 키보드 지정, 기본 eu-us
-net nic[,vlan=n][macaddr=addr]
[model=type] : 네트워크카드 및 연결 생성
*Qemu monitor
Qemu가 임의의 os 에뮬레이팅&가상화하는
동안 qemu프로세스 컨트롤, 모니터링 수행
접근 방법
Socat 명령어 이용접근 방법
Socat ? UNIX-CONNECT:/home/vm_img \
Cent5.monitor
Qemu 구동 창에서 접근
Ctrl + Alt + 2
*Qemu monitor 옵션
savevm [tag|id]: 해당 vm 스냅샷 생성
delvm [tag|id] : 해당 vm 스냅샷 삭제
loadvm [tag|id] : 해당 vm load
system_reset : reset
system_powerdown : vm 전원끔
Info [옵션] : 옵션에 해당하는 정보 보기
예) info mem
info block
info network
KVM 명령어
1)
tunctl -b -u kvm -t virt00334
qemu -net nic,vlan=0,macaddr=DE:AD:BE:E0:03:34,model=e1000 -net tap,vlan=0,ifname=virt00334,script=/etc/qemu-ifup -monitor unix:/VM_DISK_IMG/HDs/192.168.0.211/vnc/vm00334.monitor,server,nowait -usb -k en-us -name 00334 -pidfile /VM_DISK_IMG/HDs/192.168.0.211/vnc/vm00334.pid -daemonize -smp 1 -m 1024 -drive file=/VM_DISK_IMG/HDs/192.168.0.211/115.68.20.66_25_vm00334.qcow2,if=ide,index=0,media=disk,boot=on -boot c
2)
screen -d -m socat TCP4-LISTEN:60575,range=115.68.62.13/32 UNIX-CONNECT:/VM_DISK_IMG/HDs/115.68.20.63_17_vm00265/vnc/vm00265.vnc
위의 두가지 커맨드라인을 모두 분석 이해하면 KVM 에 대하여 모두 이해하는것이다.
KVM 특징
1 CPU 의 가상화 지원 기술 이 필수인 전가상화만을 지원하기에 Xen 처럼 가상머신의 커널을 수정해 줄 필요가 없음
2 ESX Server 나 XenServer 등과 같은 전용의 하이퍼바이저가 아닌 Linux 자체를 호스티 OS 로 이용
3 관리툴로서 에뮬레이터인 QEMU 가 필요
A Quick Guide to Using KVM with CentOS-5
http://wiki.centos.org/HowTos/KVM
Basic KVM on CentOS 5
http://www.openfusion.net/linux/basic_kvm_on_centos5
Install KVM on CentOS 5.4
http://banym.de/projects/centos/install-kvm-on-centos-5.4
CentOS 5.4그리고KVM(을)를 시험해 보았다. ~ 콘솔편 ~
http://j2k.naver.com/j2k_frame.php/korean/d.hatena.ne.jp/pcmaster/20091025/p2
속:CentOS 5.4그리고KVM(을)를 시험해 보았다. ~ virt-manager편 ~
http://j2k.naver.com/j2k_frame.php/korean/d.hatena.ne.jp/pcmaster/20091031/p1
Finally user-friendly virtualization for Linux
http://www.linuxinsight.com/finally-user-friendly-virtualization-for-linux.html
KVM install on Centos
먼저 cpu 가 지원하는지 확인할것
egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo
vmx|svm 이 나오면 지원 되는것임 ~
yum install *kvm* *qemu* *libvirt* *python-virtinst* *virtinst*
/etc/init.d/libvirtd start
tunctl 은 rpm 으로 받아 설치 꼭 !
yum install virt-manager
vi /etc/rc.d/rc.local
modprobe kvm-intel
modprobe tun 추가
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
KVM 이 정상적으로 설치되어있는지 확인은
virsh -c qemu:///system list
It should display something like this:
[root@server1 ~]# virsh -c qemu:///system list
Id Name State
———————————-
브릿지 설치
yum install bridge-utils
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
GATEWAY=192.168.1.1
IPADDR=192.168.1.100
NETMASK=255.255.255.0
yes
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Networking Interface
DEVICE=eth0
HWADDR=00:1e:90:f3:f0:02
yes
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
BRIDGE=br0
reboot
ifconfig
[root@server1 ~]# ifconfig
br0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:113 errors:0 dropped:0 overruns:0 frame:0
TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:16520 (16.1 KiB) TX bytes:11889 (11.6 KiB)
eth0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:136 errors:0 dropped:0 overruns:0 frame:0
TX packets:98 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:22152 (21.6 KiB) TX bytes:14147 (13.8 KiB)
Interrupt:28 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:746 (746.0 b) TX bytes:746 (746.0 b)
virbr0 Link encap:Ethernet HWaddr E2:54:14:EA:7A:01
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::e054:14ff:feea:7a01/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:5156 (5.0 KiB)
Take a look at
man virt-install
to learn how to use it.
To create a Debian Lenny guest (in bridging mode) with the name vm10, 512MB of RAM, two virtual CPUs, and the
disk image ~/vm10.qcow2 (with a size of 12GB), insert the Debian Lenny Netinstall CD into the CD drive and run
virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 -f ~/vm10.qcow2 -s 12 -c /dev/cdrom –vnc –noautoconsole –os-type linux –os-variant debianlenny –accelerate –network=bridge:br0 –hvm
Of course, you can also create an ISO image of the Debian Lenny Netinstall CD…
dd if=/dev/cdrom of=~/debian-500-amd64-netinst.iso
… and use the ISO image in the virt-install command:
virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debianlenny –accelerate –network=bridge:br0 –hvm
The output is as follows:
[root@server1 ~]# virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debianlenny –accelerate –network=bridge:br0 –hvm