NFS と SMB はどのように異なりますか?

ネットワークファイルシステム (NFS) とサーバーメッセージブロック (SMB) は、ネットワーク上で効率的にファイルを共有するためのファイルアクセスストレージプロトコルまたはルールです。コミュニケーション、コラボレーション、ファイルの共有を効果的に行えることは、あらゆる組織の日常業務に不可欠です。NFS を使用すると、ユーザー (またはクライアントデバイス) はネットワークサーバーに接続し、サーバー上のファイルにアクセスできます。NFS は、複数のユーザーがデータの競合なしに同じファイルを共有できるようにするルールを備えています。同様に、SMB でも、ユーザーはサーバー上のファイルを読み取ることができます。ただし、SMB の方がより柔軟であるため、クライアント同士でもファイルを共有できます。クライアントは SMB を使用して、プリンターやファイルサーバーなどの他のネットワークデバイスとの接続を確立できます。その後、クライアントは、そのクライアントにとってのローカルであるかのように、デバイスのファイルにアクセスできます。

NFS とは何ですか、どのような仕組みですか?

ネットワークファイルシステム (NFS) プロトコルは、1984 年に Sun Microsystems によって UNIX ベースのシステム用のステートフルファイル共有プロトコルとして開発されました。それ以来、NFS はいくつかの更新を経てきました。最新は NFS バージョン 4 (NFSv4) で、これは IETF (Internet Engineering Task Force) のワーキンググループによって開発されました。NFS は依然として Linux ユーザーの間で人気があります。

NFS 対応クライアントと NFS サーバー間の通信の仕組みは次のとおりです。まず、クライアントはリモートプロシージャーコール (RPC) を使用してサーバーにファイルまたはディレクトリを要求します。次に、サーバーは以下をチェックします。

  • ファイルまたはディレクトリが利用可能である
  • クライアントに必要なアクセス権限がある

次に、サーバーはファイルまたはディレクトリをクライアントにリモートでマウントし、仮想接続を介してアクセスを共有します。クライアントの場合、NFS は操作中にローカルファイルにアクセスするのと同じようにリモートサーバーファイルを使用します。

他の機能の中でも、NFS クライアントはアクセス速度を向上させるためにファイルをキャッシュしたり、複数のコンピュータが同じファイルに同時に書き込もうとしているファイルをロックしたり、ファイル属性の更新を同期したりします。

SMB とは何ですか、どのような仕組みですか?

サーバーメッセージブロック (SMB) プロトコルは、最初に開発されてから何度か繰り返されてきました。1983 年に IBM の Barry Feigenbaum 氏によって Windows の前身である DOS オペレーティングシステム向けにリリースされました。Windows の製品スイートとの緊密な統合により、SMB は Windows オペレーティングシステムのデフォルトのファイル共有プロトコルであり続けています。 

SMB の現在のバージョンは SMB 3.1.1 で、過去のバージョンには SMB 1.0、SMB 2.0、SMB 2.1、SMB 3.0、および SMB 3.0.2 があります。SMB はかつて CIFS (共通インターネットファイルシステム) にブランド名が変更されましたが、この名前の変更は最終的に元に戻されました。 

クライアント/サーバー間の通信のプロセスは、大まかに言うと NFS に似ています。違いは詳細と操作メカニズムにあります。たとえば、SMB では、ファイルシステムはローカル SMB クライアントにマウントされません。代わりに、SMB サーバーでホストされているネットワーク共有には、ネットワークパスを介してアクセスします。

SMB と NFS の類似点

サーバーメッセージブロック (SMB) プロトコルとネットワークファイルシステム (NFS) プロトコルはどちらもクライアント/サーバーモデルで動作します。このモデルでは、ファイルはリモートサーバーで共有され、ローカルクライアントによって使用されます。プロトコルを正しく設定した後、サーバー上のリモートネットワークファイルおよびディレクトリにアクセスすると、あたかもそれらがクライアントマシン上のファイルシステムのローカルにあるかのように機能します。

SMB と NFS には他にも類似点があります。

  • どちらの方法でも、クライアントはサーバー上のファイルとディレクトリの作成、読み取り、更新、削除 (CRUD) 操作を実行できます。
  • 複数の異なるオペレーティングシステムで使用できます。これには、主流のオペレーティングシステム、Windows 環境、Linux 環境がそれぞれ含まれます。
  • SMB と NFS は、従来のネットワーク環境、特にオンプレミスインフラストラクチャでよく使用されます。 

主な相違点: NFS 対SMB

ネットワークファイルシステム (NFS) とサーバーメッセージブロック (SMB) には、操作の詳細にいくつかの違いがあります。

オリジナルデザイン

NFS と SMB はいずれのオペレーティングシステムでも使用できますが、Windows ファイル共有のデフォルトは SMB プロトコルです。Windows の機能は SMB を中心に構築されています。Linux コンピューターで SMB を使用してリモート Windows サーバーファイルにアクセスするには、Samba などの外部ツールが必要です。 

これとは対照的に、NFS プロトコルは Unix システム専用に設計されています。これはネイティブのファイル共有プロトコルであり、ほとんどの Linux ディストリビューションのデフォルトのファイル転送プロトコルです。

共有リソース

SMB は、ファイルサービス、印刷サービス、ストレージデバイス、仮想マシンストレージなど、さまざまなネットワークリソースを共有できるように構築されています。

これは、ファイルとディレクトリの共有しかサポートしていない NFS とは対照的です。

クライアント間通信

SMB を使用すると、クライアントはサーバーをメディエーターとして使用して相互に通信し、ファイルを共有できます。

NFS はクライアント/サーバー間の操作のみを許可します。

使用場面の比較: NFS 対SMB

