Network File System の略。Sun Microsystems が 1984 年に開発した分散ファイルシステムプロトコル。Linux / Unix ネイティブのネットワークファイル共有として広く採用され、QNAP / Synology などの NAS と Linux クライアント間の標準的な接続方式。
バージョンと特徴
| バージョン | リリース | 特徴 | 推奨度 |
|---|---|---|---|
| NFS v3 | 1995 | UID/GID をそのまま渡す。設定が単純 | ○ シンプル運用 |
| NFS v4 | 2003 | 状態管理・ACL・Kerberos 対応 | ○ |
| NFS v4.1 | 2010 | パラレル NFS(pNFS)対応・ファイアウォール通過容易 | ◎ 業務 NAS |
| NFS v4.2 | 2016 | サーバーサイドコピー等 | ◎ 新規構築時 |
SMB(CIFS)との比較
| 項目 | SMB(CIFS) | NFS |
|---|---|---|
| 速度(GbE) | 100〜200 MB/s | 200〜300 MB/s(GbE 上限近く) |
| CPU 負荷 | 中 | 低 |
| Linux ネイティブ性 | △ | ◎ |
| 認証 | ユーザー / パスワード | UID/GID ベース(v3)、Kerberos も可(v4) |
| Windows との共有 | ◎ | × (Windows は別途有効化必要) |
Windows と共有 = SMB / Linux 専用 = NFS のハイブリッド構成が業務で多い。
マウント例
/etc/fstab での自動マウント:
192.168.1.10:/Projects /home/<user>/NAS/Projects nfs4 defaults,_netdev,nofail,x-systemd.automount,vers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 0 0
| オプション | 意味 |
|---|---|
nfs4 | NFS v4 を使用 |
_netdev | ネットワーク利用可能まで待機 |
nofail | NAS 不在でもブートを止めない |
x-systemd.automount | アクセス時マウント(高速ブート) |
vers=4.1 | NFS v4.1 を明示 |
rsize / wsize=1048576 | 1 MB バッファ(GbE で最適) |
hard | サーバー応答停止時は無限再試行 |
よくあるハマり
| 症状 | 原因 | 対処 |
|---|---|---|
mount.nfs4: access denied by server | サーバー側ホスト IP 制限に含まれない | NAS の NFS ホストアクセス設定 |
ファイル所有者が nobody:nogroup | NFS v4 の idmap ドメイン不一致 | /etc/idmapd.conf で Domain を合わせる、または vers=3 |
Connection refused | NFS サービス未起動 / ポート 2049 / 111 ブロック | NAS で NFS サービス有効化 |
セキュリティ
NFS(特に v3)は 送信元 IP ベースの認証で、信頼できる社内 LAN 内での利用が前提。インターネット越しの NFS は絶対に使わない。Kerberos(NFS v4 以降)を使えばユーザー認証可能だが、運用の手間は大きい。