本記事は2020年3月2日にJosh Odgers氏が投稿した記事の翻訳版です。
このシリーズでは、NutanixプラットフォームがvSAN/VxRAILよりも多くの使用可能な容量を提供することで、物理ストレージをより効率的に利用できることをすでに学んできました。
また、Nutanixのアーキテクチャは、ドライブやノードの障害をより安全に処理し、復旧までの平均時間を大幅に短縮することができるなど、多くの利点があることを学びました。
Nutanixの容量拡張や性能向上を即座に改善する独自能力は、Day2 Operations(運用フェーズ)をはるかに単純化し、価値を生み出すまでの時間を短縮することにもつながります。
また、Nutanix Controller VM (CVM)は、基本的なストレージ層のみしか提供しないvSANカーネルモジュールよりも価値が高いことがわかりました。Nutanix CVMは、より高度な、回復力があり、スケーラブルで、パフォーマンスの高い分散型ストレージファブリックを提供するだけでなく、データ保護/レプリケーションなどの機能も提供し、利用性の高い管理スイート(PRISM Element)も提供します。
CVMは、より多くの価値を提供しているにもかかわらず、メモリ使用量の比較記事では、Nutanix CVMのメモリ使用量はvSAN/VxRAILと同等かそれ以下であることが多いということがわかりました。
さらに、vSAN/VxRAILが「インカーネル」で実行されていることがリソース使用量の面で大きな利点になるという神話を払拭するために、CPU使用量の例をいくつか見てみましょう。
注: VMwareのEULAでは、IOPS/スループットのパフォーマンス数値を共有することができませんが、すべての比較において、プラットフォームの差の割合を示しています。これにより、提供されるパフォーマンスが異なる場合でも、CPU使用率を正確に比較することができます。
次のチャートは、Nutanix X-Rayツールを使用して、「Four Corners」と「Throughput Scalability」のシナリオを使用して作成したものです。
例1 - ランダムリードのCPU使用率
このテストでは、IOPSの結果は両プラットフォームともほぼ同等となりました(Nutanixが1.6%良い結果)。CPU使用率の差には正直言ってかなり驚きました。
「インカーネル」で実行することの利点を主張しているにもかかわらず、vSANは147Ghzを使用し、Nutanix CVMは82.11Ghzしか使用していませんでした。
これは、vSANのCPU使用量が80%近く高いことを意味します。
例2 - シーケンシャルリードのCPU使用率
シーケンシャルリードテストでは、当初vSANは2%ほど高いスループットが出ましたが、その後はNutanix CVMが37.68Ghzしか使用していないのに対してvSANは108.09Ghzとなっています。
もしvSANに実際は存在しないメリットを加え、NutanixのCPU使用率にさらに2%を加えたとしても、38.43Ghzにしかなりません。
CPU使用率はスループットが高くなるにつれて指数関数的に増加すると仮定して、さらに10%を追加しても42.27Ghzしか使用していないことになるので、Nutanix CVMのCPU使用率は60%以上も低くなります。
例3 - ランダム書き込みのCPU使用率
ここでは、Nutanix CVMは175.87Ghzの使用量、vSANは117.36Ghzの使用量の結果となり、33.2%もの大幅な減少となりました。
しかし、このケースではNutanixの方が184%高いランダム書き込みを実現しており、GhzあたりのIOの優位性はNutanixに大きく有利になっています。
例4 - シーケンシャル書き込み
このテストを実行した際、CPU使用量はvSANが43.72Ghz、Nutanixは69.48Ghzとなりました。スループットは、NutanixがvSANよりも2.3倍高速です。
Nutanixと2.3倍のスループット差を埋めるために、仮にvSANのCPU使用量を2.3倍することで同等のスループットに達すると仮定した場合には、vSANのCPU使用量は、100.5Ghzが必要になるでしょう。
「実はvSANにはCPU使用量に関する何らかのスケールメリットがあり、2.3倍のパフォーマンスを得るために、単純に2.3倍のCPU使用量を必要とはしないのでは?」という疑いの余地があるかもしれません。
とはいえ、2.3倍までは行かなくとも、たとえば1.65倍(という2.3より大幅に小さな値)を掛けただけでも、vSANは72.1Ghzとなり、NutanixよりもCPU使用量が多いということになってしまいます。
Nutanixがより少ないCPUを使用していることはどのようにして可能なのでしょうか?
それは非常に単純で、データローカリティにあります。
読み取りについては、私たちが「Read I/Oパスの比較」で学んだように、Nutanixはノード間の多くのコストのかかるネットワーク操作と、CPUが「ビジー」状態(IOを待っている状態)での無駄なサイクルによる遅延を回避することを学びました。
書き込みについては、「Write I/Oパスの比較」ではNutanixは、常に1つのレプリカをローカルに書き込み、冗長なレプリカのみをワーク上でサービスすることで、不必要でコストのかかるネットワーク操作を回避することを学びました。
これは公平な比較でしょうか?
全然違います。この比較やCPU/メモリとIOPS/スループットの比較は、ストレージ層だけを比較するためにvSAN/VxRAILに大きく有利になります。Nutanix CVMによって提供される重要な追加機能/価値を単純に削除することができないためです。
「Write I/Oパスの比較」で説明したように、Nutanix CVMは、リアルタイムで分散型ストレージファブリック全体に渡って入ってくる書き込みを積極的にバランシングしているため、ポストプロセスのオーバーヘッドが少なくなります。
結論
「インカーネル」で実行することは、マーケティングのスライドでは意味のあることかもしれませんが、今回の例から、VMwareとDellEMCが「インカーネル」の方が効率的であるとか、パフォーマンスが高いという空論的な発言をし続けていることがわかります。
vSAN/VxRAIL は、状況によっては CPU の使用量が少なくて済むのでしょうか?そうであってほしいと願っています。なぜなら、CVM は基本的なオブジェクトストアを提供するだけではなく、それ以上のことを行っているからです。
vSAN の CPU 使用率が低いことを示すベンチマークを見つけることはできますか? もちろんあります。しかし、それが現実的なシナリオを表している可能性は低いでしょう。
盲目的に「カーネル内」の方が優れているという言葉をひたすら読み続ける人々に対して、私は誠実さに疑問を感じます。私が知る限り、これらの主張を裏付けるような信憑性のある証拠は提供されていないからです。
一方で、この連載では、vSAN/VxRAILのアーキテクチャが持つ数多くの致命的なデメリットを紹介しています。これは、「インカーネル」が有利かどうかにかかわらず、vSAN/VxRAIL製品の使用を検討する前に、お客様に教育と注意を促す必要があります。