通常、ネットワークファイルシステム (NFS) とサーバーメッセージブロック (SMB) を使用して、同種のオペレーティングシステム環境でローカルエリアネットワーク (LAN) を作成および管理します。このような環境では、共有ストレージにはローカルファイルのようにアクセスする必要があります。NFS と SMB は、遠隔地にあるレガシーネットワーク環境やゲートウェイ経由のハイブリッドクラウド環境でも使用されます。

SMB ファイル共有

LAN にネットワークアタッチドストレージ (NAS) をセットアップする場合、ネットワーク経由でファイルを共有したりアクセスしたりするには SMB が最も簡単です。これは、Windows、Mac、Linux のいずれのオペレーティングシステムを実行していても変わりません。

その他の一般的な使用例は次のとおりです。

  • 複数のクライアントマシンが共有ストレージを必要とする組織向けの Windows ベースのローカルエリアネットワーク
  • 効率とスケーラビリティを優先する大規模なストレージアレイを備えたエンタープライズ環境
  • ネイティブサポートを必要とする高度な共有操作

NAS について読む »

NFS ファイル共有

NFS は次のシナリオに使用できます。

  • ネットワーク上のすべての UNIX ベースのマシン (Linux ベースの環境を含む) を含むローカルネットワークがある
  • 大きなファイルサイズが必要

クラウドストレージアーキテクチャに関する注意事項

クラウドベースのファイルストレージおよび共有アーキテクチャでは、SMB も NFS も主要なファイル共有プロトコルとして使用されていないことに注意してください。

クラウドストレージプロバイダーは独自のシステムを使用して内部構成を管理しますが、内部的には SMB または NFS をベースにしている場合があります。代わりに、プロバイダーは互換性サービスを提供して、既存または新規の NFS システムや SMB システムがクラウドストレージ製品およびサービスと相互運用できるようにしています。 

NFS と SMB の実装に関する課題

サーバーメッセージブロック (SMB) とネットワークファイルシステム (NFS) の両方が正しく動作するには、サーバーマシンとクライアントマシンでの構成が必要です。設定を行うことなくすぐに使えるわけではありません。アクセス権限とユーザーベースの認証システムは、クライアントマシンとサーバーの両方で正しく構成する必要があります。クライアントとサーバー間でオペレーティングシステムの種類が一致しない場合、追加の構成またはソフトウェアが必要になる場合があります。

NFS と SMB の構成は、通常、システム管理者またはネットワーク管理者の仕事です。この作業には、安全な運用と最適な効率を確保するために、プロトコルのセキュリティ上の考慮事項に関する実用的な知識が必要です。SMB または NFS の新しいバージョンがリリースされた場合、管理者は必要に応じてシステムと構成をアップグレードする必要があります。

クラウドベースのファイルストレージアーキテクチャでは、多くの組織が SMB や NFS に必要な DIY タイプのアプローチではなく、最新のフルマネージドソリューションを使用してファイルを共有しています。これらのソリューションでは、ある程度は NFS または SMB を使用しますが、管理の複雑さは管理者には分かりません。

これらのソリューションは通常、ユーザーフレンドリーなインターフェイスからアクセスできる追加機能を提供します。たとえば、自動認証システム、柔軟なストレージ管理、他のクラウドサービスとの自動統合、高度なセキュリティ制御が提供される場合があります。

 

相違点のまとめ: NFS 対SMB

 

NFS

SMB

内容

ネットワークファイルシステム。

サーバーメッセージブロック。

こんな方に最適

Linux ベースのネットワークアーキテクチャ。

Windows ベースのアーキテクチャ。

共有リソース

ファイルとディレクトリ。

ファイルおよび印刷サービス、ストレージデバイス、仮想マシンストレージなど、幅広いネットワークリソース。

クライアントが通信可能な先

サーバー。

サーバー。さらにクライアントは、サーバーをメディエーターとして使用して他のクライアントと通信できます。

AWS はリモートファイル共有のニーズをどのようにサポートできますか?

Amazon Web Services (AWS) は、サーバーメッセージブロック (SMB) のサポート、ネットワークファイルシステム (NFS) のサポート、およびその他のリモートアクセスのニーズに対応するさまざまなサービスを提供しています。

既存のカスタムオンプレミスファイルストレージシステムがある場合は、AWS Storage Gateway を使用してクラウドベースのストレージに接続することで、ハイブリッドクラウドソリューションで無制限のストレージと効率性を実現できます。Amazon Simple Storage Service (Amazon S3) と組み合わせることで、SMB ベースまたは NFS ベースのオンプレミスストレージを、低レイテンシーかつクラウドへの効率的なアクセスで共有できます。詳細については、カスタム構成で SMB ファイル共有を作成する方法をご覧ください

SMB または NFS サーバーをクラウドに移行して、運用上のオーバーヘッドを削減したり、伸縮自在なスケーリングを利用したり、可用性を高めたりしたい場合は、Amazon FSx を使用できます。Amazon FSx は、NetApp の ONTAP、Windows ファイルサーバ、Lustre、OpenZFS と互換性があります。

SMB や NFS の設定を必要としない最新のファイル共有サービスにとって、Amazon Elastic File System (Amazon EFS) はサーバーレスで柔軟性に優れた、フルマネージドのファイルストレージソリューションです。Amazon EFS を使用すると、ネットワークファイルシステムを Amazon Elastic Compute Cloud (Amazon EC2) コンテナ、AWS コンテナ、Lambda 関数、またはオンプレミスサーバーにマウントできます。Amazon EFS は、最新の AWS クラウドベースおよびハイブリッドアーキテクチャで、簡単に柔軟にファイルを保存し、共有できるように設計されています。

今すぐアカウントを作成して、AWS でファイル共有を始めましょう。