Dell EMC PS Series バックエンドガイド
Red Hat OpenStack Platform オーバークラウドでの Dell EMC PS Series Storage の使用ガイド
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 はじめに
本書では、1 つまたは複数の Dell EMC PS Series バックエンドを使用するように OpenStack を設定する方法について説明します。また、Dell EMC PS シリーズデバイスと OpenStack Block Storage サービスとの間のボリュームサイズの不一致に対応する手順も含まれます。
以下のセクションは、以下を前提としています。
- Dell EMC PS Series デバイスおよびドライバーのみを Block Storage バックエンドに使用する予定である。
- 正常に機能する Block Storage サービスと共に、director により OpenStack オーバークラウドがすでにデプロイされている。
- Dell ストレージデバイスがすでにデプロイされ、ストレージリポジトリーとして設定されている。
- Dell EMC PS Series Group がすでにデプロイされ、SSH 経由でアクセスできる。
- 利用可能な Dell EMC PS Series Group の Group マネージャーに接続するのに必要な認証情報がある (CHAP および Group マネージャーの認証情報)。
-
昇格した特権を持つアカウントのユーザー名およびパスワードを所有している。オーバークラウドのデプロイ用に作成されたものと同じアカウントを使用できる。stack ユーザーの作成では、この目的のために
stack
ユーザーを作成し使用します。
director を介して Red Hat OpenStack Platform (RHOSP) をデプロイする場合は、director を介してすべての主要なオーバークラウド設定、特に Block Storage サービスのバックエンドを定義およびオーケストレーションする必要もあります。これにより、今後オーバークラウドが更新されても設定が維持されます。director を使用した OpenStack のデプロイについての詳しい情報は、Director Installation and Usageを参照してください。
本書の目的は、Dell EqualLogic バックエンド設定をオーバークラウドの Block Storage サービスにオーケストレーションする方法について説明することです。本書では、バックエンドで可能な異なるデプロイメント設定については説明しません。利用可能なさまざまなデプロイ設定の詳細については、デバイスの製品ドキュメントを参照してください。
デプロイする結果のバックエンド設定とそれに対応する設定に精通している場合は、このドキュメントを参照して、director を使用して調整する方法を確認してください。
現在、director には Dell EqualLogic バックエンドの 単一 インスタンスをデプロイする統合コンポーネントのみがあります。そのため、本書では単一のバックエンドのデプロイメントのみを説明します。
Dell EqualLogic バックエンドの複数のインスタンスをデプロイするには、カスタムのバックエンド設定 が必要です。手順については、Custom Block Storage Back End Deployment Guideを参照してください。
Dell Storage Center バックエンドと共に Red Hat OpenStack Platform (RHOSP) をデプロイする前に、以下の制限を確認してください。
- Dell EMC SC Series の場合、空の接続されていないボリュームのスナップショットはサポートされません。スナップショットに進む前に、ボリュームを設定するか、またはボリュームを接続する必要があります。詳細は、https://bugs.launchpad.net/cinder/+bug/1616630 を参照してください。
- Dell EMC SC Series の場合、cinder バックアップはサポートされません。
第2章 プロセスの説明
Red Hat OpenStack Platform (RHOSP) には、Block Storage サービスでサポートされるすべての Dell デバイスに必要なドライバーが含まれています。さらに、director には、デバイスをオーバークラウドのバックエンドとして統合するのに必要な Puppet マニフェスト、環境ファイル、オーケストレーションテンプレートもあります。
単一 のDell デバイスをバックエンド として設定するには、デフォルトの環境ファイルを編集して、オーバークラウドのデプロイメントに含める必要があります。このファイルは、アンダークラウドでローカルで使用でき、ご使用の環境に応じて編集できます。
このファイルを編集したら、director から呼び出します。そうすることで、今後のオーバークラウドの更新後も維持されます。以下のセクションでは、このプロセスをより詳細に説明します。さらに、デフォルトの環境ファイルには、残りの必要な Block Storage 設定を定義する必要な Puppet マニフェストと Orchestration (heat) テンプレートを呼び出すのに十分な情報がすでに含まれています。
第3章 単一バックエンドの定義
本項では、単一のバックエンドのデプロイメントについて説明します。Dell EqualLogic バックエンドの複数のインスタンスをデプロイするには、カスタムのバックエンド設定 が必要です。手順については、Custom Block Storage Back End Deployment Guideを参照してください。
director のデプロイメントでは、単一の Dell EMC PS Series バックエンドを定義する最も簡単な方法は、統合環境ファイルを使用することです。このファイルは、アンダークラウドノードの以下のパスにあります。
/usr/share/openstack-tripleo-heat-templates/environments/cinder-dellps-config.yaml
このファイルを、編集して後で呼び出すことができローカルパスにコピーします。たとえば、~/templates/
にコピーするには、以下のコマンドを実行します。
$ cp /usr/share/openstack-tripleo-heat-templates/environments/cinder-dellps-config.yaml ~/templates/
その後、コピー (~/templates/cinder-dellps-config.yaml
) を開き、必要に応じてこれを編集します。以下のスニペットに、このファイルのデフォルトの内容を示します。
# A Heat environment file which can be used to enable a # a Cinder EMC PS Series backend, configured via puppet resource_registry: OS::TripleO::Services::CinderBackendDellPs: ../puppet/services/cinder-backend-dellps.yaml # 1 parameter_defaults: # 2 CinderEnableDellPsBackend: true # 3 CinderDellPsBackendName: 'tripleo_dellps' CinderDellPsSanIp: '' CinderDellPsSanLogin: '' CinderDellPsSanPassword: '' CinderDellPsSanThinProvision: true CinderDellPsGroupname: 'group-0' CinderDellPsPool: 'default' CinderDellPsChapLogin: '' CinderDellPsChapPassword: '' CinderDellPsUseChap: false
- 1
resource_registry
セクションの OS::TripleO::Services::CinderBackendDellPs パラメーターは、cinder-backend-dellps.yaml
という名前のコンポーザブルサービステンプレートを参照します。director はこのテンプレートを使用して、バックエンドを設定するのに必要なリソースを読み込みます。デフォルトでは、このパラメーターはcinder-backend-dellps.yaml
への相対パスを指定します。そのため、このパラメーターをファイルへの絶対パスで更新します。resource_registry: OS::TripleO::ControllerExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/services/cinder-backend-dellps.yaml
- 2
- parameter_defaults セクションには、バックエンドの定義が含まれます。具体的には、director が
cinder-backend-dellps.yaml
で定義されたリソースに渡す必要があるパラメーターが含まれます。 - 3
- CinderEnableDellPsBackend: true の行は、Dell EMC PS Series バックエンドのデフォルト設定に必要な Puppet マニフェストを使用するように director に指示します。これには、Block Storage サービスが使用する必要のあるボリュームドライバーの定義 (具体的には
cinder.volume.drivers.dell_emc.ps.PSSeriesISCSIDriver
) が含まれます。
Dell EMC PS Series バックエンドを定義するには、適宜parameter_defaults セクションの設定を編集します。以下の表は、各パラメーターと、対応する /etc/cinder/cinder.conf
設定の一覧を示します。
パラメーター | /etc/cinder/cinder.conf setting | 説明 |
---|---|---|
CinderDellPsBackendName | volume_backend_name | ボリュームのバックエンドを識別する任意の名前。 |
CinderDellPsSanIp | san_ip | SSH 経由で Dell EMC PS Series Group に到達するのに使用される IP アドレス。 |
CinderDellPsSanLogin | san_login |
SSH 経由でCinderDellPsSanIp の Group マネージャーにログインするためのユーザー名。デフォルトのユーザー名は |
CinderDellPsSanPassword | san_password |
CinderDellPsSanLogin の対応するパスワード。デフォルトのパスワードは |
CinderDellPsSanThinProvision | san_thin_provision |
この設定に必要な SAN ボリュームのシンプロビジョニングを有効 ( |
CinderDellPsGroupname | eqlx_group_name |
Block Storage サービスがボリュームとスナップショットを作成するプールに使用されるグループ。デフォルトのグループは |
CinderDellPsPool | eqlx_pool |
Block Storage サービスがボリュームとスナップショットを作成するプール。このオプションは、1 つの Dell EMC PS Series Group の Block Storage サービスが使用する複数のプールには使用できません。デフォルトのプールは |
CinderDellPsChapLogin | eqlx_chap_login |
プール内の各ボリュームの CHAP ログインアカウント。デフォルトのアカウント名は |
CinderDellPsChapPassword | eqlx_chap_password | CinderDellPsChapLogin の対応するパスワード。デフォルトのパスワードは 16 進数で無作為に生成されるので、このパスワードは手動で設定する必要があります。 |
CinderDellPsUseChap | eqlx_use_chap |
CHAP 認証を無効にする (デフォルトでは |
第4章 設定したバックエンドのデプロイ
director のインストールでは、root 以外のユーザーを使用してコマンドを実行します。これには、Block Storage バックエンドのデプロイメントのオーケストレーションが含まれます。Creating a Director Installation Userでは、この目的のために stack
という名前のユーザーが作成されます。このユーザーは、昇格された権限で設定されます。
3章単一バックエンドの定義で設定した単一のバックエンドをデプロイするには、まず stack
ユーザーとしてアンダークラウドにログインします。次に、以下を実行してバックエンドをデプロイします (編集した ~/templates/cinder-dellps-config.yaml
で定義)。
$ openstack overcloud deploy --templates -e ~/templates/cinder-dellps-config.yaml
オーバークラウドの作成時に追加の環境ファイルを渡した場合には、予定外の変更がオーバークラウドに加えられないように、ここで -e
オプションを使用して環境ファイルを再度渡します。詳細は、director のインストールと使用方法ガイドの オーバークラウド環境の変更 を参照してください。
director のオーケストレーションが完了したら、バックエンドをテストします。5章設定したバックエンドのテストを参照してください。
第5章 設定したバックエンドのテスト
バックエンドをデプロイした後に、そこにボリュームを正常に作成できるかどうかをテストします。これを実行するには、最初に必要な環境変数を読み込む必要があります。これらの変数は、デフォルトで /home/stack/overcloudrc
で定義されます。
これらの変数を読み込むには、stack
ユーザーとして以下のコマンドを実行します。
$ source /home/stack/overcloudrc
詳しい情報は、Accessing the Overcloudを参照してください。
これでコントローラーノードにログインするはずです。そこから、使用するバックエンド (ここでは、3章単一バックエンドの定義で新たに定義したバックエンド) を指定するために使用できる ボリューム種別 を作成することができます。これは、他のバックエンドが有効化されている OpenStack デプロイメントで必要です (director を使用することを推奨)。
dellps
という名前のボリューム種別を作成するには、以下のコマンドを実行します。
$ cinder type-create dellps
次に、このボリュームタイプを で定義されたバックエンドにマッピングします。バックエンド名が tripleo_dellps
(xref:edityaml[] の CinderDellPsBackendName
パラメーターで定義) の場合は、次のコマンドを実行します。
$ cinder type-key dellps set volume_backend_name=tripleo_dellps
これで、ボリューム種別を呼び出して、新たに定義したバックエンドに 2 GB のボリュームを作成することができるはずです。そのためには、以下のコマンドを実行します。
$ cinder create --volume-type dellps 2
第6章 Dell EqualLogic バックエンドとのボリュームサイズ不一致の対応
ボリュームサイズを報告する際に、Dell EqualLogic (EQL) バックエンドは内部ボリュームメタデータに使用される追加のストレージも考慮します。このサイズは、Block Storage サービスにより報告されるボリュームサイズよりも若干大きくなります。ただし、EQL バックエンドによって報告されるボリュームサイズは、Image サービスで使用されるものと同じです。
そのため、EQL バックエンドにイメージベースのボリュームを作成する場合は、最初にイメージのサイズを確認します。イメージが元々ボリュームベースの場合、EQL(および拡張により Image サービス) は、Block Storage サービスによって報告されるボリュームサイズよりも若干大きなサイズを報告します。
EQL で報告されるイメージサイズが若干大きい場合は、このイメージがベースのボリュームを作成する際に、サイズの不一致を考慮する必要があります。
6.1. 例
ここでは、1 GB のボリュームを作成するケースを示します。
# cinder create --display-name vol1 1
+---------------------+--------------------------------------+ | Property | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | created_at | 2014-12-19T03:57:47.730359 | | display_description | None | | display_name | vol1 | | encrypted | False | | id | 6bdace69-bd41-42fc-a63a-f834fb65a2e4 | | metadata | {} | | size | 1 | | snapshot_id | None | | source_volid | None | | status | creating | | volume_type | None | +---------------------+--------------------------------------+
Block Storage サービスは 1 GB のボリュームサイズを報告しますが、EQL アレイではサイズ (VolReserve) が若干大きくなります。
eql> volume select volume-6bdace69-bd41-42fc-a63a-f834fb65a2e4
eql (volume-6bdace69-bd41-42fc-a63a-f834fb65a2e4)> show
_______________________________ Volume Information ______... Name: volume-6bdace69-bd41-42fc-a63a-f834fb65a2e4 Size: 1GB VolReserve: 1.01GB ...
このボリュームから新しいイメージを作成すると、cinder
は 1 GB の正しいボリュームサイズを報告します。
# cinder upload-to-image --disk-format raw --container-format bare vol1 image_vol1
+---------------------+--------------------------------------+ | Property | Value | +---------------------+--------------------------------------+ | container_format | bare | | disk_format | raw | | display_description | None | | id | 6bdace69-bd41-42fc-a63a-f834fb65a2e4 | | image_id | c65f7eae-e2c1-44ba-8af1-e33695897559 | | image_name | image_vol1 | | size | 1 | | status | uploading | | updated_at | 2014-12-19T03:57:48.000000 | | volume_type | None | +---------------------+--------------------------------------+
ただし、Image サービスは若干大きなサイズを報告します。
# glance image-list
...+------------+-------------+------------------+------------+--------+ ...| Name | Disk Format | Container Format | Size | Status | ...+------------+-------------+------------------+------------+--------+ ...| image_vol1 | raw | bare | 1085276160 | active | ...+------------+-------------+------------------+------------+--------+
glance
ツールは、約 1.01 GB のイメージサイズを報告します。その結果、このイメージベースで新しい 1 GB のボリュームを作成すると失敗します。
# cinder create --display-name vol2 --image-id c65f7eae-e2c1-44ba-8af1-e33695897559 1
ERROR: Invalid input received: Size of specified image 2 is larger than volume size 1
6.2. 回避策
前述のように、イメージベースのボリュームのサイズを指定する際に、Image サービスと Block Storage サービスによって報告されるボリュームサイズ間の不一致を考慮する必要があります。つまり、イメージベースのボリュームのサイズを指定する場合には、glance により報告されるイメージサイズ後の次の整数 を使用することになります。
上記の例の場合は、glance
は 1.01 GB のイメージサイズを報告していました。つまり、ボリュームを作成する場合は、1 GB ではなく、2 GB のボリュームサイズを指定する必要があります。
# cinder create --display-name vol2 --image-id c65f7eae-e2c1-44ba-8af1-e33695897559 2
+---------------------+--------------------------------------+ | Property | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | created_at | 2014-12-19T04:54:07.036260 | | display_description | None | | display_name | vol2 | | encrypted | False | | id | fcf49715-094d-4bba-9f05-8b7fa6deffce | | image_id | c65f7eae-e2c1-44ba-8af1-e33695897559 | | metadata | {} | | size | 2 | | snapshot_id | None | | source_volid | None | | status | creating | | volume_type | None | +---------------------+--------------------------------------+