3.3. Block Storage サービス (cinder) のサービス品質仕様
QoS (Quality of Service) 仕様を作成して各ボリュームタイプに関連付けることにより、クラウドユーザーが作成したボリュームにパフォーマンス制限を適用できます。たとえば、より高いパフォーマンスの QoS 仕様を使用するボリュームは、より多くの IOPS をユーザーに提供できます。また、ユーザーは、リソースを節約するために、より低いパフォーマンスの QoS 仕様を使用するボリュームに軽いワークロードを割り当てることができます。
QoS 仕様を作成してボリュームタイプに関連付けるには、次のタスクを実行します。
QoS 仕様を作成するときは、必要なコンシューマーを選択する必要があります。コンシューマーは、QoS 制限を適用する場所を決定し、QoS 制限を定義するためにどの QoS プロパティーキーが使用できるかを決定します。利用可能なコンシューマーの詳細は、QoS 仕様のコンシューマー を参照してください。
必要な QoS プロパティーキーをデプロイメント固有の値に設定することで、ボリュームのパフォーマンス制限を作成できます。Block Storage サービス (cinder) によって提供される QoS プロパティーキーの詳細は、Block Storage QoS プロパティーキー を参照してください。
- QoS 仕様をボリュームタイプに関連付けます。
 
CLI を使用して、QoS 仕様を作成および設定し、ボリュームタイプに関連付けることができます。
3.3.1. QoS 仕様のコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
QoS 仕様を作成するときは、必要なコンシューマーを選択する必要があります。コンシューマーは、QoS 制限を適用する場所を決定し、QoS 制限を定義するためにどの QoS プロパティーキーが使用できるかを決定します。Block Storage サービス (cinder) は、次の QoS 仕様のコンシューマーをサポートします。
- 
							
front-end: Compute サービス (nova) は、ボリュームがインスタンスに接続されるときに QoS 制限を適用します。Compute サービスは、Block Storage サービスによって提供されるすべての QoS プロパティーキーをサポートします。 back-end: 関連付けられたボリュームタイプのバックエンドドライバーは、QoS 制限を適用します。各バックエンドドライバーは、独自の QoS プロパティーキーのセットをサポートします。ドライバーがサポートする QoS プロパティーキーの詳細は、バックエンドドライバーのドキュメントを参照してください。back-endコンシューマーがサポートされていない場合は、front-endコンシューマーを使用します。たとえば、Bare Metal Provisioning サービスを通じてボリュームをベアメタルノードに接続する場合 (皮肉)。both: 可能であれば、両方のコンシューマーが QoS 制限を適用します。したがって、このコンシューマータイプは次の QoS プロパティーキーをサポートします。- ボリュームがインスタンスにアタッチされている場合は、Compute サービスとバックエンドドライバーの両方がサポートするすべての QoS プロパティーキーを使用できます。
 - ボリュームがインスタンスにアタッチされていない場合は、バックエンドドライバーがサポートする QoS プロパティーキーのみを使用できます。
 
3.3.2. Block Storage QoS プロパティーキー リンクのコピーリンクがクリップボードにコピーされました!
Block Storage サービスは、クラウドユーザーが作成するボリュームのパフォーマンスを制限できるように、QoS プロパティーキーを提供します。これらの制限では、ストレージボリュームのパフォーマンスに関する次の 2 つの業界標準測定値が使用されます。
- 1 秒あたりの入出力操作数 (IOPS)
 - データ転送速度 (バイト/秒で測定)
 
QoS 仕様の利用者は、どの QoS プロパティーキーがサポートされるかを決定します。詳細は、QoS 仕様の利用者 を参照してください。
一部の QoS プロパティーキーはバックエンドドライバーによって外部的に定義されているため、Block Storage は QoS プロパティーキーのエラーチェックを実行できません。したがって、Block Storage は、無効またはサポートされていない QoS プロパティーキーを無視します。
QoS プロパティーキーのスペルが正しいことを確認してください。スペルが間違っているプロパティーキーを含むボリュームのパフォーマンス制限は無視されます。
IOPS とデータ転送速度の両方の測定について、次のパフォーマンス制限を設定できます。
- 固定制限
 - 通常、固定制限はボリュームパフォーマンス測定の平均使用量を定義する必要があります。
 - バースト制限
 通常、バースト制限は、ボリュームパフォーマンス測定の激しいアクティビティーの期間を定義する必要があります。バースト制限により、平均的な使用量に対して固定制限を低く保ちながら、特定の時間におけるアクティビティーの増加率が考慮されます。
