SMB Direct (SMB over RDMA)

Windows Server 2012で一番面白そうに感じる機能が、SMB over Remote Direct Memory Access (RDMA) まわり。Hyper-Vにしろ、SQLにしろ、SMBの下回りとしてRDMAを使おうという実装がとても次世代的(^_^;)。ファイルシステムとしての実装なので、アプリケーション側には一切の変更・対応が必要ない、という点がよい。

対応ネットワークについては、現時点ではInfinibandが最も普及したハードウェア要件かもしれないが、次第にiWARPやRoCEもサーバ用インターフェイスとしては普及が進み、RDMAがサーバ用途の通信における下回りとしてSMBのみならずNFSiSER (iSCSI Extentions for RDMA)などが実用化されていくと面白くなるのではないかと思う。

Microsoftがここで公開している資料(PDF)では、Fusion-ioのioDrive2(モデル不明) x4枚に対して、Local、10GbE (non-RDMA)、Infiniband QDR (32Gbps)、Infiniband FDR (54Gbps)の4種類の構成でのSMB3.0パフォーマンス比較を行ってみた結果が公開されている*1
512KB IO, 8 threads, 8 outstandingの場合は、Infiniband FDRではほぼローカルと同等のIO性能を出している。逆に言えば、Infiniband FDRとRDMAの組み合わせでやっとLocalと同等のIO性能に達することができるわけで、ネットワーク経由でのストレージIO性能はなかなか大変だ(^_^;)。

8KB IO, 16 threads, 16 outstandingの、より細かいIOの場合はやはりLocalにはまだ引き離されている。とはいえ、Non-RDMAの場合はもはや比較になっていないが…Infiniband QDRであってもFDRであっても性能が頭打ちになってCPU使用率も非常に高くなっているので現時点でのハードウェア構成的な限界なのかもしれない。

SMBのみならず、Windows Server 2012の下回りはインフラとしてはなかなか興味深い発展をしていて楽しみですね(下図はWindows Server 2012 Communication DayのHP小川さん資料(PDF)より)。

*1:InfinibandはPCIe Gen3 x8 スロット搭載のMellanox network interfaceをシングルポートで直接接続構成