カスタムブロックストレージバックエンドデプロイメントガイド
Red Hat OpenStack Platform オーバークラウドでのカスタムの Block Storage バックエンドのデプロイガイド
概要
第1章 Block Storage サービスのカスタムバックエンドのデプロイの概要
Red Hat OpenStack Platform director は、手動の設定を最小限に抑え、完全なエンタープライズレベルの OpenStack デプロイメントをインストールし、管理します。director の詳細は、『director のインストールと使用方法』 を参照してください。
director が作成する Openstack 環境は、オーバークラウドと呼ばれます。オーバークラウドには、Block Storage など、エンドユーザーにサービスを提供するすべてのコンポーネントが含まれます。本項では、オーバークラウド上の Block Storage サービス(cinder)にカスタムのバックエンドをデプロイする方法について説明します。デフォルトでは、Block Storage サービスはコントローラーノードにインストールされます。
前提条件
- director を使用してオーバークラウドがインストール済みである。
- オーバークラウドに、機能する Block Storage サービスが設定されている。
- Block Storage の概念および設定を理解している。Block Storage の詳細は、『Storage Guide』の「Block Storage and Volumes」を参照してください。
この手順は、一部のユースケースで正常にテストされています。実稼働以外の環境で計画したデプロイメントを最初にテストするようにしてください。ご質問がございましたら、Red Hat サポートにお問い合わせください。
1.1. カスタムバックエンドについて
カスタムバックエンドは、Red Hat OpenStack Platform director に完全に統合されていないストレージサーバー、アプライアンス、または設定です。サポート対象の Block Storage バックエンドは、すでにビルトインの director ファイルで統合および事前設定されています。たとえば、Red Hat Ceph および Dell EMC PS Series、Dell Storage Center、および NetApp アプライアンスの設定などです。
統合ストレージアプライアンスは、シングルインスタンスのバックエンドのみをサポートします。たとえば、Dell Storage Center 向けに事前に設定された director ファイルでは、1 つのバックエンドしかデプロイできません。このアプライアンスの複数のバックエンドインスタンスをデプロイする場合は、カスタム設定が必要です。
Block Storage サービスが配置されているノード上の /etc/cinder/cinder.conf
ファイルを直接編集して Block Storage サービスを手動で設定できますが、openstack overcloud deploy
コマンドを実行すると、設定が director により上書きされます。詳細は、「3章設定済みのバックエンドのデプロイ」を参照してください。director を使用して Block Storage バックエンドをデプロイし、オーバークラウドのデプロイメントと更新を行っても、設定が永続されるようにします。
バックエンド設定が完全に統合されている場合は、パッケージ化された環境ファイルを編集して呼び出すことができます。ただし、カスタムバックエンドの場合は、独自の環境ファイルを作成する必要があります。本ガイドには、デプロイメント用に編集可能な /home/stack/templates/custom-env.yaml
ファイルが含まれます。このサンプルファイルは、2 つの NetApp バックエンドを使用するように Block Storage サービスを設定するのに適しています。環境ファイルの詳細は、『director のインストールと使用方法』の「オーバークラウドデプロイメントへの環境ファイルの追加」を参照してください。
1.2. 要件
カスタムの Block Storage バックエンドを設定するには、以下の追加の前提条件を環境に適用する必要があります。
- サードパーティーのバックエンドアプライアンスを使用している場合には、それらをストレージリポジトリーとして設定している。
- 『director のインストールと使用方法』に記載の手順に従って、director を使用してオーバークラウドをデプロイしている。
-
昇格した特権を持つアカウントのユーザー名およびパスワードを所有している。作成した同じ
stack
ユーザーアカウントを使用して、オーバークラウドをデプロイできる。 -
/etc/cinder/cinder.conf
に Block Storage バックエンドに指定する設定がすでに計画されている。
1.3. 設定プロセスについて
カスタムバックエンドを使用するように Block Storage サービスを設定するには、以下の手順が必要です。
- 環境ファイルの作成。詳細は、「2章環境ファイルの作成」を参照してください。
- 設定済みのバックエンドのデプロイ。詳細は、「3章設定済みのバックエンドのデプロイ」を参照してください。
- 設定したバックエンドのテスト。詳細はを参照してください。 4章設定したバックエンドのテスト
第2章 環境ファイルの作成
カスタムバックエンド設定用に作成する環境ファイルには、定義する各バックエンドの設定が含まれます。また、カスタムバックエンドのデプロイメントに関連するその他の設定も含まれます。環境ファイルに関する詳しい情報は、『オーバークラウドの 高度なカスタマイズ』 の「環境ファイル」を参照してください。https://access.redhat.com/documentation/ja-jp/red_hat_openstack_platform/16.0/html-single/advanced_overcloud_customization/#sect-Environment_Files
以下のサンプル環境ファイルは、 netapp1
および netapp2
の 2 つの NetApp バックエンドを定義します。
/home/stack/templates/custom-env.yaml
parameter_defaults: # 1 CinderEnableIscsiBackend: false CinderEnableRbdBackend: false CinderEnableNfsBackend: false NovaEnableRbdBackend: false GlanceBackend: file # 2 ControllerExtraConfig: # 3 cinder::config::cinder_config: netapp1/volume_driver: # 4 value: cinder.volume.drivers.netapp.common.NetAppDriver netapp1/netapp_storage_family: value: ontap_7mode netapp1/netapp_storage_protocol: value: iscsi netapp1/netapp_server_hostname: value: 10.35.64.11 netapp1/netapp_server_port: value: 80 netapp1/netapp_login: value: root netapp1/netapp_password: value: p@$$w0rd netapp1/volume_backend_name: value: netapp1 netapp2/volume_driver: # 5 value: cinder.volume.drivers.netapp.common.NetAppDriver # 6 netapp2/netapp_storage_family: value: ontap_7mode netapp2/netapp_storage_protocol: value: iscsi netapp2/netapp_server_hostname: value: 10.35.64.11 netapp2/netapp_server_port: value: 80 netapp2/netapp_login: value: root netapp2/netapp_password: value: p@$$w0rd netapp2/volume_backend_name: value: netapp2 cinder_user_enabled_backends: ['netapp1','netapp2'] # 7
- 1
- 以下のパラメーターは
false
に設定され、他のバックエンド種別が無効になります。-
CinderEnableIscsiBackend
: 他の iSCSI バックエンド。 -
CinderEnableRbdBackend
: Red Hat Ceph. -
CinderEnableNfsBackend
: NFS -
NovaEnableRbdBackend
: 一時 Red Hat Ceph ストレージ。
-
- 2
- GlanceBackend パラメーターで、Image サービスがイメージ保管に使用するものを設定します。以下の値がサポートされています。
-
ファイル
: 各コントローラーノードの/var/lib/glance/images
にイメージを保存します。 -
Swift
: イメージストレージに Object Storage サービスを使用します。 -
Cinder
: イメージストレージに Block Storage サービスを使用します。
-
- 3
ControllerExtraConfig
は、全コントローラーノードに適用されるカスタム設定を定義します。cinder::config::cinder_config
クラスは、設定を Block Storage(cinder)サービスに適用する必要があることを意味します。- 4
netapp1/volume_driver
およびnetapp2/volume_driver
設定は、section/setting の構文に準拠します。Block Storage サービスでは、各バックエンドは/etc/cinder/cinder.conf
の独自のセクションで定義されます。netapp1
プレフィックスを使用する各設定は、新しい[netapp1]
バックエンドセクションで定義されます。- 5
netapp2
設定は、別の[netapp2]
セクションで定義します。- 6
値
のプレフィックスは前述の設定を行います。- 7
cinder_user_enabled_backends
クラスは、カスタムバックエンドを設定して有効にします。このクラスは、ユーザー対応バックエンド(具体的にはcinder::config::cinder_config
クラスで定義されるもの)にのみ使用します。cinder_user_enabled_backends
を使用して、director でネイティブに有効化できるバックエンドを一覧表示しないでください。サポートされている NetApp アプライアンスまたは Dell アプライアンスには、Red Hat Ceph、NFS、および単一のバックエンドが含まれます。たとえば、Red Hat Ceph バックエンドを有効にする場合には、cinder_user_enabled_backends
に一覧を表示しないでください。CinderEnableRbdBackend
をtrue
に設定して有効にします。
OpenStack Block Storage 用の Red Hat Ceph バックエンドの定義の詳細は、『コンテナー化された Red Hat Ceph を持つオーバークラウドのデプロイ 』を参照してください。
/home/stack/templates/custom-env.yaml
から作成された /etc/cinder/cinder.conf
の設定を確認するには、???を参照してください。
第3章 設定済みのバックエンドのデプロイ
設定したバックエンドをデプロイするには、以下の手順を実施します。
-
stack
ユーザとしてログインします。 以下のコマンドを実行して、カスタムバックエンド設定をデプロイします。
$ openstack overcloud deploy --templates -e /home/stack/templates/custom-env.yaml
重要オーバークラウドの作成時に追加の環境ファイルを渡した場合には、予定外の変更がオーバークラウドに加えられないように、ここで
-e
オプションを使用して環境ファイルを再度渡します。詳しい情報は、『 director のインストールと 使用方法』の「オーバークラウド環境 の変更」を参照してください。
第4章 設定したバックエンドのテスト
バックエンドをオーバークラウドにデプロイした後に、そこにボリュームを正常に作成できることをテストします。
手順
stack
ユーザーとして以下のコマンドを実行し、home/stack/overcloudrec
で定義した環境変数を読み込みます。$ source /home/stack/overcloudrc
詳細は、『director のインストールと使用方法 』の「オーバークラウドへのアクセス」を参照してください。
バックエンドごとにボリューム種別を作成します。
stack
ユーザーとしてオーバークラウドのコントローラーノードにログインし、以下のコマンドを実行します。$ cinder type-create backend1 $ cinder type-create backend2
これらのコマンドにより、作成した環境ファイルの
cinder::config::cinder_config
クラスで定義されるバックエンドごとに、ボリューム種別のbackend1
とbackend2
が作成されます。作成した環境ファイルの
cinder_user_enabled_backends
クラスで有効化されたバックエンドのvolume_backend_name
に各ボリューム種別をマップします。以下のコマンドは、ボリューム種別のbackend1
をnetapp1
に、backend2
をnetapp2
にマッピングします。$ cinder type-key backend1 set volume_backend_name=netapp1 $ cinder type-key backend2 set volume_backend_name=netapp2
以下のコマンドを実行して、
backend1
のボリューム種別を呼び出して、netapp1
にバックエンドを作成できることを確認します。$ cinder create --volume-type backend1 --display_name netappvolume_1 1
backend2
のボリューム種別を呼び出して、netapp2
バックエンド上に同様のボリュームを作成します。$ cinder create --volume-type backend2 --display_name netappvolume_2 1
付録A 付録
サンプル環境ファイルの設定
2章環境ファイルの作成 で作成した環境ファイルは、Block Storage サービスが 2 つの NetApp バックエンドを使用するように設定します。以下のスニペットには、関連する設定が表示されます。
enabled_backends = netapp1,netapp2 [netapp1] volume_backend_name=netapp_1 volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver netapp_login=root netapp_storage_protocol=iscsi netapp_password=p@$$w0rd netapp_storage_family=ontap_7mode netapp_server_port=80 netapp_server_hostname=10.35.64.11 [netapp2] volume_backend_name=netapp_2 volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver netapp_login=root netapp_storage_protocol=iscsi netapp_password=p@$$w0rd netapp_storage_family=ontap_7mode netapp_server_port=80 netapp_server_hostname=10.35.64.11