Eucalyptus 環境を再起動後にインスタンスが起動しなくなったら
これは Eucalyptus Advent Calendar 2014 の8日目のエントリです。昨日は @giraffeforestg さんの「Eucalyptus 4 の AUTO SCALING機能を使ってみる 」でした。
いつも @giraffeforestg さんのアドベントカレンダー投稿数に驚いてますが、今年の量は更にヤバイですね。でも、おかげで助けてもらったり励みになったりしてます、ありがとうございます。
さて、今日のエントリは「Eucalyptus 環境を再起動後にインスタンスが起動しなくなったら」です。
実は、今回の Advent Calendar で使用している faststart で作った私の Eucalyptus 環境は、KVM のゲスト OS 上で動いているのですが、VM を再起動した後にインスタンスを起動しようとすると以下の画面のように「Not enough resources (0 in < 1): vm instances.」というツレないメッセージが出力されます。で、画面を見て頂くとわかりますが、インスタンスリストには「No items were found」って出ているように、リソースなんて全然枯渇してないはずなんです。
本当にリソースないの?って思って CLI 叩いて確認すると、
# 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 0000 / 0000 1 256 5
AVAILABILITYZONE |- t1.micro 0000 / 0000 1 256 5
AVAILABILITYZONE |- m1.medium 0000 / 0000 1 512 10
AVAILABILITYZONE |- c1.medium 0000 / 0000 2 512 10
AVAILABILITYZONE |- m1.large 0000 / 0000 2 512 10
AVAILABILITYZONE |- m1.xlarge 0000 / 0000 2 1024 10
AVAILABILITYZONE |- c1.xlarge 0000 / 0000 2 2048 10
AVAILABILITYZONE |- m2.xlarge 0000 / 0000 2 2048 10
AVAILABILITYZONE |- m3.xlarge 0000 / 0000 4 2048 15
AVAILABILITYZONE |- m2.2xlarge 0000 / 0000 2 4096 30
AVAILABILITYZONE |- m3.2xlarge 0000 / 0000 4 4096 30
AVAILABILITYZONE |- cc1.4xlarge 0000 / 0000 8 3072 60
AVAILABILITYZONE |- m2.4xlarge 0000 / 0000 8 4096 60
AVAILABILITYZONE |- hi1.4xlarge 0000 / 0000 8 6144 120
AVAILABILITYZONE |- cc2.8xlarge 0000 / 0000 16 6144 120
AVAILABILITYZONE |- cg1.4xlarge 0000 / 0000 16 12288 200
AVAILABILITYZONE |- cr1.8xlarge 0000 / 0000 16 16384 240
AVAILABILITYZONE |- hs1.8xlarge 0000 / 0000 48 119808 24000
あらやだ、本当にリソースゼロですよwww
NC ちゃん大丈夫?息してる?と思って確認すると
# euca-describe-nodes
NODE default 192.168.122.115 DISABLED
って出力されます。そもそも CC から見て NC が無効になっているという罠。
NC のログを見ると、とかく「failed だかんね」の一点張り。もうちょっと理由を述べてくれてもいいのに…
# tail /var/log/eucalyptus/nc.log
2014-12-06 17:32:22 ERROR | failed error=1
2014-12-06 17:32:23 ERROR | failed error=1
2014-12-06 17:32:29 ERROR | failed error=1
2014-12-06 17:32:35 ERROR | failed error=1
2014-12-06 17:32:42 ERROR | failed error=1
2014-12-06 17:32:42 ERROR | failed error=1
2014-12-06 17:32:48 ERROR | failed error=1
2014-12-06 17:32:51 ERROR | failed error=1
2014-12-06 17:32:54 ERROR | failed error=1
2014-12-06 17:33:00 ERROR | failed error=1
CC のログを見ると、
# tail /var/log/eucalyptus/cc.log
2014-12-06 17:33:00 ERROR | error message from ncDescribeResource: NULL parameter was passed when a non NULL parameter was expected
2014-12-06 17:33:02 INFO | modifying node 192.168.122.115 with state=enabled
2014-12-06 17:33:02 ERROR | returned an error
2014-12-06 17:33:02ERROR: doEnableService() returned FAIL
2014-12-06 17:33:06 ERROR | operation on 192.168.122.115 could not be invoked (check NC host, port, and credentials): NULL parameter was passed when a non NULL parameter was expected
2014-12-06 17:33:06 ERROR | bad return from ncDescribeResource(192.168.122.115) (1)
2014-12-06 17:33:06 ERROR | error message from ncDescribeResource: NULL parameter was passed when a non NULL parameter was expected
2014-12-06 17:33:12 ERROR | operation on 192.168.122.115 could not be invoked (check NC host, port, and credentials): NULL parameter was passed when a non NULL parameter was expected
2014-12-06 17:33:12 ERROR | bad return from ncDescribeResource(192.168.122.115) (1)
2014-12-06 17:33:12 ERROR | error message from ncDescribeResource: NULL parameter was passed when a non NULL parameter was expected
CC は CC で「NC がちゃんと応答しないぜコンチキショウ」と言ってやがります。「modifying node 192.168.122.115 with state=enabled」って実行してるっぽいのに、NC は無効なまま。
仕方ないので、とりあえず NC を再起動してみます。
# /etc/init.d/eucalyptus-nc restart
Restarting Eucalyptus services: done.
で、もう一度 NC の状況を確認すると…
# euca-describe-nodes
NODE default 192.168.122.115 ENABLED
おぉ、今度はちゃんと有効になっていますね。そーすると、リソースも…?
# 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 0019 / 0019 1 256 5
AVAILABILITYZONE |- t1.micro 0019 / 0019 1 256 5
AVAILABILITYZONE |- m1.medium 0009 / 0009 1 512 10
AVAILABILITYZONE |- c1.medium 0009 / 0009 2 512 10
AVAILABILITYZONE |- m1.large 0009 / 0009 2 512 10
AVAILABILITYZONE |- m1.xlarge 0007 / 0007 2 1024 10
AVAILABILITYZONE |- c1.xlarge 0003 / 0003 2 2048 10
AVAILABILITYZONE |- m2.xlarge 0003 / 0003 2 2048 10
AVAILABILITYZONE |- m3.xlarge 0003 / 0003 4 2048 15
AVAILABILITYZONE |- m2.2xlarge 0001 / 0001 2 4096 30
AVAILABILITYZONE |- m3.2xlarge 0001 / 0001 4 4096 30
AVAILABILITYZONE |- cc1.4xlarge 0001 / 0001 8 3072 60
AVAILABILITYZONE |- m2.4xlarge 0001 / 0001 8 4096 60
AVAILABILITYZONE |- hi1.4xlarge 0000 / 0000 8 6144 120
AVAILABILITYZONE |- cc2.8xlarge 0000 / 0000 16 6144 120
AVAILABILITYZONE |- cg1.4xlarge 0000 / 0000 16 12288 200
AVAILABILITYZONE |- cr1.8xlarge 0000 / 0000 16 16384 240
AVAILABILITYZONE |- hs1.8xlarge 0000 / 0000 48 119808 24000
やったー、ちゃんとリソースも復活!
ということで、8日目のエントリでした。9日目のエントリもお楽しみに。