気の向くままに辿るIT/ICT/IoT
システム開発

NFS/Network File System

ホーム前へ次へ
ネットワーク越しにファイルを共有

NFS/Network File System

NFS/Network File System

 NFS/Network File Systemとは、1980年代にSun Microsystems社が開発した*BSD/PC-UNIX/LinuxなどUNIXライクなOSで利用可能なネットワークを介したファイル共有方法の1つです。

 Mach+FreeBSDから成るDarwinベースやUNIX認定されたMac OS X/OS XでもNFSサーバ(Mac OS X)NFSクライアント(Mac OS X)のように利用可能です。

 従前は、Windowsは、NFSにアクセスできなかったのでWindowsを含む各種OSが混在する環境では、これに対応したSambaなどを使う一方、相互に書き込み・編集を伴う場合には、文字コードや改行コードの相違が出てくるのでWindows混在環境であってもUNIXライクなLinux/*BSD/PC-UNIX間ではNFSを使うというケースもあることでしょう。

 その後、当初有償製品として、後に無償化された、Windows上でUNIX/Linuxアプリケーションをコンパイルしたり、実行したりできる互換環境ソフトウェアがリリースされました。

 Windows XP Professional/Windows 2000 Professional/Windows 2000 Server/Windows Server 2003については、『SFU/Services for UNIX』、Windows Server 2003 R2/Windows Vista Ultimate/Enterprise、Windows 7 Ultimate/Enterprise、Windows Server 2008/Windows Server 2008 R2については、システム標準として『SUA/Subsystem for UNIX-Based Application(SUA/Subsystem for Unix Application)』という名称のサービスが提供されるに至りました。

 SFUやSUAを使うとWindowsでNFSサーバとしてもNFSクライアントとしても利用することができます。

 ただ、Windows 2012/Windows 8/8.1でもSUAは、利用はできるものの、非推奨(廃止予定のサービス)とされているようです。

 NFSは、サーバとクライアントから成り、サーバ側で指定したNFSファイルシステム(ディレクトリ)をクライアント側でマウントすることで共有できるようになります。

 NFSでは、ファイルシステムごとに、それぞれ単一、または、複数のクライアントと共有することができますが、複数のディレクトリを共有したい場合には、それらのディレクトリは、異なるファイルシステム(ドライブやパーティション)上にある必要があります。

 基本的にやることは同じなのですが、*BSDとLinuxディストリビューション、また、それらのバージョンによって各種サービスやコマンドの名称、その方法が若干異なる場合があります。

NFSv2/NFSv3/NFSv4とバージョンの確認

 NFSには、NFSv2、NFSv3、NFSv4というバージョンがあり、特にNFSv2/NFSv3とNFSv4では、利用するサービスなど、その方法が異なるので構成する前にバージョンを確認しておく必要があります。

 インストール済みの場合、NFSプロトコルのバージョン確認には、端末で[nfsstat]、[nfsstat -m]、また、インストール前などは、使用するディストリビューションのhttp/ftpサイトやパッケージ管理システムの検索コマンドで検索するとよいでしょう。

 NFSv2/NFSv3では、NFS用の各種サービスが使用するポートをサーバとクライアント間で動的に紐付けられる(RPC/Remote Procedure Callにおいて使用されるポートを動的に割り当てられる)ように[portmap]([portmapper])や[rpcbind]を利用する仕組みとなっていますが、NFSv4では、[portmap]や[rpcbind]を使用する必要がないとされています。

 ただ、互換性があるのでサーバのNFSが古い場合は、そのバージョン、クライアントが古いバージョンを使用している場合は、その間は、古いプロトコルで通信することになり、クライアントにNFSv2/NFSv3を使うものがあれば、[portmap]や[rpcbind]を使用することになります。

 一方でNFSv4については、セキュリティが強化されていることもあり、共にNFSv4を使うことが推奨されています。

 また、各種設定を行う過程で各種サービスの起動/停止/再起動、再読み込み、サービスの有効化/無効化などを行う必要が出てくるのでディストリビューションが採用する方法でこれらを行ないます。

 尚、ディストリビューションによっては、[portmap]([portmapper])に代わる他のコマンド、もしくは、後継となるコマンドを使用している場合があります。

NFSとファイアウォール

 NFSは、ネットワークを介してサービスを利用する形態なのでファイアウォールを有効にしている場合、往々にしてファイアウォールの設定が必要となります。

 つまり、NFSで利用する各種サービス用のポートをファイアウォールで遮断している場合には、開けておく(信頼できるサービスとして定義しておく)必要があります。

 名称は異なるかもしれませんが、例えば、[nfs](デフォルトのポート:2049)、[mountd]、[portmapper](デフォルトのポート:111)などです。

ホーム前へ次へ