テックブログ

NFS と SMB の違い:ファイル共有・マウント方式はどう選ぶべきか

こんにちは、ネットアシスト運用チームのRです。

サーバー運用や社内のファイル共有環境では、「リモート上のファイルシステムを利用したい」という場面がよくあります。例えば、複数の Web サーバーでアップロードファイルを共有したい場合や、バックアップサーバーから別サーバーのディレクトリを参照したい場合、また社内向けに共有フォルダを用意したい場合などです。

このような場面でよく利用される代表的な仕組みが NFSSMB です。

どちらもネットワーク経由でファイルへアクセスするための仕組みですが、利用される環境や権限管理の考え方、向いている用途には違いがあります。

NFS とは

NFS は Network File System の略で、主に Linux / Unix サーバー間でファイル共有を行うためのネットワークファイルシステム です。

NFS を利用すると、リモートサーバー上のディレクトリをローカルサーバーにマウントし、あたかもローカルディレクトリのように扱うことができます。

例えば、Linux サーバーでは以下のようにリモートディレクトリをマウントできます。

  mount -t nfs 192.0.2.10:/data/share /mnt/share

この場合、クライアント側で以下のディレクトリにアクセスすると、

  /mnt/share

実際にはリモートサーバー上の以下のディレクトリを参照していることになります。

  192.0.2.10:/data/share

NFS は、Linux サーバー間でのディレクトリ共有、Web サーバー間でのアップロードファイル共有、バックアップサーバーからのリモートディレクトリ参照、NAS から Linux サーバーへの共有ストレージ提供などでよく利用されます。

SMB とは

SMB は Server Message Block の略で、ネットワーク上でファイル共有を行うためのプロトコルです。

特に Windows のファイル共有 でよく利用されます。
Windows で共有フォルダにアクセスする際には、以下のようなパスを目にすることがあります。

  \\fileserver\share

または、

  \\192.0.2.10\share

Linux サーバーでも Samba を利用することで SMB のファイル共有サービスを提供でき、Windows、macOS、Linux クライアントから共有ディレクトリへアクセスできます。

SMB は、社内共有フォルダ、部門別共有フォルダ、Windows ユーザー向けのファイルサーバー、Active Directory アカウントによる権限管理などの場面でよく利用されます。

NFS の権限管理の特徴

NFS は Linux / Unix の権限モデルに近い仕組みです。
主に以下の情報をもとにアクセス制御を行います。

  • UID / GID(ユーザーID / グループID)
  • ファイルの所有者・所有グループ・権限(パーミッション)
  • NFSのエクスポート設定(クライアントのIPアドレス制限など)

例えば、サーバー側のファイル所有者が以下のようになっている場合、

  user01:group01

クライアント側でも同じユーザーやグループとして正しく認識させるためには、UID / GID をできるだけ一致させる必要があります。

そのため、NFS はサーバー間でのファイル共有に適しています。
一方で、複数サーバー間で UID / GID が揃っていない場合、ファイル所有者の表示が想定と異なったり、権限が意図した通りに動作しない場合があります。

SMB の権限管理の特徴

SMB は Windows の権限モデルに近い仕組みです。
主に以下のような方法でアクセス制御を行います。

  • ユーザー名/パスワード
  • ユーザーグループ
  • Windows ACL
  • Active Directory
  • 共有権限
  • ファイルシステム権限

SMB では、ユーザーやグループごとに比較的細かく権限を設定できます。

そのため、SMB はオフィス内のファイル共有や複数ユーザーでの利用、Active Directory と連携したアカウント管理が必要な環境に向いています。

選択時のポイント

NFS と SMB のどちらを選ぶべきかは、主に「誰が使うのか」「どのような目的で使うのか」によって決まります。

主に Linuxサーバー同士でディレクトリを共有する場合は、NFS が適しています。NFS はサーバー間のマウントやデータ共有に向いており、Linux / Unix 系システムとの親和性が高い点が特徴です。

一方で、主にWindows ユーザーや社内利用者向けに共有フォルダを提供する場合は、SMB が適しています。SMB はユーザー向けのファイル共有に向いており、特に Windows クライアントが多い環境や、AD ドメインによる権限管理を行う環境で利用しやすい方式です。

項目NFS (Network File System)SMB (Server Message Block)
主な対象Linux / Unix サーバーWindows、macOS、Linux
認証・権限UID / GID、Linux ファイル権限、IP 制限ユーザー名、パスワード、ユーザーグループ、ACL、AD
主な用途Web サーバー間の共有ディレクトリ、バックアップ、サーバー間マウント社内共有フォルダ、部門別フォルダ、ユーザー向けファイル共有
特徴Linux環境での動作が比較的軽量・高速アカウントごとの細かい権限管理が得意

まとめ

NFS と SMB は、どちらもネットワーク越しにファイルを共有するための仕組みですが、設計思想や得意な用途が異なります。

NFS は、Linux / Unix サーバー間でのファイル共有やディレクトリ共有に適しています。
Web サーバー間の共有ディレクトリ、バックアップサーバーからの参照、アプリケーションサーバー間のデータ共有などでよく利用されます。

SMB は、ユーザー向けのファイル共有に適しています。
Windows の共有フォルダ、社内共有フォルダ、部門別ディレクトリ、Active Directory による権限管理などでよく利用されます。

実際に選択する際は、プロトコルだけで判断するのではなく、以下の観点を含めて総合的に検討することが重要です。

  • 利用するクライアントの種類
  • 権限管理の方法
  • 利用目的
  • セキュリティ要件
  • 運用コスト

サーバー間でデータを共有する場合は NFS、オフィスユーザー向けに共有フォルダを提供する場合は SMB を選択する、という考え方が基本になります。

それでは、また。

この記事をシェアする

  • facebook
  • twitter
  • hatena
  • line
URLとタイトルをコピーする

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください