ここ数年、"理想のファイルシステムとは何か" というテーマで考え続けています。
機器単体では RAID (Redundant Arrays of Independent Disks) により、複数台のハードディスクを組み合わせることで仮想的な 1 台のハードディスクとして運用し冗長性を向上させる技術が浸透しています。
最近の仮想化の流れで、一番遅れている分野がストレージだと感じます。数年で保守が切れる重厚長大な機器を Fibre Channel か iSCSI でマウントする手法が主流に見えます。
が、理想として描いている仕組みに近い技術がすでに存在しています。
- ネットワーク RAID ファイルシステム [PDF]
- NRFS
- IIJ 社における分散 DB 技術 "ddd" | Think IT
- IIJ Technical WEEK 2011 – IIJ の分散処理プラットフォーム "dplat" [PDF]
感触としては NRFS に近いですが、開発も止まっている様ですし Linux には興味はありません。現時点でのコンセプトは主に以下の通りです。
- RAID の拡張概念。異なる複数の機器で論理的なディスクアレイを構成する。
- 機器の追加・削除が短時間もしくは一瞬で自動認識出来る。
- 広域負荷分散と自律復旧を前提とする。
- 特定ベンダーに依存しない機器構成。
- 特定 OS に依存しない。依存する場合は他を圧倒するメリットがある場合。
現在のホスティングサービスの様な用途や、10ms 程度の遅延も認められないケースには非常に敷居が高いかもしれませんが、ASP 用途であれば大いに開発・構築可能な気がしています。
論理的なディスクアレイとする必要はなく、アプリケーション側で分散配置し、機器間で冗長性を確保するだけでも簡単なプログラム構成で実現は出来そうです。
レンタルサーバ (ホスティングサービス) はクラウド・仮想化の流れにリファインさせるとすれば、パッケージ型のサービスから必要機能のみを組み合わせるアプリケーション型のサービスに遷移せざるを得ないでしょう。
インターネットの仕組みの根本 "自律・分散・協調" から考えても、BCP やディザスタリカバリの観点からだけでなく、NRFS の様な仕組みは望まれていると予想しています。