2016年9月12日月曜日

beyond the PCI express

Refreshed IBM Power Linux Systems Add NVLink

ですよねー。諸行無常の響きアリ。一度頭の中をリセットする時期かも知れないな。

2016年6月15日水曜日

内製最強説

何度かマ板で上がったネタ「内製最強説」

元々R&Dだったのでどちらかと言えば社内ひきこもり環境には恵まれていた。とはいえ数年ほど受託で仕事をしていた時もあるし、いわゆる客先で作業をしていた頃もある。

なんとかソフトにある協力会社(この呼び名もどうなんだか。素直に下請で良いじゃないか)押し込みフロアの机は大層小さくそれはそれは貧弱であったが、社員達の机はさらに小さいのであった。え?マジ?が最初に抱いた感想。オレが新卒で入った会社の方がはるかに優雅だった。日本で誰もが知っているような会社の社員の待遇がこれなのだから、ICTエンジニアの未来も暗くなるのも当然。

だが日本ではこれが現実。

よって少しでもICTエンジニアの地位と待遇の改善(いやまー日本全体で見たら給与はマシなの知ってるけどさ)要求するニダ!

その為には内製じゃなかろうか。方法論としてよりも。もはや現代ビジネスとICTは両輪であるという意識付けが大事で、彼ら(社内ITチーム)はコストセンターじゃなくて無くてはならないパートナーなんだ!というユーザー(主に営業チーム)意識が大切。

といつも営業達から苛められている社内ITチームの友人を見て思いました。でも残業代はエグいとも思いました。そう考えるとやっぱコストセンターだなとボクも思いました。

うーんでもやっぱりボクも内製派です。自分達で作った方が楽しいもん。そんな人材採れるのかよ?というのが一番大きな問題かな。

2016年2月15日月曜日

RDMA

SSDのリモートDMAを実現する「NVMe Over Fabrics」


当時僕たちが夢見たRDMA。あとでちょっと書く。

追記。

人はなぜかblock deviceをネットワーク越しにアクセスしたくなる。オレも15年くらい前に自前のnetwork block deviceを実装したことがある。そこでRDMAという概念を知り、ああこれは素晴らしいね!と思うのだが…。

この辺りを斜め読み。

NVM Express Over Fabrics - openfabrics
NVMe over Fabrics - SNIA
NVMe Over Fabrics Flash Memory Summit
NVM Express over Fabrics - chelsio
NVMe over 40GbE iWARP RDMA

生きていたのか!iWarp!net effectの恨み、まだオレは忘れていないぞIntelめ。ごめん書かずにはいられなかった。

うーん、結局iSCSIの代替かーという印象。というか今の会社に入ってからこのアーキひたすら考えてたわーそんなオレすげーではなく、いやこれ単にRDMA言いたいだけなんじゃないの、と。

突き詰めると、DASとの差別化が難しくなる。単一ホスト下でPCIe(でもなんでも良いけど)をファブリックで伸ばして単純にストレージデバイスとして見せた方がどう考えても楽。ハードの割り込みも直で取れるし。特に細工しなくてもBIOS(UEFI)がデバイスを見つけてくれる。

資料の中には割り込みもサポート、と書いてあるのもあるけれど、ネットワークで割り込みを中継したら低レイテンシとは口が裂けても言えないだろう。ネットワークは非同期なのが良いところ(しかも無責任にね)で、そこまで同期的に動くならそれはもうバスだ。

いやPCIe extendedな距離ではなくて、もっと遠距離に飛ばしたいんだというのであれば理解できる。某N社のexpetherという手もあるけれどね。でもそれだったらOver EtherでOK。Over Fabricと書く以上、遠距離ではないだろう。

ストレージを集中管理したいというニーズはある。ただRDMAというものが恐ろしく複数ホストからのシェアリングに向いていない。当然だがそのセクタないしアドレスを特定のホストが占有する。占有する為に、予めMPI同様にそのアドレスをregisterする必要がある。ROなら問題ないけど、だったらfile systemレベルを選択したくなるし、それはもうNASの世界だ。

うーん、どうやってもoffloadにしかならない。それもかなり古いアーキの。

だから個人的には抽象レベルを一段引き上げるべきだと思う。逆にまずRDMAから離れるべき。remoteのNVMeホストは配下デバイスを全て仮想アドレス(+α)で持ち、それに対してのDMAを実行する。つまりIOMMUのように仮想アドレスと実アドレスを変換するような機能をネットワーク越しに提供すればいい。そのアドレス群に対してクライアントはmulti queueからScatter/Gatherすれば今っぽいと思うんだけどな。あ、今思いついたこれをRemote SGと呼ぼう。

あ、でもそれなんてNetwork MMU?(IBMがそんなものを作っていた気が)