NetApp Block Storage バックエンドガイド
Red Hat OpenStack Platform 13 で NetApp アプライアンスを Block Storage バックエンドとして使用するためのガイド
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 はじめに
このドキュメントでは、Director を使用して NetApp アプライアンスをバックエンドとしてオーバークラウドの Block Storage サービスにデプロイする方法について説明します。以下のセクションは、以下を前提としています。
- Block Storage バックエンドには NetApp アプライアンスとドライバーのみを使用する予定です。
- OpenStack オーバークラウドは、Director を介してすでにデプロイされています。
- NetApp アプライアンスはすでに設定されており、ストレージリポジトリーとして使用する準備ができています。
- NetApp ストレージシステムまたはプロキシーサーバーに接続するために必要な認証情報を持っています。
-
昇格した特権を持つアカウントのユーザー名およびパスワードを所有している。オーバークラウドをデプロイするために作成したものと同じアカウントを使用できます。スタックユーザーの作成 では、この目的のために
stack
ユーザーが作成されます。
Red Hat OpenStack Platform が Director を介してデプロイされる場合、すべての主要なオーバークラウド設定 (特に Block Storage サービスのバックエンド) も Director を介して定義およびオーケストレーションする必要があります。これにより、今後オーバークラウドが更新されても設定が維持されます。
NetApp アプライアンスをバックエンドとして使用するように Block Storage サービスを設定する方法については、Chapter 4 を参照してください。OpenStack Block Storage サービス(NetApp OpenStack デプロイメントおよびオペレーションガイド)Director はオーケストレーションしていない設定を上書きするため、手動で設定された Block Storage 設定は、オーバークラウドの更新中に再適用する必要があります。
このドキュメントでは、目的の NetApp バックエンド設定をオーバークラウドの Block Storage サービスにオーケストレーションする方法について説明します。このドキュメントでは、NetApp バックエンドで可能なさまざまなデプロイメント設定については説明しません。代わりに、利用可能なさまざまな NetApp デプロイメントの選択肢について詳しく知るには、運用の理論とデプロイメントの選択肢 (NetApp OpenStack デプロイメントおよび運用ガイドから) を参照してください。
デプロイする結果のバックエンド設定 (およびその対応する設定) を理解したら、director を介してオーケストレーションする方法について、本書を参照してください。
現在、Director には、NetApp バックエンドの 単一 インスタンスをデプロイメントするための統合コンポーネントしかありません。そのため、本書では単一のバックエンドのデプロイメントのみを説明します。
NetApp バックエンドの複数のインスタンスをデプロイするには、カスタムバックエンド設定 が必要です。手順については、Custom Block Storage Back End Deployment Guideを参照してください。
第2章 プロセスの説明
Red Hat OpenStack Platform には、Block Storage サービスでサポートされるすべての NetApp アプライアンスに必要なすべてのドライバーが含まれています。さらに、Director には、NetApp アプライアンスをバックエンドとしてオーバークラウドに統合するために必要な puppet マニフェスト、環境ファイル、およびオーケストレーションテンプレートもあります。
NetApp アプライアンスをバックエンドとして設定するには、デフォルトの 環境ファイル を編集してオーバークラウドデプロイメントに含める必要があります。このファイルは、アンダークラウドでローカルで使用でき、ご使用の環境に応じて編集できます。
このファイルを編集したら、director 経由で呼び出します。これにより、今後のオーバークラウド更新後も維持されます。以下のセクションでは、このプロセスをより詳細に説明します。
第3章 バックエンドの定義
本項では、単一のバックエンドのデプロイメントについて説明します。NetApp バックエンドの複数のインスタンスをデプロイするには、カスタムバックエンド設定 が必要です。手順については、Custom Block Storage Back End Deployment Guideを参照してください。
Director のデプロイメントでは、NetApp アプライアンスを Block Storage バックエンドとして定義する最も簡単な方法は、統合された NetApp 環境ファイルを使用することです。このファイルは、アンダークラウドノードの以下のパスにあります。
/usr/share/openstack-tripleo-heat-templates/environments/storage/cinder-netapp-config.yaml
このファイルを、編集して後で呼び出すことができローカルパスにコピーします。たとえば、~/templates/
にコピーするには、以下のコマンドを実行します。
$ cp /usr/share/openstack-tripleo-heat-templates/environments/storage/cinder-netapp-config.yaml ~/templates/
その後、コピー (~/templates/cinder-netapp-config.yaml
) を開き、必要に応じて編集します。以下のスニペットに、このファイルのデフォルトの内容を示します。
# A heat environment file which can be used to enable a # a Cinder NetApp backend, configured via puppet resource_registry: OS::TripleO::Services::CinderBackendNetApp: ../puppet/services/cinder-backend-netapp.yaml 1 parameter_defaults: 2 CinderEnableNetappBackend: true 3 CinderNetappBackendName: 'tripleo_netapp' CinderNetappLogin: '' CinderNetappPassword: '' CinderNetappServerHostname: '' CinderNetappServerPort: '80' CinderNetappSizeMultiplier: '1.2' CinderNetappStorageFamily: 'ontap_cluster' CinderNetappStorageProtocol: 'nfs' CinderNetappTransportType: 'http' CinderNetappVfiler: '' CinderNetappVolumeList: '' CinderNetappVserver: '' CinderNetappPartnerBackendName: '' CinderNetappNfsShares: '' CinderNetappNfsSharesConfig: '/etc/cinder/shares.conf' CinderNetappNfsMountOptions: '' CinderNetappCopyOffloadToolPath: '' CinderNetappControllerIps: '' CinderNetappSaPassword: '' CinderNetappStoragePools: '' CinderNetappEseriesHostType: 'linux_dm_mp' CinderNetappWebservicePath: '/devmgr/v2'
director のさまざまな heat パラメーターにより、NFS バックエンドまたは NetApp NFS Block Storage バックエンドが NetApp 機能 (NAS secure と呼ばれる) をサポートするかどうかが制御されます。
- CinderNetappNasSecureFileOperations
- CinderNetappNasSecureFilePermissions
- CinderNasSecureFileOperations
- CinderNasSecureFilePermissions
通常のボリューム操作に干渉するため、Red Hat では、この機能を有効にすることを推奨していません。director はデフォルトでこの機能を無効にするため、Red Hat OpenStack Platform はこの機能をサポートしません。
- 1
resource_registry
セクションの OS::TripleO::Services::CinderBackendNetApp パラメーターは、cinder-backend-netapp.yaml
という名前の設定可能なサービステンプレートを参照します。これは、Director がバックエンドの設定に必要なリソースをロードするために使用するテンプレートです。デフォルトでは、パラメーターはcinder-backend-netapp.yaml
へのパスを相対的に指定します。そのため、このパラメーターをファイルへの絶対パスで更新します。resource_registry: OS::TripleO::Services::CinderBackendNetApp: /usr/share/openstack-tripleo-heat-templates/puppet/services/cinder-backend-netapp.yaml
- 2
- parameter_defaults セクションには、バックエンドの定義が含まれます。具体的には、Director が
cinder-backend-netapp.yaml
で定義されたリソースに渡すパラメーターが含まれています。 - 3
- CinderEnableNetappBackend: true 行は、NetApp バックエンドのデフォルト設定に必要な puppet マニフェストを使用するように Director に指示します。これには、Block Storage サービスが使用するボリュームドライバー (具体的には
cinder.volume.drivers.netapp.common.NetAppDriver
) の定義が含まれます。
NetApp バックエンドを定義するには、parameter_defaults セクションの設定を適切に編集します。次の表では、各パラメーターについて説明し、対応する cinder.conf
設定を示します。
変数の詳細については、NetApp アプライアンスの NetApp OpenStack ドキュメント で対応するリファレンスを参照してください。
パラメーター | cinder.conf 設定 | 説明 |
---|---|---|
CinderNetappBackendName | volume_backend_name |
(必須)ボリュームのバックエンドを識別する任意の名前。 |
CinderNetappLogin | netapp_login |
(必須) バックエンドまたはそのプロキシーサーバーへのアクセスに使用される管理アカウント名。このパラメーターには、クラスターレベルの管理権限 (つまり、 |
CinderNetappPassword | netapp_password | (必須) CinderNetappLogin の対応するパスワード。 |
CinderNetappServerHostname | netapp_server_hostname | (必須) ストレージシステムまたはプロキシーサーバー (E シリーズの場合)。このオプションの値は、クラスター管理論理インターフェイス (LIF) またはストレージ仮想マシン (SVM) LIF のいずれかの IP アドレスまたはホスト名である必要があります。 |
CinderNetappServerPort | netapp_server_port |
(オプション) Block Storage サービスが NetApp バックエンドとの通信に使用する TCP ポート。指定しない場合、Data ONTAP ドライバーは |
CinderNetappSizeMultiplier | netapp_size_multiplier | (非推奨) ボリュームの作成中に、NetApp バックエンドに十分なスペースがあることを確認するために、要求されたボリュームサイズに乗算される数量。 |
CinderNetappStorageFamily | netapp_storage_family |
(オプション) バックエンドデバイスで使用されるストレージファミリーのタイプ。クラスター化された Data ONTAP には
注記: 7-Mode で動作する Data ONTAP の |
CinderNetappStorageProtocol | netapp_storage_protocol |
(必須) 使用するストレージプロトコル。 |
CinderNetappTransportType | netapp_transport_type |
(必須) バックエンドとの通信に使用されるトランスポートプロトコル。有効なオプションには、 |
[a]
クラスタースコープのアカウントの詳細については、ONTAP 設定 (NetApp OpenStack ドキュメントから) を参照してください。
|
次の設定は、クラスター化された Data ONTAP でのみ有効です (CinderNetappStorageFamily を ontap_cluster
に設定した場合と同様)。
パラメーター | cinder.conf 設定 | 説明 |
---|---|---|
CinderNetappVserver | netapp_vserver | (必須) ボリュームプロビジョニングを実行する SVM の名前を指定します。これは、ストレージクラスター上の単一の SVM を指します。 |
次の設定は、E シリーズデバイスファミリーでのみ有効です (CinderNetappStorageFamily が eseries
に設定されている場合など)。
パラメーター | cinder.conf 設定 | 説明 |
---|---|---|
CinderNetappControllerIps | netapp_controller_ip | (必須) プロビジョニングを制限する必要があるコントローラー管理 IP/ホスト名のコンマ区切りリスト。 |
CinderNetappSaPassword | netapp_sa_password | (オプション) NetApp E シリーズストレージアレイのパスワード。 |
CinderNetappStoragePools | netapp_storage_pools | (削除済み) プロビジョニングを制限する必要があるディスクプールのコンマ区切りリスト。 このパラメーターは現在使用できないドライバーオプションを参照しているため、編集しないでください。 |
CinderNetappEseriesHostType | netapp_eseries_host_type | (削除済み) LUN にアクセスできるすべてのイニシエーターのオペレーティングシステムのタイプを定義します。この情報は、LUN を個々のホストまたはホストのグループにマッピングする際に使用されます。 このパラメーターは現在使用できないドライバーオプションを参照しているため、編集しないでください。 |
CinderNetappWebservicePath | netapp_webservice_path | (オプション) プロキシーサーバー上の E シリーズプロキシーアプリケーションへのパスを指定します。プロキシーアプリケーションに接続するための完全な URL を決定するために、ドライバーは CinderNetappTransportType、CinderNetappServerHostname、および CinderNetappServerPort ポート値を組み合わせます。 |
次の設定は、NFS プロトコルを使用する場合にのみ有効です (CinderNetappStorageProtocol を nfs
に設定した場合など)。詳細については、NetApp Unified Driver for Clustered Data ONTAP with NFS または NetApp Unified Driver for Data ONTAP operating in 7-Mode with NFS を参照してください (どちらも NetApp OpenStack Deployment and Operations Guide から)。
パラメーター | cinder.conf 設定 | 説明 |
---|---|---|
CinderNetappNfsShares | なし | (必須) NetApp ONTAP デバイスからエクスポートされ、コントローラーノードによってマウントされるデータ LIF のコンマ区切りリスト。このリストは、CinderNetappNfsSharesConfig で定義された場所に書き込まれます。以下に例を示します。
|
CinderNetappNfsSharesConfig | nfs_shares_config | (必須) NFS エクスポートファイル への絶対パス。このファイルには、バックエンドとして使用できる利用可能な NFS 共有のリストが含まれています。 |
CinderNetappNfsMountOptions | nfs_mount_options | (オプション) NFS クライアントに渡すマウントオプションのコンマ区切りリスト。有効なオプションの詳細については、man mount を参照してください。 |
CinderNetappCopyOffloadToolPath [a] | netapp_copyoffload_tool_path |
(オプション) NetApp コピーオフロードツールバイナリー のパスを指定します。openstack-cinder-volume プロセスがこのファイルを実行する必要があるため、このバイナリー (NetApp サポートポータル から入手可能) には |
[a]
このオプションは、クラスター化された Data ONTAP でのみ有効です (CinderNetappStorageFamily が ontap_cluster に設定されている場合など)。詳細については、NetApp Unified Driver for Clustered Data ONTAP with NFS (NetApp OpenStack Deployment and Operations Guide から) を参照してください。
|
第4章 設定したバックエンドのデプロイ
director のインストールでは、root 以外のユーザーを使用してコマンドを実行します。これには、Block Storage バックエンドのデプロイメントのオーケストレーションが含まれます。Creating a Director Installation Userでは、この目的のために stack
という名前のユーザーが作成されます。このユーザーは、昇格された権限で設定されます。
アンダークラウドに stack
ユーザーとしてログインします。次に、以下を実行して、NetApp バックエンド (編集済みの ~/templates/cinder-netapp-config.yaml
で定義) をデプロイします。
$ openstack overcloud deploy --templates -e ~/templates/cinder-netapp-config.yaml
オーバークラウドの作成時に追加の環境ファイルを渡した場合には、予定外の変更がオーバークラウドに加えられないように、ここで -e
オプションを使用して環境ファイルを再度渡します。詳細は、director のインストールと使用方法ガイドの オーバークラウド環境の変更 を参照してください。
director のオーケストレーションが完了したら、バックエンドをテストします。5章設定したバックエンドのテストを参照してください。
第5章 設定したバックエンドのテスト
バックエンドをデプロイした後に、そこにボリュームを正常に作成できるかどうかをテストします。これを実行するには、最初に必要な環境変数を読み込む必要があります。これらの変数は、デフォルトで /home/stack/overcloudrc に定義されています。
これらの変数をロードするには、stack ユーザーとして次のコマンドを実行します。
$ source /home/stack/overcloudrc
詳しい情報は、Accessing the Overcloudを参照してください。
これでコントローラーノードにログインするはずです。そこから、使用するバックエンド (ここでは、3章バックエンドの定義で新たに定義したバックエンド) を指定するために使用できる ボリューム種別 を作成することができます。これは、他のバックエンドが有効化されている OpenStack デプロイメントで必要です (director を使用することを推奨)。
netapp という名前のボリュームタイプを作成するには、次のコマンドを実行します。
$ cinder type-create netapp
次に、このボリュームタイプを で定義されたバックエンドにマッピングします。バックエンド名が tripleo_netapp
(xref:edityaml[] の CinderNetappBackendName
パラメーターで定義) の場合は、次のコマンドを実行します。
$ cinder type-key netapp set volume_backend_name=tripleo_netapp
これで、ボリューム種別を呼び出して、新たに定義したバックエンドに 2 GB のボリュームを作成することができるはずです。そのためには、以下のコマンドを実行します。
$ cinder create --volume-type netapp 2