カスタムブロックストレージバックエンドデプロイメントガイド
Red Hat OpenStack Platform オーバークラウドでのカスタムの Block Storage バックエンドのデプロイガイド
概要
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
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
- 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
$ openstack overcloud deploy --templates -e /home/stack/templates/custom-env.yaml
オーバークラウドの作成時に追加の環境ファイルを渡した場合には、予定外の変更がオーバークラウドに加えられないように、ここで -e オプションを使用して環境ファイルを再度渡します。詳細は、director のインストールと使用方法ガイドの オーバークラウド環境の変更 を参照してください。
director のオーケストレーションが完了したら、バックエンドをテストします。5章設定したバックエンドのテストを参照してください。
第5章 設定したバックエンドのテスト リンクのコピーリンクがクリップボードにコピーされました!
バックエンドをオーバークラウドにデプロイしたら、それらにボリュームを正常に作成できるかどうかをテストします。最初に必要な環境変数をロードする必要があります。変数は、デフォルトで /home/stack/overcloudrc に定義されています。
-
変数をロードするには、
stackユーザーとして次のコマンドを実行します。
source /home/stack/overcloudrc
$ source /home/stack/overcloudrc
詳細は、director のインストールと使用方法 のオーバークラウドへのアクセスを参照してください。
-
バックエンドごとに ボリュームタイプ を作成します。
stackユーザーとしてオーバークラウドのコントローラーノードにログインし、以下のコマンドを実行します。
cinder type-create backend1 cinder type-create backend2
$ 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
$ 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
$ cinder create --volume-type backend1 --display_name netappvolume_1 1
-
backend2のボリューム種別を呼び出して、netapp2バックエンド上に同様のボリュームを作成します。
cinder create --volume-type backend2 --display_name netappvolume_2 1
$ 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 サービスを設定します。以下のスニペットには、関連する設定が表示されます。