SMB vs NFS プロトコル: 徹底比較

コンピューターとユーザー間でファイルを共有することは、データの効率的かつ便利なやり取りを支援します。異なる方法でネットワーク上でファイルを共有することができます。たとえば、サーバーやコンピューターでSMBやNFSプロトコルを使用することができます。NAS(ネットワークアタッチストレージ)デバイスも、SMBやNFSを介してファイルを共有するために使用されます。

NFS vs SMBの比較を読んで、あなたのケースでどちらを使用し、どのプロトコルを選択するかを理解してください。

SMBプロトコルとは何ですか?

SMB(Server Message Block)は、ネットワーク上の共有データへのアクセスを提供するファイル共有プロトコルです。これは、Windows環境で広く使用されており、ローカルエリアネットワーク(LAN)上のファイルにアクセスするために使用されます。1983年にIBMによって開発され、後にマイクロソフトがこのプロトコルを採用し、現在ではWindowsに組み込みのSMBサポートを提供しています。このプロトコルは進化を続け、最新のSMBバージョンはv.3.1.1です。

時々、CIFSという用語がSMBと混同されます。CIFSはSMB v1の実装であるSMPダイアレクトです。詳細については、このCIFS vs SMB比較を参照してください。

NFSプロトコルとは何ですか?

NFS(Network File System)は、UNIXベースおよびLinuxオペレーティングシステム向けのファイル共有プロトコルです。名前の通り、NFSはファイルシステムではありません。NFSプロトコルは、1984年にサン・マイクロシステムズによって元々開発されました。

  • NFSバージョン1は、サンが内部目的で使用していたものであり、公開されませんでした。
  • NFS v2は、基本的なファイル共有機能を提供しました。
  • NFS v3は、可変サイズの処理と改善されたエラー報告をサポートしていますが、NFS v2クライアントと互換性がありません。
  • NFS v4は、Internet Engineering Task Force(IETF)で開発された最新のNFSバージョンです。 このバージョンでは並行ファイルアクセスがサポートされ、セキュリティが向上しています。 NFS v2およびNFS v3との後方互換性が存在します。 NFS v4はKerberos認証をサポートしています。

NFS対Samba–主な違い

Sambaは、LinuxにSMBサーバーをインストールするためのフリーソフトウェア実装です。 SambaにはSMBクライアントは含まれていません。 LinuxにSMBクライアントを取得するには、cifs-utilsパッケージをインストールする必要があります。

NFSはネットワークプロトコルであり、ソフトウェアパッケージ(Samba)とは比較すべきではありません。 ただし、Windows用のNFS実装について話している場合は、NFSを使用するには適切なNFSサーバーおよび/またはNFSクライアントロール(タスクに応じて)をWindowsにインストールする必要があります。

NFS対SMB–機能の概要

このセクションでは、SMBとNFSの機能を7つの異なるカテゴリで比較します。

1. ネットワーク接続/使用されるポート

  • SMBとNFSの共有プロトコルは、OSIモデルのアプリケーション層(レイヤー7)で動作し、クライアントサーバーアーキテクチャを使用します。
  • SMBはセッションの確立を必要とします(NFSでは必要ありません)。
  • SMBは、操作のためにプレゼンテーションレイヤー(レイヤー6)も使用できます。
  • これら2つのプロトコルは、インターネット経由ではなくローカルエリアネットワーク(LAN)での動作が最適化されています。 SMBとNFSの共有プロトコルは、インターネット経由での使用には適しておらず、ネットワークアドレス変換やルーティングには適していません。
  • NFSはポート2049(TCPおよびUDP)とポート111(TCPおよびUDP)を使用します。TCP 111はポートマッパーによって使用されます。TCP 1110およびUDP 1110はクラスターおよびクライアントの状態に使用されます。NFSロックマネージャーはTCP 4045およびUDP 4045を使用します。
  • SMBは、NetBIOSトランスポートを使用せずにTCPポート445を使用します。TCP/IPを直接使用します(これがWindows 2000からのSMBの動作方法であり、現在使用されている最新のSMBバージョンも含まれます)。SMBは、NetBIOS over TCP/IPの上で実行するためにTCP 139、UDP 137、およびUDP 138ポートを使用します。NetBIOSは、Windows 2000以前の古いSMB実装で使用されたセッション層プロトコルです(OSIモデルのレイヤー5で動作します)。

2. プリンターの共有

SMBはプリンター共有をサポートしており、リモートユーザーがネットワーク上でファイルを印刷するために特定のマシンに接続されたプリンターを使用できます。 NFSプロトコルにはプリンター共有機能が提供されていません – Linuxにはネットワーク印刷用の他のメカニズムがあります。

3. 認証

