はじめに
この記事では、最近検証環境を設定する必要があった経験をメモとして共有します。具体的には、OpenStackのBlock StorageでONTAPを利用する方法に焦点を当てています。
前回の記事の続きとして、All in One構成上に作成したインスタンスへ接続したCinder VolumeにおけるBackend Storage間の移行に関する内容を記載します。
何をしたい?できる?
- Cinder VolumeのType変更に伴うデータ移行 (≒Storage vMotion)
記事における環境情報
本記事では、以下の環境で実施した内容となります。
- ONTAP: 9.10.1
- CentOS: 7
- Openstack: Queens
- OpenstackはHyper-Vの仮想マシンへ導入
- Networkは1つのセグメントを用意 (検証なのでシンプル構成)
Cinder VolumeのRetypeについて
Retypeは既存のVolume Typeを別のVolume Typeに変更する機能です。
Volume Typeは、StorageのBackendやパフォーマンスなど、volume特性が定義されており、Cinder Retypeを使用すると、Volume Typeを変更し、Storage要件に応じて特性を調整(変更)することが可能となります。
本記事にあるような、異なるONTAP Cluster間でRetype行われる場合は、データの移動が発生し、データコピー中は時間とリソースを消費する形となります。
以下のような特徴や制約があります。
- オンラインで移行(Type変更)可能
- インスタンスのシステム用cinder volumeでも、データ用でも移行可能
- 変更先に新しいCinder Volumeを作成して移行
- OpenStack側によるバックグラウンドの移行速度の調整はできない
- Cinder Snapshotを取得したCinder VolumeへRetypeは実行できない
- インスタンスにアタッチ(接続)されていなくても変更可能
- Retype完了後に移行先のVolume TypeのQoS値に変更される
Cinder VolumeのRetypeの実行
ここでは、インスタンスに接続したCinder volumeのRetypeを実施します。
イメージとしては下図の通りです。
1. admin(管理者)ユーザによるRetypeをGUIで実施
1-1. 移行対象のCinder Volumeの確認
OpenStackのWeb管理画面からadminユーザでログインし、[プロジェクト]=>[ボリューム]=>[ボリューム]をクリックし、表示された画面で移行対象を選択します。
本記事の場合、ONTAP-AFF01という種別から切り出した3GBのCinder Volumeで、インスタンスに/dev/vdbという形で見える事が確認できます。
Retypeする為、Snapshotも取得されていない事を確認します。
また、インスタンスに接続してmountの状態を確認すると接続したCinder Volumeでファイルシステムを作成していますが、/dev/vdb1には書き込み自体は殆ど実施されてない形です。
# インスタンスへ接続して確認
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 901M 0 901M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 20M 901M 3% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/vda1 20G 2.0G 19G 10% /
tmpfs 184M 0 184M 0% /run/user/1000
/dev/vdb1 2.9G 9.0M 2.8G 1% /ontapvol
1-2. Retypeの実施
本記事では移行時の速度を測定する為、ONTAPのqos statisticsコマンドを利用し、コピー発生(移行)速度とデータ量の確認をします。
# 移行先のONTAP側で実施
> qos statistics volume characteristics show -vserver openstack02 -volume nfs02
Workload ID IOPS Throughput Request Size Read Concurrency
--------------- ------ -------- ---------------- ------------ ---- -----------
-total- - 0 0KB/s 0B 0% 0
-total- - 0 0KB/s 0B 0% 0
-total- - 7 0KB/s 0B 0% 0
対象のCinder Volumeで[ボリューム種別の変更]を選択します。
表示された画面で、[種別]を移行先となるCinder Volume Typeに指定し[移行ポリシー]を要求時にして、[ボリューム種別の変更]をクリックします。
ONTAPの転送速度を確認すると、QoSに影響された形で移行されている事が確認できます。
時々移行元のQoSである5MB/sを超えるのはBurst QoSが発生している為です。
(移行元か移行先のQoS値が小さい方に引っ張られる)
> qos statistics volume characteristics show -vserver openstack02 -volume nfs02
Workload ID IOPS Throughput Request Size Read Concurrency
--------------- ------ -------- ---------------- ------------ ---- -----------
-total- - 55 3.00MB/s 57195B 0% 0
nfs02-wid19939 19939 48 3.00MB/s 65536B 0% 0
-total- - 152 9.50MB/s 65536B 0% 0
nfs02-wid19939 19939 152 9.50MB/s 65536B 0% 0
-total- - 62 3.50MB/s 59193B 0% 4
nfs02-wid19939 19939 56 3.50MB/s 65536B 0% 4
-total- - 49 3.00MB/s 64198B 0% 0
nfs02-wid19939 19939 48 3.00MB/s 65536B 0% 0
-total- - 56 3.38MB/s 63195B 0% 0
[Job 74022] Job succeeded: Successful
詳細を確認する為、OpenStack上でCLIを使いRetype後の状態を確認します。
[root@queens ~]# source keystonerc_admin
[root@queens ~(keystone_admin)]# cinder list
+--------------------------------------+--------+-------+------+-------------+----------+--------------------------------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+--------+-------+------+-------------+----------+--------------------------------------+
| 8bd470ae-2efb-4c37-bada-400e3e55c909 | in-use | vol01 | 3 | ONTAP-HDD01 | false | 3697be8a-34ed-4bcd-a817-ebd05a259962 |
| d2207281-b224-4abf-ad3a-4ab7e5a8ad79 | in-use | | 20 | ONTAP-AFF01 | true | 3697be8a-34ed-4bcd-a817-ebd05a259962 |
+--------------------------------------+--------+-------+------+-------------+----------+--------------------------------------+
[root@queens ~(keystone_admin)]# cinder show 8bd470ae-2efb-4c37-bada-400e3e55c909
+--------------------------------+-----------------------------------------------+
| Property | Value |
+--------------------------------+-----------------------------------------------+
| attached_servers | ['3697be8a-34ed-4bcd-a817-ebd05a259962'] |
| attachment_ids | ['f106b51c-d8ab-413e-a735-aa9377f4da12'] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2024-04-01T07:03:41.000000 |
| description | |
| encrypted | False |
| id | 8bd470ae-2efb-4c37-bada-400e3e55c909 |
| metadata | attached_mode : rw |
| migration_status | success |
| multiattach | False |
| name | vol01 |
| os-vol-host-attr:host | queens.local@ontap-hdd01#172.16.10.247:/nfs02 |
| os-vol-mig-status-attr:migstat | success |
| os-vol-mig-status-attr:name_id | 1a128b55-1b00-41fd-a19d-8eb0102f3886 |
| os-vol-tenant-attr:tenant_id | e87e490d03f8493ba656e254e7f813ec |
| replication_status | None |
| size | 3 |
| snapshot_id | None |
| source_volid | None |
| status | in-use |
| updated_at | 2024-04-02T06:17:09.000000 |
| user_id | 5beab73ebd4846b0bb92ea9ab7878c47 |
| volume_type | ONTAP-HDD01 |
+--------------------------------+-----------------------------------------------+
[root@queens ~(keystone_admin)]# df -h |grep nfs
172.16.10.247:/nfs02 48G 15M 48G 1% /var/lib/nova/mnt/c2ce614519c46edf02518a262ac7ff10
172.16.10.244:/nfs01 48G 2.4G 46G 5% /var/lib/nova/mnt/833067e7f79fa5e29491446c3ad99bdf
[root@queens ~(keystone_admin)]# ls -al /var/lib/nova/mnt/c2ce614519c46edf02518a262ac7ff10
total 3158132
drwxr-xr-x 2 root root 4096 Apr 2 15:14 .
drwxr-xr-x 4 nova nova 86 Apr 2 15:04 ..
drwxrwxrwx 2 root root 4096 Mar 28 15:26 .snapshot
-rw-rw-rw- 1 qemu qemu 3221225472 Apr 2 15:17 volume-1a128b55-1b00-41fd-a19d-8eb0102f3886
QoS値を大きく調整してRetypeを実施すると、短時間で移行元のCinder Volumeが未使用でもCinder Volumeのサイズ分だけデータ転送が確認できるかと思います。
(秒間表示なので、nfs02-xxのMB/s行数を足すと移行するCinder Volumeサイズになる)
> qos statistics volume characteristics show -vserver openstack02 -volume nfs02
Workload ID IOPS Throughput Request Size Read Concurrency
--------------- ------ -------- ---------------- ------------ ---- -----------
-total- - 14 16.00KB/s 1170B 7% 0
nfs02-wid19939 19939 7 16.00KB/s 2340B 14% 0
-total- - 4925 306.76MB/s 65311B 0% 4
nfs02-wid19939 19939 4925 306.76MB/s 65311B 0% 4
-total- - 6653 415.44MB/s 65476B 0% 5
nfs02-wid19939 19939 6647 415.44MB/s 65536B 0% 5
-total- - 6343 396.38MB/s 65525B 0% 6
nfs02-wid19939 19939 6342 396.38MB/s 65536B 0% 6
-total- - 4867 304.06MB/s 65509B 0% 4
nfs02-wid19939 19939 4865 304.06MB/s 65536B 0% 4
-total- - 4690 293.06MB/s 65522B 0% 5
nfs02-wid19939 19939 4689 293.06MB/s 65536B 0% 5
-total- - 5146 321.25MB/s 65459B 0% 4
nfs02-wid19939 19939 5140 321.25MB/s 65536B 0% 4
-total- - 6276 392.12MB/s 65515B 0% 6
nfs02-wid19939 19939 6274 392.12MB/s 65536B 0% 6
-total- - 6115 382.19MB/s 65536B 0% 6
nfs02-wid19939 19939 6115 382.19MB/s 65536B 0% 6
-total- - 4178 260.94MB/s 65488B 0% 5
nfs02-wid19939 19939 4175 260.94MB/s 65536B 0% 5
-total- - 13 0KB/s 0B 0% 0
2. 一般ユーザによるRetypeをCLIで実施
次に一般ユーザ権限で、CLIを用いたRetypeを試してみます。
2-1. 一般ユーザでもRetype可能にする為の準備
OpenStackのCLIで、admin権限を用いてcinder.confの修正を実施します。
cinder.confに適切なKeystone権限で[Nova]セクションが設定されている必要があります。
必要な情報については、/etc/nova/nova.confのファイルを参照する事で確認する事ができます。
# cinder.confの修正後の内容
[root@queens ~(keystone_admin)]# cat /etc/cinder/cinder.conf
(中略)
[nova]
auth_url=http://172.16.10.144:5000/
username=nova
password=XXXXXXXX
user_domain_name=Default
project_name=services
project_domain_name=Default
auth_type = password
project_domain_id = default
user_domain_id = default
[ontap-aff01]
volume_backend_name=ontap-aff01
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
(中略)
修正後にcinderサービスを再起動します。
[root@queens ~(keystone_admin)]# systemctl restart openstack-cinder*
2-2. 移行対象のCinder Volumeの確認
OpenStackに作成した一般user権限を読み込み状態を確認します。
(keystonerc_adminファイルをコピーしてuser01用に修正してます)
本記事では起動中のインスタンスに接続したvol02という5GBのCinder VolumeのRetypeを実施します。
[root@queens ~(keystone_user01)]# source keystonerc_user01
[root@queens ~(keystone_user01)]# nova list
+--------------------------------------+--------+--------+------------+-------------+--------------------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+--------+--------+------------+-------------+--------------------------------------+
| e9197613-26c6-40c4-ac5c-bbc8c82cb1a1 | inst02 | ACTIVE | - | Running | innet02=192.168.30.14, 172.16.10.240 |
+--------------------------------------+--------+--------+------------+-------------+--------------------------------------+
[root@queens ~(keystone_user01)]# cinder list
+--------------------------------------+--------+-------+------+-------------+----------+--------------------------------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+--------+-------+------+-------------+----------+--------------------------------------+
| 9a827e60-2b92-4767-b26b-3ab4a2251fc6 | in-use | | 20 | ONTAP-AFF01 | true | e9197613-26c6-40c4-ac5c-bbc8c82cb1a1 |
| d8d7308b-710f-454b-bac1-457bc2479499 | in-use | vol02 | 5 | ONTAP-AFF01 | false | e9197613-26c6-40c4-ac5c-bbc8c82cb1a1 |
+--------------------------------------+--------+-------+------+-------------+----------+--------------------------------------+
[root@queens ~(keystone_user01)]# cinder snapshot-list
+----+-----------+--------+------+------+
| ID | Volume ID | Status | Name | Size |
+----+-----------+--------+------+------+
+----+-----------+--------+------+------+
2-3. Retypeの実施
Retypeコマンドを実施します。
[root@queens ~(keystone_user01)]# cinder retype --migration-policy on-demand d8d7308b-710f-454b-bac1-457bc2479499 ONTAP-HDD01
2-4. Retype後の確認
移行完了後に状態確認を実施します。
[root@queens ~(keystone_user01)]# cinder list
+--------------------------------------+--------+-------+------+-------------+----------+--------------------------------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+--------+-------+------+-------------+----------+--------------------------------------+
| 9a827e60-2b92-4767-b26b-3ab4a2251fc6 | in-use | | 20 | ONTAP-AFF01 | true | e9197613-26c6-40c4-ac5c-bbc8c82cb1a1 |
| d8d7308b-710f-454b-bac1-457bc2479499 | in-use | vol02 | 5 | ONTAP-HDD01 | false | e9197613-26c6-40c4-ac5c-bbc8c82cb1a1 |
+--------------------------------------+--------+-------+------+-------------+----------+--------------------------------------+
[root@queens ~(keystone_user01)]# cinder show d8d7308b-710f-454b-bac1-457bc2479499
+------------------------------+------------------------------------------+
| Property | Value |
+------------------------------+------------------------------------------+
| attached_servers | ['e9197613-26c6-40c4-ac5c-bbc8c82cb1a1'] |
| attachment_ids | ['76046a49-f345-46b5-a52f-124bb2572b40'] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2024-04-02T08:03:09.000000 |
| description | |
| encrypted | False |
| id | d8d7308b-710f-454b-bac1-457bc2479499 |
| metadata | attached_mode : rw |
| multiattach | False |
| name | vol02 |
| os-vol-tenant-attr:tenant_id | 145415a0344c491794bcf86f1520c852 |
| replication_status | None |
| size | 5 |
| snapshot_id | None |
| source_volid | None |
| status | in-use |
| updated_at | 2024-04-02T09:36:26.000000 |
| user_id | 89a4952f7cf541408bf02d35c37a88b7 |
| volume_type | ONTAP-HDD01 |
+------------------------------+------------------------------------------+
参考及びリンク
Understanding volume migration on OpenStack: Intercluster volume migration
Understanding volume migration on OpenStack: Intracluster volume migration
Openstack: Cinder retype of "in-use" volume fails with HTTP 400 error
OpenStack環境のCinderでONTAP利用①【Packstack利用のOpenStack QueensのAll in One Installメモ】
OpenStack環境のCinderでONTAP利用②【OpenStack Queensの初期設定メモ】