13.6. File Share サービスのバックエンドの定義

File Share サービスにはバックエンドが必要です。各バックエンドは /etc/manila/manila.conf の独自のセクションで定義されます。「13章File Share サービス (テクノロジープレビュー) のインストール」で前述されているように、File Share サービスは 2 つの共有ドライバーのいずれかを使用することができます。バックエンドの設定は、選択したドライバーにより異なります。各ドライバー種別のバックエンドの設定に関する詳細情報は、適切なサブセクションを参照してください。

13.6.1. gluster_native ドライバーのバックエンドの定義

gluster_native ドライバーは、FUSE プロトコルを使用して共有にサービスを提供し、TLS を使用した共有へのアクセスをセキュリティー保護します。また、このドライバーで共有をプロビジョニングするとボリューム全体を消費します。このボリュームはすでにバックエンドに存在している必要があります。以下のコードスニペットは、本シナリオに適した、glusternative という名前のバックエンドを定義しています。
[glusternative1] # 1
share_backend_name = GLUSTERNATIVE # 2
share_driver = manila.share.drivers.glusterfs_native.GlusterfsNativeShareDriver # 3
glusterfs_servers = root@RHGSNODE1,root@RHGSNODE2 # 4
driver_handles_share_servers=False # 5
glusterfs_volume_pattern = manila-share-volume-#{size}G-\d+$ # 6

1

ヘッダー ([glusternative1]) は、バックエンドの定義を指定します。File Share サービスは、(enabled_share_backends オプションを使用して)、バックエンドを有効化する際にこの定義を使用します。

2

share_backend_name: バックエンドの名前。複数のバックエンドが有効化される場合は、バックエンドの共有タイプの作成時にこの値を (GLUSTERNATIVE) 追加の仕様として利用します (後述の 「定義済みのバックエンドに対する共有種別の作成」を参照)。

3

share_driver: File Share サービスが定義したバックエンドに使用する共有ドライバー。今回の例では、manila.share.drivers.glusterfs_native.GlusterfsNativeShareDriverglusterfs_native ドライバーを設定します。

4

glusterfs_servers: Red Hat Gluster Storage ボリュームのプールを提供するサーバーを指定します。異なる Red Hat Gluster Storage クラスターからのノードをコンマ区切りの IP/ホスト名 (RHGSNODE1, RHGSNODE2 など) で指定します (特に、共有ボリュームが利用可能なノードである必要があります)。

5

driver_handles_share_servers: ドライバーが共有サーバーを処理すべきかどうかを定義します。 glusterfs_native ドライバーは共有サーバーを使用しないため、ここでは False に設定します。

6

glusterfs_volume_pattern: File Share サービスのバックエンドとして利用できるように事前作成済みのボリュームが使用する命名規則を定義します。
manila-share-volume-#{size}G-\d+$ の文字列は、名前をベースにして、バックエンドで利用可能なボリュームをフィルタリングしやすくする正規表現のパターンです。このパターンは、以下に該当するボリューム名を検索します。
  • manila-share-volume- で開始する
  • 次にサイズ (ギガバイト) + G が続く
  • 数字で終了する (一意識別子の役割を果たす)
この特定のパターンは、ボリュームの名前だけをもとに、File Share サービスがバックエンドで利用可能なボリュームをフィルタリングできるようにすることが目的です。たとえば、「glusterfs_native」 で使用される命名規則は、manila-share-volume-1GB-01 という名前の 1 GB のボリュームを作成する際に呼び出され、1 GB 必要とする共有を作成する際に検出されます。

注記

ボリューム名を使用してサイズをフィルタリングするように設定すると、File Share サービスは、指定したサイズよりも大きいボリュームも照合して、最も近いサイズを選択します。たとえば、3 GB の共有をプロビジョニングして、manila-share-volume-3G-* のボリュームが存在しない場合に、File Share サービスは、manila-share-volume-4G-*manila-share-volume-5G-* の両方を照合しますが、manila-share-volume-4G-* を選択します。
次に、/etc/manila/manila.conf[DEFAULT] セクションに以下のオプションを設定して、バックエンドの定義 [glusternative1] を有効にします。
enabled_share_backends=glusternative1 # 1
enabled_share_protocols=GLUSTERFS # 2

1

enabled_share_backends: どのバックエンドを有効にするかを定義します。ここで指定した値はそれぞれ、バックエンドの設定を定義するセクションと一致している必要があります。コンマ区切りリストとしてすべてを記載することで、複数のバックエンドをここで有効にすることができます (例: enabled_share_backends=glusternative1,generic)。

