第27章 NFS共有ファイルシステム

目次

27.1. 用語集
27.2. NFSサーバのインストール
27.3. NFSサーバの設定
27.4. クライアントの設定
27.5. 詳細情報

概要

ネットワーク上でファイルシステムを分散して共有することは、企業環境では一般的なタスクです。十分に実績のあるネットワークファイルシステム (NFS)は、NIS (Yellow Pagesプロトコル)と連携して機能します。LDAPと連携して機能し、Kerberosも使用できるより安全なプロトコルについては、NFSv4をチェックしてください。pNFSとの組み合わせで、パフォーマンスのボトルネックをなくすことができます。

NFSをNISと連携して使用すると、ネットワークをユーザに対して透過的にすることができます。NFSでは、ネットワーク経由で任意のファイルシステムを分散できます。適切なセットアップを行えば、現在どの端末を使用しているかに係わりなく、常に同じ環境で作業できます。

27.1. 用語集

以下の用語は、YaSTモジュールで使用されています。

エクスポート

NFSサーバによってエクスポートされ、クライアントがシステムに統合できるディレクトリ。

NFSクライアント

NFSクライアントは、ネットワークファイルシステムプロトコルを介してNFSサーバからのNFSサービスを使用するシステムです。TCP/IPプロトコルはLinuxカーネルにすでに統合されており、追加ソフトウェアをインストールする必要はありません。

NFSサーバ

NFSサーバは、NFSサービスをクライアントに提供します。nfsd(ワーカー)、idmapd (IDへのユーザおよびグループ名のマッピングと、その逆のマッピング)、statd(ファイルのロック)、およびmountd (マウント要求)。

pNFS

パラレル NFS。NFSv4のプロトコル拡張。 任意のpNFSクライアントは、NFSサーバ上のデータに直接アクセスできます。

27.2. NFSサーバのインストール

NFSサーバソフトウェアは、デフォルトインストールの一部ではありません。27.3項 「NFSサーバの設定」に従ってNFSサーバを設定すると、必要なパッケージのインストールを自動的に求められます。別の方法として、YaSTまたはzypperと共にパッケージnfs-kernel-serverをインストールします。

NIS同様、ANFSはクライアント/サーバシステムです。ただし、ファイルシステムをネットワーク経由で提供し(エクスポート)、同時に他のホストからファイルシステムをマウントする(インポート)ことができます。

27.3. NFSサーバの設定

NFSサーバの設定は、YaSTを使用するか、または手動で完了できます。認証の場合は、NFSをKerberosと組み合わせることもできます。

27.3.1. NFSでのKerberosの使用

NFSでKerberos認証を使用するには、GSSセキュリティを有効にする必要があります。最初のYaST NFSサーバのダイアログで、GSSセキュリティを有効にするを選択します。ただし、この機能を使用するには、機能するKerberosサーバが必要です。YaSTtは、このサーバの設定は行いません。その提供機能を使用するだけです。YaST環境設定に加えて、Kerberos認証も使用する場合は、NFS設定を実行する前に、少なくとも次の手順を完了してください。

  1. サーバとクライアントの両方が、同じKerberosドメインにあることを確認します。つまり、クライアントとサーバが同じKDC(Key Distribution Center)サーバにアクセスし、krb5.keytabファイル(the default location on any machine is /etc/krb5.keytab)を共有していなければなりません。Kerberosの詳細については、第6章 Network Authentication with Kerberos (↑Security Guide (セキュリティガイド))を参照してください。

  2. クライアントでrcgssd startコマンドを実行して、gssdサービスを開始します。

Kerberos化されたNFSの設定の詳細については、27.5項 「詳細情報」のリンクを参照してください。

27.4. クライアントの設定

ホストをNFSクライアントとして設定する場合、他のソフトウェアをインストールする必要はありません。必要なすべてのパッケージは、デフォルトでインストールされます。

27.4.1. YaSTによるファイルシステムのインポート

認証されたユーザは、YaST NFSクライアントモジュールを使用して、NFSディレクトリをNFSサーバからローカルファイルツリーにマウントできます。次の手順に従います。

手順27.1 NFSディレクトリのインポート

  1. YaST NFSクライアントモジュールを起動します。

  2. [NFS共有]タブで[追加]をクリックします。NFSサーバのホスト名、インポートするディレクトリ、およびこのディレクトリをマウントするマウントポイントを入力します。

  3. ファイアウォールを使用しており、リモートコンピュータのサービスにアクセスを許可する場合は、[NFS設定]タブで[ファイアウォールでポートを開く]をオンにします。チェックボックスの下には、ファイアウォールのステータスが表示されます。

  4. NFSv4を使用する場合は、[NFSv4を有効にする]チェックボックスが選択され、[NFSv4ドメイン名]にNFSv4サーバによって使用される値と同じ値が入力されていることを確認してください。デフォルトドメインは、localdomainです。

  5. OKをクリックして変更内容を保存します。

設定は/etc/fstabに書かれ、指定されたファイルシステムがマウントされます。後でYaST設定クライアントを起動した時に、このファイルから既存の設定が取得されます。

27.4.2. ファイルシステムの手動インポート

NFSサーバからファイルシステムを手動でインポートするには、RPCポートマッパーが実行していることが前提条件です。「rcrpcbind start」をrootとして入力してインポートを実行します。次に、mountを使用して、ローカルパーティションと同様に、リモートファイルシステムをファイルシステムにマウントできます。

