皆様、こんにちは。普段は @frankdenneman 氏のブログを翻訳しているだけですが、今回はネットワールドでの検証結果を公開してゆきたいと思っています。
ネットワールドのPernixData FVPに関する情報はこちら。
御存知の通り、PernixData FVPの特徴は
- カーネルモジュールで既存環境に透過的にインストール可能
- Write-Backとレプリカ生成で書き込みも安全に高速化
- リモートフラッシュアクセスで、vMotion後も高速性が続く
というようなことが挙げられます。最初の1つ目は言わずもがな、重要なポイントですが、残り2つはFlashの高速性に対して、ネットワークアクセスの高速性がボトルネックになったりはしないの?ということをよくご質問でいただきます。
実際にはストレージへのアクセス(オールフラッシュストレージでも800ms程度)に比べて、10Gネットワーク越しのリモートホストへのアクセス(325ms程度)よりも早いので、実用上の問題はほとんどないのですが、リモートホストへのアクセスが、ローカルホストへのアクセス(77ms程度)並にはやければ、厳しいパフォーマンスの要求がある際にも「書き込みを安全な上に、より高速化」させることが可能です。
今回は高速インターコネクト規格のインフィニバンドを利用してこの限界に迫ってみたいと思います。なお、インフィニバンドについてはMellanox Technologies社のディストリビューターである株式会社アルティマ様のご協力を頂いております。
インフィニバンド
さて、まずはインフィニバンドについて簡単にご紹介します。
InfiniBand(インフィニバンド)とは、非常に高いRAS(信頼性・可用性・保守性)を持つ基幹系・HPC系のサーバ/クラスター用高速I/Oバスアーキテクチャ及びインターコネクトのこと。システム間インターコネクト機構としては、RAS機能の他、他機構に比較して、低レイテンシである点も特徴である。 引用 WikiPediaより
こちらにあるように、InfiniBandはサーバ間の相互接続用のバス規格のことで、EthernetのようにTCPやUDPを通すための専用の規格ではありません。非常に高速なため、巨大なパフォーマンスが必要とされるデータベースやスーパーコンピュータシステムで主に利用されています。 また、最近では主にスーパーコンピュータクラスタで利用されていたRDMA(Remote Direct Memory Access)でライブマイグレーションをサポートするハイパーバイザーなども登場してきており、瞬時にライブマイグレーションを完了させる必要があるような構成などでの利用も出てきています。詳しくはこちら。
残念ながらVMware vSphereはRDMAでのライブマイグレーションの予定はちらほら聞こえるものの、最新ヴァージョンのvSphere 5.5でもこれに対応していません。また、PernixData FVPもこれに対応していないようです。結果として今回はインフィニバンド上にIPを実装するIPoIB(Internet Protocol Over InfiniBand)を利用することにしました。この場合でも56Gbpsというこれまでにないスピードを実現することが可能です。詳しくはこちら。IPoIBはOSに対して専用ドライバを提供することで、インフィニバンド上にIPネットワークを実装する方式です。IPプロトコルとインフィニバンドが直接連結されるため、EthernetのようにMACアドレスなどは必要としません。
検証の構成
今回はESXi5.5がインストールされたホストを2台、IPoIBで接続し、また、IPoIB経由でiSCSIのストレージサーバに接続しています。ホストに搭載されたフラッシュメモリはVIRIDENT社製で、こちらもアルテマ様にお借りしています。詳しくはこちら。
PernixDataは標準ではvMotionネットワークをリモートフラッシュアクセスに利用しますが、今回は明示的に56GBのIPoIB(もしくは1G/10G)を利用するように設定しています。(FVP 1.5からGUIで変更可能になっています。)
検証結果
上記は4Kブロックサイズで負荷をかけた時のスループットを表したグラフとなっています。すべてのベンチマークはRandom Writeにて実施しています。
- local (Write-Backモードでレプリカ生成なしで実施)
- cache 1G (Write-Backモードでかつ、1Gのイーサーネットでレプリカを生成)
- cache 10G (Write-Backモードでかつ、10Gのイーサーネットでレプリカを生成、実際にはMellanox社のIBスイッチを10Gスイッチモードで利用)
- cache 56G IB (Write-backモードでかつ、56GのインフィニバンドでIPoIB接続経由でレプリカを生成)
それぞれ結果はリモートフラッシュアクセスに利用しているインターコネクトの速度を表しています。これについてもう少し詳しく見て行きましょう。仮想環境で一般的と言われる4Kブロックサイズのスループットは1G、10Gイーサーネットで結果が変わりません。4Kという小さなブロックサイズを大量に生成し、その大量のブロックをTCP/IPのカプセルでくるんでいくという処理がボトルネックになってしまっており、1Gでも10Gでもさほど結果が変わりませんでした。ただし、IPoIBの結果はわずかながらこれを上回っています。本来TCP/IPでカプセル化した上に、さらにIBでカプセル化を行う必要が有るため、2回のカプセル化が必要で不利な結果になるだろうと予想していましたが、IPoIBはわずかながらですが、性能が向上するという結果になっています。調べてみたところ、インフィニバンドボードへのIPプロトコル処理のオフロード(IPアドレスへのアクセスなど)と、Ethernetプロトコル処理(MACアドレスへのアクセスなど)をしなくて済むことなど効果を上げているようです。今回は測定していませんが、CPU負荷なども小さくなるようです。
今度は16Kのブロックサイズの方をみてみると、1Gは帯域がボトルネックになるため性能が向上しなくなっているのに対し、IPoIBと10Gは帯域が十分にあるため性能が向上しています。ここでもわずかながら10Gに対してIPoIBが性能的にまさる結果になっています。16K以上、256Kまで検証を実施しましたが、結果はほぼ同じものになっています。
検証結果(IOPS)
今度はIOPSを見てみましょう。
これは4KブロックサイズでのIOPSを表しています。なんと10Gと1Gはさして変わらない結果でした。それでもIPoIBは安定的にパフォーマンスを出しています。
こちらが16Kでの結果です。1Gは帯域がボトルネックになっているため、IOPSも打ち止めですが、10Gおよび56Gは性能を向上させています。IOPSの結果も16K以上ではほとんど同様でした。
考察
今回の検証結果から、4Kブロックサイズワークロードのような小さなブロックを転送する場合でも、16K以上の大きなブロックサイズを転送する際にもインフィニバンドが定常的なソリューションになるということが明らかになりました。10Gに対して、4Kの場合スループットで15%程度、IOPSで20%程度の向上が見られていることから、レイテンシでも20%程度の向上が見られることが明らかになりました。16Kの場合には10%程度になってしまいますが、やはりインフィニバンドは10Gイーサに比べ低遅延であるということができます。
今回の検証とは違い、実際のワークロードは4K/16Kだけではなく、様々なブロックサイズでワークロードを生成します。あらゆる時と場合において、性能向上しなければ万能ソリューションということはできないのですが、今回の検証の結果、インフィニバンドとPernixData FVPの組み合わせはあらゆる局面において一定のパフォーマンスを付加できる万能なソリューションであることを裏付けています。現時点では10~20%程度の性能向上ですが、この10%がクリティカルになるような局面もあるでしょうし、将来的にvSphereやFVPがRDMAに対応した際には、IPoIBでの結果がよりLocalに近いものとなり、冗長性を確保しても、確保しないのと全く同じスピードで書き込みができるようになるかもしれません。
本検証のさらに詳細な結果にご興味のある方は当社までご連絡ください。
記事担当者: マーケティング本部 三好哲生 (@pernixdata_netw)