第 6 章 ボリュームへのアクセスの作成
6.3.3. NFS Ganesha
NFS-Ganesha は、NFSv3、NFSv4.0、および NFSv4.1 に対応する NFS プロトコルのユーザー空間 ファイルサーバーです。
Red Hat Gluster Storage 3.5 は、Red Hat Enterprise Linux 7 上の、コミュニティーの V2.7 の安定した
NFS-Ganesha リリースでサポートされます。NFS-ganesha のサポート対象の各種機能については、「
『Supported Features of NFS-Ganesha』」を参照してください。
注記 注記
NFS-Ganesha をインストールするには、『『Red Hat Gluster Storage 『3.5
Installation Guide』の「Deploying NFS-Ganesha onRed Hat Gluster Storage」を参照し てください』』。
「NFS-Ganesha のサポート対象機能」
「NFS Ganesha の設定」
「NFS-Ganesha のポートおよびファイアウォール情報」
「NFS-Ganesha を実行する前提条件」
「クラスターサービスの設定」
「ganesha-ha.conf ファイルの作成」
「Gluster CLI を使用した NFS-Ganesha の設定」
「NFS-Ganesha によるボリュームのエクスポートとエクスポート解除」
「NFS-Ganesha ステータスの確認」
「NFS-Ganesha エクスポートへのアクセス」
「NFSv3 モードでのエクスポートのマウント」
「NFSv4 モードでのエクスポートのマウント」
「dbus で NFS サーバーのクライアントの検索」
「 dbus を使用して NFS サーバーから承認されたクライアント一覧およびその他の情報の
検索」
「NFS-Ganesha HA 設定の変更」
「クラスターへのノードの追加」
「クラスター内でのノードの削除」
「デフォルトのエクスポート設定の変更」
「特定のクライアントのパーミッション指定」
「NFSv4 ACL の有効化および無効化」
「NFSv4 マウントの擬似パスの提供」
「サブディレクトリーのエクスポート」
「Kerberized NFS-Ganesha の設定」
「NFS-Ganesha サーバーの設定:」
「NFS クライアントの設定」
「NFS-Ganesha サービスのダウンタイム」
「失敗時間の変更」
「トラブルシューティング」
6.3.3.1. NFS-Ganesha のサポート対象機能のサポート対象機能
以下の一覧では、NFS-Ganesha のサポート対象機能を簡単に説明します。
高可用性
高可用性 Active-Active NFS-Ganesha
高可用性のアクティブ/アクティブ環境では、特定のアプリケーションを実行している NFS クライアン トに接続されている NFS-Ganesha サーバーがダウンした場合、アプリケーション/NFS クライアント は、管理者の介入なしに別の NFS-Ganesha サーバーにシームレスに接続されます。
クラスターのマルチヘッド NFS-Ganesha サーバー間でデータの一貫性は、Gluster の Upcall インフラ ストラクチャーを使用して実行されます。Gluster の Upcall インフラストラクチャーは、バックエンド ファイルシステムで変更が検出されると、それぞれの glusterfs クライアント(この場合は
NFS-Ganesha サーバー)に通知を送信する汎用かつ拡張可能なフレームワークです。
ボリュームの動的なエクスポート ボリュームの動的なエクスポート
NFS-Ganesha は、エクスポートの追加と削除を動的にサポートします。動的エクスポートは、DBus
インターフェースにより管理されます。dbus は、システム管理およびピアツーピアアプリケーション 通信用のシステムローカル IPC メカニズムです。
複数のエントリーのエクスポート 複数のエントリーのエクスポート
NFS-Ganesha では、複数の Red Hat Gluster Storage ボリュームまたはサブディレクトリーを同時にエ クスポートできます。
擬似ファイルシステム 擬似ファイルシステム
NFS-Ganesha は NFSv4 擬似ファイルシステムを作成して維持します。これにより、クライアントは
サーバー上のエクスポートされたすべてのオブジェクトにシームレスにアクセスできます。
アクセス制御リスト アクセス制御リスト
NFS-Ganesha NFSv4 プロトコルには、Windows で使用されるものと同様のアクセス制御リスト(ACL)
のサポートが統合されています。これらの ACL は、トラストを識別し、そのトラストに対して許可さ れるアクセス権限を指定するために使用できます。この機能はデフォルトで無効になっています。
注記 注記
Audit および ALARM ACE タイプは現在サポートされていません。
6.3.3.2. NFS Ganesha の設定の設定
NFS Ganesha を設定するには、追加のセクションで説明されている手順に従います。
注記 注記
また、以下のステップを自動化する gdeploy を使用して NFS-Ganesha を設定すること もできます。詳細は「NFS-Ganesha のデプロイ」を参照してください。
6.3.3.2.1. NFS-Ganesha のポートおよびファイアウォール情報のポートおよびファイアウォール情報
ポートおよびファイアウォールサービスを開く必要があります。
以下の表は、NFS-Ganesha クラスターを設定するためのポートの詳細を示しています。
表
表6.6 NFS ポートの詳細ポートの詳細
service ポート番号ポート番号 protocol
sshd 22 TCP
rpcbind/portmapper 111 TCP/UDP
NFS 2049 TCP/UDP
mountd 20048 TCP/UDP
NLM 32803 TCP/UDP
RQuota 875 TCP/UDP
statd 662 TCP/UDP
pcsd 2224 TCP
pacemaker_remote 3121 TCP
corosync 5404 および 5405 UDP
dlm 21064 TCP
注記 注記
Red Hat Gluster Storage サービスのポートの詳細は、セクション『3 に記載されていま す。ポートアクセスの確認』
サービスポートの定義 サービスポートの定義
nfs-ganesha クラスターのすべてのノードで以下のコマンドを実行して、上記のポートを使用するよう
に statd サービスが設定されていることを確認します。
1. 以下のように /etc/sysconfig/nfs ファイルを編集します。
# sed -i '/STATD_PORT/s/^#//' /etc/sysconfig/nfs
2. statd サービスを再起動します。
Red Hat Enterprise Linux 7 の場合:
# systemctl restart nfs-config
# systemctl restart rpc-statd
注記 注記
NFS クライアントが LOCK 機能を使用するには、LOCKD デーモンおよび STATD デー モンが使用するポートを設定し、クライアントマシンで firewalld を使用して開く必要が あります。
1. 以下のコマンドを使用して「/etc/sysconfig/nfs」を編集します。
# sed -i '/STATD_PORT/s/^#//' /etc/sysconfig/nfs
# sed -i '/LOCKD_TCPPORT/s/^#//' /etc/sysconfig/nfs
# sed -i '/LOCKD_UDPPORT/s/^#//' /etc/sysconfig/nfs
2. サービスを再起動します。
Red Hat Enterprise Linux 7 の場合:
# systemctl restart nfs-config
# systemctl restart rpc-statd
# systemctl restart nfslock
3. 次のコマンドを使用して、最初のステップで設定したポートを開きます。
# firewall-cmd --zone=zone_name --add-port=662/tcp --add-port=662/udp \ --add-port=32803/tcp --add-port=32769/udp
# firewall-cmd --zone=zone_name --add-port=662/tcp --add-port=662/udp \ --add-port=32803/tcp --add-port=32769/udp --permanent
4. NFS クライアント UDP マウントが失敗するようにするには、以下のコマンドを
実行してポート 2049 を開くようにしてください。
# firewall-cmd --zone=zone_name --add-port=2049/udp
# firewall-cmd --zone=zone_name --add-port=2049/udp --permanent
ファイアウォールの設定 ファイアウォールの設定
Red Hat Enterprise Linux 7 で、以下に挙げるファイアウォールサービスを有効にします。
1. 以下のコマンドを使用して、アクティブなゾーンの一覧を取得します。
# firewall-cmd --get-active-zones
2. アクティブなゾーンでファイアウォールサービスを許可し、以下のコマンドを実行しま す。
# firewall-cmd --zone=zone_name service=nlm service=nfs service=rpc-bind service=high-availability service=mountd --add-service=rquota
# firewall-cmd --zone=zone_name service=nlm service=nfs service=rpc-bind service=high-availability service=mountd --add-service=rquota --permanent
# firewall-cmd --zone=zone_name --add-port=662/tcp --add-port=662/udp
# firewall-cmd --zone=zone_name --add-port=662/tcp --add-port=662/udp --permanent
6.3.3.2.2. NFS-Ganesha を実行する前提条件を実行する前提条件
環境内で NFS-Ganesha を実行する前に、以下の前提条件を考慮してください。
Red Hat Gluster Storage ボリュームはエクスポートに利用可能で、NFS-Ganesha rpm がイン ストールされている。
フェンシングエージェントが設定されていることを確認します。フェンシングエージェントの 設定に関する詳細は、以下のドキュメントを参照してください。
High Availability Add-On 管理ガイドのフェンシング設定セクション:
https://access.redhat.com/documentation/en- us/red_hat_enterprise_linux/7/html/high_availability_add-on_administration/s1-fenceconfig-haaa
High Availability Add-On リファレンスガイドのフェンスデバイスセクション:
https://access.redhat.com/documentation/en- us/red_hat_enterprise_linux/7/html/high_availability_add-on_reference/s1-guiclustcomponents-haar#s2-guifencedevices-HAAR
注記 注記
NFS Ganesha の高可用性インストール/設定に必要なノードの最小数は 3 で、最
大数のノード数は 8 です。
すべての NFS 実装はポート 2049 を使用し、1 つの時点でアクティブにできるので、特定のマ
シン/ホストで NFS-Ganesha サーバー、gluster-NFS サーバー、または kernel-NFS サーバー を 1 つだけ有効にできます。したがって、NFS-Ganesha を起動する前に kernel-NFS を無効に する必要があります。
以下のコマンドを使用して kernel-nfs を無効にします。
For Red Hat Enterprise Linux 7
# systemctl stop nfs-server
# systemctl disable nfs-server
kernel-nfs が無効になっているかどうかを確認するには、以下のコマンドを実行します。
# systemctl status nfs-server サービスは停止状態であるはずです。
注記 注記
NFS-Ganesha が有効になっていると、Gluster NFS は自動的に停止します。
ボリュームのいずれも、変数が「off」に nfs.disable 設定されていることを確認 してください。
「『Port/Firewall Information for NFS-Ganesha』」の説明どおりにポートを設定してくださ い。
環境に基づいて ganesha-ha.conf ファイルを編集します。
ganesha.conf ファイルで設定されている各サーバーに対して、ネットワーク上の仮想 IP を確
保します。これらの IP はホストの静的 IP とは異なり、信頼できるストレージプール内やサブ ネット内のどの場所でも使用されていないことを確認してください。
クラスターのすべてのノードが DNS を解決できることを確認します。たとえば、/etc/hosts には、クラスター内のすべてのノードの詳細を設定できます。
SELinux が Enforcing モードであることを確認します。
以下のコマンドを使用して、すべてのマシンでネットワークサービスを起動します。
Red Hat Enterprise Linux 7 の場合:
# systemctl start network
以下のコマンドを実行して、gluster 共有ボリュームを作成し、マウントします。
# gluster volume set all cluster.enable-shared-storage enable volume set: success
詳細はを参照してください。「共有ストレージボリュームの設定」
nfs-ganesha 以下の名前でディレクトリーを作成します。 /var/run/gluster/shared_storage ganesha.conf および ganesha-ha.conf ファイル /etc/ganesha をからコピーし
/var/run/gluster/shared_storage/nfs-ganeshaます。
以下のコマンドを使用して glusterfssharedstorage.service サービスを有効にします。
systemctl enable glusterfssharedstorage.service
以下のコマンドを使用して nfs-ganesha サービスを有効にします。
systemctl enable nfs-ganesha
6.3.3.2.3. クラスターサービスの設定クラスターサービスの設定
HA クラスターは Pacemaker と Corosync を使用して維持されます。Pacemaker はリソースマネー ジャーに機能し、Corosync はクラスターの通信層を提供します。Pacemaker/Corosync の詳細は、
Red Hat Enterprise Linux 7 ドキュメントの『Clustering』セクションのドキュメントを参照してくだ さい。 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/
注記 注記
クラスタークォーラムを維持するために、3 つ以上のノードを使用して NFS Ganesha HA クラスターを設定することが推奨されます。
1. 以下のコマンドを使用して pacemaker サービスを有効にします。