VMware / Microsoft 製品はこう使う。

好きなことを好きに描く.

vSphere 7 - 新しいDRS ってどこが新しいの?

さて、GWで毎日なにか達成感がほしくて記事書いてみたりいろいろもがいているかたやまです。今回はvSphere 7 でDRSに機能追加されたとのことなので見てみました。

 

f:id:japan-vmware:20200430010555p:plain

 

DRS とは言わずもがな Distributed Resource Scheduler のことですが、DRS自体は2006年 のときに実装されたもので、なかなかの歴史があります。

なかなかの歴史がある機能でありながら、これまで大きな機能の追加というか変化などはあまり行われずここまできています。

vSphere 7 ではメニューが増えたり、考え方が変わったりしたので、メモです。

 

f:id:japan-vmware:20200504231402p:plain

実はざっくりですが、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でもそのように書かれていますね。
 
DRSスコアの見方については、、猛烈にわかりにくい…!のですが、文面からのわたしの解釈は、
ベースの考え方として、スコアは高ければ高いほど、リソースの競合がなく、良い状態ということ。つまり100% が一番いい状態。ただし、80%とか100%のDRSスコアのVMが50%とかスコアが低いVMよりもパフォーマンスがいいかどうかは別。理由は、DRSスコアは5つの指標から算出されるため、一概にスコアが悪いからといってパフォーマンスが悪いとは限らない(状況による)。
例えば、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ホストが持つ予備リソース容量

・マイグレーションのコスト
 
実際のDRSスコアをVMごとに見る画面ではこれらの列が用意されていました。

f:id:japan-vmware:20200430020614p:plain

・DRSスコア
・アクティブなCPU
・使用済みCPU
・CPU Readiness
・付与されたメモリ
・スワップ済みメモリ
・バルーンメモリ
 
 
DRSを動かそう
やはりわたくしエンジニアですので、動いているものをみたいわけで。
新DRSのテストになっていないかもしれないですが、DRSスコアとかの変化を見るためだけに実機を触りました。新しい画面に何か表示されてほしいですから。 
DRSの設定は 完全自動化 にして、その他はデフォルト値のままです。 
 
まずテンプレートとなるWindows Server 2019 (vCPU2, Mem8GB)を作成し、以下のPowerCLI で仮想マシンを250個クローンする。そのとき、データストアはvsanDatastoreを使い、あとからのテスト用に1つの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
}

作成後の状態がこちら。

f:id:japan-vmware:20200501004313p:plain

 

 

DRSは仮想マシンが起動したときから発動するようになるので、この250個の仮想マシンを一気にパワーオンします。172.31.7.125というESXi上で仮想マシンが250個リソースを使い始めたので、vCPUならびにメモリがいっきに使用状態になるので、即座にDRSが開始されはじめます。

f:id:japan-vmware:20200501010020p:plain

 

DRSが順次動き始めているときに [監視] - [vSphere DRS] - [CPU使用率] を見ました。

やはり、172.31.7.125 に寄せて仮想マシンのクローンをしていたので、案の定の見え方です。

 一応画面説明をみると、あくまでここでは仮想マシンのCPU使用率を表示しているらしく、CPU Ready timeというわけではないらしいです。

f:id:japan-vmware:20200501010244p:plain

 

[監視] - [vSphere DRS] - [メモリ使用率] を見ました。同じく想定通り172.31.7.125 のメモリをめっちゃ使っています。これがどうなっていくか楽しみです。

f:id:japan-vmware:20200501010823p:plain

 

その間にもDRSでどんどん仮想マシンが別ホストへ移行されていきます。

f:id:japan-vmware:20200501011736p:plain


DRSスコアはどうなっているかというと0%のものもあれば、80%くらいのものもあり、バラバラという印象。

f:id:japan-vmware:20200501012106p:plain

 

 

6分ほど経過して確認すると、CPU使用率がすこしマシになってきました。平準化されてきましたね。

f:id:japan-vmware:20200501012451p:plain

 同じくメモリもましになってきました。

f:id:japan-vmware:20200501012733p:plain

 

9分くらい経つとほぼほぼふらっとになりつありますね。

仮想マシンのパワーオンからトータル約10分でリバランス完了しました。

f:id:japan-vmware:20200501012841p:plain

 

 

[監視] - [vSphere DRS] - [推奨]

DRSの設定を "完全自動化" から"手動" に変更したら使えます。

f:id:japan-vmware:20200501013829p:plain

 

DRSで動かしたほうがいい仮想マシンを表示してくれ、しかも原因が何かを表示してくれています。すごく親切ですね。さっそく [今すぐ DRS を実行]をクリックします。

f:id:japan-vmware:20200504225507p:plain

 

 "推奨の更新" というタスクが動きました。ボタンの意味合いからだとすぐにvMotion が実行されるのかとおもいきや、10分経っても実行されず。

f:id:japan-vmware:20200504225747p:plain



 

まだ見れていないメニュー

まだみれていないものは以下3つです。

[監視] - [vSphere DRS] - [障害]  →謎

[監視] - [vSphere DRS] - [ネットワーク使用率] →みてもおもしろくなさそう

 

 少し長くなってしまいました。

 

こうやって文字にすることで自分の頭にも入るのでいいですね。

 

おわり