vSphere HA アドミッションコントロール ”クラスタ リソースの割合”の計算方法
社内で、”アドミッションコントロールによるリソース予約”について質問をされることが結構多いです。
既存の書籍やドキュメントでも、説明文が長くわかりにくいものが多いので、本記事ではvSphere Web Client上の画像を用いつつリソースの予約状況について解説を入れていきたいと思います。
まず”そもそもアドミッションコントロールって何?”という方は、是非こちらを御覧ください。
次に、今回のテーマはアドミッションコントロールでも3タイプの手法がある中の、
"クラスタ リソースの割合(%)"についての説明です。
まずお題となる環境の構成をご覧頂きましょう。
- 2ノードホストが参加するクラスターです
- クラスターのCPU搭載量は11.08GHzです。
- クラスターのメモリ搭載量は10GBです。
- vSphere HAは有効化済み
- アドミッションコントロールも有効化済み、かつリソース予約方法も"クラスタ リソースの割合"にて50%(既定値)となっています。
パターン1. クラスターリソースの50%がアドミッションコントロールにて予約されている場合
ご覧頂くと、全体のリソースの50%として、次のリソースが確保されています。
- メモリは5GBがフェールオーバー用に予約(10GB*50%=5GB)
- CPUは5.60GHzがフェールオーバー用に予約(11.20GHz*50%=5.60GHz)
つまり、クラスターリソースの残り半分は仮想マシンやvmkernel上のプロセスによって利用可能だと言えます。(今回は予約が50%なので、利用出来るリソースも全体で5GBとCPU 5.60GHzまで利用可能)
パターン2. クラスターリソースの70%がアドミッションコントロールにて予約されている場合
続いて、パターン2ですが、既定値よりも20%多めにアドミッションコントロールによる制御範囲を増やしました。
なぜわざわざこれを行ったか、と言えばよく聞かれる質問に”本設定でセットするパーセントは、”フェイルオーバーのためのリソース予約値”なのか”仮想マシン運用のために確保するリソース容量値なのか”、どっちなのか?”とよく聞かれるからです。
正直、デフォルト値が50%の予約、であれば、フェイルオーバーリソースも仮想マシン動作用リソースも双方ともに50%になるので、この値の情報だけでは、この値の意味合いを把握するには、確かにこの値だけでは不十分です。
そこで、あえて50%以外の値をセットし、リソースの取られ方を見てみることにしました。
結論としては次の通りで、やはりアドミッションコントロールで設定する割合というのは、”フェールオーバーのためのリソースサイズ”であることがこれで明白になりました。
※ちなみに本検証もVMware Hands On LABで行っているのですが、ラボのレンタル時間を超過したため、再度レンタルし直したら、ホストのCPUサイズが前回と異なるリソースがアサインされました(前回は1ホスト辺り5.60Ghz、今回は4.20GHzとなっています)
パターン3. クラスターリソースの33%がアドミッションコントロールにて予約されている場合
最後に、少し細かい値設定したケースを考えてみました。
この33%という値は現場でよく見かける数字です、理由としては3ノードクラスターの場合に、1台のホスト障害が発生した場合に、フェイルオーバーリソースを十分に用意する際に33%と設定しているお客様が多く居られます。
ですが、実情としてこの数字を入力することで、”リソース不足”に関連するメッセージに直面しているお客様が多いと私は感じています。
3台で1クラスターという環境で、もしパーセンテージ指定でリソース予約を行いたい場合は、”34%”と入力した方が1ノードホスト分以上のリソースが確保できます。
ちなみに、同設定値に対し小数点を持った設定を試みましたが、全て切り捨てされました。(つまり33.3%と指定した場合は、33.0%として取り扱われます)
以上です。今回の総括は次の通りです。