注記バースト制限はすべて 1 秒のバースト長を使用します。
- 制限合計
 total_*QoS プロパティーキーを使用して、必要なパフォーマンス制限の読み取り操作と書き込み操作の両方に対するグローバル制限を指定します。注記合計制限を使用する代わりに、読み取り操作と書き込み操作に個別の制限を適用したり、読み取り操作または書き込み操作のみを制限することを選択したりできます。
- 読み取り制限
 read_*QoS プロパティーキーを使用して、必要なパフォーマンス制限の読み取り操作にのみ適用される制限を指定します。注記合計制限を指定した場合、この制限は無視されます。
- 書き込み制限
 write_*QoS プロパティーキーを使用して、必要なパフォーマンス制限の書き込み操作にのみ適用される制限を指定します。注記合計制限を指定した場合、この制限は無視されます。
次の Block Storage QoS プロパティーキーを使用して、デプロイメントのボリュームパフォーマンス制限を作成できます。
						すべての QoS プロパティーキーのデフォルト値は 0 で、制限が無制限であることを意味します。
					
| パフォーマンス制限 | 測定単位 | QoS プロパティーキー | 
|---|---|---|
|   固定 IOPS  |   IOPS  |   
									 
									 
									  | 
|   ボリュームのサイズによって計算される固定 IOPS。 これらの制限の使用制限の詳細は、ボリュームサイズに応じて拡張される QoS 制限 を参照してください。  |   GB あたりの IOPS  |   
									 
									 
									  | 
|   バースト IOPS  |   IOPS  |   
									 
									 
									  | 
|   固定データ転送率  |   1 秒あたりのバイト数  |   
									 
									 
									  | 
|   バーストデータ転送率  |   1 秒あたりのバイト数  |   
									 
									 
									  | 
|   IOPS 制限を計算するときの IO リクエストのサイズ。 詳細は、IOPS 制限に対する IO リクエストサイズの設定 を参照してください。  |   Bytes  |   
									  | 
3.3.2.1. IOPS 制限の IO リクエストサイズを設定する リンクのコピーリンクがクリップボードにコピーされました!
IOPS ボリュームのパフォーマンス制限を実装する場合は、ユーザーがこれらの制限を回避できないように、一般的な IO リクエストサイズも指定する必要があります。そうしないと、ユーザーは多数の小さな IO リクエストではなく、いくつかの大規模な IO リクエストを送信する可能性があります。
						size_iops_sec QoS プロパティーキーを使用して、一般的な IO 要求の最大サイズをバイト単位で指定します。Block Storage サービスは、このサイズを使用して、送信される各 IO リクエストに対する一般的な IO リクエストの比例数を計算します。次に例を示します。
					
						size_iops_sec=4096
					
- 8 KB のリクエストは 2 リクエストとしてカウントされます。
 - 6 KB のリクエストは 1.5 リクエストとしてカウントされます。
 - 4 KB 未満のリクエストは 1 リクエストとしてカウントされます。
 
Block Storage サービスは、IOPS 制限を計算するときに、この IO リクエストサイズ制限のみを使用します。
							size_iops_sec のデフォルト値は 0 で、IOPS 制限を適用するときに IO リクエストのサイズは無視されます。
						
3.3.2.2. ボリュームサイズに応じて拡張される IOPS 制限 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーが作成するボリュームの容量によって決定される IOPS ボリュームのパフォーマンス制限を作成できます。これらの QoS (Quality of Service) の制限は、プロビジョニングされたボリュームのサイズに応じて拡張されます。たとえば、ボリュームタイプに読み取り操作のボリュームサイズ 1 GB あたり 500 の IOPS 制限がある場合、このボリュームタイプのプロビジョニングされた 3 GB ボリュームの読み取り IOPS 制限は 1500 になります。
ボリュームのサイズは、ボリュームがインスタンスにアタッチされるときに決定されます。したがって、ボリュームがインスタンスにアタッチされているときにボリュームのサイズが変更された場合、これらの制限は、このボリュームがデタッチされてからインスタンスに再アタッチされるときにのみ、新しいボリュームサイズに対して再計算されます。
GB あたりの IOPS で指定された次の QoS プロパティーキーを使用して、スケーラブルなボリュームのパフォーマンス制限を作成できます。
total_iops_sec_per_gb: 読み取り操作と書き込み操作の両方について、ボリュームサイズの GB ごとのグローバル IOPS 制限を指定します。注記合計制限を使用する代わりに、読み取り操作と書き込み操作に個別の制限を適用したり、読み取り操作または書き込み操作のみを制限することを選択したりできます。
read_iops_sec_per_gb: 読み取り操作にのみ適用される、ボリュームサイズの GB あたりの IOPS 制限を指定します。注記合計制限を指定した場合、この制限は無視されます。
write_iops_sec_per_gb: 書き込み操作にのみ適用される、ボリュームサイズの GB あたりの IOPS 制限を指定します。注記合計制限を指定した場合、この制限は無視されます。
							これらの QoS 制限を含む QoS 仕様のコンシューマーは front-end または both にすることができますが、back-end にすることはできません。詳細は、Consumers of QoS specifications を参照してください。
						
