読者です 読者をやめる 読者になる 読者になる

/var/log/smzksts

ITインフラと牧場についての備忘録

知っておくと便利なCloudStackのグローバル設定

CloudStack Advent Calendar jp: 2012

の一環として、CloudStackのグローバル設定について書きます。

 

 CloudStackを入れてみて、皆さんは何を試していますか?

  • インスタンスを作ってみたり
  • サービスオファリングを設定してみたり
  • アカウントを設定してみたり

このあたりはとりあえずGUIで出来て、取っつきやすいと思います。

 

ところで、下のほうに、グローバル設定という箇所がありますよね。

CloudStackの管理者UIにおいて、これほど文字ばかりが並んでいる場所は
他になかなかないと思いますが、けっこう大事そうな設定があるので、
時間があれば目を通してみてはいかがでしょう。

f:id:smzksts:20121216164252p:plain

 

Apache CloudStack 4.0のグローバル設定は238項目あります。
それぞれの項目については[説明]という項目はありますが、残念ながら個々の設定項目を詳細に説明したドキュメントは特にありません。
しかし、CloudStackの基本的な概念や動きを理解した上で、項目名と[説明]を読めば、大体の項目は何のためのものか、わかると思います。

 

以下は、検証環境で使うと便利なグローバル設定の紹介です。

 

1.インスタンスの完全削除

CloudStackでは、インスタンスの削除操作をしても、実際にはなかなか削除が行われません。(インスタンスがゴミ箱に捨てられて、ゴミ箱をきれいにする操作は一定間隔ごとに行われるため、なかなか完全削除してもらえないようなイメージ)

完全削除の処理間隔を定義しているのが以下のパラメータです。

●expunge.interval

破棄されたインスタンスを削除する処理を行う間隔。
デフォルトは86400秒(1日)。

●expunge.delay
破棄されたインスタンスを削除せずに保持する時間。この時間が経過するまでは、削除する処理の実行間隔が訪れても、削除が行われない。
デフォルトは86400秒(1日)。

 

2.リソースのオーバープロビジョニング

こちらの設定は、仮想化の世界でいうところの、いわゆるオーバーコミットの倍率です。CloudStackはIaaSサービス提供を前提としているため、各ユーザーの展開したインスタンスが、オファリングの設定値どおりにリソースを確実に得られるように、リソースはオーバーコミットされず、リソース不足時にはそれ以上インスタンスが起動されなくなります。インスタンスを高集約で動かしたい場合などには、以下の設定が便利です。

●cpu.overprovisioning.factor
CPUのオーバープロビジョニングの倍率

●storage.overprovisioning.factor
プライマリストレージのオーバープロビジョニングの倍率

 

なお、これらの設定を反映させるには、CloudStack管理サーバーのサービス(cloud-management)再起動が必要です。

 

また、蛇足(?)ですがCloudStackのグローバル設定は、CloudStackのデータベースのconfigurationテーブルに格納されています。一覧は下記のコマンドで出力できます。

# mysql cloud --user="root" --password="パスワード" -e "select * from configuration"

 f:id:smzksts:20121216164110p:plain

configurationのうち、すべてがグローバル設定なわけではなく、24個ほどHiddenカテゴリに分類されたものがあり、グローバル設定には表示されていません。これらはシステム側で自動的にセットされたり、CloudStack管理UIの別の個所で設定可能な項目のようです。

 

ちなみにHiddenカテゴリの皆さんはこちら…

cloud.identifier
init
kvm.guest.network.device
kvm.private.network.device
kvm.public.network.device
ovm.guest.network.device
ovm.private.network.device
ovm.public.network.device
router.ram.size
secondary.storage.vm
secstorage.copy.password
security.hash.key
ssh.privatekey
ssh.publickey
ssl.keystore
vmware.guest.vswitch
vmware.private.vswitch
vmware.public.vswitch
xen.create.pools.in.pod
xen.guest.network.device
xen.private.network.device
xen.public.network.device
xen.storage.network.device1
xen.storage.network.device2

トラフィックと物理ネットワークの紐づけをしている辺りなどは、CloudStackをインストールしたことがある人なら、なんとなく見覚えのあるパラメーターですね。

 

CloudStackデータベース(MySQL)のほかのテーブルは、
# mysql cloud --user="root" --password="パスワード" -e "show tables"

で一覧表示できますので、CloudStackの内側の覗いてみるヒントになるかと思います。

 

OSC.cloudで力尽きましたので、今日はここまで…。