仮想化でプリセールスしてるSEの一日

VMware から Azure まで、インフラや仮想化の最新情報をベンダー色をできるだけ抑えて綴っていきます

XenDesktop のハイパーバイザーはどれが一番良い? (2)

f:id:ogawad:20190203195643p:plain:right

前回のつづき です。
この質問は誰もが持っているようで、私もお客様に良く聞かれるのですが、Citrix 社の Paul Wilson 氏が ブログ で回答していると virtualization.info の記事に載っていますでの紹介したいと思います。

スケーラブルなXenDesktopファームの設計に関する質疑応答 - virtualization.info
http://virtualization.info/jp/news/2010/10/designing-scalable-xendesktop-farms-qa.html

ハイパーバイザーの性能差は?

質問:
各種ハイパーバイザー(Hyper-V、ESX、XS)の間でスケーラビリティに差はありますか?

回答:
これは非常に良く聞く質問です。明確でわかりやすい回答ができればよいのですが、一般的にはデスクトップ集約率の最も高いハイパーバイザーが最も拡張性が高いと考えられるのではないでしょうか。
同じワークロードを同じハードウェア上でハイパーバイザーだけを入れ替えて行うプロジェクトでは、1位と最下位との差は10%未満です。つまり、最も高い拡張性を示すものが85台のデスクトップをサポートするなら、最も低い拡張性を示すものはわずか80台しかサポートしません。
さらに、XenDesktopでサポートされた3種類のハイパーバイザーがそれぞれ最高の結果を出したことがありますので、最も拡張性の高いハイパーバイザーはハイパーバイザーそのものよりも、ワークロードやOSの方と密接な関係があるのではないかと結論づけなければなりません。
ご質問にもっと率直に回答しますと、現時点では利用される環境に応じて若干の違いはあると思います。また、ベンダー各社が集約率の向上に重点を置き続け、ハイパーバイザーがさらにコモディティ化すれば、この差は今後も縮まり続けると考えます。

これはちょっと...

直結しない解に強引に結び付けていることがちょっと "苦し紛れかな" と感じてしまいました。
「いま現在は無劣化のメモリオーバーコミットができる ESX(名前は出したくないけど)。でも、無劣化オーバーコミットは xenkernel 4.0 で実装されているし、XenServer も将来 xenkernel 4.0 載せるからそうなったら一緒」
と言いたいのでしょう。


XenServer の vCPU はシングルコア vCPU

質問:
XenServerを使うクライアントOSのコア/スレッドが増える可能性はありますか? XenDesktopというよりもXenServerの質問だとは思いますが、XenServerはすべてのスレッドをCPUとして示していて、Win7 にはCPUの制限があります。

回答:
この質問に回答するため製品管理に問い合わせました。
結果的に、XenServer(バージョン 4.1以降)はIntelチップでこの仕様をサポートします。基本的には、複数のコアをソケットに割り当てるパラメータをセットします。
たとえば、ソケットあたり4コアをセットし、それからVMに8コアをセットして本質的にVM 2 CPUSに複数のスレッドを与えることができます。

Win7 のCPU制限とは、Windows XP, Vista, 7 などのデスクトップOSは、プロセッサを 2ソケット までしか認識できない という問題です。
ESX でも Hyper-V でも XenServer でも、仮想マシンに対して vCPU は8つくらいまで割当られますが、vCPU 1個でソケット1個を消費するようにゲストOSに認識されてしまいます。 分かりやすく言うと、vCPU がシングルコアプロセッサとして認識されてしまう ことで、デスクトップOSの仮想マシンは 2vCPU が限界という問題です。

Paul Wilson 氏の回答を見ると、XenServer でも Intel CPU であれば OK のようです。


ESX では Intel/AMD にかかわらず マルチコア vCPU 対応

ちなみに、ESX の場合は仮想マシンの詳細設定で cpuid.coresPerSocket パラメータを指定することで、vCPU をマルチコアCPUとして認識させることができます。
「vCPU=4, cpuid.coresPerSocket=4」 と指定すれば、Quad-Core CPU として認識されますので更に4個 vCPU を割り当てることができます。ESX の場合は AMD CPU でも OK です。


12コアなど AMD の方がコアに余裕がありますのでマルチコア vCPU として見せたいところです。XenServer はなぜに Intel のみ??