mount host:remote-pathlocal-path

たとえば、nfs.example.comコンピュータからユーザディレクトリをインポートするには、次の構文を使用します。

mount nfs.example.com:/home /home

27.4.2.1. 自動マウントサービスの使用

autofsデーモンを使用して、リモートファイルシステムを自動的にマウントすることができます。/etc/auto.masterファイルに次のエントリを追加します。

/nfsmounts /etc/auto.nfs

これで、/nfsmountsディレクトリがクライアント上のすべてのNFSマウントのルートディレクトリの役割を果たすようになります(auto.nfsファイルが正しく設定されている場合)。ここでは、auto.nfsと言う名前を使用しましたが、任意の名前を選択することができます。auto.nfsで、次のようにしてすべてのNFSマウントのエントリを追加します。

localdata -fstype=nfs server1:/data
nfs4mount -fstype=nfs4 server2:/

rootとしてrcautofs startを実行して、設定をアクティブにします。この例で、server1/dataディレクトリの/nfsmounts/localdataは、NFSでマウントされ、server2/nfsmounts/nfs4mountはNFSv4でマウントされます。

autofsサービスの動作中に/etc/auto.masterファイルを編集した場合、変更内容を反映するには、rcautofs restartで自動マウント機能を再起動する必要があります。

27.4.2.2. /etc/fstabの手動編集

/etc/fstab内の典型的なNFSv3マウントエントリは、次のようになります:

nfs.example.com:/data /local/path nfs rw,noauto 0 0

/etc/fstabファイルにNFSv4マウントを追加することもできます。これらのマウントの場合、3列目にnfsの代わりにnfs4を指定します。また、1列目のnfs.example.com:の後に、リモートファイルシステムを/として必ず指定してください。たとえば、/etc/fstab内のNFSv4マウント行は、次のようになります。

nfs.example.com:/ /local/pathv4 nfs4 rw,noauto 0 0

noautoオプションを使用すると、起動時にファイルシステムが自動マウントされません。対応するファイルシステムを手動でマウントする場合は、マウントポイントのみを指定してmountコマンドを短くできます。

mount /local/path

ただし、noautoオプションを入力しないと、起動時に、システムのインストールスクリプトによって、それらのファイルシステムがマウントされます。

27.4.3. パラレルNFS(pNFS)

NFSは、1980年代に開発された、もっとも古いプロトコルの1つです。そのため、小さなファイルを共有したい場合は、通常、NFSで十分です。しかし、大きなファイルを送信したい場合や多数のクライアントがデータにアクセスしたい場合は、NFSサーバがボトルネックとなり、システムのパフォーマンスに重大な影響を及ぼします。これは、ファイルのサイズが急速に大きくなっているのに対し、Ethernetの相対速度が追い付いていないためです。

通常のNFSサーバにファイルを要求すると、サーバはファイルのメタデータを検索し、すべてのデータを収集して、ネットワークを介してクライアントに送信します。しかし、ファイルが小さくても大きくてもパフォーマンスのボトルネックが問題になります。

  • 小さいファイルでは、メタデータの収集に時間がかかる

  • 大きいファイルでは、サーバからクライアントへのデータ送信に時間がかかる

pNFS(パラレルNFS)は、ファイルシステムメタデータをデータの場所から分離することによって、この制限を克服します。このため、pNFSには2種類のサーバが必要です。

  • データ以外のすべてのトラフィックを扱うメタデータまたは制御サーバ

  • データを保持する1台または複数のストレージサーバ

メタデータサーバとストレージサーバによって、単一の論理NFSサーバが構成されます。クライアントが読み込みまたは書き出しを行う場合、メタデータサーバがNFSv4クライアントに対して、ファイルのチャンクにアクセスするにはどのストレージサーバを使用すればよいかを指示します。クライアントはサーバのデータに直接アクセスできます。

SUSE Linux Enterpriseはクライアント側でのみpNFSをサポートします。

27.4.3.1. YaSTを使用したpNFSクライアントの設定

手順27.1「NFSディレクトリのインポート」に従って進めます。ただし、[pNFS (v4.1)]チェックボックスをクリックし、オプションで[NFSv4共有]をクリックします。 YaSTが必要な手順をすべて実行し、必要なすべてのオプションをファイル/etc/exportsに書き出します。

27.4.3.2. pNFSクライアントの手動設定

27.4.2項 「ファイルシステムの手動インポート」を参照して開始します。ほとんどの設定はNFSv4サーバによって行われます。pNFSを使用する場合に異なるのは、minorversionオプションおよびメタデータサーバMDS_SERVERmountコマンドに追加することだけです。

mount -t nfs4 -o minorversion=1 MDS_SERVER MOUNTPOINT

デバッグを支援するために、/procファイルシステムの値を変更します。

echo 32767 > /proc/sys/sunrpc/nfsd_debug
echo 32767 > /proc/sys/sunrpc/nfs_debug

27.5. 詳細情報

NFSサーバとクライアントの設定情報は、exportsnfs、およびmountのマニュアルページのほか、/usr/share/doc/packages/nfsidmap/READMEからも入手できます。オンラインドキュメンテーションについては、次のWebサイトを参照してください。


SUSE Linux Enterprise Desktop 管理ガイド 11 SP3