2.2. NFS バックエンドに CephFS を使用するためのオプションおよびカスタム network_data ファイルを使用した OpenStack のインストール


NFS バックエンドに CephFS を使用する設定をインストールするには、以下の操作が必要です。

  1. ceph-ansible パッケージをインストールする。
  2. openstack overcloud image prepare コマンドを使用して、オーバークラウドコンテナーイメージを準備する。
  3. カスタムロールファイル (roles_data.yaml) および network_data.yaml ファイルを生成する。
  4. カスタムロールおよび環境ファイルと共に openstack overcloud deploy コマンドを使用して、Ceph、Shared File System サービス (manila)、および CephFS をデプロイする。
  5. StorageNFS 分離ネットワークを設定し、デフォルトのファイル共有種別を作成する。

以下の例では、OpenStack 環境の標準の stack ユーザーが使用されています。

これらのタスクは、OpenStack のインストールまたは環境の更新と共に実施する必要があります。

2.2.1. ceph-ansible パッケージのインストール

OpenStack director でコンテナー化された Ceph をデプロイするには、アンダークラウドノードに ceph-ansible パッケージをインストールする必要があります。

手順

  1. アンダークラウドノードにログインします。
  2. root 権限で yum install を使用して、ceph-ansible パッケージをインストールします。

    [stack@undercloud-0 ~]$ sudo yum install -y ceph-ansible
    [stack@undercloud-0 ~]$ sudo yum list ceph-ansible
    ...
    Installed Packages
    ceph-ansible.noarch 3.1.0-0.1.el7 rhelosp-13.
    Copy to Clipboard Toggle word wrap

2.2.2. オーバークラウドコンテナーイメージの準備

OpenStack ではすべてのサービスがコンテナー化されているので、openstack overcloud image prepare コマンドを使用してオーバークラウド用に Docker イメージを準備する必要があります。追加のオプションを指定して以下のコマンドを実行すると、ceph および manila サービスのデフォルトイメージが docker レジストリーに追加されます。Ceph MDS および NFS-Ganesha サービスは、同じ Ceph のベースコンテナーイメージを使用します。

コンテナーイメージに関する補足情報は、director のインストールと使用方法追加のサービス用のコンテナーイメージ セクションを参照してください。

手順

  1. -e オプションにより以下の環境ファイルを追加して、アンダークラウドから openstack overcloud image prepare コマンドを実行します。

    $ openstack overcloud container image prepare \
      ...
      -e  /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
      -e  /usr/share/openstack-tripleo-heat-templates/environments/services-docker/manila.yaml \
      ...
    Copy to Clipboard Toggle word wrap
  2. grep コマンドを使用して、ceph および manila サービスのデフォルトイメージが containers-default-parameters.yaml ファイルに含まれていることを確認します。

    [stack@undercloud-0 ~]$ grep -E 'ceph|manila' composable_roles/docker-images.yaml
    DockerCephDaemonImage: 192.168.24.1:8787/rhceph:3-12
    DockerManilaApiImage: 192.168.24.1:8787/rhosp13/openstack-manila-api:2018-08-22.2
    DockerManilaConfigImage: 192.168.24.1:8787/rhosp13/openstack-manila-api:2018-08-22.2
    DockerManilaSchedulerImage: 192.168.24.1:8787/rhosp13/openstack-manila-scheduler:2018-08-22.2
    DockerManilaShareImage: 192.168.24.1:8787/rhosp13/openstack-manila-share:2018-08-22.2
    Copy to Clipboard Toggle word wrap

2.2.2.1. カスタムロールファイルの生成

StorageNFS 分離ネットワークのセットアップには、ControllerStorageNFS カスタムロールを使用します。このロールはデフォルトの 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
Copy to Clipboard Toggle word wrap

openstack overcloud roles generate コマンドに関する情報は、オーバークラウドの高度なカスタマイズロール セクションを参照してください。

手順

openstack overcloud roles generate コマンドにより、-o 以降に指定したサービスが含まれるカスタム roles_data.yaml ファイルが作成されます。以下の例では、作成される roles_data.yaml ファイルには、ControllerStorageNfsCompute、および CephStorage のサービスが含まれます。

注記

既存の roles_data.yaml ファイルがある場合には、それを変更して設定ファイルに ControllerStorageNfsCompute、および CephStorage サービスを追加します。オーバークラウドの高度なカスタマイズロール セクションを参照してください。

  1. アンダークラウドノードにログインします。
  2. 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
    Copy to Clipboard Toggle word wrap

2.2.3. 更新された環境のデプロイ

環境をデプロイする準備が整ったら、NFS-Ganesha と共に CephFS を実行するのに必要なカスタム環境およびロールを指定して、openstack overcloud deploy コマンドを使用します。これらの環境およびロールについて、以下で説明します。

実際のオーバークラウドデプロイコマンドでは、その他の必要なオプションに加えて以下のオプションを指定します。

Expand
機能オプション補足情報

overcloud container image prepare コマンドで更新したデフォルトコンテナーイメージを追加する

-e /home/stack/containers-default-parameters.yaml

