トップ 一覧 検索 ヘルプ RSS ログイン

LN-kvm-setupの変更点

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