【ぶんさんふぁいるしすてむ】

分散ファイルシステム とは?

最終更新:
💡 複数の保存先を、ひとつのファイルの仕組みで扱う

ネットワーク上の複数のサーバーなどにファイルのデータや管理情報を置き、利用者からファイルとして扱えるようにする仕組み。容量や処理能力を広げ、複製などで障害に備える。操作の仕様や耐えられる障害、性能は実装と構成による。

📌 このページのポイント
複数の保存先を、ファイルとして扱うHDFSの読み出しと複製の説明例クライアントNameNode場所を確認データはDataNodeから直接読むNode 1A・BNode 2A・CNode 3B・C同じ文字は、同じブロックの複製保存場所・冗長性・管理情報も設計残る複製や接続が利用できることが前提分散保存だけで、無条件に守れるわけではない
A/B/Cは一つのファイルのブロックで、各2個の複製を3台へ配置した説明例です。青矢印は場所の確認要求と、データを直接読む要求。応答や内部管理の通信は省略。すべての分散ファイルシステムが同じ構成ではありません。
ひよこ ひよこ
分散ファイルシステムは、何を分けて保存するの?
ペンギン先生 ペンギン先生
複数のサーバーなどで、ファイルのデータや管理情報を扱うんだ。HDFSなら大きなファイルをブロックに分け、DataNodeへ保存する。名前やブロックの場所はNameNodeが管理するよ。利用する側はファイルやディレクトリとして扱えるんだ
ひよこ ひよこ
管理するサーバーが、全データを中継するの?
ペンギン先生 ペンギン先生
HDFSでは、クライアントはNameNodeから保存場所などの情報を得て、データ自体はDataNodeとやり取りするよ。管理情報とデータの経路は別なんだ。他の分散ファイルシステムの構成まで、すべてNameNode方式とは決まっていないよ
ひよこ ひよこ
1台壊れても、必ず大丈夫?
ペンギン先生 ペンギン先生
必要な複製などが残り、利用できることが前提だよ。故障が重なったり、管理情報やネットワークに問題が起きたりすれば、読めなくなることもある。複製数だけでなく置く場所や管理情報の冗長化も考える。誤削除などに備えるバックアップも別に検討しよう
ひよこ ひよこ
コピーが多いと、容量を使うよね?
ペンギン先生 ペンギン先生
そうだね。HDFSの複製数は設定できる。対応する構成では、データ片と冗長な情報から復元するイレイジャーコーディングも使えるよ。必要な容量を減らせる場合があるけれど、復元の計算や通信も必要で、耐えられる欠損数は方式によるんだ
ひよこ ひよこ
どれを使っても、普通のファイルと同じ操作ができる?
ペンギン先生 ペンギン先生
操作の意味や得意な負荷は実装によるよ。HDFSは大きなデータの順次処理を重視し、通常のファイルシステムと違う制約がある。CephFSはCephの分散オブジェクトストア上のPOSIX準拠ファイルシステム。小さいファイルや同時更新も含め、用途と仕様を照合しよう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「分散ファイルシステム」って出てきたら「ネットワーク上の複数の保存先を、ファイルとして扱う仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Distributed File System」 = 分散したファイルシステム
💬 distributedは分散した、file systemはファイルを管理する仕組みという意味だよ。単に同じファイルを手作業で別の場所へコピーすることとは違うんだ

参考資料

← 用語集にもどる