2

enabled_share_protocols: 有効化したバックエンドすべてに使用するプロトコルを定義します。glusterfs_native ドライバーがサポートするのは、GLUSTERFS プロトコルだけです。
また、バックエンドの設定後には、TLS ベースの認証用にコンピュートインスタンスを設定する必要があります。以下のサブセクションではその方法について説明します。

13.6.1.1. TLS ベースの認証用のコンピュートインスタンスの設定

Red Hat Gluster Storage は、バックエンドのアクセスをセキュリティー保護するため TLS ベースの認証とネットワークの暗号化をサポートします。そのため、File Share サービスの gluster_native ドライバーは TLS との互換があり、インスタンスを TLS で認証して、セキュアに共有を利用することができます。
このように、Red Hat Gluster Storage のバックエンドで TLS 認証が有効化されている場合には、プロビジョニングした共有を使用する全インスタンスを先に認証できる状態でなければなりません。Red Hat Gluster Storage ホストとそのクライアントの間のセキュアな暗号化通信を正しく設定する方法については、「Configuring Network Encryption in Red Hat Gluster Storage」および「Authorizing a New Client」を参照してください。
バックエンドの設定後に、「パスワードなしでのバックエンドへの SSH アクセスを有効化する手順」 を参照して、パスワードなしのバックエンドへのアクセスを有効にしてください。

13.6.2. glusterfs ドライバーの NFS バックエンド定義

glusterfs ドライバーは、NFS または NFS-Ganesha のいずれかを使用して共有を提供することができます。以下のコードスニペットは、NFS 経由の共有を提供するバックエンドに適しています。
[glusternfs] # 1
share_backend_name = GLUSTERNFS # 2
share_driver = manila.share.drivers.glusterfs.GlusterfsShareDriver # 3
glusterfs_target = root@RHGSNODE1:/manila-nfs-volume-01  # 4
glusterfs_nfs_server_type = Gluster # 5
driver_handles_share_servers=False # 6

1

ヘッダー ([glusternfs]) は、バックエンドの定義を指定します。File Share サービスは、(enabled_share_backends オプションを使用して)、バックエンドを有効化する際にこの定義を使用します。

2

share_backend_name: バックエンドの名前。複数のバックエンドが有効化される場合は、バックエンドの共有タイプの作成時にこの値を (GLUSTERNFS) 追加の仕様として利用します (後述の 「定義済みのバックエンドに対する共有種別の作成」を参照)。

3

share_driver: File Share サービスが定義したバックエンドに使用する共有ドライバー。今回の例では、(「glusterfs」 で説明したように) manila.share.drivers.glusterfs.GlusterfsShareDriverglusterfs ドライバーを設定します。

4

glusterfs_target: この共有用にサブディレクトリーを作成する Red Hat Gluster Storage ボリュームを指定します。RHGSNODE1 は、Red Hat Gluster Storage ホストの IP アドレスに置き換えます。

5

glusterfs_nfs_server_type: Red Hat Gluster Storage バックエンドが使用する NFS サーバーの種別を定義します。このデプロイメントでは、種別は Gluster にします。このシナリオで使用する NFS サーバーについては、「NFS」を参照してください。

6

driver_handles_share_servers: ドライバーが共有サーバーを処理すべきかどうかを定義します。glusterfs ドライバーは共有サーバーを使用しないため、False に設定します。
/etc/manila/manila.conf[DEFAULT] セクションに以下のオプションを設定して、バックエンドの定義 [glusternfs] を有効にします。
enabled_share_backends=glusternfs # 1
enabled_share_protocols=NFS # 2

1

enabled_share_backends: どのバックエンドを有効にするかを定義します。ここで指定した値はそれぞれ、バックエンドの設定を定義するセクションと一致している必要があります。デフォルトでは、これは enabled_share_backends=generic に設定されています。コンマ区切りリストとしてすべてを記載することで、複数のバックエンドをここで有効にすることができます (例: enabled_share_backends=glusternfs,generic)。

2

enabled_share_protocols: 有効化したバックエンドすべてに使用するプロトコルはどれかを定義します。glusterfs ドライバーは、NFS プロトコルをサポートします。この設定はデフォルトでは設定されていません。
バックエンドの設定後に、「パスワードなしでのバックエンドへの SSH アクセスを有効化する手順」 を参照して、パスワードなしのバックエンドへのアクセスを有効にしてください。

