! OpenSuse11.4 で KVM いつもの事ながらパッケージが嫌なので make してみる。。 ( 手抜き版 .. 基本のパッケージは opensuse を使う .. ) 参考: http://www.howtoforge.com/virtualization-with-kvm-on-an-opensuse-11.4-server http://www.atmarkit.co.jp/flinux/rensai/kvm01/kvm01b.html !kernel の確認 yast2 で kernel の種類を確認 kernel-desktop では動かないので(後述)kernel-default が入っていることを確認。。 ## egrep '(vmx|svm)' --color=always /proc/cpuinfo ## にて // flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm dts tpr_shadow vnmi flexpriority ept vpid ## と言うような行がでることを確認 (複数でる場合がある。。) !kvm モジュールのロード > lsmod | grep kvm kvm_intel 52582 3 kvm 368118 1 kvm_intel kvm のモジュールがカーネルに読み込まれている事を確認。。 ( kernel-desktop では kvm_intelが読み込まない。。ので kernel-default を使う事 ) ## kvm_intel の 読み込ませ方 # (AMDの場合には kvm_amd ) #modprobe kvm_intel #modprobe kvm_amd !kvm のコンパイル 最新もしくは目的のファイルをダウンロードする。 http://www.linux-kvm.org/page/Main_Page http://sourceforge.net/projects/kvm/files/ kernel-devel zlib-devel pciutils-devel libcap-devel libattr-devel libvirt-devel bridge-utils libvirt # Source ## git clone git://git.kernel.org/pub/scm/virt/kvm/kvm.git ## git clone git://git.qemu-project.org/qemu.git ## git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git # QEMU source # https://github.com/qemu/qemu # yast2 -i kernel-devel # yast2 -i zlib-devel # yast2 -i pciutils-devel # yast2 -i bridge-utils > tar xvfz ./qemu-kvm-1.2.0-rc2.tar.gz > cd qemu-kvm-1.2.0-rc2 > configure --prefix=/usr/opt ( --enable-virtfs ) : メッセージがでる。。 > make > make install !kvm のパスを作る。。 make の際に /usr/opt にインストールしたので。。 kvm の起動用の shell のパスを追加したいので > vi setenv_kvm LD_LIBRARY_PATH=/usr/opt/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH PATH=/usr/opt/bin:/usr/opt/libexec:$HOME/opt/sbin:$PATH export PATH を作成 !ネットワーク起動用の yast2 で bridge-utils をインストール # yast2 -i bridge-utils bridge 接続にする為 eth0 の変更 # ifcfg-eth0 BOOTPROTO='static' BROADCAST='' ETHTOOL_OPTIONS='' # IPADDR='172.16.70.99/24' IPADDR='0.0.0.0' MTU='' NAME='NetXtreme GREEN 10G Ethernet PCIe' NETMASK='' NETWORK='' REMOTE_IPADDR='' STARTMODE='nfsroot' USERCONTROL='no' BR0 の作成 # ifcfg-br0 STARTMODE='auto' BOOTPROTO='static' IPADDR='172.16.70.99/24' MTU='' NETMASK='' NETWORK='' BROADCAST='' USERCONTROL=no NAME='Bridge 0' NM_CONTROLLED=no BRIDGE='yes' BRIDGE_PORTS='eth0' BRIDGE_AGEINGTIME='300' BRIDGE_FORWARDDELAY='0' BRIDGE_HELLOTIME='2' BRIDGE_MAXAGE='20' BRIDGE_PATHCOSTS='19' BRIDGE_PORTPRIORITIES= BRIDGE_PRIORITY= BRIDGE_STP='on' # qemu-ifup を作っておく #!/bin/sh /sbin/ifconfig $1 up /sbin/brctl addif br0 $1 # cmmod 755 qemu-ifup # cp qemu-ifup /etc /usr/opt /usr/opt/etc !ゲストOSのインストール ディスクスペースの確保 # qemu-img create -f raw vm00.img 10G ただし::次の方法も確認する。。qcow2 フォーマット 。。どちらがアクセスが早いか確認の事。。 > qemu-img create -f qcow2 vm00.img 10G スナップショットでバックアップ > qemu-img snapshot -c backup001 ./vm00.img ## 5番目に ロールバック > qemu-img snapshot -a 5 ./vm00.img インストール時の 起動シェル #!/bin/sh qemu-system-x86_64 vm00.img -m 512 \ -monitor telnet::8444,server,nowait -vnc :0 \ -daemonize \ -net nic,macaddr=xx:xx:xx:xx:xx:xx \ -net tap,ifname=tap0 \ # -cdrom FreeBSD-9.1-RELEASE-i386-dvd1.iso -boot d # 1st ## -monitor telnet::8445,server,nowait -vnc :1 -daemonize \ # -net nic,macaddr=yy:yy:yy:yy:yy:yy \ # -net tap,ifname=tap1 \ # 2nd ## -monitor telnet::8446,server,nowait -vnc :2 -daemonize \ # -net nic,macaddr=zz:zz:zz:zz:zz:zz \ # -net tap,ifname=tap2 \ # 3rd ## -monitor telnet::8447,server,nowait -vnc :3 -daemonize \ # -net nic,macaddr=ii:ii:ii:ii:ii:ii \ # -net tap,ifname=tap3 \ # 4th ## -monitor telnet::8448,server,nowait -vnc :4 -daemonize \ # -net nic,macaddr=jj:jj:jj:jj:jj:jj \ # -net tap,ifname=tap4 \ ## ※ MACアドレスは設定する事。。外部から接続時にネットワークが混乱する。。 ## MACアドレスは 52:54:XXXXXXXX でないと上手く動作しない。。 ## http://www.atmarkit.co.jp/flinux/rensai/kvm02/kvm02b.html !アクセス方法 > vncviewer 172.16.70.2 :0 !停止方法 > telnet localhost 8444 [qemu] system_powerdown !Diskの追加 ## # qemu-img create -f qcow2 vm02.img 300G ## でディスクイメージを作る > /sbin/gpart create -s MBR vtbd1 > /sbin/gpart add -t freebsd -s 30G vtbd1 > /sbin/gpart set -a active -i 1 vtbd1 > /sbin/gpart create -s BSD -n 20 vtbd1s1 > /sbin/gpart add -t freebsd-ufs -s 25G vtbd1s1 > /sbin/gpart add -t freebsd-swap -s 4G vtbd1s1 ## ## /sbin/gpart add -s 512M -t freebsd-ufs da0 ## /sbin/gpart add -s 15G -t freebsd-ufs -a 4k da0 ## ## /sbin/gpart show vtbd1 ## /sbin/gpart show vtbd1s1 ## /sbin/gpart delete -i 2 vtbd1s1 > > newfs vtbd1s1a ## Edit /etc/fstab !ディスクの追加2 ## # qemu-img create -f qcow2 vm02.img 300G ## でディスクイメージを作る root@foo:~ # gpart create -s GPT /dev/vtbd1 vtbd1 created root@foo:~ # gpart show /dev/vtbd1 => 40 629145520 vtbd1 GPT (300G) 40 629145520 - free - (300G) root@foo:~ # gpart add -t freebsd-ufs /dev/vtbd1 vtbd1p1 added root@foo:~ # gpart show /dev/vtbd1 => 40 629145520 vtbd1 GPT (300G) 40 629145520 1 freebsd-ufs (300G) > newfs vtbd1p1 ## Edit /etc/fstab ---- !make world の時間 FreeBSD の make world が 約2時間かかる。。 実機では 25分程度だったはずだ。。VMだと 124分と言う事は。。約5倍のコスト。。と言う事だ。。設定を見直すか?? virtio が良いようだ。。( GUEST 側には /usr/ports/emulators/virtio-kmod が必要) http://d.hatena.ne.jp/kakurasan/20080512/p1 ## 参考 http://kaworu.jpn.org/kaworu/2012-04-09-1.php ## 結論 ## buildworld は ディスクの早さよりCPUの個数とメモリの多さ!! !ディスクのパフォーマンス テスト1 (方法) > bonnie++ -d ./ddd -s 3096 -r 256 -u hoge ,format_version,bonnie_version,name,file_size,io_chunk_size,putc,putc_cpu,put_block,put_block_cpu,rewrite,rewrite_cpu,getc,getc_cpu,get_block,get_block_cpu,seeks,seeks_cpu,num_files,max_size,min_size,num_dirs,file_chunk_size,seq_create,seq_create_cpu,seq_stat,seq_stat_cpu,seq_del,seq_del_cpu,ran_create,ran_create_cpu,ran_stat,ran_stat_cpu,ran_del,ran_del_cpu,putc_latency,put_block_latency,rewrite_latency,getc_latency,get_block_latency,seeks_latency,seq_create_latency,seq_stat_latency,seq_del_latency,ran_create_latency,ran_stat_latency,ran_del_latency ,Version,Version,Machine,Concurrency,,Size,SequentialOutput,K/sec,%CP,K/sec,%CP,K/sec,%CP,K/sec,%CP,K/sec,%CP,/sec,%CP, ,1.96,1.96,rvm002,1,1346711081,2G,,508,99,37748,31,38920,32,1026,96,65601,41,791.9,58,16,,,,,3047,15,32490,99,12319,44,6463,35,+++++,+++,13987,50,17218us,2527ms,1225ms,96225us,350ms,1783ms,3579ms,391us,247us,322ms,106us,336us ,1.96,1.96,rvm002,1,1346711362,3096M,,513,99,36562,29,34752,28,980,93,60314,38,237.2,20,16,,,,,2366,12,32579,99,14763,52,8250,43,32411,99,14958,54,19263us,2413ms,608ms,256ms,478ms,1700ms,5087ms,116us,144us,234ms,388us,330us ,1.96,1.96,rvm002,1,1346714052,3096M,,514,99,40766,34,34884,29,1033,95,61173,38,226.6,20,16,,,,,3227,16,32463,99,14138,50,7448,39,+++++,+++,13394,47,17009us,2147ms,647ms,118ms,242ms,1579ms,3280ms,150us,114us,324ms,132us,225us ,1.96,1.96,rvm002,1,1346714052,3096M,,510,99,50992,43,32258,26,1036,98,57938,36,239.7,21,16,,,,,12857,74,32112,99,21777,77,11096,60,29542,99,24898,96,17170us,2413ms,613ms,54651us,565ms,1602ms,160ms,2060us,154us,157ms,109us,529us ,1.96,1.96,rvm002,1,1346714052,3096M,,514,99,51574,44,31318,25,1063,99,59525,38,221.9,21,16,,,,,12977,69,32267,99,24654,87,11623,63,+++++,+++,25121,89,17118us,1074ms,639ms,66733us,1021ms,1595ms,197ms,209us,109us,208ms,127us,434us ,1.96,1.96,rvm002,1,1346714052,3096M,,511,99,51164,42,29255,23,1045,99,59442,37,238.2,20,16,,,,,13174,70,31493,99,23488,92,12200,66,+++++,+++,27532,97,24080us,1040ms,924ms,107ms,641ms,1523ms,130ms,1110us,118us,79669us,221us,172us ,1.96,1.96,rvm002,1,1346714052,3096M,,511,99,46038,38,26899,21,1037,98,62681,39,230.5,20,16,,,,,13351,70,31924,99,27177,96,12261,64,+++++,+++,28128,99,37154us,925ms,1494ms,132ms,740ms,1641ms,137ms,149us,396us,134ms,293us,1249us ,1.96,1.96,fb4a2,1,1346683642,3096M,,503,99,65856,36,34670,18,1057,93,106731,47,901.3,36,16,,,,,12158,63,25462,99,22541,95,14175,74,28747,99,24971,98,20376us,5143ms,1787ms,108ms,177ms,8701ms,256ms,494us,1106us,98624us,86us,490us ,1.96,1.96,rvm002/x,1,1346710079,3096M,,530,99,87395,40,39399,19,1064,96,129445,52,4264,129,16,,,,,3071,22,30384,99,5379,29,3217,23,30583,99,5598,30,18074us,848ms,1448ms,83932us,136ms,914ms,77942us,128us,509us,4610us,379us,6870us ,1.96,1.96,rvm002,1,1346711891,4G,,524,99,54414,37,41416,28,1045,97,78330,41,154.2,13,16,,,,,2613,21,+++++,+++,5080,28,2671,21,30758,99,5055,28,19045us,1227ms,698ms,109ms,383ms,1140ms,44053us,92us,6338us,4824us,121us,66195us ,1.96,1.96,rvm002,1,1346711891,4G,,525,99,66342,44,39013,26,1040,97,78082,41,159.3,13,16,,,,,2585,20,30576,99,4776,29,2655,21,30905,99,4930,28,16460us,1483ms,720ms,113ms,888ms,1505ms,84858us,104us,904us,8905us,120us,8788us ,1.96,1.96,rvm002,1,1346711891,4G,,515,98,68415,45,39446,27,1067,97,78949,42,160.7,13,16,,,,,2574,20,+++++,+++,4553,27,2726,21,+++++,+++,5029,29,19186us,537ms,541ms,71668us,267ms,1168ms,83497us,123us,8360us,4695us,123us,75357us ,1.96,1.96,rvm002,1,1346711891,4G,,526,99,65174,44,38903,26,1045,97,81364,43,167.0,14,16,,,,,1805,14,+++++,+++,5080,28,2710,21,30846,99,5140,30,16453us,711ms,625ms,87363us,207ms,1649ms,575ms,148us,569us,14038us,106us,459us !PORT のアップデート ###/etc/make.conf を変更 ### NO_PROFILE=true USA_RESIDENT=NO PORTSNAP_UPDATE=yes DEPENDS_TARGET="package" PACKAGE_BUILDING="YES" NO_GAMES=true NO_DOCS=true MASTER_SITE_BACKUP?=http://ftp.FreeBSD.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ MASTER_SITE_OVERRIDE?=http://ftp.FreeBSD.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ .if ${.CURDIR:M/usr/src*} != "" SUP_UPDATE?= yes # SUP= /usr/local/bin/cvsup SUP= /usr/bin/csup SUPFLAGS?= -g -L 2 SUPHOST?= cvsup.jp.FreeBSD.org SUPFILE?= /usr/share/examples/cvsup/stable-supfile .endif PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile ### ---- # DHCP を使う http://d.hatena.ne.jp/mopemope/20120823 から #!/bin/sh /sbin/brctl addbr br0 /usr/sbin/tunctl -t tap0 /sbin/brctl addif br0 tap0 /sbin/ip addr add 192.168.2.200 dev br0 /sbin/ip link set br0 up /bin/echo 1 > /proc/sys/net/ipv4/conf/wlan0/proxy_arp /bin/echo 1 > /proc/sys/net/ipv4/conf/br0/proxy_arp /bin/echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp /usr/sbin/parprouted wlan0 br0 /usr/sbin/bcrelay -d -i br0 -o wlan0 !TIPs *http://research.sakura.ad.jp/tag/kvm/ * *https://portal.nutanix.com/page/documents/details?targetId=Nutanix-Community-Edition-Getting-Started:Nutanix-Community-Edition-Getting-Started *https://www.nutanix.com/jp/blog/what-is-nutanix-ahv-hypervisor