XEN(ゼン)
Xenについてお勉強中…
環境:CentOS 5.x
物理メモリ4GB搭載機でお勉強中だが…メモリ表示に疑問あり
kernel | /proc/meminfo |
---|---|
2.6.18-128.7.1.el5PAE | 4153060 kB |
2.6.18-128.7.1.el5xen | 3756032 kB |
2.6.18-128.7.1.el5xen(x86_64) | 3714048 kB |
この差、397028 kBはなんなのだろうか?ざっくり384MB分が消えてるように見える。Dom0で利用されているのかと思ってみるがどうなんだろうか?
CentOS5のxenカーネルはPAEをサポートしているし、xenのdmesgでも認識されている
# xm dmesg ... (XEN) System RAM: 4094MB (4192700kB) ... (XEN) PAE enabled, limit: 16 GB ... (XEN) elf_xen_parse_note: PAE_MODE = "yes" ... (XEN) Xen kernel: 32-bit, PAE, lsb (XEN) Dom0 kernel: 32-bit, PAE, lsb, paddr 0xc0400000 -> 0xc07d7000
x86_64環境でも試してみたけども同様の状態です。こんなものなんだろうか?
Xen自体のインストール
- CentOS5.2を普通にインストール
- yum updateで最新にする
- rebootして適用
- yum groupinstall Virtualization
- yum install kernel-xen-devel
- vi /boot/grub.confでXen Kernelが起動するように修正
- rebootして適用
Xenの内容
- ドメイン0 ホストOSに該当。Xenの制御ホスト
- ドメインU ゲストOSに該当
xenインストール後
loとeth0だけだったものがlo,eth0,peth0,vif0.0,virbr0,xenbr0となる
virbr0には192.168.122.1が付与される
xenbr0のport1にvif0.0、port2にpeth0がbindingされているみたい
[root@ ~]# brctl show bridge name bridge id STP enabled interfaces xenbr0 8000.feffffffffff no peth0 vif0.0GuestOSのInterfaceもxenbr0にBridgeされるようだ
準仮想化の場合、vifX.0が増えていく
完全仮想化の場合、tapXが増えてvifX.0が増えていく
Xenのネットワークは3種類
- ブリッジモード
- ルーティングモード
- NATモード
規定ではブリッジモードとなっている
xenbr0はDom0起動時に/etc/xen/scripts/network-bridgeで定義
xend起動時に呼び出される
Dom0のVifX.YはXがDomUのID番号、YがDomU内のインターフェース通し番号となる
DomUが停止されるとDom0側のVifX.Yも停止し一覧から消える
Dom0のVif0.0はDom0のインターフェースとなる
不要なブリッジインターフェースの削除
libvirtをインストールすると自動的にブリッジインターフェースvirbr0が作成される
このインターフェースには192.168.122.1が割り当てられDHCPとDNS Proxyが稼動している
さらにiptableにルールが追加される
邪魔だ…で削除方法
# virsh net-autostart default --disable # rebootこれできれいさっぱり
Xenのファイル、コマンド
ファイル | 説明 |
---|---|
/etc/xen | xenの設定ファイル群 |
/etc/xen/<GuestOS名> | GuestOSの設定ファイル |
/var/lib/xen/images | xenのイメージファイル格納ディレクトリ |
/etc/xen/auto | この下にある設定ファイル分をxendomainsサービスが自動的に起動する |
コマンド | 説明 |
---|---|
xm list | xenで認識されているDomainリストを表示 |
xm create <仮想ホスト名> | /etc/xen以下に保存されている仮想ホストを起動 |
xm shutdown <仮想ホスト名> | 仮想ホストを停止、VifX.Yもなくなる |
xm console <仮想ホスト名> | 仮想ホストのコンソールに接続 |
virt-install | GuestOS作成コマンド |
virt-viewer <GuestOS名> | GuestOSのコンソールにVNCクライアントを使って接続 |
virt-manager | 仮想マシンマネージャー、GUIツール |
virt-clone | 仮想マシンのクローン作成 |
virt-image | XMLファイルから仮想マシンを作成 |
完全仮想化のGuestOSを作成するにはGUIで接続しておく必要あり
つまりVNCにてHostOSのGUIコンソールに接続してから作成する必要がある
GuestOSの箱を作成した後、virt-viewer経由でインストールするから
GuestOSのインストール
GuestOSのインストールはコンソールからvirt-installを利用するのだが
インストールソースをhttpで取得するのでは非常に遅い
インストールDVDがあればそれを利用するのが楽かもです
ということで下準備…
下準備
- DVDからisoを作成
# mkdir /usr/local/src/iso # cd /usr/local/src/iso # dd if=/dev/cdrom of=centos5.2.iso
- isoファイルをマウント
# mkdir /mnt/iso # mount -t iso9660 -o loop /usr/local/src/centos.5.2.iso /mnt/iso
- Apacheをインストール
# yum install httpd-devel # vi /etc/httpd/conf.d/iso.conf Alias /iso "/mnt/iso"
- Apacheを起動
# service httpd start
GuestOSインストール with LocalApache
ローカルApacheの/iso/を利用してインストールしてみる
- virt-installでインストール開始
# cd # virt-install --nographic 完全仮想化のゲストがいいですか (yes または no)? これは修正不要のオペレーティングシステムの実行を可能にします。 no 仮想マシンの名前は何ですか? <ホスト名> どれだけの RAM を割り当てますか (メガバイト単位で)? 1000 What would you like to use as the disk (file path)? /var/lib/xen/images/<ホスト名>.img どの位の大きさのディスク (/var/lib/xen/images/vm011.img) にしたいですか(ギガバイト単位で)? 50 インストール場所は何ですか? http://<Dom0のIPアドレス>/iso ...後はテキストコンソールでのCentOS5.2インストールに従う
- Dom0に戻るのはctrl+]を押す
- インストール完了後、Apacheを停止
# service httpd stop
自動起動設定
GuestOSをxend起動時に自動的に起動させるにはDomU用の設定ファイルのシンボリックリンクを 自動起動ディレクトリに作成する
# cd /etc/xen # ln -s /etc/xen/<仮想マシン名> /etc/xen/auto/<仮想マシン名>