はじめに
この記事では、最近検証環境を設定する必要があった経験をメモとして共有します。具体的には、OpenStackのBlock StorageでONTAPを利用する方法に焦点を当てています。
前回の記事の続きとして、Cinder Volumeの利用においてONTAPのQoSと連携させた設定についての内容を記載します。
![qiita-square](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1268577%2F1f25a834-24af-22a2-9043-6d129aff5f51.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b87e5dbfb8a3819f59b43a52b4c0d10e)
何をしたい?できる?
- Cinder VolumeでQoSを利用する
- 利用するCinderのQoS定義をONTAPのQoS Policy Groupと連携させる
QoSとは?
Quality of Service(QoS)は、パフォーマンス特性を制御するための機能で、Cinder volumeへのワークロードに対してIOPS(Input/Output Operations Per Second)の最大値や最小値を指定したり、帯域幅を制限する設定が可能になります。
もちろん、大元のStorageの限界を超えないような値を設定する必要があります。
![qiita-square](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1268577%2Fbafa3732-2498-cca1-040f-f789e3bd792c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ba1967ddcf5844b824401fffe7d13dfc)
特にONTAPをBackend Storageとしている場合の設定方法については、2種類あり、要件に応じて選択頂くことができます。
設定方法 | 概要 |
---|---|
QoS Specの利用 | Cinder側でQoSを定義する形で、ONTAPに個々のQoS PolicyGroupを新規作成 |
extra-specsの利用 | Cinder側でONTAPの既存QoS PolicyGroupを指定する形 |
記事における環境情報
本記事では、以下の環境で実施した内容となります。
- ONTAP: 9.10.1 / 9.13.1
- CentOS: 7
- Openstack: Queens
- 2つのONTAP Clusterを用意
- 2種類のCinder Volume Typeとして設定(AFF/HDD)
- QoSの設定をMaxIOPSではなくMaxBPSで実施
![qiita-square](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1268577%2F31639d1f-0e5f-121a-a5d0-b5179bf44f00.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=05155f8d1b049267c0f6813d42ff46ba)
OpenStack CinderのQoS Specを利用したQoS設定
Cinder側で定義する形のQoS利用についての手順になりますが、Cinder Volumeを作成する度に、個別のQoS Policy groupがONTAP内に作成されます。
イメージとしては以下のような形です。
![qiita-square](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1268577%2F3c088840-88bd-d449-73a2-fb48821a2e0b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=fbd1479c0c0a1a4ce845a96f31a3aba3)
1. QoSの設定
1-1. QoSスペックの設定
OpenStackのWeb管理画面からログインし、[管理]=>[ボリューム]=>[ボリューム種別]をクリックし、表示された画面で[QoSスペックの作成]を選択します。
![qiita-square](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1268577%2Fe3129d0d-8cb4-5ccf-212a-5fafb5426d2a.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=2fe8036e834b0062bbdbd3905fb6f568)
1-2. QoS値の設定
作成されたQoSスペックを指定して、[スペックの管理]を選択します。
表示された画面で、キーと値を入力し[作成]をクリックします。
ここでは最大5MB/secまでとした例になります。
1-3. QoSスペックとVolume typeの紐づけ
QoSと紐づけするボリューム種別の[QoSスペックの関連付けの管理]を選択します。
表示された画面で、作成したQoSスペックを指定して[割り当て]をクリックします。
![qiita-square](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1268577%2F10b1ef37-ab76-4fd1-79d1-35b09c63c0ef.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=133108c610b978d2bd70914219c36345)
1-4. Cinder Volumeの作成
[プロジェクト]=>[ボリューム]=>[ボリューム]をクリックし、表示された画面で[ボリュームの作成]を選択します。
ONTAP側でQoSの設定を確認すると、File(Cinder Volume)に対してQoSが設定されている事が確認できます。
- QoSのPolicy Group名
openstack-91e3f18a-4ed4-4c4d-9ee3-a37d1e4b8483
- NFS Volume内に作成されるファイル名
volume-91e3f18a-4ed4-4c4d-9ee3-a37d1e4b8483
> qos policy-group show -vserver openstack01
Name Vserver Class Wklds Throughput Is Shared
---------------- ----------- ------------ ----- ------------ ---------
openstack-91e3f18a-4ed4-4c4d-9ee3-a37d1e4b8483
openstack01 user-defined 1 0-5MB/s true
> qos workload show -vserver openstack01
Workload Wid Policy Group Vserver Volume LUN Qtree File Path
-------------- ----- ------------ -------- -------- ------ ------ -------------
file-volume_91e3f18a_4ed4_4c4d_9ee3_a37d1e4b8483-wid16792
16792 openstack-91e3f18a-4ed4-4c4d-9ee3-a37d1e4b8483
openstack01
nfs01 - - volume-91e3f18a-4ed4-4c4d-9ee3-a37d1e4b8483
事前に作成したONTAP QoS Policyを利用
事前にONTAP側でQoS Policy設定を実施しておき、Cinder Volumeの種別でONTAPのQoS Policy名をextra-specで指定しておくことでQoSが利用できるようになります。
イメージとしては以下のような形です。
![qiita-square](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1268577%2Fa21e969f-529b-6bda-8b6a-a8aa85323360.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3202606c13fedea825f7a4116d845705)
2. 既存ONTAP QoS Policyの利用
2-1. ONTAP側でQoS Policy作成
QoSを定義したいCinder volumeのBackend定義されているONTAPでQoS Policyを最大10MB/sで作成します。
作成時に -is-sharedをfalseを指定することで個々のCinder volume毎に10MB/sで利用可能ます。
(Cinder Volumeを2つ作成するとそれぞれに10MB/s設定となる)
> qos policy-group create -vserver openstack02 -policy-group policy001 -is-shared false -max-throughput 10mb/s
> qos policy-group show -vserver openstack02
Name Vserver Class Wklds Throughput Is Shared
---------------- ----------- ------------ ----- ------------ ---------
policy001 openstack02 user-defined 0 0-10MB/s false
2-2. Volume typeとの紐づけ
OpenStackのWeb管理画面からログインし、[管理]=>[ボリューム]=>[ボリューム種別]をクリックし、表示された画面で対象の種別[追加スペックの表示]を選択します。
![qiita-square](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1268577%2F0f0c80c4-5ae2-914a-3893-93439d7b01ab.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=69232c8803a7b170120e2a9edc5559f3)
表示された画面で、キーと値を入力し[作成]をクリックします。
キーには、netapp:qos_policy_groupを入力し、値には先程作成したONTAPのQOS Policyを入力します。
2-3. Cinder Volumeの作成
[プロジェクト]=>[ボリューム]=>[ボリューム]をクリックし、表示された画面で[ボリュームの作成]を選択します。
追加スペックでQoS Policyを設定した種別を指定して作成を実施します。
ONTAP側でQoSの設定を確認すると、File(Cinder Volume)に対してQoSが設定されている事が確認できます。
- QoSのPolicy Grouo名
policy001
- NFS Volume内に作成されるファイル名
volume-ebfbb723-0859-4165-9a71-11ae62b88384
> qos policy-group show -vserver openstack02
Name Vserver Class Wklds Throughput Is Shared
---------------- ----------- ------------ ----- ------------ ---------
policy001 openstack02 user-defined 1 0-10MB/s false
> qos workload show -vserver openstack02
Workload Wid Policy Group Vserver Volume LUN Qtree File Path
-------------- ----- ------------ -------- -------- ------ ------ -------------
file-volume_ebfbb723_0859_4165_9a71_11ae62b88384-wid24667
24667 policy001 openstack02
nfs02 - - volume-ebfbb723-0859-4165-9a71-11ae62b88384
参考及びリンク
OpenStack環境のCinderでONTAP利用①【Packstack利用のOpenStack QueensのAll in One Installメモ】