「オーバークラウドコンテナーイメージの準備」

network_data_ganesha.yaml を使用して新たな StorageNFS ネットワークを追加する。

-n /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml

「StorageNFS および network_data_ganesha.yaml ファイル」

前のセクションで作成した roles_data.yaml ファイルにより定義したカスタムロールを追加する。

-r /home/stack/roles_data.yaml

「カスタムロールファイルの生成」

ceph-ansible.yaml を使用して Ceph デーモンをデプロイする。

-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml

コンテナー化された Red Hat Ceph を持つオーバークラウドのデプロイオーバークラウドデプロイメントの開始

ceph-mds.yaml を使用して Ceph メタデータサーバーをデプロイする

-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml

コンテナー化された Red Hat Ceph を持つオーバークラウドのデプロイオーバークラウドデプロイメントの開始

NFS バックエンドに CephFS を使用した manila サービスをデプロイする。director で NFS-Ganesha を設定する。

-e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml

manila-cephfsganesha-config.yaml

以下は、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  /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.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
Copy to Clipboard Toggle word wrap

openstack overcloud deploy コマンドに関する補足情報は、director のインストールと使用方法CLI ツールを使用したオーバークラウドの作成 セクションを参照してください。

2.2.3.1. StorageNFS および network_data_ganesha.yaml ファイル

コンポーザブルネットワークを使用すると、カスタムネットワークを定義して、それを任意のロールに割り当てることができます。StorageNFS コンポーザブルネットワークは、標準の network_data.yaml ファイルではなく、network_data_ganesha.yaml ファイルを使用して設定します。これらのロールは、共に /usr/share/openstack-tripleo-heat-templates ディレクトリーから利用可能です。

network_data_ganesha.yaml ファイルには、StorageNFS 分離ネットワークを定義する追加のセクションが含まれます。デフォルトの設定がほとんどのインストールで機能しますが、YAML ファイルを編集してご自分のネットワーク設定 (VLAN ID、サブネット等) を追加しなければならない場合があります。

name: StorageNFS
enabled: true
vip: true
ame_lower: storage_nfs
vlan: 70
ip_subnet: '172.16.4.0/24'
allocation_pools: [{'start': '172.16.4.4', 'end': '172.16.4.250'}]
ipv6_subnet: 'fd00:fd00:fd00:7000::/64'
ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:7000::10', 'end': 'fd00:fd00:fd00:7000:ffff:ffff:ffff:fffe'}]
Copy to Clipboard Toggle word wrap

コンポーザブルネットワークに関する詳しい情報は、オーバークラウドの高度なカスタマイズコンポーザブルネットワーク の章を参照してください。

2.2.3.2. manila-cephfsganesha-config.yaml

CephFS バックエンドを定義するための統合環境ファイルは、アンダークラウドノードの以下のパスにあります。

/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
Copy to Clipboard Toggle word wrap

manila-cephfsganesha-config.yaml 環境ファイルには、Shared File System サービスのデプロイに関する設定が含まれます。バックエンドのデフォルト設定は、ほとんどの環境で機能するはずです。Shared File System サービスをデプロイする際に 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: ../docker/services/manila-api.yaml
  OS::TripleO::Services::ManilaScheduler: ../docker/services/manila-scheduler.yaml
  # Only manila-share is pacemaker managed:
  OS::TripleO::Services::ManilaShare: ../docker/services/pacemaker/manila-share.yaml
  OS::TripleO::Services::ManilaBackendCephFs: ../puppet/services/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: ../docker/services/ceph-ansible/ceph-nfs.yaml

parameter_defaults:
  ManilaCephFSBackendName: cephfs 
1

  ManilaCephFSDriverHandlesShareServers: false 
2

  ManilaCephFSCephFSAuthId: 'manila' 
3

  ManilaCephFSCephFSEnableSnapshots: false 
4

  # 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'
Copy to Clipboard Toggle word wrap

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 であれば、スナップショットが有効ではないことを意味します。この機能は現在サポートされていません。

環境ファイルについての詳細は、オーバークラウドの高度なカスタマイズ環境ファイル を参照してください。

2.2.4. デプロイメント後設定の完了

ユーザーにアクセスを許可する前に、以下に示す 2 つのデプロイメント後設定項目を完了する必要があります。

  • neutron StorageNFS ネットワークをデータセンターの StorageNFS 分離ネットワークにマッピングする。
  • デフォルトのファイル共有種別を作成する。

これらのステップが完了したら、テナントコンピュートインスタンスは NFS 共有を作成し、そのアクセスを許可し、マウントすることができます。

2.2.4.1. 分離ネットワークの設定

新しい StorageNFS 分離ネットワークを neutron 共有プロバイダーネットワークにマッピングする必要があります。NFS-Ganesha ゲートウェイの提供するファイル共有のエクスポート場所にアクセスするために、コンピュートノードの仮想マシンをこの neutron ネットワークにアタッチします。

Shared File Systems サービスのネットワークセキュリティーに関する一般情報は、Security and Hardening GuideHardening the Shared File System (Manila) の章を参照してください。

