ストレージあれこれ

前置き
僕は実はそんなにストレージのテクニカルな部分には詳しくないので、素人の戯言です。また、今の会社とも親会社様ともあんまり関係ない個人の感想です。

もう8年も分散NASというものを売ったり作ったりテストしたりしている。そのまえは、シングルコントローラのDASとかSANもどきとか売ってたこともあるけど、今考えるとあれって何故使って良いのかよくわからない、と思う程度に分散ストレージに毒されている。

よって、壊れたらそれでおしまいです、でも壊れにくいです、という製品や技術を見るとピンとこないというか、単に僕が鈍いだけ、というか。

最近はImmutable Infrastructureというのが流行ってるらしい。もう少し前なら、Thin Clientでも、SAN bootでも、EC2でも、要するに個々のサーバにデータは置きたくないわけだ。ローカルディスクの扱いはキャッシュになる。でもまあ、永続化データはどっかには置かなきゃいけない。で、結局ストレージってどうなるの?という話になる。

が、ひとまずここまででの結論その1。ローカルストレージは、キャッシュとしての速さ、容量、価格性能比以外、あまり面白くなくなっている。

サーバーサイドキャッシュは、最終更新日をチェックして変更なければ返す、という単純なリードキャッシュを除くと、基本的には外部ストレージセントリックな話に思える。よって今後ローカルストレージ側で起きるイノベーションというのは、媒体がNANDから他のもっと速くてもっとでかくてもっと安くなる、という話でしかない。不揮発メモリによるブレークスルー、という話は、ストレージというよりはもっと大きな話なのでここではスルー。
スルーだけど、ローカルストレージ屋さんは、そっちを目指さないと色々ジリ貧ということの裏返しとも言える。

さてさて、話戻って永続データはどこに置く、という話だ。一つはいわゆる外付けストレージ。もう一つは各ローカルサーバに分散という話。ほんの五年前、世の中は後者に一瞬傾きかけた。そのくらいGFSからHDFSに至る話は魅力的だった。今は、というと、Facebookが進めてるオープンほげほげ、を見てもわかるように、サーバに2本ずつHDDを積んで分散FSを作ってコンピューティングとストレージ両方使いましょう、という話は完全に下火で、1Uあたり何本載せられるか、という話になってる。これはなんでかというと、難しいから。コンピューティングリソースとストレージリソースを調和させて、さらにデータを移動させるのではなくて処理側がデータのところに行って計算する、なんてことをやってる、もしくは試みてるのはおそらくGoogleくらい。

で、外付けディスクにたくさん、高速に、安全にデータをいれましょー。という話に辿り着いた、のか?辿り着いてない?まあ、それ言ったらこのエントリ無くなるから。

大きな2つの流れがあると思う。一つは、これは昔から引き続き、という感じがあるけど、既存製品の部品を早いやつに替えると速くて信頼性が上がって容量大きくなるよね、というもの。ここ数年いっぱい出てきた、SSDとか、Infinibandとか、PCI Flashとかを使った新興企業がポコポコ出ては大手に買われて行く。あれ?自社の製品の部品を交換するだけじゃダメなの?ダメじゃないんだけど、旧式のストレージはちょうどアーキテクチャ的に延命期間が過ぎちゃっていて、部品交換のコストは上がるけどリターンが大きくない、という状況になってしまった。で、時間と人材を買うためにスタートアップが買収される。

もう一つ、S3が切り開いた(かどうかは知らんけど)、遅くても、一貫性が無くても、IT全体としてのシステム設計を変えればこんなに低コストで良い物が、という流れも無視できない。ファイルアクセスもSQLも諦めて、既存のやり方をガラッと変えることでストレージのあり方が変わった。これはOSSを活用するWeb系の企業から流行り出したけど、このまま順調にユーザサイドに力が着いてきて世の中のシステムが全部最適な形に置き換わるのか、そうだとしたらそれはいつなのか、まあ、僕は未来予想はしない。

実は、世の中全部クラウドベースになろうとならなかろうと、高速かつ高可用性かつ一貫性のあるデータ更新、という意味では課題はなくなってない。Googleも、AWSの中の人も、ストレージ屋さんもそこを頑張ってる。特にストレージ屋さんは、既存の仕組みにフィットする形での製品を求められる。いわばハンデ戦か?いや、アドバンテージを活かすためのハンデなのだからしょうがない。

というわけで、今時の部品を使ったピカピカのストレージ、という話に戻ると、個人的にはあんまり面白くない。やってることは新しいデバイス特性にマッチしたActive Standbyのコントローラを作ってます、という話。

その点、分散ストレージ(この場合、商用品なので、ほどほど分散)は楽しい。アーキテクチャ的に新しい分、改良して行く楽しさがある。自分の会社の製品だけじゃなく、僕一押しのClustrixとか、課題に正面から取り組んでる製品は見てて楽しい。中身はロックとキャッシュとトランザクションの塊で、僕の凡庸な頭ではあまり理解できないのが玉に瑕。

と、いうわけで長々と語った割に、最後は自社自慢というなんとも情けないポストになった。僕の長文ポストはいつもこんなもんだ。

本当はこのポストで触れたかった内容がまだ幾つかあるのだけれど、仕事の内容との関連性を疑われる内容だと親会社様に怒られたら嫌なので、触れなかった。お題としてはこんな感じ。
・利用状況に応じてインテリジェントにデータを移動させるストレージ?マジでいってんの?
・ライトバックキャッシュ?ライトスルーキャッシュ?

いつかしがらみがなくなったら色々かけるのだろうか。