3.3.3. QoS 仕様の作成と設定 リンクのコピーリンクがクリップボードにコピーされました!
QoS (Quality of Service) 仕様は、ボリュームパフォーマンスの QoS 制限のリストです。各 QoS 制限を作成するには、QoS プロパティーキーをデプロイメント固有の値に設定します。QoS パフォーマンス制限をボリュームに適用するには、QoS 仕様を必要なボリュームタイプに関連付ける必要があります。
前提条件
- プロジェクト管理者であり、QoS 仕様を作成および設定できる。
 
手順
ワークステーションから OpenStackClient Pod のリモートシェルにアクセスします。
oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow QoS 仕様を作成します。
openstack volume qos create [--consumer <qos_spec_consumer>] --property <key>=<value> <qos_spec_name>
$ openstack volume qos create [--consumer <qos_spec_consumer>] --property <key>=<value> <qos_spec_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のように、QoS 制限ごとに個別の
--property <key>=<value>引数を指定して、QoS 仕様にパフォーマンス制限を追加します。<key>を必要なパフォーマンス制約の QoS プロパティーキーに置き換えます。詳細は、Block Storage QoS プロパティーキー を参照してください。重要QoS プロパティーキーのスペルが正しいことを確認してください。スペルが間違っているプロパティーキーを含むボリュームのパフォーマンス制限は無視されます。
- 
									
<value>を QoS プロパティーキーで必要な測定単位での、このパフォーマンス制約に対するデプロイメント固有の制限に置き換えます。 - 
									オプション: 
<qos_spec_consumer>を、この QoS 仕様の必要なコンシューマーに置き換えます。指定しない場合、コンシューマーはデフォルトでbothを使用します。詳細は、Consumers of QoS specifications を参照してください。 <qos_spec_name>を QoS 仕様の名前に置き換えます。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
openstackclientPod を終了します。exit
$ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
既存の QoS 仕様を編集する
ワークステーションから OpenStackClient Pod のリモートシェルにアクセスします。
oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作成された QoS 仕様を設定して、他のパフォーマンス制限を追加したり、既存プロパティーの制限を変更したりします。
openstack volume qos set --property <key>=<value> <qos_spec_name>
$ openstack volume qos set --property <key>=<value> <qos_spec_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 1 つ以上の
--property <key>=<value>引数を追加できます。このコマンドでは、プロパティーの変更が成功したかどうかを確認できません。次のコマンドを実行して、QoS 仕様に加えられた変更を確認できます。openstack volume qos list
$ openstack volume qos listCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、設定されているすべての QoS 仕様の詳細な設定を示すテーブルを表示し、
Properties列には各 QoS 仕様の設定済みプロパティーがすべて表示されます。openstackclientPod を終了します。exit
$ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
次のステップ
3.3.4. QoS 仕様をボリュームタイプに関連付ける リンクのコピーリンクがクリップボードにコピーされました!
QoS 制限をボリュームに適用するには、QoS (Quality of Service) 仕様をボリュームタイプに関連付ける必要があります。
ボリュームがすでにインスタンスにアタッチされている場合、QoS 制限は、ボリュームがデタッチされてからこのインスタンスに再アタッチされたときにのみこのボリュームに適用されます。
前提条件
- 必要なボリュームタイプが作成されます。詳細は、ボリュームタイプの作成および設定 を参照してください。
 - 必要な QoS 仕様が作成されます。詳細は、QoS 仕様の作成と設定 を参照してください。
 
