なので、Solaris10にはZFSでのファイル共有を主に担当してもらい、今回新たにHP ML115G5を購入したので、そちらにRHELをインストールし、KVMを利用して検証環境を構築することに挑戦してみる。
■KVMホスト環境
・RHEL5.5 x86_64(キャンペーンで貰った、1ヶ月間ノンサポートのサブスクリプション付き)
・HP ML115 G5
・Xeon X3430 2.40GHz (4core)
・8GB memory
・160GB SATA x1(内蔵ディスクへはOSのみインストールし、KVMイメージはNFS経由のZFS上に格納する)
■ホストRHELのインストールでの設定や注意点
(1)インストールの初期で「インストール番号」が無いとKVM関連のパッケージが選択できないので注意。
後でインストールする場合は、以下のパッケージをインストールすること。
kmod-kvm-83-105.el5.x86_64.rpm
kvm-qemu-img-83-105.el5.x86_64.rpm
libvirt-0.6.3-20.el5.x86_64.rpm
virt-manager-0.6.1-8.el5.x86_64.rpm
celt051-0.5.1.3-0.el5.x86_64.rpm
bridge-utils-1.1-2.x86_64.rpm
libvirt-python-0.6.3-20.el5.x86_64.rpm
python-virtinst-0.400.3-5.el5.noarch.rpm
kvm-83-105.el5.x86_64.rpm
etherboot-zroms-kvm-5.4.4-10.el5.x86_64.rpm
*環境によっては依存関係で先にインストールしておかないと行けないものが多数あるので、この方法はかなり面倒くさい。なので、インストール番号を入力して、インストール時に選択した方がはるかに簡単。
インストールが正常に終了していれば、KVMモジュールがカーネルに組み込まれて、KVMが使えるようになる。
# lsmod |grep kvm kvm_intel 86920 4 kvm 226208 2 ksm,kvm_intel
(2)インストール完了後、FireWall、SELinux関連は無効にしておいた方がよい。
(3)Bridgeインターフェースの構築
KVMデフォルトのの「仮想ネットワーク」というのは、クローズなネットワークを構築し、そこからNATで物理インターフェースへ中継するネットワークになる。ホスト1台のみの環境や、仮想マシンが外部ホスト(仮想マシン以外)からのアクセスを受けない場合はこれでよいが、普通はブリッジで接続し、外部でも内部でも自由に通信させたい要望のが多いと思うので、以下の設定をホストで行う。
- ホストの物理デバイス eth0(パブリック側)、eth1(プライベート側)として、構成する例
# /etc/init.d/network stop
/etc/sysconfig/network-scripts/ifcfg-eth0
----------------------------------------
DEVICE=eth0
BOOTPROTO=none
HWADDR=1C:C1:DE:80:86:BD
ONBOOT=yes
BRIDGE=br0
----------------------------------------
/etc/sysconfig/network-scripts/ifcfg-eth1
----------------------------------------
DEVICE=eth1
BOOTPROTO=none
HWADDR=00:22:64:89:AF:C4
ONBOOT=yes
BRIDGE=br1
----------------------------------------
/etc/sysconfig/network-scripts/ifcfg-br0
----------------------------------------
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.1.32
NETMASK=255.255.255.0
ONBOOT=yes
----------------------------------------
/etc/sysconfig/network-scripts/ifcfg-br1
----------------------------------------
DEVICE=br1
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.254.32
NETMASK=255.255.255.0
ONBOOT=yes
----------------------------------------
# /etc/init.d/network start
# brctl show bridge name bridge id STP enabled interfaces br0 8000.02a23a653fb8 no eth0 br1 8000.00226489afc4 no eth1
これで仮想マシン作成時に、共有ネットワークデバイスとして、br0やbr1を選択することで、ブリッジ接続できる。
(4)共有ストレージの設定
virt-mager を起動して、ホストの設定 → Storage から共有デバイスを設定できる。ここに設定された外部マウントポイント(NFSやiSCSI)はlibvirtd起動時に自動的にマウントされる。ライブマイグレーションを行う場合、必須の設定(今回はホストが一台なので必須では無い
virsh # pool-list 名前 状態 自動起動 ----------------------------------------- default 動作中 yes kvmnfs01 動作中 yes virsh # pool-info default 名前: default UUID: 005ad969-0480-66ea-1286-27368012327d 状態: 実行中 容量: 134.83 GB 割り当て: 3.17 GB 利用可能: 131.65 GB virsh # pool-info kvmnfs01 名前: kvmnfs01 UUID: 2c96cbbd-865b-02dd-95c9-e7dba46ef586 状態: 実行中 容量: 3.83 TB 割り当て: 8.09 GB 利用可能: 3.82 TB■仮想マシンの作成
ここまでの準備を終えたら、後は仮想マシンを作成する。virt-managerのGUIから作るのが一番楽。KVMではXenのようなParavirtulization(準仮想化)環境は構築できず、完全仮想化のみサポートされる。
仮想マシンの作成は直観的なので、迷う事は無い。仮想マシン作成のウィザードではネットワークは一つしか選択できないが、後で追加できる。
便利なのは、Linux系ならインストールメディアをフルコピーした領域をローカルなり、NFS上に用意しておくことで、そこからブートイメージとインストールファイルを直接読み込んでくれる。いちいちCDを交換とかしなくてもよいのでうれしい。今こんな感じでZFS上にイメージを配置している。
root@sol10-u24 20:03:05> zfs list spool/pxeimages NAME USED AVAIL REFER MOUNTPOINT spool/pxeimages 13.3G 3.81T 13.3G /spool/pxeimages root@sol10-u24 20:02:48>zfs get sharenfs spool/pxeimages NAME PROPERTY VALUE SOURCE spool/pxeimages sharenfs ro,root local root@sol10-u24 20:03:05>ll /spool/pxeimages/ 合計 41 drwxr-xr-x 8 root root 8 8月 8日 12:23 ./ drwxr-xr-x 12 root root 12 8月 8日 14:11 ../ drwxr-xr-x 7 root root 32 7月 21日 23:16 centos55/ dr-xr-xr-x 8 root sys 66 8月 19日 2009年 rhel54/ dr-xr-xr-x 8 root sys 88 3月 22日 21:28 rhel55/ dr-xr-xr-x 8 root sys 88 3月 22日 22:14 rhel55x64/ drwxr-xr-x 2 root root 3 8月 8日 03:38 software/ drwxr-xr-x 7 root root 8 8月 8日 12:12 tftproot/仮想マシンの作成時の「インストールイメージの読み込み先」に、
nfs://sol10-u24:/spool/pxeimages/rhel55
とか指定すればよい。
仮想マシンを作成するとこんな感じになる。
# virsh list Id 名前 状態 ---------------------------------- 6 rhcs-master 実行中 7 rhcs-node1 実行中 8 rhcs-node2 実行中 9 rhcs-node3 実行中 # brctl show bridge name bridge id STP enabled interfaces br0 8000.02a23a653fb8 no vnet6 vnet4 vnet2 vnet0 eth0 br1 8000.00226489afc4 no vnet7 vnet5 vnet3 vnet1 eth1
便利な運用方法についてはこれからいろいろ試してみる予定。
KVM徹底入門 価格:3,444円(税込、送料別) |