このページでは、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
Google Cloud コンソールで [NetApp Volumes] ページに移動します。
[ボリューム] をクリックします。
[
すべて表示] をクリックします。[取り付け手順] を選択します。
Google Cloud コンソールに表示されるマウント手順に沿って操作します。
ワークロードに特定のマウント オプションの要件がない限り、マウント コマンドを見つけてマウント オプションを使用します。
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
を構成する手順は次のとおりです。
クライアントで
/etc/idmapd.conf
ファイルを開き、ドメイン パラメータを次のいずれかに変更します。ボリュームが LDAP で有効になっていない場合は、
domain = defaultv4iddomain.com
です。ボリュームで LDAP が有効になっている場合:
domain = <FDQN_of_Windows_Domain>
。
次のコマンドを実行して、
rpc.idmapd
の変更を有効にします。nfsidmap -c
Linux を LDAP に接続する
NFSv3 拡張グループまたはセキュリティ識別子付き NFSv4.1 を使用している場合、ストレージ プールに接続された Active Directory を使用して、Active Directory を LDAP サーバーとして使用するように NetApp Volume を構成しました。
NFS クライアントとサーバー間でユーザー情報を一貫して維持するには、ユーザーとグループ情報の LDAP 名前サービスとして Active Directory を使用するようにクライアントを構成する必要があります。
次のリソースを使用して LDAP を構成します。
Kerberized NFS を使用する場合は、このセクションで説明するデプロイガイドを使用して LDAP を構成し、クライアントとサーバーの整合性を確保する必要があります。
次のステップ
大容量ボリュームを複数のストレージ エンドポイントに接続する。