1ノードで何台起動できるか?
これは Eucalyptus Advent Calendar 2014 の15日目のエントリです。昨日は私のエントリ「CirrOS を Eucalyptus4 で動かしてみる」でした。まぁ、動かなかったんですけどね。
今日は「1ノードで何台起動できるか?」です。もうタイトルからして失敗の匂いがプンプンしやがります。
で、環境ですが、この Advent Calendar でやってきたように、KVM のゲスト OS 上に Eucalyptus 環境を立ててますので、そこで大量のインスタンスを起動してみたいと思います。本当は昨日のエントリで CirrOS が無事起動した続きとしてこのエントリが引き立つはずでしたが、なんか失敗への道筋が出来上がっている気がしてなりません。
Eucalyptus 環境のメモリは約 12GB で、インスタンスに使用できるディスク容量は約 60GB で、CPU コア数はたったの2コアという貧相な環境です。
[root@euca4 ~]# free -m
total used free shared buffers cached
Mem: 11902 3356 8546 295 1 1232
-/+ buffers/cache: 2123 9779
Swap: 3967 0 3967
[root@euca4 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_euca4-lv_root
50G 14G 33G 30% /
tmpfs 6.2G 164K 6.2G 1% /dev/shm
/dev/vda1 477M 61M 391M 14% /boot
/dev/mapper/vg_euca4-lv_home
64G 2.4G 59G 4% /var/lib/eucalyptus
[root@euca4 ~]# grep ^pro /proc/cpuinfo
processor : 0
processor : 1
それでも無理矢理設定して、256 インスタンスまでは起動できるようにしてみました。
[root@euca4 ~]# euca-describe-availability-zones verbose
AVAILABILITYZONE default 192.168.122.115 arn:euca:eucalyptus:default:cluster:default-cc-1/
AVAILABILITYZONE |- vm types free / max cpu ram disk
AVAILABILITYZONE |- m1.small 0256 / 0256 1 32 1
AVAILABILITYZONE |- t1.micro 0203 / 0203 1 64 1
AVAILABILITYZONE |- m1.medium 0101 / 0101 1 128 1
AVAILABILITYZONE |- c1.medium 0025 / 0025 2 512 10
AVAILABILITYZONE |- m1.large 0025 / 0025 2 512 10
AVAILABILITYZONE |- m1.xlarge 0012 / 0012 2 1024 10
AVAILABILITYZONE |- c1.xlarge 0006 / 0006 2 2048 10
AVAILABILITYZONE |- m2.xlarge 0006 / 0006 2 2048 10
AVAILABILITYZONE |- m3.xlarge 0006 / 0006 4 2048 15
AVAILABILITYZONE |- m2.2xlarge 0003 / 0003 2 4096 30
AVAILABILITYZONE |- m3.2xlarge 0003 / 0003 4 4096 30
AVAILABILITYZONE |- cc1.4xlarge 0004 / 0004 8 3072 60
AVAILABILITYZONE |- m2.4xlarge 0003 / 0003 8 4096 60
AVAILABILITYZONE |- hi1.4xlarge 0002 / 0002 8 6144 120
AVAILABILITYZONE |- cc2.8xlarge 0002 / 0002 16 6144 120
AVAILABILITYZONE |- cg1.4xlarge 0001 / 0001 16 12288 200
AVAILABILITYZONE |- cr1.8xlarge 0000 / 0000 16 16384 240
AVAILABILITYZONE |- hs1.8xlarge 0000 / 0000 48 119808 24000
Eucalyptus4 の WebUI ではマシンイメージから新規にインスタンスを起動する場合は、1セキュリティグループにつきインスタンスは10個までという制約があります。なんちゃらスタックやちょめちょめスタックとかでも似たような話を聴きますが、Eucalyptus でも同じような不具合があるんでしょうかね?
いや、無い、無いと信じたい。伊達に他のほにゃららスタックらより叩かれまくってきたわけじゃないということを、今日ここで証明したい。
脱線しました。で、1度に10インスタンスまでという制約があるのは新規の起動のときのみで、既存のインスタンスと同じ構成で起動する分には制約がありません。
なので、昨日のエントリで起動した CirrOS インスタンスをそのまま流用します。エコです。
では、インスタンスのプルダウンメニューから「Launch more like this」を選んで、一度に200インスタンスを起動してみようと思います。(「起動」って言っても OS の起動は失敗しているので、ズルい気もしますが気にしない)
どどーん。
インスタンス一覧に画面が遷移するところで Internal Server Error になりました。お約束すぎるwww
ところがどっこい、しばらくしてからアクセスすると何と 94 インスタンスが起動に成功しています。
で、他のインスタンスはどうしたのかと言うと、pending のままでした。
何が起きているのかと Eucayptus 側の OS の syslog を見てみると、
Dec 14 23:29:56 euca4 dhcpd: No subnet declaration for vnet68 (no IPv4 addresses).
Dec 14 23:29:56 euca4 dhcpd: ** Ignoring requests on vnet68. If this is not what
Dec 14 23:29:56 euca4 dhcpd: you want, please write a subnet declaration
Dec 14 23:29:56 euca4 dhcpd: in your dhcpd.conf file for the network segment
Dec 14 23:29:56 euca4 dhcpd: to which interface vnet68 is attached. **
Dec 14 23:29:56 euca4 dhcpd:
Dec 14 23:29:56 euca4 dhcpd:
Dec 14 23:29:56 euca4 dhcpd: No subnet declaration for vnet67 (no IPv4 addresses).
Dec 14 23:29:56 euca4 dhcpd: ** Ignoring requests on vnet67. If this is not what
Dec 14 23:29:56 euca4 dhcpd: you want, please write a subnet declaration
Dec 14 23:29:56 euca4 dhcpd: in your dhcpd.conf file for the network segment
Dec 14 23:29:56 euca4 dhcpd: to which interface vnet67 is attached. **
Dec 14 23:29:56 euca4 dhcpd:
Dec 14 23:29:56 euca4 dhcpd:
Dec 14 23:29:56 euca4 rsyslogd-2177: imuxsock begins to drop messages from pid 23662 due to rate-limiting
ってな感じで dhcpd が「定義が足んないんですけどぉ〜」って怒ってました。実際に /var/run/eucalyptus/net/euca-dhcp.conf を見ると 94 ホスト分しか定義が書かれてませんでした。
# cat /var/run/eucalyptus/net/euca-dhcp.conf | grep ^host | wc -l
94
逆を言えば、このファイルへの書き出しが上手く行っていたら、200台起動も夢じゃなかったということになりますでしょうかね。
いやー、Eucalyptus 素晴しい。