Scientific Linux 6.1 install on KVM

Download Report

Transcript Scientific Linux 6.1 install on KVM

SunOS Hypervisor
~ 遂に来たよ KVM, OI b151a ~
A Solaris personal user
Kunitaka Nmaba ( @ipv6labs )
http://negi.ipv6labs.jp/
自己紹介
自己紹介必要?
書く時間が無いので、続きはWebで!
Presentation Title
pg 2
OpenIndiana b151a Release Note
OpenIndiana Kernel & Core Userland (1)
OpenIndiana oi_151a is based on Illumos. Notable changes to
the kernel and core userland since OpenIndiana’s
oi_148 release includes:
URL: http://wiki.openindiana.org/oi/oi_151a+Release+Notes
Presentation Title
pg 3
OpenIndiana b151a Release Note
OpenIndiana Kernel & Core Userland (2)
- KVM (Kernel Virtual Machine)
OpenIndiana oi_151a now includes KVM, the open source
Kernel-based Virtual Machine, as a basic virtualization solution
along with the QEMU package!
This KVM port includes virtualization extensions for Intel VT.
Using KVM, a user or system administrator can run multiple
virtual machines running unmodified x86_64-based operating
system images for Linux, BSD, or Windows images.
Each virtual machine has private virtualized hardware:
a network card, disk, graphics adapter, etc.
URL: http://wiki.openindiana.org/oi/oi_151a+Release+Notes
Presentation Title
pg 4
OpenIndiana b151a Release Note(Ja)
和訳 意訳 やる夫的解釈
____
/⌒ ⌒\
/( ●) (●)\
/::::::⌒(__人__)⌒:::::\
|
|r┬-|
|
\
`ー'´
/
Presentation Title
Illumos ベースになって、
KVM も使えるようになったお!!
ZFS, Clossbow で最強の
ハイパーバイザを作れるお!!
pg 5
OpenIndiana b151a Release Note(Ja)
訂正、ちゃんと和訳/意訳してみる。
OpenIndiana カーネル と コア ユーザランド について
OpenIndiana ビルド 151a は Illumos ベースです。
これが重要な仕様変更であることは、 ビルド 148 の OpenIndiana に
含まれています。
OpenIndiana ビルド 151a は今回 KVM を取り込みました、
このオープンソース KVM(Kernel-based Virtual Machin) は
QEMU パッケージと共に提供される標準的な仮想化ソリューションです。
この KVM は Intel VT の為の拡張された仮想化機能を含んでいます。
KVMを使うことにより、一般ユーザまたはシステム管理者は、
手を加える事無く x86_64 ベースのOS(Lnux, BSD, Windows)を
仮想マシンとして複数同時に使用することが出来ます。
Presentation Title
pg 6
Let’s install KVM on oi_151a
【留意事項】
・最近の Intel VT チップセットしかサポートしてない。 ※
・新しい機能が実装されているため、バグが含まれている可能性がある。
【原文】
Requirements
Currently KVM on OpenIndiana only supports recent Intel VT chipsets.
very fresh port so bugs are to be expected.
※ AMD-V では動かないらしい。また、Intel VT でも Nehalem 以降が必要。
細かい話は“[ug-jposug] KVMが可能なCPUリスト”で流れています。
Xeon E3, 3[4-6]xx, 5[5-6]xx 辺りを選べば多分大丈夫。(保障はしない)
Presentation Title
pg 7
Let’s install KVM on oi_151a
“勝手に”推奨サーバ
HP ProLiant ML110 G6 BM101A
今なら otto で 28,800円(税込)!!
http://www.pcserver1.jp/server/detail/570
ココが イイネ!!
・Xeon X3430 2.4GHz x4Core for KVM and Zone
・Up to 4G x4 = 16G ECC DDR3 DIMM for VM and ZFS
・BCM57xx GigaEther x1(GDLv3 Ready) for Clossbow
・IPMI/Lights-Out 100 Interface(100M) alt ALOM/ILOM
・x6 SATA Ports for ZFS
Presentation Title
pg 8
Let’s install KVM on oi_151a
デフォルトではKVM関係のパッケージはインストールされていません。
レポジトリからインストールする必要があります。
KVMのインストール:
# pkg install driver/i86pc/kvm system/qemu system/qemu/kvm
インストール後の確認:
# pkg info driver/i86pc/kvm system/qemu system/qemu/kvm
# qemu --version
QEMU emulator version 0.15.0, Copyright (c) 2003-2008 Fabrice Bellard
# qemu-kvm --version
QEMU emulator version 0.14.1 (qemu-kvm-devel), Copyright (c) 2003-2008 Fabrice Bellard
# ls -l /dev/kvm
lrwxrwxrwx 1 root root 27 2011-10-12 17:17 /dev/kvm -> ../devices/pseudo/kvm@0:kvm
URL: http://wiki.openindiana.org/oi/Using+KVM
Presentation Title
pg 9
Let’s install KVM on oi_151a
Linux の KVM から来た方へ
・libvirt ありません !!
・virt-manager ありません !!
※ 全部 qemu-XXXX コマンド、そう CLI 操作です。
移植頑張ってるらしいので、暫し待たれよ。
Presentation Title
pg 10
Let’s install KVM on oi_151a
今回の OI + KVM 構成イメージ
vdX
sdX
virtio
ide
zvol
file
ethX
virtio
vnic
ZFS
rtl8139
e1000
vswitch
Clossbow
OpenIndiana b151a
Disk1
Disk2
Disk3
Disk4
Disk5
Disk6
Presentation Title
e1000g0
e1000g1
bge0
bge1
※推測であり、正しい構成を保証するものではありません。
pg 11
NW(Clossbow) set up for KVM
Solaris10 の dladm show-dev コマンドは
dladm show-phys コマンド になっています。
# dladm show-phys
LINK
MEDIA
STATE
SPEED
DUPLEX
DEVICE
bge0
Ethernet
up
100
full
bge0
e1000g0
Ethernet
unknown
0
half
e1000g0
e1000g1
Ethernet
unknown
0
half
e1000g1
例として bge0 に vnic を追加してみます。
Presentation Title
pg 12
NW(Clossbow) set up for KVM
vnic の 追加・削除 にはそれぞれ
dladm create-vnic と dladm delete-vnic の
コマンドを使用します。
# dladm create-vnic -l { PHYS_NIC | AGGR_NIC } {VNIC_NAME}
# dladm delete-vnic {VNIC_NAME}
# dladm create-vnic -l bge0 vnic0
# dladm show-vnic
LINK
OVER
vnic0
bge0
hoge0
aggr1
SPEED
100
0
MACADDRESS
2:8:20:a9:b7:5e
2:8:20:d5:9c:2a
MACADDRTYPE
random
random
※
VID
0
0
※任意の vnic0 が出来たが、MACアドレスのOUIがランダムで生成されている。
Presentation Title
pg 13
NW(Clossbow) set up for KVM
vnic に任意の MAC アドレスを振る場合は、
dladm create-vnic -m {MAC_ADDR} の引数を
使用します。
# dladm create-vnic -l bge0 -m 2:8:20:12:34:56 vnic0
# dladm show-vnic
LINK
vnic0
OVER
bge0
SPEED
100
MACADDRESS
2:8:20:12:34:56
MACADDRTYPE
fixed
※
VID
0
※任意の MACアドレス を持った vnic0 が生成される。
Presentation Title
pg 14
NW(Clossbow) set up for KVM
/24 のネットワークを vnic で埋めたい場合は・・・
for ループ + printf したものを、dladm create-vnic に
渡せばよい。
# for ((i=1; i<255; i++))
do
dladm create-vnic -l bge0 \
-m 2:8:20:00:00:`printf "%02x\n" $i` \
vnic`printf "%03d\n" $i`
done
クラウド向け(笑
)
vnic001~254 が 02:08:20:00:00:00~ff で生成される。
※vnic生成中のインタフェイスが一時的に不通になることがある。
Presentation Title
pg 15
NW(Clossbow) set up for KVM
KVMは下記のNWアダプタをサポートしています。
・virtio
・Intel e1000(qemu によるEmulation)
・Realtek rtl8139(qemu によるEmulation)
使えるなら、virtio が良い。
rtl8139 は e1000 のドライバが無いOS以外使うべきではない と思っている。
Presentation Title
pg 16
ZFS/zvol set up for KVM
OI + KVM は qemu-img で作ったファイルだけでなく、
zvol に ide(エミュレーション) または、virtio で
書き込む事ができます。
# zfs create -p -V 20G testpool/kvm/linux-vm0
# zfs list testpool/kvm/linux-vm0
NAME
USED AVAIL
testpool/kvm/linux-vm0 20.6G 7.14T
REFER
16K
MOUNTPOINT
-
クラウド向け(笑
)
# for ((i=1; i<255; i++))
do
zfs create -p -V 20G testpool/kvm/linux-vm`printf "%03d\n" $i`
done
Presentation Title
pg 17
ZFS/zvol set up for KVM
qemu-img で作ったファイルも扱えますが、
パフォーマンス面から推奨できません。
raw:
最初から宣言した容量を使用、qcow2 に比べて書き込みに強い。
# qemu-img create -f raw foo.img 20G
qcow2:
実際に使っている容量のみ使用、容量のオーバーラップが可能だが、
追加書き込みに弱い。
# qemu-img create -f qcow2 var.img 20G
Presentation Title
pg 18
ZFS/zvol set up for KVM
zvol メリット:
ZFSの機能や、性能という恩恵を受けることが出来、qemu-img ファイル
より高速であるパターンが多い。
zfs send/recv snapshot 等が使える。(筈・・・
zvol デメリット:
ZFSファイルシステム上に構成されているため、移植性が低い。
qemu-img ファイルであれば、非活性マイグレーションは可能と思われる。
当然ながら、ZFSの知識が必要になる。
Presentation Title
pg 19
ZFS/zvol set up for KVM
qemu-img メリット:
Linux + KVM 環境と同じように使用できる。
ファイルベースであるため、一般的なUNIXの知識だけでディスクの管理が
可能になる。(※ただしNIC周りはClossbowの知識が多少必要)
qemu-img デメリット:
ZFS上に qemu-img を置くことで間接的な恩恵はあるが、zvol に比べると
パフォーマンスが低い。
Presentation Title
pg 20
ZFS/zvol set up for KVM
想定される組み合わせ
zvol * raw * virtio が最も高速と思われ、
qemu-img * qcow2 * ide が最も低速と思われる。
デバイスはNFSブートなども可能な場合があると思われるので、
必ずしも下記の組み合わせだけではない。
Device
Format
Interface
zvol
raw
virtio
qemu-img
qcow2
ide
Presentation Title
pg 21
Scientific Linux 6.1 install on KVM
さぁ、Linux を入れよう !!
何で、Scientific Linux ?
・RHEL互換
・無料
・virtio 対応
・CentOSより(ry
URL: http://www.scientificlinux.org/
Presentation Title
pg 22
Scientific Linux 6.1 install on KVM
qemu-kvm コマンドを使って、ISOイメージから
ブートする。(長い・・・
# qemu-kvm -name linux-vm0 -smp 2 -m 1024 -daemonize \
-pidfile /var/run/linux-vm0.pid -usbdevice tablet \
-cdrom /root/SL-61-x86_64-2011-07-27-Install-DVD.iso \
-drive file=/dev/zvol/dsk/testpool/kvm/linux-vm0,\
if=virtio,index=0,media=disk,format=raw,boot=on -boot d \
-vnc 192.168.0.XX:10 -k ja \
-net vnic,ifname=vnic0 -net nic,model=virtio,macaddr=2:8:20:12:34:56
Presentation Title
pg 23
Scientific Linux 6.1 install on KVM
-name linux-vm0
KVM 管理上の固有名詞を宣言します。
-smp 2
SMP(対称マルチプロセッサ)構成を取る場合、-smp N で宣言します。
宣言しない場合、ユニプロセッサとして動作します。
Windows9x の様にSMPをサポートしていないOSでは宣言してはいけません。
-m 1024
メモリ量を宣言します。単位は MByte です。
この値+128MByte程が実際の qemu-kvm プロセスで消費されます。
Presentation Title
pg 24
Scientific Linux 6.1 install on KVM
-daemonize
デーモンモードで動くよう宣言します。
宣言しない場合は、プロンプトが戻ってきません。
-pidfile /var/run/linux-vm0.pid
この qemu-kvm で起動したプロセスのPID格納ファイルを指定します。
-name で宣言した固有名詞+.pidが無難でしょう。
-usbdevice tablet
USBデバイスとしてタブレットを使用します。
これはKVMへのGUI接続(VNC)の際、マウスカーソルのマッピングが
ずれる問題を解消します。(昔からあるバッドノウハウ?です)
Presentation Title
pg 25
Scientific Linux 6.1 install on KVM
-cdrom /root/SL-61-x86_64-2011-07-27-Install-DVD.iso
インストールするOSのCD/DVD ISOイメージを指定します。
インストール後の起動では必要ありません。
-boot d
“d” というのはhdd(ide-1)=cdromからブートするという宣言になります。
インストール後は無指定にするか、 “c” に変更します。
Presentation Title
pg 26
Scientific Linux 6.1 install on KVM
-drive file=/dev/zvol/dsk/testpool/kvm/linux-vm0,\
if=virtio,index=0,cache=writeback,media=disk,\
format=raw,boot=on
ドライブデバイスを宣言しています。
file はイメージファイル又は、ブロックデバイスを指定します。
ZFS pool 上にある、zvol へ直接書き込みするよう、if=virtio を宣言しています。
(if=ide も宣言可能、virtio非サポートOSでは if=ide にすること)
virtio を使うには、virtio ドライバをインストールするか、Linux Kernel 2.6.25 以降
のOSである必要があります。
cache=writeback は宣言しない限り、writethrough モードで動作します。
OI + KVM 環境の場合、書き込み性能が数kB~数MB程度しか出なくなるため、
cache=writeback を入れています。
cache=writeback しないと、ZFSまで数100MB/secでデータが来ません。
Presentation Title
pg 27
Scientific Linux 6.1 install on KVM
-vnc 192.168.0.XX:10
KVMホスト(OpenIndiana)の任意のポートへVGAを渡します。
:の後ろがVNCの番号です。 5900/tcp + 10 でVNCが Listen します。
-k ja
日本語キーマップを使うことを宣言します。
-net vnic,ifname=vnic0 -net nic,model=virtio,macaddr=2:8:20:12:34:56
使用するvnicを宣言します。
vnicに付与されたMACアドレスが必要であり、ランダムになると面倒なので
dladm create-vnic は -m で静的なMACアドレスを付与した方が良い。
model= は virtio, e1000, rtl8139(指定が無い場合のデフォルト)が設定可能です。
Presentation Title
pg 28
Disk-IO Benchmark on KVM
fio を使い、下記の組み合わせでの
RandomRead/RandomWrite を計測した。
値は10回計測した値の平均を使用している。
Device
Format
Interface
zvol
raw
virtio
qemu-img
qcow2
ide
Presentation Title
pg 29
Disk-IO Benchmark on KVM
KVM Host
OS
:OpenIndiana b151a
CPU :Xeon X3430 2.4GHz x4Core
MEM :DDR3 ECC PC1333 16GB
HDD :HGST HTS72505-C70E x16
HBA :DELL SAS 6i/R
LSI 1068E OEM x2
ZFS
:x16 Stripe pool
Kernel Parameter ( /etc/sysconfig )
set zfs:zfs_arc_max = 1,073,741,824
KVM Guest
OS
:Scientific Linux 6.1
CPU :2CPUs ( -smp 2 )
MEM :1GB
HDD :各タイプ 10GB
FS
:ext3
fio のオプションは下記の通り
--bs=1m --size=4G --numjobs=2 \
--runtime=10 --group_reporting \
--name=file1
※なるべくARCを使用しないようにする為 ※OIの方は --numjobs=4
Presentation Title
pg 30
Disk-IO Benchmark on KVM
Presentation Title
pg 31
Disk-IO Benchmark on KVM
Presentation Title
pg 32
Disk-IO Benchmark on KVM
総評:
zvol + virtio はパフォーマンスダウンが最小限で済む。
zvol + ide でもそこそこの性能は出せる。
ZFS環境だと、cache=writebak しないと実用は難しい。
(危険性が高いが、ZFSへガンガン書き込めるので多分大丈夫?)
qemu-img のイメージファイルベースはやっぱり遅い。
Linux + KVM への移植が必要なもの以外は、zvol を直接割り当てるべき。
複数台起動していると、性能は下がりやすい傾向にあった。
FreeBSD を別KVMで起動していると、10~15% 程の性能低下が見られる。
Presentation Title
pg 33
Coution KVM on OienIndiana
ZFSとの組み合わせにおける注意点
KVM は残りの Real Memory を見て起動を試みます。
ZFS ARC が大量にメモリを消費していると、軌道に失敗します。
KVM ゲストOS起動時に ARC は上手くメモリ解放してくれません。
起動後であれば、残りメモリが20%切った辺りで開放します。
物理メモリ – KVMゲストの中で最大使用するメモリ値
= “set zfs:zfs_arc_max =“
ARCに強制解放させたい場合は、ramdiskadm で
RAM-Disk を作ると、解放を促せたりします。(緊急用)
Presentation Title
pg 34
Coution KVM on OienIndiana
KVMにNICを複数付けると回る?
ついさっき、ブロードキャストストームを起こしてしまいました。
原因不明、1VMに2virtioのNWがあるからNG?
Xeon X3430 + bge0 なんかが全力でブロードキャストされると死ねます。
Xeon E5520 Dual なWindowsマシンも重くなって操作がノロノロに・・・
調べて、追記する予定。
NW周りのベンチマークも。
続きはWebで!!
Presentation Title
pg 35
SunOS Hypervisor
~ 遂に来たよ KVM, OI b151a ~
質疑応答
Presentation Title
pg 36