RDMA+9pまたはNFSで超高速・超低負荷なストレージサーバー

RDMA(Remote DMA)の話は:http://d.hatena.ne.jp/sdyuki/20090115/1232030259
リモートホストのメモリにCPUを介さず直接値を書きこむので、CPUへの負荷が非常に小さく、かつ極めて小さい遅延で通信できることが期待できる。
Broadcom NetExtreme II BCM5706 は TCP/IP + TCP Offload Engine でRDMAをサポートしたGbE NICで、手頃なお値段で買える。


9Pは元々Plan9で作られたリソース共有プロトコルで、Linuxに移植されている。NFSのようにリモートホストファイルシステムをマウントできる。
9Pはトランスポート層から独立していて、たとえばTCP/IPトランスポート層や、KVMの上のゲストOSからホストOSの通信に特化したトランスポート層などが使えるらしい(参照:Paravirtualized File Systems)。
サーバーの実装はここ:http://npfs.svn.sourceforge.net/viewvc/npfs/npfs/trunk/


で、他にどんなトランスポート層がサポートされているのか探してみたら、RDMAをサポートしているらしい:http://lxr.linux.no/linux+v2.6.29/net/9p/trans_rdma.c

というわけでNetExtreme IIと9pを使えば、非常に高速でCPU負荷も極小なストレージサーバーをお安く作れるのではないか。


うーん…でも定額給付金では買えないお値段。もうちょっと安くなるとお遊びで買えるなぁ。


LinuxNFSのコードの中にも「rdma」という単語が入っていた。NFS(と言うかSun RPCか)でもRDMAをサポートしていそう。十分安定しているし、サーバー側もカーネルモードだから9pより速いかな。RDMAも現実味を帯びてきた感じ。