手順
ワークステーションから OpenStackClient Pod のリモートシェルにアクセスします。
oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な QoS 仕様を必要なボリュームタイプに関連付けます。
openstack volume qos associate <qos_spec_name> <volume_type>
$ openstack volume qos associate <qos_spec_name> <volume_type>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 
									
<qos_spec_name>を QoS 仕様の名前または ID に置き換えます。openstack volume qos listコマンドを実行すると、すべての QoS 仕様の名前と ID をリスト表示できます。 - 
									
<volume_type>をボリュームタイプの名前または ID に置き換えます。openstack volume type listコマンドを実行すると、すべてのボリュームタイプの名前と ID をリスト表示できます。 
- 
									
 QoS 仕様が関連付けられていることを確認します。
openstack volume qos list
$ openstack volume qos listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力テーブルの
Associations列には、各 QoS 仕様に関連付けられているボリュームタイプの名前が表示されます。以下に例を示します。
+--------------------------------------+--------------+-----------+--------------+-------------------------------------------------------------------+ | ID | Name | Consumer | Associations | Properties | +--------------------------------------+--------------+-----------+--------------+-------------------------------------------------------------------+ | 9fc9a481-28e9-49b8-84eb-f0a476cc89a5 | myqoslimits | both | MyVolType | read_iops_sec='6500', size_iops_sec='4096', write_iops_sec='7500' | +--------------------------------------+--------------+-----------+--------------+-------------------------------------------------------------------+
+--------------------------------------+--------------+-----------+--------------+-------------------------------------------------------------------+
| ID                                   | Name         | Consumer  | Associations | Properties                                                        |
+--------------------------------------+--------------+-----------+--------------+-------------------------------------------------------------------+
| 9fc9a481-28e9-49b8-84eb-f0a476cc89a5 | myqoslimits  | both      | MyVolType    | read_iops_sec='6500', size_iops_sec='4096', write_iops_sec='7500' |
+--------------------------------------+--------------+-----------+--------------+-------------------------------------------------------------------+
openstackclientPod を終了します。exit
$ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
3.3.5. QoS 仕様とボリュームタイプの関連付けを解除する リンクのコピーリンクがクリップボードにコピーされました!
ボリュームタイプのボリュームに QoS 制限を適用したくない場合は、ボリュームタイプからサービス品質 (QoS) 仕様の関連付けを解除できます。
特定のボリュームタイプの関連付けを解除することも、複数のボリュームタイプが同じ QoS 仕様に関連付けられている場合はすべてのボリュームタイプの関連付けを解除することもできます。
ボリュームがすでにインスタンスにアタッチされている場合、QoS 制限は、ボリュームがデタッチされてからこのインスタンスに再アタッチされたときにのみ、このボリュームから削除されます。
前提条件
- QoS 仕様を作成、設定、関連付け、および関連付け解除するには、プロジェクト管理者である必要があります。
 
手順
ワークステーションから OpenStackClient Pod のリモートシェルにアクセスします。
oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow QoS 仕様に関連付けられているボリュームタイプの関連付けを解除します。
QoS 仕様に関連付けられた特定のボリュームタイプの関連付けを解除するには、次の手順を実行します。
openstack volume qos disassociate <qos_spec_name> --volume-type <volume_type>
$ openstack volume qos disassociate <qos_spec_name> --volume-type <volume_type>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 
											
<qos_spec_name>を QoS 仕様の名前または ID に置き換えます。openstack volume qos listコマンドを実行すると、すべての QoS 仕様の名前と ID をリスト表示できます。 - 
											
<volume_type>を、この QoS 仕様に関連付けられたボリュームタイプの名前または ID に置き換えます。cinder type-listコマンドを実行して、すべてのボリュームタイプの名前と ID を一覧表示できます。 
- 
											
 QoS 仕様に関連付けられているすべてのボリュームタイプの関連付けを解除するには、次の手順を実行します。
openstack volume qos disassociate <qos_spec_name> --all
$ openstack volume qos disassociate <qos_spec_name> --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
QoS 仕様の関連付けが解除されていることを確認します。
openstack volume qos list
$ openstack volume qos listCopy to Clipboard Copied! Toggle word wrap Toggle overflow この QoS 仕様の Associations 列には、指定されたボリュームタイプが含まれていないか、すべてのボリュームタイプの関連付けが解除されている場合は空でなければなりません。
openstackclientPod を終了します。exit
$ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow