2.2. NFS バックエンドに CephFS を使用するためのオプションおよびカスタム network_data ファイルを使用した Red Hat OpenStack Platform (RHOSP) のインストール
NFS バックエンドに CephFS を使用する設定をインストールするには、以下の手順を実施します。
- ceph-ansible パッケージをインストールする。「ceph-ansible パッケージのインストール」 を参照
-
カスタムロールファイル
roles_data.yamlおよびnetwork_data.yamlファイルを生成する。「カスタムロールファイルの生成」 を参照 -
カスタムロールおよび環境ファイルと共に
openstack overcloud deployコマンドを使用して、Ceph、Shared File Systems サービス (manila)、および CephFS をデプロイする。「更新された環境のデプロイ」 を参照 - StorageNFS 分離ネットワークを設定し、デフォルトのファイル共有種別を作成する。「デプロイメント後設定の完了」 を参照
以下の例では、Red Hat Platform (RHOSP) 環境の標準の stack ユーザーが使用されています。
RHOSP のインストールまたは環境の更新の一環としてタスクを実行します。
2.2.1. ceph-ansible パッケージのインストール リンクのコピーリンクがクリップボードにコピーされました!
コンテナー化された Ceph をデプロイするには、アンダークラウドノードに ceph-ansible パッケージをインストールします。
手順
-
アンダークラウドノードに
stackユーザーとしてログインします。 ceph-ansible パッケージをインストールします。
[stack@undercloud-0 ~]$ sudo dnf install -y ceph-ansible [stack@undercloud-0 ~]$ sudo dnf list ceph-ansible ... Installed Packages ceph-ansible.noarch 4.0.23-1.el8cp @rhelosp-ceph-4-tools
2.2.1.1. カスタムロールファイルの生成 リンクのコピーリンクがクリップボードにコピーされました!
ControllerStorageNFS カスタムロールにより、StorageNFS 分離ネットワークを設定します。このロールはデフォルトの Controller.yaml ロールファイルに類似していますが、StorageNFS ネットワークおよび CephNfs サービス (OS::TripleO::Services:CephNfs コマンドで表される) が追加されています。
[stack@undercloud ~]$ cd /usr/share/openstack-tripleo-heat-templates/roles
[stack@undercloud roles]$ diff Controller.yaml ControllerStorageNfs.yaml
16a17
> - StorageNFS
50a45
> - OS::TripleO::Services::CephNfs
openstack overcloud roles generate コマンドに関する情報は、Advanced Overcloud Customizationの Roles を参照してください。
openstack overcloud roles generate コマンドにより、-o 以降に指定したサービスが含まれるカスタム roles_data.yaml ファイルが作成されます。以下の例では、作成される roles_data.yaml ファイルには、ControllerStorageNfs、Compute、および CephStorage のサービスが含まれます。
既存の roles_data.yaml ファイルがある場合には、それを変更して設定ファイルに ControllerStorageNfs、Compute、および CephStorage サービスを追加します。詳しい情報は、Advanced Overcloud Customizationの Roles を参照してください。
手順
-
アンダークラウドノードに
stackユーザーとしてログインします。 openstack overcloud roles generateコマンドを使用して、roles_data.yamlファイルを作成します。[stack@undercloud ~]$ openstack overcloud roles generate --roles-path /usr/share/openstack-tripleo-heat-templates/roles -o /home/stack/roles_data.yaml ControllerStorageNfs Compute CephStorage
2.2.2. 更新された環境のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
環境をデプロイする準備が整ったら、NFS-Ganesha と共に CephFS を実行するのに必要なカスタム環境およびロールを指定して、openstack overcloud deploy コマンドを使用します。
オーバークラウドのデプロイコマンドでは、その他の必要なオプションに加えて以下のオプションを指定します。
| 機能 | オプション | 補足情報 |
|---|---|---|
|
|
| |
|
前のセクションで作成した |
| |
|
|
| コンテナー化された Red Hat Ceph を持つオーバークラウドのデプロイ の オーバークラウドデプロイメントの開始 |
|
|
| コンテナー化された Red Hat Ceph を持つオーバークラウドのデプロイ の オーバークラウドデプロイメントの開始 |
| NFS バックエンドに CephFS を使用する Shared File Systems (manila) サービスをデプロイする。director と共に NFS-Ganesha を設定する。 |
|
以下は、CephFS を使用するための NFS-Ganesha、Ceph クラスター、Ceph MDS、および StorageNFS 分離ネットワークをデプロイするオプションを指定した openstack overcloud deploy コマンドの例です。
[stack@undercloud ~]$ openstack overcloud deploy \
--templates /usr/share/openstack-tripleo-heat-templates \
-n /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml \
-r /home/stack/roles_data.yaml \
-e /home/stack/containers-default-parameters.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
-e /home/stack/network-environment.yaml \
-e/usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
openstack overcloud deploy コマンドについての詳しい情報は、Director のインストールと使用方法 の デプロイメントコマンド を参照してください。
2.2.2.1. StorageNFS および network_data_ganesha.yaml ファイル リンクのコピーリンクがクリップボードにコピーされました!
コンポーザブルネットワークを使用して、カスタムネットワークを定義して、それを任意のロールに割り当てます。標準の network_data.yaml ファイルを使用する代わりに、network_data_ganesha.yaml ファイルを使用して StorageNFS コンポーザブルネットワークを設定することができます。これらのロールは、共に /usr/share/openstack-tripleo-heat-templates ディレクトリーから利用可能です。
network_data_ganesha.yaml ファイルには、StorageNFS 分離ネットワークを定義する追加のセクションが含まれます。デフォルトの設定がほとんどのインストールで機能しますが、YAML ファイルを編集してご自分のネットワーク設定 (VLAN ID、サブネット、その他の設定など) を追加する必要があります。
name: StorageNFS
enabled: true
vip: true
name_lower: storage_nfs
vlan: 70
ip_subnet: '172.17.0.0/20'
allocation_pools: [{'start': '172.17.0.4', 'end': '172.17.0.250'}]
ipv6_subnet: 'fd00:fd00:fd00:7000::/64'
ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:7000::4', 'end': 'fd00:fd00:fd00:7000::fffe'}]
コンポーザブルネットワークについての詳しい情報は、オーバークラウドの高度なカスタマイズの コンポーザブルネットワーク を参照してください。
2.2.2.2. CephFS バックエンド環境ファイル リンクのコピーリンクがクリップボードにコピーされました!
CephFS バックエンド manila-cephfsganesha-config.yaml を定義するための統合環境ファイルは /usr/share/openstack-tripleo-heat-templates/environments/ にあります。
manila-cephfsganesha-config.yaml 環境ファイルには、Shared File Systems サービス (manila) のデプロイメントに関する設定が含まれます。バックエンドのデフォルト設定は、ほとんどの環境で機能します。Shared File Systems サービスをデプロイする際に director が使用するデフォルト値を以下の例で示します。
[stack@undercloud ~]$ cat /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
# A Heat environment file which can be used to enable a
# a Manila CephFS-NFS driver backend.
resource_registry:
OS::TripleO::Services::ManilaApi: ../deployment/manila/manila-api-container-puppet.yaml
OS::TripleO::Services::ManilaScheduler: ../deployment/manila/manila-scheduler-container-puppet.yaml
# Only manila-share is pacemaker managed:
OS::TripleO::Services::ManilaShare: ../deployment/manila/manila-share-pacemaker-puppet.yaml
OS::TripleO::Services::ManilaBackendCephFs: ../deployment/manila/manila-backend-cephfs.yaml
# ceph-nfs (ganesha) service is installed and configured by ceph-ansible
# but it's still managed by pacemaker
OS::TripleO::Services::CephNfs: ../deployment/ceph-ansible/ceph-nfs.yaml
parameter_defaults:
ManilaCephFSBackendName: cephfs
ManilaCephFSDriverHandlesShareServers: false
ManilaCephFSCephFSAuthId: 'manila'
ManilaCephFSCephFSEnableSnapshots: false
# manila cephfs driver supports either native cephfs backend - 'CEPHFS'
# (users mount shares directly from ceph cluster), or nfs-ganesha backend -
# 'NFS' (users mount shares through nfs-ganesha server)
ManilaCephFSCephFSProtocolHelperType: 'NFS'
parameter_defaults ヘッダーから設定が始まります。本セクションでは、設定を編集して resource_registry で設定したデフォルト値を上書きすることができます。これには、CephFS バックエンドのデフォルトを設定する OS::Tripleo::Services::ManilaBackendCephFs で定義した値も含まれます。
- 1
ManilaCephFSBackendName: CephFS バックエンドの manila 設定の名前を定義します。ここでは、デフォルトのバックエンド名はcephfsです。- 2
ManilaCephFSDriverHandlesShareServers: 共有用サーバーのライフサイクルをコントロールします。falseに設定すると、ドライバーはライフサイクルを処理しません。サポートされるオプションはこれだけです。- 3
ManilaCephFSCephFSAuthId: Ceph クラスターにアクセスするために director がmanilaサービス用に作成する Ceph 認証 ID を定義します。- 4
ManilaCephFSCephFSEnableSnapshots: スナップショットのアクティブ化をコントロールします。値がfalseであれば、スナップショットが有効ではないことを意味します。この機能は現在サポートされていません。
環境ファイルについての詳細は、Director のインストールと使用方法 の 環境ファイル を参照してください。
2.2.3. デプロイメント後設定の完了 リンクのコピーリンクがクリップボードにコピーされました!
NFS 共有を作成し、ユーザーにアクセス権限を付与し、NFS 共有をマウントする前に、2 つのデプロイメント後設定タスクを完了する必要があります。
- Networking サービス (neutron) の StorageNFS ネットワークをデータセンターの StorageNFS 分離ネットワークにマッピングする。
- デフォルトのファイル共有種別を作成する。
これらのステップを完了したら、テナントコンピュートインスタンスは NFS 共有を作成し、そのアクセスを許可し、マウントすることができます。
2.2.3.1. ストレージプロバイダーネットワークの作成 リンクのコピーリンクがクリップボードにコピーされました!
新しい StorageNFS 分離ネットワークを Networking (neutron) プロバイダーネットワークにマッピングする必要があります。NFS-Ganesha ゲートウェイの提供するファイル共有のエクスポート場所にアクセスするために、コンピュートノードの仮想マシンをネットワークにアタッチします。
Shared File Systems サービスのネットワークセキュリティーに関する情報は、セキュリティーおよび強化ガイド の Shared File System (Manila) の強化 を参照してください。
手順
openstack network create コマンドにより、StorageNFS neutron ネットワークの設定を定義します。
アンダークラウドノードから、以下のコマンドを入力します。
[stack@undercloud ~]$ source ~/overcloudrcアンダークラウドノードで、StorageNFS ネットワークを作成します。
(overcloud) [stack@undercloud-0 ~]$ openstack network create StorageNFS --share --provider-network-type vlan --provider-physical-network datacentre --provider-segment 70以下のオプションを設定してこのコマンドを入力することができます。
-
--provider-physical-networkオプション: tripleo-heat-templates の NeutronBridgeMappings で別途 br-isolated ブリッジのタグを設定していない限り、デフォルト値datacentreを使用します。 -
--provider-segmentオプション: heat テンプレート (/usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml) で StorageNFS 分離ネットワークに設定した VLAN の値を使用します。デプロイ時に分離ネットワークの定義を変更していない限り、この値は 70 です。 -
--provider-network-typeオプション: 値vlanを使用します。
-
2.2.3.2. 共有プロバイダー StorageNFS ネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
neutron 共有プロバイダーネットワークに対応する StorageNFSSubnet を作成します。サブネットが network_data.yml ファイルの storage_nfs ネットワーク定義と同じであることを確認し、StorageNFS サブネットと対応するアンダークラウドのサブネットの割り当て範囲が重複しないようにしてください。StorageNFS サブネットは NFS 共有の提供用であるため、ゲートウェイは必要ありません。
前提条件
- 割り当てプールの IP 範囲 (開始および終了アドレス)
- サブネットの IP 範囲