A major difference between the NFS vs SMB protocols is how they authenticate.

  • SMBは、ユーザーとグループを使用したACL(アクセス制御リスト)の概念を使用します。 SMBは、選択したユーザーとグループ(ユーザー認証)に共有ファイルへのアクセスを提供します。権限を柔軟に構成できます。許可されたホストへのアクセスを構成するには、ファイアウォールを使用できます。
  • NFSは従来、許可されたIPアドレスへのアクセスを提供しています。 NFSはホストベースの認証システムを使用します – NFS共有へのアクセスが許可されているホストのIPアドレスを有効にできます。この場合、許可されたマシンのすべてのユーザーがNFS共有にアクセスできます。

所有権およびLinuxスタイルの権限は、NFSプロトコルの機能です。 LinuxはUID(ユーザーID)およびGID(グループID)で動作し、WindowsはSID(セキュリティ識別子)で動作します。

NFS v4のKerberosサポートは認証システムを強化し(選択したユーザーへのアクセス機能を向上させるために)。

4. ファイル共有へのアクセス

SMBではファイルロックが必須で、NFSでは任意です。ファイルロックメカニズムは、ユーザーが開いたファイルの一貫性を保証するために使用されます。ロックがかかっている間、他のユーザーはファイルが閉じられるまで開いているファイルにデータを書き込むことはできません。

UNCパスを使用してWindowsでSMBファイル共有にアクセスできます:

Windowsでは:

\\server\share\directory1\directory2

Linuxでは:

smb://server/share/directory1/directory2

EFSパスとこの形式を使用してNFS共有にアクセスできます:

server:/directory1/directory2

5. オペレーティングシステムのサポートと統合

NFSプロトコルはLinuxに最適化されています。SMBはWindowsに最適化されており、優れた統合を持つWindowsのネイティブファイル共有プロトコルです。

ただし、両方のプロトコルはWindowsとLinuxで使用できます。LinuxでSMBプロトコルを使用するには、SMBクライアント(cifs-utils)またはSMBサーバー(Samba)をインストールする必要があります。Windows NFS構成を使用するには、WindowsにNFSクライアントおよび/またはサーバーを追加コンポーネント(ロール)としてインストールする必要があります。

NFSはファイルへのアクセス時に大文字と小文字を区別し、SMBは区別しません。これはファイルの検索方法やファイル名の入力方法に影響します。

NFSプロトコルはオープンスタンダードであり、誰でも実装することができます。

6. セキュリティ/暗号化

  • NFSの通信は、ファイアウォールなしではリスクがあります。 NFSが安全でないUDPプロトコルを使用する場合、全体のセキュリティレベルが低下します。 NFSはTLS(SSLに基づくTransport Layer Securityプロトコル)を使用した暗号化をサポートしています。
  • SMBはAES-256暗号化標準を使用したエンドツーエンドの暗号化をサポートしており、NFSのKerberos暗号化よりも強力です。 SMB 1は脆弱なプロトコルと見なされていますが、最新のSMB 3バージョンはセキュアであり、SMBのセキュリティレベルがNFSよりも優れています。

7. NFS対SMBの性能

NFSは、ネットワークを介して小〜中サイズのファイル(たとえば、1MB以下のファイル)を転送する場合にはより良い選択肢です。大きなファイル(たとえば、500MBファイル)を転送する場合、両方のプロトコルの性能は類似しています。

暗号化を使用する場合、NFSはSMBよりも高速です。 SMBでは、4MBのレートで読み取りトランザクションが速くなります。 高トラフィック負荷はデータ転送手順を遅くする可能性があります。 NFS v.4.2では、最大帯域幅が増加したことがわかります。

SMB対NFS:比較表

NFS対SMBの主な違いをまとめた比較表に記載できます。

SMB NFS
環境 Windowsでネイティブに使用 主にLinuxシステムで使用
認証 便利なユーザー認証 ホストベースの認証が主要な方法です
使用されるポート TCP 445; TCP 139、UDP 137、138 TCP 2049、UDP 2049、TCP 111、UDP 111; TCP 1110、UDP 1110、TCP 4045、UDP 4045。
暗号化とセキュリティ はい – Kerberos、AES-256 はい – KerberosとTLS
クロスプラットフォーム環境 サポートされています サポートされています
ファイルロック 強制 助言
プリンター共有 はい いいえ
リソースへのアクセス \\server\directory1\directory2 server:/directory1/directory2

結論

NFSとSMBをファイル共有プロトコルとして選択するかどうかは、ネットワーク内のコンピュータで主に使用されているオペレーティングシステムとその他の要因に依存します。両方のプロトコルは信頼性があり、異なるオペレーティングシステムやNASデバイスで使用することができます。どちらを選択しても、ネットワーク内のファイル共有を使用する際にはデータのバックアップが重要です。NAKIVO Backup & Replicationはオールインワンのデータ保護ソリューションであり、SMBやNFS共有データだけでなく、仮想マシン、物理サーバー、Microsoft 365のデータも保護することができます。

Source:
https://www.nakivo.com/blog/nfs-vs-smb/