vSphere 7で改良されたDRSについて調べたことを記事にしたいと思います。
この記事は以下の情報を参考にしています。
https://blogs.vmware.com/vsphere/2020/03/vsphere-7-improved-drs.html
https://blogs.vmware.com/vsphere/2020/05/vsphere-7-a-closer-look-at-the-vm-drs-score.html
DRSはクラスタ内のホスト上で動作する仮想マシンの負荷の偏りを計算して、閾値を上回った場合に仮想マシンの移行
を自動で行う、または移行の推奨を表示する機能です。
仮想マシン起動時にどのESXiで起動するのが良いかについても計算し、バランスよく仮想マシンを自動もしくは手動で
配置することもやってくれます。
以前のDRSは、各ESXiの負荷が偏っていないかどうかという観点で5分に1回計算を行い、移行するかどうかの判断を
行っていました。
また、DRSの計算が行われる際、負荷の要素としてはCPUとメモリが利用されていました。
何処が変わったかについてですが、以下があげられます。
1.クラスタ内の各ESXiで消費リソースの偏りを見ていた点
→ 各ESXiでDRSスコアの計算を行い、そのスコアが最も高い(余裕がある)ESXiに仮想マシンを移動させる。
2.DRSの計算が5分に1回 → 1分に1回に頻度がアップ
3.DRSの計算に使われる要素はCPUとメモリ → CPUとメモリに加えてネットワークの使用量が追加
それぞれ調べたことや思ったことについて以下に書いておきます。
1.DRSの仕組みが変わった点について
新しくなったDRSの考え方についてですが、以下の式となっているようです。
Goodness (actual throughput) = Demand (ideal throughput) ? Cost (loss of throughput)
Efficiency = Goodness (actual throughput) / Demand (ideal throughput)
Total efficiency = EfficiencyCPU * EfficiencyMemory * EfficiencyNetwork
Total efficiency on host = VM DRS score
Demand(理想のスループット状態)からCost(失ったスループット)を引いた値が「Goodness」
「Goodness」を「Demand(理想のスループット状態)」で割ったのが「Efficiency」
Efficiencyは効率という意味ですので、どのくらい効率の良いスループット状態なのかを表す数字だと思います。
そしてメモリ、CPU、ネットワークのEfficiencyをそれぞれ掛け算したもを、トータルのEfficiencyとみている
ようです。
これで仮想マシン単体での効率が計算しているということなのでしょう。
稼働するESXiホスト上でこの計算を行った結果がDRSスコアということなのですが、この計算の正確な意味を考え
てもしょうがないのでそういう考え方かというくらいでいいと思います。
人間の考える理想の負荷状況とは異なるでしょうし、このスコアを使うのはDRSであって人間ではないですから。
このスコアが低く(閾値に引っかかる状態)、別のESXi上に移したほうがよいスコアになるとDRSが結論を出したと
きにvMotionを行うわけですが、vMotionの実施にもコストがかかり移行した際の効率上昇よりvMotionで消費され
るリソース消費の方が高いという場合も起こりえるでしょう。
DRSはこの辺も考えて、移行にかかるリソース消費の方が高くなる場合vMotionは行わないようです。
スコアが低いのに動いてない仮想マシンは、そのように判断されたということですね。
2.DRSの計算頻度が変更されたことについて
DRSの計算頻度が5倍になったということは、完全自動にしている場合は5倍vMotionがされる可能性もあるので
そういう動きやすい仮想マシンは、DRSのルールでESXiから移動しないようにするなど配慮が必要になるかもしれ
ませんね。
ここは、使う側の好みが分かれそうです。
3.DRSの計算に使用される要素としてネットワークが追加された点について
具体的にはどういうことかというと、ネットワーク帯域の使用量がDRSの計算に組み込まれています。
ネットワーク帯域の使用量が高く他のESXiに移したほうがいい場合は結構あると思いますし、良いかなと思います。
メモリ、CPU、ネットワークときましたので、いつかはストレージのI/Oも見て計算するようになるのかなぁと思い
ますが、その場合は各計算要素について優先順位を付けれるといいですね。
メモリとCPUだけ見てほしかったり、ネットワークだけ気にしたかったりとそういう状況に合わせられると更にいい
と思います。
今回は改良されたDRSについてでした。