13.6.3. glusterfs ドライバーの NFS-Ganesha バックエンド定義

File Share サービスのホスト上では、サービスの設定は /etc/manila/manila.conf で行われます。各バックエンドは、それぞれのセクションで定義されます。Packstack は、[generic] というデフォルトのバックエンドを定義します。以下のコードスニペットを追加して、File Share サービスに glusternfsganesha という新規バックエンドセクションを定義することができます。
[glusternfsganesha] # 1
share_backend_name = GLUSTERNFSGANESHA # 2
share_driver = manila.share.drivers.glusterfs.GlusterfsShareDriver # 3
glusterfs_target = root@RHGSNODE1:/manila-nfs-volume-01  # 4
glusterfs_nfs_server_type = Ganesha # 5
ganesha_service_name = nfs-ganesha # 6
glusterfs_ganesha_server_username = NFSGADMIN # 7
glusterfs_ganesha_server_password = NFSGPW # 8
driver_handles_share_servers=False # 9

1

ヘッダー ([glusternfsganesha]) は、バックエンドの定義を指定します。File Share サービスは、(enabled_share_backends オプションを使用して)、バックエンドを有効化する際にこの定義を使用します。

2

share_backend_name: バックエンドの名前。複数のバックエンドが有効化される場合は、バックエンドの共有タイプの作成時にこの値を (GLUSTERNFSGANESHA) 追加の仕様として利用します (後述の 「定義済みのバックエンドに対する共有種別の作成」を参照)。

3

share_driver: File Share サービスが定義したバックエンドに使用する共有ドライバー。今回の例では、manila.share.drivers.glusterfs.GlusterfsShareDriverglusterfs ドライバーを設定します。

4

glusterfs_target: この共有用にサブディレクトリーを作成する Red Hat Gluster Storage ボリュームを指定します。RHGSNODE1 は、Red Hat Gluster Storage ホストの IP アドレスに置き換えます。

5

glusterfs_nfs_server_type: Red Hat Gluster Storage バックエンドが使用する NFS サーバーの種別を定義します。このデプロイメントでは、種別は Ganesha にします。このシナリオで使用する NFS サーバーについては、「NFS-Ganesha」を参照してください。

6

ganesha_service_name: NFS-Ganesha サービス名を定義します。通常、これは nfs-ganesha に設定します。

7

glusterfs_ganesha_server_username: File Share サービスが NFS-Ganesha サービスの使用に必要なユーザー名 (NFSGADMIN) を設定します。

8

glusterfs_ganesha_server_password: +glusterfs_ganesha_server_username で定義したユーザー名に対応するパスワード (NFSGPW) を設定します。

9

driver_handles_share_servers: ドライバーが共有サーバーを処理すべきかどうかを定義します。glusterfs ドライバーは共有サーバーを使用しないため、False に設定します。
/etc/manila/manila.conf[DEFAULT] セクションに以下のオプションを設定して、バックエンドの定義 [glusternfsganesha] を有効にします。
enabled_share_backends=glusternfsganesha # 1
enabled_share_protocols=NFS # 2

1

enabled_share_backends: どのバックエンドを有効にするかを定義します。ここで指定した値はそれぞれ、バックエンドの設定を定義するセクションと一致している必要があります。デフォルトでは、これは enabled_share_backends=generic に設定されています。コンマ区切りリストとしてすべてを記載することで、複数のバックエンドをここで有効にすることができます (例: enabled_share_backends=glusternfsganesha,generic)。

2

enabled_share_protocols: 有効化したバックエンドすべてに使用するプロトコルはどれかを定義します。glusterfs ドライバーは、NFS プロトコルをサポートします。この設定はデフォルトでは設定されていません。
File Share サービスの設定後に、Red Hat Gluster Storage クライアントパッケージをインストールします。
# yum -y install glusterfs glusterfs-fuse
次に、NFS-Ganesha バックエンド (RHGSNODE1) にログインします。そこから、以下のファイルを作成します。
+/etc/ganesha/export.d/INDEX.conf+
+/etc/ganesha/ganesha.conf+
INDEX.conf は空のまま保ち、ganesha.conf ファイルには以下を含める必要があります。
%include /etc/ganesha/export.d/INDEX.conf
バックエンドの設定後に、「パスワードなしでのバックエンドへの SSH アクセスを有効化する手順」 を参照して、パスワードなしのバックエンドへのアクセスを有効にしてください。