Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

NetApp Block Storage バックエンドガイド

Red Hat OpenStack Platform 13

Red Hat OpenStack Platform 13 で NetApp アプライアンスを Block Storage バックエンドとして使用するためのガイド

概要

このドキュメントでは、Director を使用して、NetApp ストレージアプライアンスを Red Hat OpenStack Platform 13 の 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 サービスを設定する手動の手順については、第 4 章OpenStack Block Storage サービス (NetApp OpenStack Deployment and Operations Guide から) を参照してください。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 ドキュメント で対応するリファレンスを参照してください。

表3.1 NetApp ユニバーサルバックエンドの設定

パラメーターcinder.conf 設定説明

CinderNetappBackendName

volume_backend_name

(必須)ボリュームのバックエンドを識別する任意の名前。cinder-netapp-config.yaml ファイルは、デフォルトで tripleo_netapp という名前を使用します。

CinderNetappLogin

netapp_login

(必須) バックエンドまたはそのプロキシーサーバーへのアクセスに使用される管理アカウント名。このパラメーターには、クラスターレベルの管理権限 (つまり、admin) を持つアカウントまたは クラスタースコープのアカウント を使用できます。 [a] 適切な権限を持つ。

CinderNetappPassword

netapp_password

(必須) CinderNetappLogin の対応するパスワード。

CinderNetappServerHostname

netapp_server_hostname

(必須) ストレージシステムまたはプロキシーサーバー (E シリーズの場合)。このオプションの値は、クラスター管理論理インターフェイス (LIF) またはストレージ仮想マシン (SVM) LIF のいずれかの IP アドレスまたはホスト名である必要があります。

CinderNetappServerPort

netapp_server_port

(オプション) Block Storage サービスが NetApp バックエンドとの通信に使用する TCP ポート。指定しない場合、Data ONTAP ドライバーは HTTP80 を使用し、HTTPS443 を使用します。E シリーズは、HTTP8080 を使用し、HTTPS8443 を使用します。

CinderNetappSizeMultiplier

netapp_size_multiplier

(非推奨) ボリュームの作成中に、NetApp バックエンドに十分なスペースがあることを確認するために、要求されたボリュームサイズに乗算される数量。

CinderNetappStorageFamily

netapp_storage_family

(オプション) バックエンドデバイスで使用されるストレージファミリーのタイプ。クラスター化された Data ONTAP には ontap_cluster 、E シリーズには eseries を使用します。

注記: 7-Mode で動作する Data ONTAP の ontap_7mode のサポートは非推奨です。

CinderNetappStorageProtocol

netapp_storage_protocol

(必須) 使用するストレージプロトコル。nfsiscsi、または fc のいずれかを使用します。

CinderNetappTransportType

netapp_transport_type

(必須) バックエンドとの通信に使用されるトランスポートプロトコル。有効なオプションには、http および https が含まれます。

[a] クラスタースコープのアカウントの詳細については、ONTAP 設定 (NetApp OpenStack ドキュメントから) を参照してください。

次の設定は、クラスター化された Data ONTAP でのみ有効です (CinderNetappStorageFamilyontap_cluster に設定した場合と同様)。

表3.2 クラスター化された DATA ONTAP の NetApp 設定

パラメーターcinder.conf 設定説明

CinderNetappVserver

netapp_vserver

(必須) ボリュームプロビジョニングを実行する SVM の名前を指定します。これは、ストレージクラスター上の単一の SVM を指します。

次の設定は、E シリーズデバイスファミリーでのみ有効です (CinderNetappStorageFamilyeseries に設定されている場合など)。

表3.3 E シリーズの NetApp 設定

パラメーター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 を決定するために、ドライバーは CinderNetappTransportTypeCinderNetappServerHostname、および CinderNetappServerPort ポート値を組み合わせます。

次の設定は、NFS プロトコルを使用する場合にのみ有効です (CinderNetappStorageProtocolnfs に設定した場合など)。詳細については、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 から)。

表3.4 NFS の NetApp 設定

パラメーターcinder.conf 設定説明

CinderNetappNfsShares

None

(必須) NetApp ONTAP デバイスからエクスポートされ、コントローラーノードによってマウントされるデータ LIF のコンマ区切りリスト。このリストは、CinderNetappNfsSharesConfig で定義された場所に書き込まれます。以下に例を示します。

CinderNetappNfsShares: \'192.168.67.1:/cinder1,192.168.67.2:/cinder2,192.168.67.2:/cinder3,192.168.67.2:/archived_data'

CinderNetappNfsSharesConfig

nfs_shares_config

(必須) NFS エクスポートファイル への絶対パス。このファイルには、バックエンドとして使用できる利用可能な NFS 共有のリストが含まれています。

CinderNetappNfsMountOptions

nfs_mount_options

(オプション) NFS クライアントに渡すマウントオプションのコンマ区切りリスト。有効なオプションの詳細については、man mount を参照してください。

CinderNetappCopyOffloadToolPath [a]

netapp_copyoffload_tool_path

(オプション) NetApp コピーオフロードツールバイナリー のパスを指定します。openstack-cinder-volume プロセスがこのファイルを実行する必要があるため、このバイナリー (NetApp サポートポータル から入手可能) には Execute 権限が設定されている必要があります。

[a] このオプションは、クラスター化された Data ONTAP でのみ有効です (CinderNetappStorageFamilyontap_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