知っておきたいNFSの基本と活用法
サーバ環境でよく使われるNFSとは?
ネットワーク上のコンピュータが持つストレージを共有するための仕組みには、Windows環境で広く使われている「CIFS(Common Internet File System)」や、MacOSに組み込まれている「AFP(Apple File Protocol)」など数多くあります。「NFS(Network File System)」もそうした仕組みの1つであり、LinuxをはじめとするUNIX系OSの多くに標準で組み込まれているほか、Windows ServerやMacOSでもサポートされています。
NFSの特長は、ネットワークファイルシステムという名前のとおり、ネットワークを介してサーバ上のストレージ領域をローカルストレージと同様にマウントして使える点です。このためNFSであることを意識する必要がなく、ローカルストレージと同様に読み書きすることが可能なため、幅広い用途で使える利点があります。
このNFSを開発したのはサン・マイクロシステムズで、その仕様はRFC 1094などで標準化されています。なお現在の最新メジャーバージョンは「NFS version 4(NFS v4)」ですが、現時点では前バージョンである「NFS version 3(NFS v3)」もまだまだ使われています。NFS v3とv4の大きな違いとして、ユーザ認証の仕組みの有無が挙げられます。当初のNFSにはユーザ認証の概念がなく、利用を許可したホスト(コンピュータ)であれば利用可能となっていました。
しかしNFS v4ではKerberos認証がサポートされており、特定ユーザのみ利用できるように指定することが可能になっています。またNFS v3までは利用するポートがランダムだったため、ファイアウォール配下で特定のポートのみ通信を許可するといった環境では使いづらい点がありました。しかしNFS v4は利用するポートが固定されており、ファイアウォールでの制御を容易にしています。
NFSサーバの設定は「/etc/exports」ファイルで行い、共有するディレクトリや利用可能なホストなどを設定していきます。なおオプションで読み書きを制御することも可能です。NFSクライアント側では、「mount」コマンドを使ってNFSサーバのIPアドレスや共有されたディレクトリ、マウントポイントなどを指定します。
Webサーバの高負荷対策にもNFSは有効
NFSの用途はさまざまですが、便利なのはサーバ間でファイルを共有したいケースでしょう。具体的には、ロードバランサ配下で複数のWebサーバを運用する、といった場面が考えられます。このような状況で各Webサーバのローカルストレージを使った場合、アクセスがどのサーバに割り振られても同一のコンテンツをクライアントに返すように、ストレージの内容を同一にしておく必要があります。
しかしNFSを使えば、いずれのサーバであっても同じストレージ領域を参照するように構成可能なため、各サーバのストレージ領域を同一に保つための手間が省けます。このほかにも、複数のサーバ間で同一ファイルにアクセスするように環境を構成したいといったケースでNFSを活用できます。
なお昨今のクラウドサービスでは、NFSの仕組みを利用してストレージ領域を提供するものもあります。このような形でNFSがサービスとして提供されていれば、複数サーバ間でのファイル共有を容易に実現できるほか、ストレージ管理の負担も軽減できるなどのメリットもあります。クラウドサービスを選定する際、このようにNFSでストレージが提供されているかどうかもチェックしてみてはいかがでしょうか。