KVM - 윈디하나의 솔라나라
|
root@wll ~ # egrep '^flags.*(vmx|svm)' /proc/cpuinfo 1) flags : ... vmx ... root@wll ~ # yum groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools" root@wll ~ # yum install qemu-kvm-tools root@wll ~ # yum install tunctl root@wll ~ # lsmod | grep kvm 2) kvm_intel 50444 0 kvm 306096 1 kvm_intel root@wll ~ # reboot1) CPU가 vmx 또는 svm 플래그를 가지고 있어야 한다.
pkg update를 사용해 모든 패키지를 업데이트 해 놓자. 이후 OpenIndiana 151 를 기준으로 아래와 같이 설치한다. 설치가 완료되면 qemu-kvm(1)은 /usr/bin에 설치된다. qemu(1) 도 /usr/bin에 설치되는데, qemu(1)은 사용하지 않는다.
root@wl ~ # pkg install \
driver/i86pc/kvm \
system/qemu \
system/qemu/kvm
Packages to install: 4
Packages to update: 63
Create boot environment: Yes
DOWNLOAD PKGS FILES XFER (MB)
Completed 67/67 4881/4881 175.8/175.8
PHASE ACTIONS
Removal Phase 198/198
Install Phase 592/592
Update Phase 5707/5707
PHASE ITEMS
Package State Update Phase 130/130
Package Cache Update Phase 63/63
Image State Update Phase 2/2
A clone of openindiana exists and has been updated and activated.
On the next boot the Boot Environment openindiana-1 will be mounted on '/'.
Reboot when ready to switch to this updated BE.
root@wl ~ # ls /usr/bin/qemu*
/usr/bin/qemu /usr/bin/qemu-system-mips
/usr/bin/qemu-ga /usr/bin/qemu-system-mips64
/usr/bin/qemu-img /usr/bin/qemu-system-mips64el
/usr/bin/qemu-io /usr/bin/qemu-system-mipsel
/usr/bin/qemu-kvm /usr/bin/qemu-system-ppc
/usr/bin/qemu-nbd /usr/bin/qemu-system-ppc64
/usr/bin/qemu-system-arm /usr/bin/qemu-system-ppcemb
/usr/bin/qemu-system-cris /usr/bin/qemu-system-s390x
/usr/bin/qemu-system-i386 /usr/bin/qemu-system-sh4
/usr/bin/qemu-system-lm32 /usr/bin/qemu-system-sh4eb
/usr/bin/qemu-system-m68k /usr/bin/qemu-system-sparc
/usr/bin/qemu-system-microblaze /usr/bin/qemu-system-sparc64
/usr/bin/qemu-system-microblazeel /usr/bin/qemu-system-x86_64
root@wl ~ # reboot
새로운 부트 환경이 만들어 졌고, 재시작 하면 KVM 로드된다.
roto@wll ~ # chkconfig NetworkManager off
roto@wll ~ # chkconfig network on
roto@wll ~ # service NetworkManager stop
roto@wll ~ # service network start
roto@wll ~ # vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.100
PREFIX=24
GATEWAY=192.168.0.1
DNS1=168.126.63.1
DELAY=0
NM_CONTROLLED=no
roto@wll ~ # vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BRIDGE=br0
ONBOOT=yes
HWADDR=00:00:00:FF:FF:FF
NM_CONTROLLED=no
roto@wll ~ # service network restart
roto@wll ~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0018f3d08a00 no eth0
virbr0 8000.5254004a7552 yes virbr0-nic
roto@wll ~ # ifconfig -a
br0 Link encap:Ethernet HWaddr 00:18:F3:D0:8A:00
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::218:f3ff:fed0:8a00/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:139 errors:0 dropped:0 overruns:0 frame:0
TX packets:140 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:14170 (13.8 KiB) TX bytes:19910 (19.4 KiB)
eth0 Link encap:Ethernet HWaddr 00:18:F3:D0:8A:00
inet6 addr: fe80::218:f3ff:fed0:8a00/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:1143 errors:0 dropped:0 overruns:0 frame:0
TX packets:1052 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:142224 (138.8 KiB) TX bytes:137676 (134.4 KiB)
Interrupt:17
roto@wll ~ # vi /etc/udev/rules.d/80-kvm.rules
...
KERNEL=="tun", GROUP="kvm", MODE="0666"
roto@wll ~ # iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
roto@wll ~ # iptables -I INPUT -i br0 -j ACCEPT
roto@wll ~ # service iptables save
roto@wll ~ # service iptables restart
roto@wll ~ # service libvirtd reload
roto@wll ~ # qemu-img create -f qcow2 -o preallocation=metadata /var/lib/libvirt/images/winxp.qcow2 20Gqcow2 는 [QEMU Copy On Write 2]의 약어로 QEMU 버전 0.9 부터 지원된 하드디스크 이미지 포맷이다.
roto@wll ~ # tunctl -b -u root roto@wll ~ # brctl addif br0 tap0 roto@wll ~ # /usr/libexec/qemu-kvm \ -name "WinXP" \ -hda /var/lib/libvirt/images/winxp.qcow2 \ -cdrom winxp.iso \ -smp 2 -m 512 \ -net nic -net tap,ifname=tap0,script=no,downscript=no \ -vnc :0 \ -boot d \ -daemonizeCD롬으로 부팅될 것이다. 아래와 같이 VNC viewer 를 사용해 콘솔에 접속할 수 있다.
root@wll ~ # yum install tigervnc root@wll ~ # vncviewer localhost:5900CD롬으로 부팅하지 않으려면 [-boot d]를 빼고 부팅한다.
root@wl ~ # dladm show-link LINK CLASS MTU STATE BRIDGE OVER yge0 phys 1500 up -- -- root@wl ~ # dladm create-vnic -l yge0 vnic0 root@wl ~ # dladm show-link LINK CLASS MTU STATE BRIDGE OVER yge0 phys 1500 up -- -- vnic0 vnic 1500 up -- yge0 root@wl ~ # MAC=$(dladm show-vnic -po macaddress vnic0) root@wl ~ # echo $MAC 2:8:20:9e:fa:63
root@wl ~ # zfs create -p -V 20G rpool/kvm/guest/disk0
root@wl ~ # /usr/bin/qemu-kvm \
-boot cd \
-enable-kvm \
-vnc 0.0.0.0:1 \
-smp 2 \
-m 2048 \
-no-hpet \
-localtime \
-drive file=/dev/zvol/rdsk/rpool/kvm/guest/disk0,if=ide,index=0 \
-drive file=/home/windy/src/oi-dev-151a-text-x86.iso,media=cdrom,if=ide,index=2 \
-net nic,vlan=0,name=net0,model=e1000,macaddr=$MAC \
-net vnic,vlan=0,name=net0,ifname=vnic0,macaddr=$MAC \
-vga std
// TODO
| RSS ATOM XHTML 5 CSS3 |
Copyright © 2004-2025 Jo HoSeok. All rights reserved. |