Xenによる仮想化でProDHCPのデモ環境を作成
説教臭い話などが続きましたので、たまには技術話でも。。
お客さんから、大規模向けDHCPサーバ:ProDHCPの、冗長構成でのデモのご依頼をいただきました。大抵はお客さんの方でOSが動く状態のホストを用意していただいて、評価用にソフトウェアをお貸し出しして、という感じなのですが、とりあえずデモ環境を一式持って来て説明して欲しい、とのことで、デモ環境を用意してみました。
少々遠方のお客さんですので、持参して伺うことを想定すると、コンパクトなハードでないと私がくたばりますので、まずハードはお気に入りのコンパクトマシン、AxiomtekのNA-813に決めました。
蓋が開いているのは、HDDを入れ替えたり、VGAケーブルを引っ張り出したりしているためで、落ち着いたらもちろん閉じます。
さすがに小さいといっても2台持っていくのは辛いので、1台に仮想で2つOSを入れることにします。OSは、お客さんがRHELをお使いになるようなので、CentOSにします。せっかくなので最新の5.5で。仮想化はKVMも考えたのですが、CPUがAtomなので、Xenでいくことにします。
当社にはXenの著書を書いたメンバーがいるのですが、私はVMwareとParallelsしか使ったことがなかったので、彼に質問しながら、自分でやってみました。
まずは普通にCentOS5.5をネットワークインストールし、yumでVirtualizationをインストールします。多少確認などするくらいでリブートするともうXenを使える状態になります。昔は面倒だったようですが、実に簡単です。
次に、子OSを2つインストールしますが、今回の場合、2つの子OSはネットワークの設定など以外は全く同じもので良いので、1つインストールしてProDHCPのセットアップなどを終え、ディスクイメージをコピーして2つにしました。これまた実に簡単。
やり方の説明は私が中途半端に行うより、詳しい情報がそこら中にありますので、省略!
親OS
[root@centos55 ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 483 2 r----- 2619.6
centos55-1 8 255 1 -b---- 90.4
centos55-2 7 255 1 -b---- 68.0
ちゃんと子OSが2つ動いてます。
子OSその1
[komata@centos55-1 ~]$ ps -ef|grep dhcpd
root 1706 1704 0 14:50 ? 00:00:00 ./dhcpd
ProDHCPのサーバプログラムが動いています。こちらがマスターとなっています。
子OSその2
[komata@centos55-2 ~]$ ps -ef|grep mapsync
root 1584 1583 0 14:50 ? 00:00:00 ./mapsync 192.168.0.150 31111 Lease.Map /usr/local/ncad/ProDHCP/ProDHCPd-II/mapsync.ini
ProDHCPのリース情報同期プログラムが動いています。こちらはスレーブ。
子OSその1を停止すると・・・
[root@centos55 ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 483 2 r----- 2633.6
centos55-2 7 255 1 -b---- 74.3
子OSその2でProDHCPのサーバプログラムが自動的に起動し、マスターになります。
[komata@centos55-2 ~]$ ps -ef|grep dhcpd
root 1972 1970 2 15:31 ? 00:00:00 ./dhcpd
その状態で、子OSその1を復活させると・・・
[root@centos55 ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 483 2 r----- 2646.5
centos55-1 9 255 1 -b---- 28.5
centos55-2 7 255 1 -b---- 77.2
子OSその1では、
[komata@centos55-1 ~]$ ps -ef|grep mapsync
root 1495 1494 0 15:34 ? 00:00:00 ./mapsync 192.168.0.151 31111 Lease.Map /usr/local/ncad/ProDHCP/ProDHCPd-II/mapsync.ini
ProDHCPのリース情報同期プログラムが動いて、スレーブとして稼働します。
こんな感じで、お客さんに実際の冗長化の動きをお見せしながら説明してくる予定です。Xenはやってみたらとても簡単でした!!