- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
! 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