非常に大きなサイズ (現実的には最大約 100 TB) に拡張する必要がある分散ファイル システムが必要です。ファイルサイズはほとんどが 10 ~ 1500 KB の範囲ですが、一部のファイルは約 250 MB でピークになる場合があります。
私は、GFS のようなシステムにバックアップ用の冗長性が組み込まれているという考えが非常に気に入っています。これにより、統計的に、ファイルの損失は過去のものになります。
いくつかの要件があります。
- オープンソース
- SPOF なし
- 自動ファイル複製 (つまり、RAID は不要)
- マネージド クライアント アクセス
- ファイルのフラットな名前空間 - できれば
- 組み込みのバージョニング / 遅延削除
- 実証済みの導入
ほとんどの要件を満たしているため、MogileFS を真剣に検討しました。管理されたクライアントはありませんが、Java クライアントのポートを行うのはかなり簡単です。ただし、バージョン管理は組み込まれていません。バージョン管理がなければ、MogileFS に組み込まれているファイル レプリケーション以外に、通常のバックアップを行う必要があります。
基本的に、あるべきではない多くのファイルを突然パージするプログラミングエラーから保護する必要があります。MogileFS は X 個のデバイスにファイルを複製することで、ディスクとマシンのエラーから私を守ってくれますが、不当な削除を行った場合は救われません。
削除操作が実際に Y 日後まで有効にならないように指定できるようにしたいと考えています。削除は論理的に行われますが、実際に削除されるまで Y 日間ファイルの状態を復元できます。また、MogileFS には、書き込み中にディスクの破損をチェックする機能がありませんが、追加することもできます。
私たちは Microsoft ショップ (Windows、.NET、MSSQL) であるため、メンテナンスを容易にするためにコア部分を Windows で実行するのが最適であり、ストレージ ノードはライセンスのために *nix (またはその組み合わせ) を実行します。
自分でロールアップすることを検討する前に、何か提案はありますか? HadoopFS、OpenAFS、Lustre、GFS もチェックアウトしましたが、どちらも私の要件に一致していないようです。