Xenで仮想マシンに仮想NICを追加してみる

openSUSE Community
geeko.jp
Kazuhisya(Kazuhisa Hara)

Agenda•Ahead of that by use of Xen•Overview•Configuration•Demo•Extra chapter , etc…

Ahead of that by use of Xen

Virtualization ?
そもそもサーバ仮想化って何なのさ？
• 1台のサーバコンピュータを、あたかも複数台のコンピュータであるかのように論理的に分割し、それぞれに別のOSやアプリケーションソフトを動作させる事LinuxWindows

Windows

Solaris仮想化Overview

About Xen (1)Xenとは１つのハードウェアで複数のOSを並列実行・制御する仮想化マシンソフトウェア

つまりサーバ仮想環境を実現するソフトウェアです# 身も蓋もないAbout Xen (2)特長• オープンソース– GPLライセンス– SUSE、RedHat標準• 準仮想化 / 仮想マシンモニタ(ハイパーバイザ)– ホスト型の仮想化に比べ、オーバーヘッドが非常に少ない• 完全仮想化もサポート– WindowsもSolarisも仮想OSとして起動できる• ライブマイグレーション– 動的に仮想マシンを移動

About Xen (3)WindowsやSolaris、勿論Linuxも1つのハードで稼働できる– 完全仮想化・準仮想化の混合もOK

完全仮想化

準仮想化
SolarisWindowsLinuxLinuxConfiguration

Setup Environment (1)Setup Environment - ここから本題！

仮想NIC2枚挿し環境を作る• ネットワークカード2枚挿しのマシンに、同じく2個NICがある仮想マシンを構築する例です• openSUSE 10.3 , Xenは3.1系を利用– openSUSE11.0、と言うかXen3.2系はネットワーク周りの設定が結構変わったみたい？
– 同じ設定じゃ動かないかも！ → 時間が出来たら検証したいと思います• 既にゲストOSがインストールされていることを前提に始めます– Sorry, 今回はインストール・ゲストOS追加は端折ります• NetworkManagerはトラブルの元→後記• デモ環境はNICが一個しかないからちょっと設定が違います…
– でも基本やることは一緒！

Images

こんな感じ
ハードウェアeht0

Domain0

Vif1.0

eht0

vif1.1eht1

xenbr0xenbr1eht1

DomainU

NetworkManager ?
• 有線/無線の切り替え、また無線環境ではさまざまな接続手段への対応など、ネットワークインタフェースの変更を管理、制御することができる– モバイル環境だと便利だよね！でも…

NetworkManagerは、以下の場合には適していません。
• コンピュータがXenサーバの場合、またはシステムがXen内の仮想システムの場合。
• 1つ以上のアクティブなネットワーク接続を同時に使用する場合。
抜粋
http://www.novell.com/ja-jp/documentation/sles10/sles_admin/index.html?page=/ja-jp/documentation/sles10/sles_admin/data/sec_basicnet_nm.htmlと、言うことで使用は控えましょう
これに何度ハマったことか…

Setup Environment (2)• Xenはデフォルトだと”eth0”しか割付をしないので、カスタムスクリプトの追加設定が必要です

network-bridge.xenを作成# cd /etc/xen/scripts# cp network-bridge network-bridge.xen
my-network-scriptを作成# touch /etc/xen/scripts/my-network-script※中身は某赤帽ディストロのドキュメントより拝借
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/ja-JP/Virtualization/ch-virt-bridge-errors.html

Setup Environment (3)my-network-script# !/bin/sh# Exit if anything goes wrong
set -e# First arg is operation.
OP=$1shift
script=/etc/xen/scripts/network-bridge.xen
case ${OP} instart)$script start vifnum=0 bridge=xenbr0 netdev=eth0$script start vifnum=1 bridge=xenbr1 netdev=eth1;;
stop)$script stop vifnum=0 bridge=xenbr0 netdev=eth0$script stop vifnum=1 bridge=xenbr1 netdev=eth1;;
status)$script status vifnum=0 bridge=xenbr0 netdev=eth0$script status vifnum=1 bridge=xenbr1 netdev=eth1;;*)
echo 'Unknown command: ' ${OP}echo 'Valid commands are: start, stop, status'
exit 1esacSetup Environment (4)

実行権を与える# chmod +x /etc/xen/scripts/my-network-script# chmod +x /etc/xen/scripts/network-bridge.xen/etc/xen/xend-config.sxp を編集#(network-script network-bridge)(network-script my-network-script)

再起動 →# reboot –h now//コメントアウト//追加

GRUBでXenを選択

Setup Environment (5)ifconfigで新たにxenbr1等が出来ているのを確認
Xenbr0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:11633 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0
RX bytes:1955332 (1.8 Mb) TX bytes:0 (0.0 b)
Xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4081706 errors:0 dropped:0 overruns:0 frame:0
TX packets:2782 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:358228833 (341.6 Mb) TX bytes:117060 (114.3 Kb)

Setup Environment (6)Dom-Uのコンフィグを変更# vi /etc/xen/vm/hoge
name=“hoge”
ostype=“opensuse”……
～中略～
vif=[ 'mac=00:16:3e:00:00:01, bridge=xenbr0' , 'mac=00:16:3e:00:00:02, bridge=xenbr1', ]↑追加

Dom-U起動# xm create /etc/xen/vm/hoge -c

Setup Environment (7)Dom-UのYaSTよりネットワークカードの設定を行う

Demo

Extra chapter , etc…

Operation monitoring

Q.仮想化運用は監視が重要って言うけど、Xenってどうやって監視するの？
A.それNagiosで出来るよ！YaSTでNagios入れて、Xenのプラグイン入れればオッケー！
Q.仮想化はモニタリングもじゅうy(ryA.それMuninで出来るよ！YaSTでMunin入れt(ryConvenient Tool ? (1)Q.Xen ExpressとかSIM(某HP社)のマネージャみたいな、ちょっとした便利ツー
ルないの？
A.シェルスクリプトならThinkITに紹介されてたよ！でも統合的なのは今の所ないっぽいよ？…というか、情報あったらください！
http://www.thinkit.co.jp/cert/article/0606/4/2/2.htm
http://www.thinkit.co.jp/free/article/0609/7/1/

Q.じゃー、基本的に仮想マシンマネージャで出来ないことってコマンド打つしかないの？マイグレとかさ。

Convenient Tool ? (2)Answer for…
そう、ないんですよね...

パンがないなら、ケーキを食べればパンを焼けばいいじゃない。
もとい、作ればいいじゃない。

DemoSummaryまとめ• 仮想マシンにNIC追加するって、要点抑えればXenでもそんなに難しくない– 追加したら煮るなり焼くなりお気に召すままに！
• Webサービスの試験環境構築とかに最適ですね– 裏と表で分ける設定の試験なんかにも• 安定運用を心がけるなら、監視はしっかり• 管理はちょっとの工夫でらくになるよ！

Thank you for listenig

ご静聴ありがとうございました

openSUSE Community
geeko.jp
Kazuhisya(Kazuhisa Hara)