手順

openstack network create コマンドにより、StorageNFS neutron ネットワークの設定を定義します。以下のオプションを設定してこのコマンドを実行します。

  • --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 を使用します。

このコマンドを使用するには、以下の手順を実施します。

  1. アンダークラウドノードから以下のコマンドを実行します。

    [stack@undercloud ~]$ source ~/overcloudrc
    Copy to Clipboard Toggle word wrap
  2. アンダークラウドノードで openstack network create コマンドを実行して、StorageNFS ネットワークを作成します。

    [stack@undercloud-0 ~]$ openstack network create StorageNFS --share --provider-network-type vlan --provider-physical-network datacentre  --provider-segment 70
    +---------------------------+--------------------------------------+
    | Field                   	| Value
    +---------------------------+--------------------------------------+
    | admin_state_up          	| UP
    | availability_zone_hints   |
    | availability_zones      	|
    | created_at              	| 2018-09-17T21:12:49Z
    | description             	|
    | dns_domain              	| None
    | id                      	| cd272981-0a5e-4f3d-83eb-d25473f5176e
    | ipv4_address_scope       	| None
    | ipv6_address_scope      	| None
    | is_default              	| False
    | is_vlan_transparent   	  | None
    | mtu                   	  | 1500
    | name                    	| StorageNFS
    | port_security_enabled   	| True
    | project_id            	  | 3ca3408d545143629cd0ec35d34aea9c
    | provider-network-type 	  | vlan
    | provider-physical-network | datacentre
    | provider-segment          | 70
    | qos_policy_id         	  | None
    | revision_number       	  | 3
    | router:external       	  | Internal
    | segments                	| None
    | shared                  	| True
    | status                  	| ACTIVE
    | subnets                 	|
    | tags                    	|
    | updated_at              	| 2018-09-17T21:12:49Z
    +---------------------------+--------------------------------------+
    Copy to Clipboard Toggle word wrap

2.2.4.2. 共有プロバイダー StorageNFS ネットワークのセットアップ

neutron 共有プロバイダーネットワークに対応する StorageNFSSubnet を作成します。アンダークラウドの storage_nfs_subnet と同じサブネットを設定します。ただし、このサブネットと対応するアンダークラウドのサブネットの割り当て範囲が重複しないようにしてください。このサブネットは NFS 共有提供専用なので、ゲートウェイは必要ありません。

要件

  • 割り当てプールの IP 範囲 (開始および終了アドレス)
  • サブネットの IP 範囲

手順

  1. オーバークラウドノードにログインします。
  2. 下記のコマンド例を使用して、ネットワークをプロビジョニングします。必要に応じて値を更新してください。

    1. start=172.16.4.150,end=172.16.4.250 を、実際のネットワークの IP の値に置き換えます。
    2. 172.16.4.0/24 を、実際のネットワークの正しいサブネット範囲に置き換えます。
[stack@undercloud-0 ~]$ openstack subnet create --allocation-pool start=172.16.4.150,end=172.16.4.250 --dhcp --network StorageNFS --subnet-range 172.16.4.0/24 --gateway none StorageNFSSubnet
+-------------------+--------------------------------------+
| Field         	  | Value
+-------------------+--------------------------------------+
| allocation_pools  | 172.16.4.150-172.16.4.250
| cidr            	| 172.16.4.0/24
| created_at    	  | 2018-09-17T21:22:14Z
| description   	  |
| dns_nameservers   |
| enable_dhcp   	  | True
| gateway_ip    	  | None
| host_routes   	  |
| id            	  | 8c696d06-76b7-4d77-a375-fd2e71e3e480
| ip_version    	  | 4
| ipv6_address_mode | None
| ipv6_ra_mode  	  | None
| name          	  | StorageNFSSubnet
| network_id      	| cd272981-0a5e-4f3d-83eb-d25473f5176e
| project_id      	| 3ca3408d545143629cd0ec35d34aea9c
| revision_number   | 0
| segment_id    	  | None
| service_types 	  |
| subnetpool_id 	  | None
| tags          	  |
| updated_at    	  | 2018-09-17T21:22:14Z
+-------------------+--------------------------------------+
Copy to Clipboard Toggle word wrap

2.2.4.3. デフォルトファイル共有種別のセットアップ

Shared File Systems サービスでは、ファイル共有の種別を定義することができます。これを使用して、特定の設定のファイル共有を作成することができます。ファイル共有の種別は、Block Storage のボリューム種別に類似した機能を持ちます。それぞれの種別には関連する設定 (追加の仕様) があり、ファイル共有の作成時に種別を呼び出すと、それらの設定が適用されます。

OpenStack director ではデフォルトのファイル共有種別が必要です。ユーザーにクラウドへのアクセスを許可する前に、このデフォルトのファイル共有種別を作成する必要があります。NFS バックエンドに CephFS を使用する設定では、manila type-create コマンドを使用します。

manila type-create default false
Copy to Clipboard Toggle word wrap

ファイル共有種別に関する情報は、ストレージガイド共有種別の作成と管理 の章を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat