Microsoft/VMware 製品はこう使う。

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

vSphere 6.0のvSphere FTはイマイチなので使わない方がいいかも。

vSphere 6.0 になって vSphere FT の機能が拡張されたのは、
ご存知の方が多いと思います。

よく耳にするのは、ESXi5.5 以前の vSphere FT はLegacy FT と言い、
6.0 の vSphere FT をNew FT とか言っているのを耳にします(汗

 

たしかに Performance Best Practices for VMware vSphere® 6.0 にも
"Legacy FT"  ,  "new version of FT"  と記載があるのであながち間違いではないのかなと思います。

 

このvSphere 6.0の New version のFTですが、Legacy FTのときと異なる仕組みで
動作しているらしく、仮想マシンのパフォーマンスがすごく良くないようです。

参考としてはこのあたりの記事になります。

 

Fault Tolerance Performance in vSphere 6 - VMware VROOM! Blog - VMware BlogsPerformance Best Practices for VMware vSphere® 6.0

vSphere 6.0 Documentation Center

 

 

もし、Legacy FT (vCPU 1) のときに動作の遅くなくて、
マルチvCPU だと明らかに遅いと感じた場合は、仕組みの違いによるものである可能性が高いです。

ドキュメントとか見てても、ある程度のネットワーク遅延は避けられない、という意味合いにも読み取れます。


Legacy FT  も New FT  も異なるESXi間にある仮想マシンを同期する必要があるので、primary 側のVMと secondary 側のVMで常に同期をとる必要があるため、
Network のトラフィックが多く発生するのは同じです。

 

ドキュメント類をいろいろ見ていると、新FT の仕組みとしては、

Legacy FT では record/replay という方式で動作しているようで、
新 FT では、Fast checkpointing という方式になっていると書かれています。
record/replay 方式ではprimary 上で発生した処理の情報(input)をSecondaryのVMに流して、
流された内容を secondaryのVMでも処理を行うことで、同期させていたようですが、
新FT で新しく実装された Fast checkpointing という方法では、Primary のVMのメモリ,ストレージなどの情報を
seconcary 側に送信し、送信された情報を適用することで、同期を取るということが書かれています。
公開されてる情報では、Storage vMotion の技術を使って、データ転送しているみたいです。

 

Blog側にこんな記載が。
>This technology is similar to Storage vMotion, which copies the virtual machine state (storage, memory, and networking) to the secondary ESXi host.
>Fast Checkpointing keeps the primary and secondary virtual machines in sync.

処理情報だけではなくて、ディスクの変更点やメモリの情報を流すので要件として10 Giga Network が必要と記載されていそうです。
たしかに常にStorage vMotionみたいなことをすると帯域はかなり使いそうです。そして遅そう…。


ここまで書いてからなんとなく思ったのですが、
2015年のvForumでは、vSphere 6.0 の目玉機能としてvSphere FTがすごく
フォーカスされて紹介されていたのに、
最近ではあまりvSphere FTのことを聞きません。
やはり、VMwareとしてもあまり使ってほしい機能ではないのかもしれません。。

 

実際に使った人の話を聞いてもディスクI/Oがかかったときに極端に遅いということを聞いたことがあります。

vSphere FT でパフォーマンスが出ないときは、
要件を考え直して、vSphere HA を使うほうがいいかもしれないです。