Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
カスタムブロックストレージバックエンドデプロイメントガイド
Red Hat OpenStack Platform オーバークラウドでのカスタムの Block Storage バックエンドのデプロイガイド
OpenStack Documentation Team
rhos-docs@redhat.com
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 はじめに
Red Hat OpenStack Platform (RHOSP) director は、完全な RHOSP 環境のインストールおよび管理を行うためのツールセットです。主にアップストリームの TripleO (OpenStack-on-OpenStack) プロジェクトに基づいています。Director の主な目的は、最小限の手動設定で、機能的なエンタープライズグレードの RHOSP デプロイメントを完全に調整することです。OpenStack の個々のコンポーネントを手動で設定する際に生じる問題の多くを解決するのに役立ちます。
Director が提供する最終結果の RHOSP デプロイメントは、オーバークラウド と呼ばれます。オーバークラウドには、Block Storage など、エンドユーザーにサービスを提供するすべてのコンポーネントが含まれます。このドキュメントでは、カスタムバックエンドをオーバークラウドの Block Storage サービスにデプロイする方法についてのガイダンスを提供します。
このドキュメントは、Block Storage の手動設定に関連する概念についての知識があることを前提としています。OpenStack のテストデプロイメント (たとえば、Packstack を使用) では、このサービスを設定するには、そのホストノードの /etc/cinder/cinder.conf
を編集する必要があります。そのファイルの Block Storage 設定のほとんどは、別の場所でより詳細に文書化されています。このドキュメントでは、同じ設定をオーバークラウドに適用してカスタムバックエンドをアタッチする方法について説明します。
この手順は、一部のユースケースで正常にテストされています。実稼働以外の環境で計画したデプロイメントを最初にテストするようにしてください。ご質問がございましたら、Red Hat サポートにお問い合わせください。
1.1. カスタムバックエンド
このドキュメントでは、カスタムバックエンドは、Red Hat OpenStack Platform の Director にまだ完全に統合されていないストレージサーバー、アプライアンス、または設定として定義されます。サポートされている一部の Block Storage バックエンドは、すでに Director に統合されています。これは、事前設定された Director ファイルがすでに提供されていることを意味します。これらのファイルを使用して、統合バックエンドを設定し、オーバークラウドにデプロイできます。統合されたバックエンドの例には、Red Hat Ceph と、Dell EMC PS シリーズ、Dell Storage Center、および NetApp アプライアンスのシングルバックエンド設定が含まれます。
さらに、すでに Director に統合されている一部のストレージアプライアンスは、単一インスタンスのバックエンドのみをサポートします。たとえば、Dell Storage Center 用の事前設定された Director ファイルは、単一のバックエンドのデプロイメントのみをサポートします。このアプライアンスの複数のバックエンドインスタンスをデプロイするには、このドキュメントで説明されているように、カスタム設定が必要です。
ノードの /etc/cinder/cinder.conf
ファイルを直接編集して Block Storage サービスを手動で設定することもできますが、openstack overcloud deploy
コマンドを実行すると、director によって設定が上書きされます。このため、Block Storage バックエンドをデプロイするための推奨される方法は、Director を使用することです。これにより、設定がオーバークラウドのデプロイメントおよび更新を通じて保持されることが保証されます。
バックエンド設定がすでに完全に統合されている場合は、パッケージ化された環境ファイルを編集して呼び出すことができます。ただし、カスタムバックエンドでは、独自の環境ファイルを作成する必要があります。詳しい情報は、Director Installation and Usageの Including Environment Files in Overcloud Creation を参照してください。このドキュメントには、独自のデプロイ用に編集できるアノテーション付きのサンプル /home/stack/templates/custom-env.yaml が含まれています。このサンプルファイルは、2 つの NetApp バックエンドを使用するように Block Storage サービスを設定するのに適しています。
1.2. 要件
前提条件
- Block Storage とデプロイするバックエンドを手動で設定するための予備知識も説明します。
- サードパーティーのバックエンドアプライアンスを使用している場合は、ストレージリポジトリーとして適切に設定されている必要があります。
- オーバークラウドは、Director を使用してすでにデプロイされています。Director のインストールと使用 ガイドを参照してください。
-
昇格した特権を持つアカウントのユーザー名およびパスワードを所有している。オーバークラウドをデプロイするために作成したものと同じアカウントを使用できます。Director のインストールと使用 ガイドの スタックユーザーの作成 を参照してください。
stack
ユーザーは、この目的のために作成されます。 -
/etc/cinder/cinder.conf
で、Block Storage バックエンドに必要な結果の設定をすでにマッピングしています。
第2章 プロセスの説明
Block Storage サービスの設定は /etc/cinder/cinder.conf
に保存されます。これらの設定には、バックエンド定義 が含まれます。Block Storage サービスで使用できる (またはサポートされている) サードパーティーのバックエンドのほとんどは、/etc/cinder/cinder.conf
設定の編集を含むセットアップ手順を提供します。1章はじめに で述べたように、これにより、Block Storage サービスが設定されます。ただし、これらの設定は今後のオーバークラウドの更新で上書きされます。
いずれにせよ、/etc/cinder/cinder.conf
による手動設定に関するドキュメントは、オーバークラウドのデプロイメントに役立ちます。結局、Director は Heat を介して同じ設定を /etc/cinder/cinder.conf
に適用します。そのため、バックエンド設定を計画するには、次のことが必要です。
- 必要な Block Storage バックエンド設定を綿密に計画し、
-
この設定の結果の
/etc/cinder/cinder.conf
ファイルをマッピングします。
結果の /etc/cinder/cinder.conf
ファイルをマッピングしたら、バックエンド設定を調整する環境ファイルを作成します。環境ファイル では、サンプルファイル /home/stack/templates/custom-env.yaml
を使用して、この手順について詳しく説明しています。環境ファイルを手元に用意しておくと、今後のオーバークラウドの更新後もバックエンド設定が維持されるようになります。
第3章 環境ファイルの作成
環境ファイルには、定義する各バックエンドの設定と、その他の関連する設定が含まれています。環境ファイルについての詳細は、オーバークラウドの高度なカスタマイズ の 環境ファイル を参照してください。
以下のサンプル環境ファイルは、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
) サービスに適用する必要があることを意味します。これは、バックエンド設定が最終的に各コントローラーノードの/etc/cinder/cinder.conf
ファイルで終了することを意味します。- 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 を使用してカスタムバックエンドのデプロイを調整する方法について説明しています。/home/stack/templates/custom-env.yaml
から得られる /etc/cinder/cinder.conf
設定を確認するには、「サンプル環境ファイルから得られる設定」 を参照してください。
第4章 設定済みのバックエンドのデプロイ
/home/stack/templates/
に custom-env.yaml ファイルを作成したら、stack
ユーザーとしてログインします。次に、次を実行してカスタムバックエンド設定をデプロイします。
$ openstack overcloud deploy --templates -e /home/stack/templates/custom-env.yaml
オーバークラウドの作成時に追加の環境ファイルを渡した場合には、予定外の変更がオーバークラウドに加えられないように、ここで -e
オプションを使用して環境ファイルを再度渡します。詳細は、director のインストールと使用方法ガイドの オーバークラウド環境の変更 を参照してください。
director のオーケストレーションが完了したら、バックエンドをテストします。5章設定したバックエンドのテストを参照してください。
第5章 設定したバックエンドのテスト
バックエンドをオーバークラウドにデプロイしたら、それらにボリュームを正常に作成できるかどうかをテストします。最初に必要な環境変数をロードする必要があります。変数は、デフォルトで /home/stack/overcloudrc
に定義されています。
-
変数をロードするには、
stack
ユーザーとして次のコマンドを実行します。
$ source /home/stack/overcloudrc
詳細は、director のインストールと使用方法 のオーバークラウドへのアクセスを参照してください。
-
バックエンドごとに ボリュームタイプ を作成します。
stack
ユーザーとしてオーバークラウドのコントローラーノードにログインし、以下のコマンドを実行します。
$ cinder type-create backend1 $ cinder type-create backend2
これらのコマンドは、envfile
の cinder::config::cinder_config
クラスで定義されたバックエンドごとに 1 つずつ、ボリュームタイプ backend1
および backend2
を作成します。
-
envfile
の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
バックエンドにnetapp_volume_1
という名前の 1 GB ボリュームを作成します。
$ cinder create --volume-type backend1 --display_name netappvolume_1 1
-
backend2
のボリューム種別を呼び出して、netapp2
バックエンド上に同様のボリュームを作成します。
$ cinder create --volume-type backend2 --display_name netappvolume_2 1
付録A 付録
A.1. stack ユーザー
stack
ユーザーアカウントを使用して、バックエンドのデプロイやオーバークラウドにアクセスするための環境変数の読み込みなど、昇格された権限を必要とするコマンドを実行できます。stack
ユーザーの詳細については、Director のインストールと使用 ガイドの stack ユーザーの作成 を参照してください。
A.2. サンプル環境ファイルから得られる設定
3章環境ファイルの作成 の環境ファイルは、2 つの NetApp バックエンドを使用するように Block Storage サービスを設定します。以下のスニペットには、関連する設定が表示されます。
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