さくらインターネット研究所の大井です。
私は現在、分散ファイルシステムに関する研究や調査を行っています。これから分散ファイルシステムをテーマに、分散ファイルシステムの各実装についての検証や実験結果について書いていきたいと思います。
分散ファイルシステムとは
クライアント用途などのPCでは、多くの場合、CPUやメモリといった他のハードウェアと同じ筐体内にハードディスクを組み込み、これをOSやデータの保存領域として使用しています。しかし、コンピュータやネットワークの性能が向上した事により、ディスクをネットワーク上に存在する仮想的なハードウェアとして遠隔地から利用できるようになりました。このように、ネットワーク上にファイル格納領域を提供し、クライアント側からあたかも手元にあるディスクのように利用できる仕組みを「分散ファイルシステム」と呼んでいます。
「分散ファイルシステム」と一言で言っても、それを指すものは数多くあります。例えば古くからLAN内で使用されてきた共有ファイルシステムのNFS、Webサーバの拡張により実装されるWebDAV、Perlで記述され、通信にHTTPを利用したMogileFSなどです。接続されるネットワークの規模やクライアントからの利用方法などに違いはありますが、いずれも共通して
- ネットワークを介して外部から参照される
- サーバの利用元となるクライアントが複数存在する
- 複数のクライアントから同時にアクセスされる
といった特徴を持っています。
OS仮想化と分散ファイルシステム
OSが仮想化された環境では、ソフトウェアとハードウェアはお互いに密着しておらず、利用元のOSが稼働している実際のホストに依存せずに仮想的にマシンを構築することができるようになりました。しかし、OSが仮想化しただけでハードディスクは物理的にひとつひとつを割り当てるのは非効率的であり、仮想OSの生成や実ホスト間の移動、スケールのアップダウンが頻繁に行われる仮想環境で扱うのは大変です。
そのため、仮想的に巨大なディスクをネットワーク上に置き、そこにネットワークを介して複数の仮想OSから参照ができる特長を持った分散ファイルシステムが必要となりつつあります。これにより、ネットワークにさえつながっていれば、仮想OSがどこにあってもディスクが利用できるようになるのです。
研究所ではOSやストレージを含めた「仮想化」を大きなテーマとして研究しており、「分散ファイルシステム」の中でも、OS仮想化と親和性の高いものを選定するため、要求する機能として以下を挙げました。
- UNIX系OSからファイルシステムとしてマウントできる
- ネットワークを介して多数のクライアントから同時に利用できる
- 安全なファイルの読み書き(ロックシステムによる競合排除)
- ユーザごとにアクセス制御が可能
また、社内で保有している機材の状況やサーバ運用体制を鑑み、
- 既存の大量のIAマシン資産を活用できる低コスト性
- 単一障害点がなく冗長化構成が可能で、フォールトトレランスな仕組みを持つ
- 容易なシステム規模の拡大・縮小
といった要求も含めています。
まとめと次回予告
「仮想OSとの結合性」を重視した要求項目を挙げてみましたが、これらに適合する分散ファイルシステムについて検証を進めていく予定です。もちろん、機能が豊富であることも重要ですが、ネットワークの遅延や多数のホストで共有する事で生じるセキュリティ問題など、通常のハードディスクには無かった事柄にも十分配慮する必要があります。これらの点に注意しながら、これからいくつかの分散ファイルシステムを個別に取り上げていきたいと思います。
次回はParaScaleを取り上げていく予定です。
[…] This post was mentioned on Twitter by ニッタネーム and 横田真俊, 鷲北 賢. 鷲北 賢 said: さくらインターネット研究所ブログ 分散ファイルシステムを試す(基礎編) http://research.sakura.ad.jp/2010/04/15/dfs-o […]
[…] 小倉副会長サポーターに「W杯観戦して」newsing:1 分散ファイルシステムを試す(基礎編) « さくらインターネット研究所はてブ:5 ああ、これで日本のケータイWEBが終わる | [ bROOM.LOG ! ]fc2:1 […]
ParaScale楽しみにしております。
OSSではないですが、国内でも分散ストレージ(分散ファイルシステム)が幾つか
開発されているので、そういったものと機能比較もいいかもしれませんね。
とても興味深い内容です。
次回楽しみにしております。
[…] 分散ファイルシステムを試す(基礎編) « さくらインターネット研究所 Categories: Lifestream […]
[…] [分散]分散ファイルシステムを試す(基礎編) ? さくらインターネット研究所 […]