ボリュームは、USB ハードディスクのように、着脱可能なブロックストレージです。ボリュームは、インスタンス 1 つだけに接続できます。openstack
コマンドを使用して、ボリュームを作成して管理します。
管理者は、ユーザーに意識させず、またワークロードの中断なしに、データを含めた状態でボリュームを別の場所に移動することができます。スナップショットを持たない、切断されているボリュームだけが移動できます。
データ移動で考えられるユースケースは、以下のとおりです。
以下の例にあるように、openstack volume migrate コマンドでボリュームを移行します。
$ openstack volume migrate [-h] --host <host> [--force-host-copy]
[--lock-volume | --unlock-volume]
<volume>
この例では、--force-host-copy
は、強制的に一般的なホストベースのマイグレーションの仕組みを使用してドライバーの最適化なしで進めます。--lock-volume | --unlock-volume
は、利用可能なボリュームに適用されます。他のコマンドによりボリュームの移動が終了したかどうかを調べるためです。--lock-volume
は、ボリュームの状態がロックされ、移動の中断が許可されません。
注釈
ボリュームにスナップショットが存在する場合、指定のマイグレーション先のホストは、そのボリュームを受け入れることができません。また、管理ユーザーではない場合も、マイグレーションは失敗します。
以下の例では、イメージをベースにして my-new-volume
ボリュームを作成します。
イメージを一覧表示し、ボリュームに使用したいイメージの ID を記録します。
$ openstack image list
+--------------------------------------+---------------------------------+
| ID | Name |
+--------------------------------------+---------------------------------+
| 8bf4dc2a-bf78-4dd1-aefa-f3347cf638c8 | cirros-0.3.5-x86_64-uec |
| 9ff9bb2e-3a1d-4d98-acb5-b1d3225aca6c | cirros-0.3.5-x86_64-uec-kernel |
| 4b227119-68a1-4b28-8505-f94c6ea4c6dc | cirros-0.3.5-x86_64-uec-ramdisk |
+--------------------------------------+---------------------------------+
アベイラビリティゾーンを表示して、その中からボリュームを作成するアベイラビリティゾーンの ID をメモします。
$ openstack availability zone list
+------+-----------+
| Name | Status |
+------+-----------+
| nova | available |
+------+-----------+
Create a volume with 8 gibibytes (GiB) of space, and specify the availability zone and image:
$ openstack volume create --image 8bf4dc2a-bf78-4dd1-aefa-f3347cf638c8 \
--size 8 --availability-zone nova my-new-volume
+------------------------------+--------------------------------------+
| Property | Value |
+------------------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2016-09-23T07:52:42.000000 |
| description | None |
| encrypted | False |
| id | bab4b0e0-ce3d-4d57-bf57-3c51319f5202 |
| metadata | {} |
| multiattach | False |
| name | my-new-volume |
| os-vol-tenant-attr:tenant_id | 3f670abbe9b34ca5b81db6e7b540b8d8 |
| replication_status | disabled |
| size | 8 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| updated_at | None |
| user_id | fe19e3a9f63f4a14bd4697789247bbc5 |
| volume_type | lvmdriver-1 |
+------------------------------+--------------------------------------+
ボリュームが正常に作成されたことを確認するには、利用可能なボリュームを一覧表示します。
$ openstack volume list
+--------------------------------------+---------------+-----------+------+-------------+
| ID | DisplayName | Status | Size | Attached to |
+--------------------------------------+---------------+-----------+------+-------------+
| bab4b0e0-ce3d-4d57-bf57-3c51319f5202 | my-new-volume | available | 8 | |
+--------------------------------------+---------------+-----------+------+-------------+
ボリュームが正常に作成された場合、状態は available
にとなります。状態が error
の場合、クォータを超過している可能性があります。
cinder には、ボリューム作成時に volume_type
を指定する方法が 3 つあります。
ユーザーは、ボリューム作成時に volume type を指定できます。
$ openstack volume create -h -f {json,shell,table,value,yaml}
-c COLUMN --max-width <integer>
--noindent --prefix PREFIX --size <size>
--type <volume-type> --image <image>
--snapshot <snapshot> --source <volume>
--description <description> --user <user>
--project <project>
--availability-zone <availability-zone>
--property <key=value>
<name>
glance イメージに cinder_img_volume_type
プロパティーがある場合、 cinder はボリューム作成時にこのパラメーターを使って volume_type
を指定します。
cinder_img_volume_type
プロパティーを持つ glance イメージを選択して、そのイメージからボリュームを作成します。
$ openstack image list
+----------------------------------+---------------------------------+--------+
| ID | Name | Status |
+----------------------------------+---------------------------------+--------+
| 376bd633-c9c9-4c5d-a588-342f4f66 | cirros-0.3.5-x86_64-uec | active |
| d086 | | |
| 2c20fce7-2e68-45ee-ba8d- | cirros-0.3.5-x86_64-uec-ramdisk | active |
| beba27a91ab5 | | |
| a5752de4-9faf-4c47-acbc- | cirros-0.3.5-x86_64-uec-kernel | active |
| 78a5efa7cc6e | | |
+----------------------------------+---------------------------------+--------+
$ openstack image show 376bd633-c9c9-4c5d-a588-342f4f66d086
+------------------+-----------------------------------------------------------+
| Field | Value |
+------------------+-----------------------------------------------------------+
| checksum | eb9139e4942121f22bbc2afc0400b2a4 |
| container_format | ami |
| created_at | 2016-10-13T03:28:55Z |
| disk_format | ami |
| file | /v2/images/376bd633-c9c9-4c5d-a588-342f4f66d086/file |
| id | 376bd633-c9c9-4c5d-a588-342f4f66d086 |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros-0.3.5-x86_64-uec |
| owner | 88ba456e3a884c318394737765e0ef4d |
| properties | kernel_id='a5752de4-9faf-4c47-acbc-78a5efa7cc6e', |
| | ramdisk_id='2c20fce7-2e68-45ee-ba8d-beba27a91ab5' |
| protected | False |
| schema | /v2/schemas/image |
| size | 25165824 |
| status | active |
| tags | |
| updated_at | 2016-10-13T03:28:55Z |
| virtual_size | None |
| visibility | public |
+------------------+-----------------------------------------------------------+
$ openstack volume create --image 376bd633-c9c9-4c5d-a588-342f4f66d086 \
--size 1 --availability-zone nova test
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2016-10-13T06:29:53.688599 |
| description | None |
| encrypted | False |
| id | e6e6a72d-cda7-442c-830f-f306ea6a03d5 |
| multiattach | False |
| name | test |
| properties | |
| replication_status | disabled |
| size | 1 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| type | lvmdriver-1 |
| updated_at | None |
| user_id | 33fdc37314914796883706b33e587d51 |
+---------------------+--------------------------------------+
上記のパラメーターが設定されなかった場合、 cinder はボリューム作成時に cinder.conf に定義された default_volume_type を使用します。
cinder.conf 設定ファイルの例。
[default]
default_volume_type = lvmdriver-1
Attach your volume to a server, specifying the server ID and the volume ID:
$ openstack server add volume 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 \
573e024d-5235-49ce-8332-be1576d323f8 --device /dev/vdb
お使いのボリュームの情報を表示します。
$ openstack volume show 573e024d-5235-49ce-8332-be1576d323f8
この出力から、このボリュームは ID が 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5
のサーバーに接続されていること、nova のアベイラビリティゾーン内にあること、ブータブルであることが分かります。
+------------------------------+-----------------------------------------------+
| Field | Value |
+------------------------------+-----------------------------------------------+
| attachments | [{u'device': u'/dev/vdb', |
| | u'server_id': u'84c6e57d-a |
| | u'id': u'573e024d-... |
| | u'volume_id': u'573e024d... |
| availability_zone | nova |
| bootable | true |
| consistencygroup_id | None |
| created_at | 2016-10-13T06:08:07.000000 |
| description | None |
| encrypted | False |
| id | 573e024d-5235-49ce-8332-be1576d323f8 |
| multiattach | False |
| name | my-new-volume |
| os-vol-tenant-attr:tenant_id | 7ef070d3fee24bdfae054c17ad742e28 |
| properties | |
| replication_status | disabled |
| size | 8 |
| snapshot_id | None |
| source_volid | None |
| status | in-use |
| type | lvmdriver-1 |
| updated_at | 2016-10-13T06:08:11.000000 |
| user_id | 33fdc37314914796883706b33e587d51 |
| volume_image_metadata |{u'kernel_id': u'df430cc2..., |
| | u'image_id': u'397e713c..., |
| | u'ramdisk_id': u'3cf852bd..., |
| |u'image_name': u'cirros-0.3.5-x86_64-uec'} |
+------------------------------+-----------------------------------------------+
ボリュームをリサイズするには、まずボリュームをサーバーから切り離します。以下のコマンドでサーバー ID とボリューム ID を指定して、サーバーからボリュームを切り離します。
$ openstack server remove volume 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 573e024d-5235-49ce-8332-be1576d323f8
このコマンドは何も出力しません。
ボリュームを一覧表示します。
$ openstack volume list
+----------------+-----------------+-----------+------+-------------+
| ID | Display Name | Status | Size | Attached to |
+----------------+-----------------+-----------+------+-------------+
| 573e024d-52... | my-new-volume | available | 8 | |
| bd7cf584-45... | my-bootable-vol | available | 8 | |
+----------------+-----------------+-----------+------+-------------+
ボリュームが利用可能になっていることに注意してください。
パラメーターとしてボリューム ID と新しいサイズ (以前のボリュームよりも大きいサイズ) を指定して、ボリュームをリサイズします。
$ openstack volume set 573e024d-5235-49ce-8332-be1576d323f8 --size 10
このコマンドは何も出力しません。
注釈
スナップショットを持つ LVM ボリュームを拡張する場合、ボリュームは停止されます。 lvm.conf
で auto_activation_volume_list
が定義されていない場合は、自動的にボリュームの動作が再開されます。詳しい情報は lvm.conf
を参照のこと。
To delete your volume, you must first detach it from the server. To detach the volume from your server and check for the list of existing volumes, see steps 1 and 2 in Resize_a_volume.
ボリューム名または ID を使用してボリュームを削除します。
$ openstack volume delete my-new-volume
このコマンドは何も出力しません。
List the volumes again, and note that the status of your volume is
deleting
:
$ openstack volume list
+----------------+-----------------+-----------+------+-------------+
| ID | Display Name | Status | Size | Attached to |
+----------------+-----------------+-----------+------+-------------+
| 573e024d-52... | my-new-volume | deleting | 8 | |
| bd7cf584-45... | my-bootable-vol | available | 8 | |
+----------------+-----------------+-----------+------+-------------+
ボリュームが完全に削除されると、ボリュームの一覧には表示されなくなります。
$ openstack volume list
+----------------+-----------------+-----------+------+-------------+
| ID | Display Name | Status | Size | Attached to |
+----------------+-----------------+-----------+------+-------------+
| bd7cf584-45... | my-bootable-vol | available | 8 | |
+----------------+-----------------+-----------+------+-------------+
openstack volume transfer request create コマンドを使用して、別の所有者に転送することができます。ボリュームドナーまたは元の所有者が転送要求を作成し、作成した転送 ID と認証キーをボリュームの転送先に送信します。ボリュームの転送先または新規所有者が ID とキーを使用して転送を確定します。
注釈
ボリューム譲渡の手続きは、プロジェクト (ボリュームの譲渡元と譲渡先) が同じクラウド内にあることを前提にしています。
以下のユースケースがあります。
ボリュームの譲渡元としてログインし、利用可能なボリュームを一覧表示します。
$ openstack volume list
+-----------------+-----------------+-----------+------+-------------+
| ID | Display Name | Status | Size | Attached to |
+-----------------+-----------------+-----------+------+-------------+
| 72bfce9f-cac... | None | error | 1 | |
| a1cdace0-08e... | None | available | 1 | |
+-----------------+-----------------+-----------+------+-------------+
ボリュームの譲渡元として、特定のボリュームのボリューム譲渡認証コードを要求します。
$ openstack volume transfer request create <volume>
<volume>
Name or ID of volume to transfer.
ボリュームが available
(利用可能) の状態でない場合、要求は却下されます。譲渡要求がデータベース内で有効な場合 (失効していない、または削除されていない場合)、ボリュームは awaiting- transfer
(譲渡待ち) の状態になります。たとえば、
$ openstack volume transfer request create a1cdace0-08e4-4dc7-b9dc-457e9bcfe25f
この出力では、認証キーと、id
の行にボリュームの譲渡 ID が表示されます。
+------------+--------------------------------------+
| Field | Value |
+------------+--------------------------------------+
| auth_key | 0a59e53630f051e2 |
| created_at | 2016-11-03T11:49:40.346181 |
| id | 34e29364-142b-4c7b-8d98-88f765bf176f |
| name | None |
| volume_id | a1cdace0-08e4-4dc7-b9dc-457e9bcfe25f |
+------------+--------------------------------------+
注釈
オプションとして、--name transferName
パラメーターを使用して譲渡の名前を指定することができます。
注釈
auth_key
プロパティーが openstack volume transfer request create VOLUME_ID
の出力に含まれますが、後続の openstack volume transfer request show TRANSFER_ID
コマンドではこれを利用できません。
ボリューム譲渡 ID と認証キーを新しい所有者に送信します (例: 電子メール)。
処理待ちの譲渡を確認します。
$ openstack volume transfer request list
+--------------------------------------+--------------------------------------+------+
| ID | Volume | Name |
+--------------------------------------+--------------------------------------+------+
| 6e4e9aa4-bed5-4f94-8f76-df43232f44dc | a1cdace0-08e4-4dc7-b9dc-457e9bcfe25f | None |
+--------------------------------------+--------------------------------------+------+
ボリュームの譲渡先 (新しい所有者) が譲渡を受理した後は、その譲渡がすでに利用できない状態になっていることが分かります。
$ openstack volume transfer request list
+----+-----------+------+
| ID | Volume ID | Name |
+----+-----------+------+
+----+-----------+------+
ボリュームの受取側として、まず、元の所有者から譲渡 ID と認証キーを取得する必要があります。
要求を確定します。
$ openstack volume transfer request accept transferID authKey
例:
$ openstack volume transfer request accept 6e4e9aa4-bed5-4f94-8f76-df43232f44dc b2c8e585cbc68a80
+-----------+--------------------------------------+
| Property | Value |
+-----------+--------------------------------------+
| id | 6e4e9aa4-bed5-4f94-8f76-df43232f44dc |
| name | None |
| volume_id | a1cdace0-08e4-4dc7-b9dc-457e9bcfe25f |
+-----------+--------------------------------------+
注釈
転送用のクォータが不足している場合、転送は拒否されます。
利用可能なボリュームとその状態を表示します。
$ openstack volume list
+-----------------+-----------------+-----------------+------+-------------+
| ID | Display Name | Status | Size | Attached to |
+-----------------+-----------------+-----------------+------+-------------+
| 72bfce9f-cac... | None | error | 1 | |
| a1cdace0-08e... | None |awaiting-transfer| 1 | |
+-----------------+-----------------+-----------------+------+-------------+
合致する転送 ID を探します。
$ openstack volume transfer request list
+--------------------------------------+--------------------------------------+------+
| ID | VolumeID | Name |
+--------------------------------------+--------------------------------------+------+
| a6da6888-7cdf-4291-9c08-8c1f22426b8a | a1cdace0-08e4-4dc7-b9dc-457e9bcfe25f | None |
+--------------------------------------+--------------------------------------+------+
ボリュームを削除します。
$ openstack volume transfer request delete <transfer>
削除する移転物の名前または ID。
例:
$ openstack volume transfer request delete a6da6888-7cdf-4291-9c08-8c1f22426b8a
転送一覧が空になり、ボリュームが転送に使用できることを確認します。
$ openstack volume transfer request list
+----+-----------+------+
| ID | Volume ID | Name |
+----+-----------+------+
+----+-----------+------+
$ openstack volume list
+-----------------+-----------+--------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+-----------------+-----------+--------------+------+-------------+----------+-------------+
| 72bfce9f-ca... | error | None | 1 | None | false | |
| a1cdace0-08... | available | None | 1 | None | false | |
+-----------------+-----------+--------------+------+-------------+----------+-------------+
スナップショットは、ボリュームのある時点での版です。管理者は、スナップショットを管理対象にしたり管理対象から外したりできます。
openstack volume snapshot set コマンドでスナップショットを管理対象にします。
$ openstack volume snapshot set [-h]
[--name <name>]
[--description <description>]
[--no-property]
[--property <key=value>]
[--state <state>]
<snapshot>
指定する引数は以下のとおりです。
--name <name>
--description <description>
--no-property
--property <key=value>
--state <state>
<snapshot>
$ openstack volume snapshot set my-snapshot-id
openstack volume snapshot unset コマンドでスナップショットを管理対象外にします。
$ openstack volume snapshot unset [-h]
[--property <key>]
<snapshot>
指定する引数は以下のとおりです。
--property <key>
<snapshot>
以下の例は my-snapshot-id
イメージを管理対象外にします。
$ openstack volume snapshot unset my-snapshot-id
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.