【えぬえふえす】

NFS とは?

💡 別サーバーのディスクを「自分のディスクのように使う」仕組み
📌 このページのポイント
NFS(ネットワークファイルシステム) NFSサーバー /shared/data /shared/docs クライアントA mount /mnt/data ローカルと同様に操作 クライアントB mount /mnt/docs ファイル共有 クライアントC mount /mnt/data 同時アクセス可能 ネットワーク越しにファイルをローカルのように扱える
NFS(ネットワークファイル共有)のイメージ
ひよこ ひよこ

NFSって何?ファイルをネットワークで共有するってどういうこと?

ペンギン先生 ペンギン先生

別のサーバーにあるディレクトリを「まるで自分のディスクにあるかのように」使える仕組みだよ。Linuxで `mount` コマンドを使うと、ネットワーク越しのフォルダが `/mnt/data` みたいなパスで見えるようになる。

ひよこ ひよこ

なんでNFSを使うの?SCPでファイルをコピーすればいいのでは?

ペンギン先生 ペンギン先生

NFSはコピーじゃなくて「リアルタイムに共有」なんだ。Webサーバーが10台あって全台が同じ画像ファイルにアクセスしないといけないとき、NFSなら1台のファイルサーバーに全部置いて10台が同時に読み書きできる。SCPだとコピーのたびに時間差が生まれて整合性が取れない。

ひよこ ひよこ

NFSは遅くない?

ペンギン先生 ペンギン先生

ローカルディスクよりは遅いよ。ネットワーク越しだからね。ただ読み取りはキャッシュが効くので意外と速い。書き込みは「非同期書き込み」にすると速いけど、サーバーがクラッシュするとデータが失われるリスクがある。「同期書き込み」は安全だけど遅い。このトレードオフがNFS運用の肝だよ。

ひよこ ひよこ

NFSって複数のクライアントが同時に同じファイルを書き込んだらどうなるの?

ペンギン先生 ペンギン先生

これがNFSの一番難しい問題でね、ファイルロックがうまく機能しないことがある。NFSv3ではロックをNLM(ネットワークロックマネージャー)という別プロトコルで管理してたけど、クライアントがクラッシュするとロックが残ってしまう「ロックのゾンビ」問題が起きた。NFSv4でロックをプロトコルに組み込んで改善したけど、複数クライアントからの同時書き込みはデータベースのような専用の仕組みを使ったほうが安全。NFSは基本的に「1台が書く、他は読む」用途で使うのが安定するんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「NFS」って出てきたら「ネットワーク越しに別サーバーのファイルをマウントして使う仕組みだな」と思えばだいたいOK!
📖 おまけ:英語の意味
「Network File System」 = ネットワークファイルシステム
💬 1984年にSun Microsystemsが開発。Windowsの「ネットワークドライブ」に相当するLinux世界の標準手段
← 用語集にもどる