NFS クライアントを接続する

このページでは、NFS クライアントを接続する方法について説明します。

始める前に

Linux ディストリビューションの種類に基づいて NFS クライアント ツールをインストールして、クライアントを準備します。

Red Hat

次のコマンドを実行します。

sudo yum install -y nfs-utils

SuSe

次のコマンドを実行します。

sudo yum install -y nfs-utils

Debian

次のコマンドを実行します。

sudo apt-get install nfs-common

Ubuntu

次のコマンドを実行します。

sudo apt-get install nfs-common

エクスポート ポリシーを使用したボリューム アクセス制御

NFSv3 と NFSv4.1 のボリューム アクセス制御は、クライアントの IP アドレスに基づいています。ボリュームのエクスポート ポリシーには、エクスポート ルールが含まれています。各ルールは、ボリュームのマウントを許可する許可されたクライアントを定義する IP またはネットワーク CIDR のカンマ区切りのリストです。ルールでは、クライアントが持つアクセス権の種類(読み取りと書き込み読み取り専用など)も定義します。追加のセキュリティ対策として、NFS サーバーはルート ユーザー(UID=0)から nobody(UID=65535)にアクセスを再マッピングします。これにより、ボリューム上のファイルにアクセスするときに root が権限のないユーザーになります。それぞれのエクスポート ルールで [Root Access] を [オン] に有効にすると、root ユーザーは root のままになります。エクスポート ルールの順序は重要です。

エクスポート ポリシーについては、次のベスト プラクティスをおすすめします。

  • エクスポート ルールを最も具体的なものから最も具体的でないものに並べ替えます。

  • 信頼できるクライアント(特定のクライアントや信頼できるクライアントの CIDR など)にのみエクスポートします。

  • 信頼できる管理クライアントの小さなグループにルート アクセスを制限します。

ルール 許可されたクライアント アクセス ルートアクセス権 説明
1 10.10.5.3、
、10.10.5.9
読み取り / 書き込み オン 管理クライアント。root ユーザーは root のままで、
すべてのファイル権限を管理できます。
2 10.10.5.0/24 読み取り / 書き込み オフ 10.10.5.0/24 ネットワークの他のすべてのクライアントはマウントを許可されますが、
の root アクセスは nobody にマッピングされます。
3 10.10.6.0/24 読み取り専用 オフ 別のネットワークはボリュームからデータを読み取ることができますが、
書き込みはできません。

クライアントがボリュームをマウントすると、ファイルレベルのアクセスによってユーザーが許可される操作が決まります。詳細については、UNIX スタイルのボリュームの NFS ファイルレベルのアクセス制御をご覧ください。

NFS クライアントのマウント手順

Google Cloud コンソールまたは Google Cloud CLI を使用して NFS クライアントのマウント手順を取得するには、次の操作を行います。

Console

  1. Google Cloud コンソールで [NetApp Volumes] ページに移動します。

    [NetApp Volumes] に移動

  2. [ボリューム] をクリックします。

  3. [ すべて表示] をクリックします。

  4. [取り付け手順] を選択します。

  5. Google Cloud コンソールに表示されるマウント手順に沿って操作します。

  6. ワークロードに特定のマウント オプションの要件がない限り、マウント コマンドを見つけてマウント オプションを使用します。

    NFSv3 のみ: アプリケーションでロックを使用していない場合や、NSM 通信を有効にするようにクライアントを構成していない場合は、nolock マウント オプションを追加することをおすすめします。

gcloud

ボリュームのマウント手順を検索します。

 gcloud netapp volumes describe VOLUME_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    --format="value(mountOptions.instructions)"

次の情報を置き換えます。

  • VOLUME_NAME: ボリュームの名前。

  • PROJECT_ID: ボリュームを含むプロジェクトの名前。

  • LOCATION: ボリュームのロケーション。

その他のオプションのフラグの詳細については、ボリュームの Google Cloud SDK ドキュメントをご覧ください。

NFSv4.1 の追加手順

NFSv4.1 を有効にすると、サービスレベルが Standard、Premium、Extreme のボリュームでも NFSv4.2 が自動的に有効になります。Linux マウント コマンドは、マウントするバージョンを指定しない限り、常に使用可能な最新の NFS バージョンをマウントします。NFSv4.1 でマウントする場合は、mount コマンドに -o vers=4.1 パラメータを使用します。

