カスタム Block Storage バックエンドのデプロイメントガイド
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章 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 ファイルでは、単一のバックエンドしかデプロイできません。このアプライアンスのバックエンドインスタンスを複数デプロイする場合は、カスタム設定が必要です。
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章設定済みのバックエンドのデプロイ を参照してください。
- 設定したバックエンドのテスト。詳細は、
第2章 環境ファイルの作成
カスタムバックエンド設定用に作成する環境ファイルには、定義する各バックエンドの設定が含まれます。また、カスタムバックエンドのデプロイメントに関連するその他の設定も含まれます。環境ファイルについての詳細は、オーバークラウドの高度なカスタマイズ の 環境ファイル を参照してください。
以下のサンプル環境ファイルは、 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 サービスがイメージを保存するために使用するものを設定します。以下の値を使用できます。
-
file
: 各コントローラーノードの/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
value
の接頭辞は先行設定を行います。- 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
の設定を確認するには、付録A 付録を参照してください。
第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