さて、GWで毎日なにか達成感がほしくて記事書いてみたりいろいろもがいているかたやまです。今回はvSphere 7 でDRSに機能追加されたとのことなので見てみました。
なかなかの歴史がある機能でありながら、これまで大きな機能の追加というか変化などはあまり行われずここまできています。
vSphere 7 ではメニューが増えたり、考え方が変わったりしたので、メモです。
実はざっくりですが、vSphere7 がリリースされた4/3(日本時間)でDELLEMC の石塚さん、わたし(片山)、VMwareの南さんで書いた記事の中にこんなことを書いています。
https://japancatalog.dell.com/c/isg_blog_vsphere7_01/
Dell)DRS は最近日本のユーザ様でも普通に使ってもらえるようになった印象ですが、何が変わったのでしょうか?
VMware)これまでの DRS はクラスタ全体の負荷を管理し、ホスト間の負荷のバランスをとるように動作していました。それに対して新しい DRS ではアプリケーション中心の思想で再設計が行われ、アプリケーションが動作するワークロードそのものを最適化するような配置が行われるようになりました。旧バージョンの DRS との最大の違いは、ホスト間の負荷のバランスをとらなくなったことです。新しい DRS ではホスト上の VM に対してスコアを計算し、このスコアに基づいて VM を移動させます。またこのスコアは1分ごとに計算されており、よりきめ細かな最適化が行われるようになりました。
つまり、VMごとにDRSスコアというものを出して、スコアが(改善する)と思われるESXiホストにVMを移動させる、ということが言いたいようです。 VMwareの公式Blogでもそのように書かれていますね。
例えば、CPU Ready timeが高くなってしまっているときでも、CPUの影響をあまり受けないアプリケーションがVM上で動作している場合などは、見かけ上パフォーマンス影響を受けていないように見えることもあるとおもいます。そもそもパフォーマンスが悪いと言葉は、すごく広域な意味合いであるため、あまり掘り下げても "状況による" というのが正直なところなのかもしれない。
Obtaining a VM DRS score of 80-100% indicates that there is mild to no resource contention. It does not necessarily mean that a virtual machine in the 80-100% bucket is doing way better than a virtual machine in the lower buckets. That is because there are many metrics that influence the VM DRS score. Not only performance metrics are used, but capacity metrics are also incorporated in the algorithm.
DRSのスコアはVMwareさんの資料や記事からはこんな感じで書かれています。
・CPU %ready time
・メモリスワップ
・CPU キャッシュ動作
・現在のESXiホストが持つ予備リソース容量
$esxName = "172.31.7.125"
$template = "WS2019-2"
$datastore = "vsanDatastore"
foreach($n in 1..250) {
New-VM -Name test-vm$n -VMHost (Get-VMHost -Name $esxName) -Template $template -Datastore $datastore -RunAsync
}
作成後の状態がこちら。
DRSは仮想マシンが起動したときから発動するようになるので、この250個の仮想マシンを一気にパワーオンします。172.31.7.125というESXi上で仮想マシンが250個リソースを使い始めたので、vCPUならびにメモリがいっきに使用状態になるので、即座にDRSが開始されはじめます。
DRSが順次動き始めているときに [監視] - [vSphere DRS] - [CPU使用率] を見ました。
やはり、172.31.7.125 に寄せて仮想マシンのクローンをしていたので、案の定の見え方です。
一応画面説明をみると、あくまでここでは仮想マシンのCPU使用率を表示しているらしく、CPU Ready timeというわけではないらしいです。
[監視] - [vSphere DRS] - [メモリ使用率] を見ました。同じく想定通り172.31.7.125 のメモリをめっちゃ使っています。これがどうなっていくか楽しみです。
その間にもDRSでどんどん仮想マシンが別ホストへ移行されていきます。
DRSスコアはどうなっているかというと0%のものもあれば、80%くらいのものもあり、バラバラという印象。
6分ほど経過して確認すると、CPU使用率がすこしマシになってきました。平準化されてきましたね。
同じくメモリもましになってきました。
9分くらい経つとほぼほぼふらっとになりつありますね。
仮想マシンのパワーオンからトータル約10分でリバランス完了しました。
[監視] - [vSphere DRS] - [推奨]
DRSの設定を "完全自動化" から"手動" に変更したら使えます。
DRSで動かしたほうがいい仮想マシンを表示してくれ、しかも原因が何かを表示してくれています。すごく親切ですね。さっそく [今すぐ DRS を実行]をクリックします。
"推奨の更新" というタスクが動きました。ボタンの意味合いからだとすぐにvMotion が実行されるのかとおもいきや、10分経っても実行されず。
まだ見れていないメニュー
まだみれていないものは以下3つです。
[監視] - [vSphere DRS] - [障害] →謎
[監視] - [vSphere DRS] - [ネットワーク使用率] →みてもおもしろくなさそう
少し長くなってしまいました。
こうやって文字にすることで自分の頭にも入るのでいいですね。
おわり