ボリュームは、Nova のブロックデバイスに似たストレージデバイスです。ESC は、ESC によって作成されたボリュームとアウトオブバンドボリュームの両方をサポートします。さらに、ESC は、ESC によって作成されたブート可能ボリュームと、アウトオブバンドのブート可能ボリュームもサポートします。
(注) |
nova boot コマンドを使用して VM に接続できるボリュームの最大数は 2 つだけです。
|
ESC によって作成されたボリューム
VM グループの一部としてボリュームを作成するには、 <size> および <sizeunits> パラメータを、展開要求のボリュームセクションで指定する必要があります。ボリュームタイプは、Cinder のデフォルトのボリュームタイプです。
次の例は、展開要求で ESC ボリュームを作成する方法を示しています。
<volumes>
<volume>
<name>example</name>
<volid>1</volid>
<bus>ide</bus>
<size>1</size>
<sizeunit>GiB</sizeunit>
</volume>
</volumes>
(注) |
展開後にボリュームが追加された場合、OpenStack API では指定されたバス タグを指定できず、OpenStack インスタンスで定義されたデフォルトを使用します。
|
ESC によって作成されたブート可能ボリューム
ブート可能ボリュームは、ルートディスクとして使用されるボリュームです。ESC は、展開要求のイメージ参照名または UUID を使用して、ブート可能なボリュームを作成します。ボリュームからインスタンスを起動するには、boot_index を指定します。指定しない場合、インスタンスは接続されたボリュームのみになります。
次の例を参考にしてください。
<volumes>
<volume>
<name>cinder-vol1X</name>
<volid>1</volid>
<image>cirrosX1.75</image>
<bus>ide</bus>
<type>lvm</type>
<size>1</size>
<sizeunit>GiB</sizeunit>
<boot_index>0</boot_index>
</volume>
</volumes>
アウトオブバンドボリューム
アウトオブバンド(既存)ボリュームは、展開要求の <type> 属性を使用して指定できます。<type> 属性が指定されている場合、ESC は指定されたタイプのボリュームを照合します。
ESC は、展開要求のボリュームセクションで設定された値に基づいて、ESC によって作成されたボリュームとアウトオブバンドボリュームを区別します。VM に関連付けられたボリューム(ボリュームが ESC によって作成された場合のみ)は、サービスが展開解除されるか、VM
がスケールダウンされると削除されます。
(注) |
アウトオブバンドボリュームを使用する場合のスケールイン/スケールアウトのサポートは使用できなくなります。
|
<volumes>
<volume>
<name>pre-existing</name>
<volid>1</volid>
<bus>ide</bus>
<type>lvm</type>
</volume>
</volumes>
<type> 属性が指定されていない場合、ESC はタイプのないボリュームを照合します。
ESC は、同じ名前のボリュームを照合します。同じ名前のボリュームが複数ある場合、ESC の要求は失敗します。
<volumes>
<volume>
<name>pre-existing</name>
<volid>1</volid>
<bus>ide</bus>
</volume>
</volumes>
アウトオブバンドブート可能ボリューム
アウトオブバンドブート可能ボリューム(OpenStack のみ)は、指定されたボリュームがルートディスクとして使用される、アウトオブバンドボリュームの一種です。VM は、イメージではなくそのボリュームから起動されます。<boot_index>
属性は、展開要求のアウトオブバンドブート可能ボリュームを指定します。
次の例を参考にしてください。
<volumes>
<volume>
<name>pre-existing</name>
<volid>0</volid>
<bus>ide</bus>
<type>lvm</type>
<boot_index>0</boot_index>
</volume>
</volumes>
アウトオブバンドブート可能ボリュームには、アウトオブバンドボリュームと同様に <type> 属性の有無があります。
アウトオブバンドのブート可能ボリュームのスワップ
アウトオブバンドのブート可能ボリュームをスワップするには、更新展開リクエストで古いボリュームを削除し、同じ volid および boot_index
値を持つ新しいボリュームを追加する必要があります。追加することで、OpenStack のブート可能ボリュームがスワップされます。更新後に VM を再起動する必要があります。
次の例を参考にしてください。
<volumes>
<volume nc:operation="delete">
<name>pre-existing</name>
<volid>0</volid>
<bus>ide</bus>
<type>lvm</type>
<boot_index>0</boot_index>
</volume>
<volume>
<name>another-pre-existing</name>
<volid>0</volid>
<bus>ide</bus>
<type>lvm</type>
<boot_index>0</boot_index>
</volume>
</volumes>
パラメータの説明
-
[名前(Name)]:既存のボリュームの表示名を指定します。
-
[Volid]:ボリュームが接続される順序を指定します。これらは、各 VM グループの 0 または 1 から始まる連続した番号です。
-
[バス(Bus)]:接続するボリュームのバスタイプを指定します。
-
[タイプ(Type)]:(任意)<type> を指定すると、ESC は指定されたタイプのボリュームを照合します。
-
[サイズ(Size)] および [サイズ単位(Sizeunits)]:ESC によって作成されたボリュームを定義します。
-
boot_index :(任意)ブート順序を指定します。VM をイメージからブートする場合と同様に、任意のボリュームからブートするには 0 に設定します。この設定を機能させるには、OpenStack でそのボリュームの「ブート可能」プロパティを
true に設定する必要があります。
マルチアタッチボリューム
ボリュームを複数のホスト/サーバーに同時にアタッチする機能は、アクティブ/アクティブまたはアクティブ/スタンバイのシナリオ(OpenStack のみ)に必要なユースケースです。ボリュームを複数のサーバーインスタンスにアタッチするには、ボリュームの詳細で
multiattach フラグを True に設定する必要があります。操作を実行する前に、適切なロールとポリシー設定があることを確認してください。
multiattach=<is> True
の追加仕様機能の設定を含む、この特別なタイプを作成するには、次のコマンドを使用します。
$ cinder type-create multiattach
$ cinder type-key multiattach set multiattach="<is> True"
type-key の名前は自由に指定できますが、参照するプロパティは multiattach にする必要があります。このガイドでは、タイプを multiattach として参照します。
このタイプが作成されたら、タイプを指定して、OpenStack にアウトオブバンドボリューム(ブート可能またはそれ以外)を作成します。次に例を示します。
$ cinder create <volume_size> --name <volume_name> --volume-type multiattach
このボリュームを使用するには、展開を作成するときに、このボリュームをアウトオブバンドボリュームと同じように扱います。ただし、複数の VM に対してボリューム UUID または一意の名前を指定できる点が異なります。ESC は、正しく入力されたボリュームのみを複数の
VM に接続しようとします。次に例を示します。
<vm_group>
<name>c1</name>
...
<volumes>
<volume>
<name>cf-cdr0-volume</name>
<volid>0</volid>
</volume>
</volumes>
...
</vm_group>
<vm_group>
<name>c2</name>
...
<volumes>
<volume>
<name>cf-cdr0-volume</name>
<volid>0</volid>
</volume>
</volumes>
...
</vm_group>
マルチアタッチボリュームは、通常のアウトオブバンドボリュームと同様にデタッチでき、サービス更新を使用して VM 上の通常のアウトオブバンドボリュームを置き換えるためにも使用できます。このアクションの後は、新しくアタッチされたボリューム(マルチアタッチまたはその他)を認識するために
VM を再起動する必要があります。
(注) |
OpenStack の要件
-
マルチアタッチ対応ボリュームを複数のサーバーにアタッチするために最低限必要な Compute API マイクロバージョンは 2.60 です。
-
Cinder 12.0.0(Queens)または最新版(マイクロバージョン 3.50 以降)が必要です。
-
nova-compute サービスは少なくとも Queens リリースレベルコード(17.0.0)で実行している必要があり、ハイパーバイザドライバは複数のゲストに対するブロックストレージデバイスの接続をサポートしている必要があります。ボリュームのマルチアタッチをサポートするコンピューティングドライバの詳細については、機能サポートマトリックスを参照してください。
-
libvirt コンピューティングドライバを使用している場合、以下のネイティブ パッケージ バージョンによってマルチアタッチのサポートが決まります。
-
libvirt は 3.10 以上である必要があります。
-
Qemu は 2.10 未満である必要があります。
-
使用中のマルチアタッチボリュームのスワップはサポートされていません(これは、実際にはブロック ストレージ ボリュームの retype API を介して制御されます)。
|
テナントボリューム API
テナントボリューム API を使用すると、展開要求の外部でボリュームを作成および削除できます。テナントボリューム API は、テナントの直下にボリュームを作成します。ボリュームを作成するには、テナントの詳細を入力する必要があります。
テナントボリューム NETCONF API 要求のサンプルは次のとおりです。
<esc_datamodel xmlns="http://www.cisco.com/esc/esc">
<tenants>
<tenant>
<name>admin</name>
<volumes>
<volume>
<name>some-volume</name>
<type>lvm</type>
<size>1</size>
<sizeunit>GiB</sizeunit>
</volume>
</volumes>
</tenant>
</tenants>
</esc_datamodel>
テナントボリューム API を使用して、既存のテナントを使用するボリュームを作成することもできます。この場合、ボリューム名はそのテナントに対して一意である必要があります。
(注) |
-
テナントボリューム API は、NETCONF API と REST API の両方でサポートされています。
-
テナントボリューム API を使用して、エフェメラルボリュームまたはアウトオブバンドボリュームを作成または削除することはできません。
-
ESC によってのみ管理されるボリュームは削除できます。
-
テナントボリューム API を使用して既存のボリュームを更新することはできません。
|
テナントボリューム API によって作成されたボリュームによる展開
ESC は、テナントボリューム API によって作成されたボリュームをアウトオブバンドボリュームとして扱います。テナントボリューム API によって作成されたボリュームを展開するには、展開データモデルで <size> および <sizeunit>
パラメータを指定する必要があります。<size> および <sizeunit> パラメータが使用できない場合、ESC はテナントボリューム API によって作成されたボリュームを検索します。存在しない場合、ESC は他の ESC または他のユーザによって作成された他のアウトオブバンドボリュームを探します。アウトオブバンドボリュームが使用できない場合、展開要求は拒否されます。
テナントボリューム API を使用して作成されたボリュームによる展開要求の例を次に示します。
<?xml version="1.0" encoding="UTF-8"?>
<esc_datamodel xmlns:ns2="urn:ietf:params:xml:ns:netconf:notification:1.0" xmlns:ns1="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:ns3="http://www.cisco.com/esc/esc_notifications" xmlns:ns0="http://www.cisco.com/esc/esc" xmlns="http://www.cisco.com/esc/esc">
<tenants>
<tenant>
<name>admin</name>
<deployments>
<deployment>
<name>admin-with-volume</name>
<vm_group>
<name>cirros</name>
<bootup_time>60</bootup_time>
<recovery_wait_time>0</recovery_wait_time>
<image>Automation-Cirros-Image</image>
<flavor>Automation-Cirros-Flavor</flavor>
<volumes>
<volume>
<name>some-volume</name>
<volid>1</volid>
<bus>ide</bus>
</volume>
</volumes>
<interfaces>
<interface>
<nicid>0</nicid>
<network>mynetwork</network>
</interface>
</interfaces>
<scaling>
<min_active>1</min_active>
<max_active>1</max_active>
<elastic>true</elastic>
</scaling>
<kpi_data>
<kpi>
<event_name>VM_ALIVE</event_name>
<metric_value>1</metric_value>
<metric_cond>GT</metric_cond>
<metric_type>UINT32</metric_type>
<metric_collector>
<type>ICMPPing</type>
<nicid>0</nicid>
<poll_frequency>3</poll_frequency>
<polling_unit>seconds</polling_unit>
<continuous_alarm>false</continuous_alarm>
</metric_collector>
</kpi>
</kpi_data>
<rules>
<admin_rules>
<rule>
<event_name>VM_ALIVE</event_name>
<action>"ALWAYS log"</action>
<action>"TRUE
servicebooted.sh"</action>
<action>"FALSE recover
autohealing"</action>
</rule>
</admin_rules>
</rules>
<config_data />
</vm_group>
</deployment>
</deployments>
</tenant>
</tenants>
</esc_datamodel>
ボリュームの <size> および <sizeunit> パラメータを指定すると、ESC は展開の一部としてこれらの値を使用する新しいボリュームを作成します。新しいボリュームはエフェメラルボリュームとして扱われます。
(注) |
エフェメラルボリュームの場合、最小および最大のスケーリング値は 1 以上にできますが、テナントおよびアウトオブバンドボリュームの場合の値は 1 のみです。
|