NFSv3 では、ユーザーとグループは NFSv3 プロトコル経由で送信されるユーザー ID(UID)とグループ ID(GID)で識別されます。ボリュームにアクセスするすべてのクライアントで、同じ UID と GID が同じユーザーとグループを表すようにすることが重要です。NFSv4 では、セキュリティ識別子を使用して明示的な UID と GID のマッピングが不要になりました。セキュリティ識別子は、<username|groupname>@<full_qualified_domain> という形式の文字列です。セキュリティ ID の例は bob@example.com です。クライアントは、NFSv4 リクエストをサーバーに送信する前に、内部で使用される UID と GID をセキュリティ ID に変換する必要があります。サーバーは、受信リクエストのセキュリティ識別子を UID と GID に変換し、レスポンスの場合はその逆に変換する必要があります。変換を使用する利点は、すべてのクライアントとサーバーが異なる内部 UID と GID を使用できることです。ただし、すべてのクライアントとサーバーが UID と GID、ユーザー名とグループ名のマッピング リストを維持する必要があるという欠点があります。クライアントのマッピング情報は、/etc/passwd/etc/groups などのローカル ファイルまたは LDAP ディレクトリから取得できます。このマッピングの構成は rpc.idmapd によって管理されます。これはクライアントで実行する必要があります。

NetApp Volumes では、LDAP がマッピング情報を提供する必要があります。サポートされている RFC2307bis 互換 LDAP サーバーは Active Directory のみです。NFSv4 で Kerberos を使用する場合、セキュリティ識別子には username@DOMAINNAME 形式で Kerberos プリンシパルが保存されます。ここで、DOMAINNAME(大文字)はレルム名になります。

数値 ID

名前のマッピングを構成せず、代わりに NFSv3 の代わりに NFSv4 を使用するユーザー向けに、NFSv4 には numeric ID というオプションが導入されています。このオプションは、UID と GID をエンコードしたテキスト文字列をセキュリティ ID として送信します。これにより、ユーザーの構成プロセスが簡素化されます。

クライアントの設定を確認するには、次のコマンドを使用します。

     cat /sys/module/nfs/parameters/nfs4_disable_idmapping
   

デフォルト値は Y で、数値 ID が有効になります。NetApp Volumes は、数値 ID の使用をサポートしています。

NFS クライアントで rpc.idmapd を構成する

使用する ID またはセキュリティ識別子のタイプに関係なく、NFS クライアントで rpc.idmapd を構成する必要があります。始める前にで説明しているクライアント ユーティリティのインストール手順に沿って作業を進めた場合、クライアント ユーティリティはすでにインストールされていますが、実行されていない可能性があります。一部のディストリビューションでは、最初の NFS ボリュームをマウントすると、systemd を使用して自動的に開始されます。rpc.idmapd に必要な最小構成は、ドメイン設定をセットアップすることです。それ以外の場合、ユーザー root は UID=65535 or 4294967295 の nobody として表示されます。

NFS クライアントで rpc.idmapd を構成する手順は次のとおりです。

  1. クライアントで /etc/idmapd.conf ファイルを開き、ドメイン パラメータを次のいずれかに変更します。

    • ボリュームが LDAP で有効になっていない場合は、domain = defaultv4iddomain.com です。

    • ボリュームで LDAP が有効になっている場合: domain = <FDQN_of_Windows_Domain>

  2. 次のコマンドを実行して、rpc.idmapd の変更を有効にします。

     nfsidmap -c

Linux を LDAP に接続する

NFSv3 拡張グループまたはセキュリティ識別子付き NFSv4.1 を使用している場合、ストレージ プールに接続された Active Directory を使用して、Active Directory を LDAP サーバーとして使用するように NetApp Volume を構成しました。

NFS クライアントとサーバー間でユーザー情報を一貫して維持するには、ユーザーとグループ情報の LDAP 名前サービスとして Active Directory を使用するようにクライアントを構成する必要があります。

次のリソースを使用して LDAP を構成します。

Kerberized NFS を使用する場合は、このセクションで説明するデプロイガイドを使用して LDAP を構成し、クライアントとサーバーの整合性を確保する必要があります。

次のステップ

大容量ボリュームを複数のストレージ エンドポイントに接続する