ブロック・ストレージ・ボリュームの帯域幅割り振り

インスタンスの帯域幅が、ネットワークと Block Storage for VPC ボリュームの間でどのように配分されるかを理解する。 コンソール、CLI、API、またはTerraformを使用して、ストレージとネットワークの帯域幅比率を調整し、ワークロードに合わせたデータ転送量の帯域幅割り当てを最適化してください。

インスタンス帯域幅は、ネットワーク リソースとストレージ リソース間で分散されます。 ストレージの帯域幅は、ブートボリュームと接続されたデータボリュームの間で分割または共有されます。 ボリュームの最大帯域幅は、仮想サーバーインスタンスとボリュームの両方の帯域幅制限によって制限されます。

ボリューム帯域幅とネットワーク帯域幅の比率の調整

インスタンスをプロビジョニングする際、帯域幅はストレージボリューム(ブートボリュームおよびアタッチされたデータボリューム)とネットワークの間で割り当てられます。 最大帯域幅容量は、インスタンスのプロビジョニング中に選択するインスタンス・プロファイルによって決まります。 たとえば、bx2-2x8バランスサーバープロファイルでは、インスタンス帯域幅の合計が4Gbps(4,000Mbps)ですが、cx3d-8x20コンピュートプロファイルでは、インスタンス帯域幅の上限が16Gbps(16,000Mbps)です。

初期のボリュームおよびネットワーク帯域幅の割り当てを指定しない場合は、インスタンス帯域幅の合計の 25% がボリューム帯域幅に割り当てられ、75% がネットワーク帯域幅に割り当てられます。

ストレージとネットワークの帯域幅の比率は、 CLIからAPIを使用して 、コンソールでストレージボリュームに有利になるように調整できますが、ボリュームとネットワークの帯域幅の両方がそれぞれ少なくとも500 Mbpsでなければなりません。

ストレージとネットワークの帯域幅の比率を変更する前に、インスタンスのネットワーク帯域幅要件を評価します。 新しい帯域幅割り振りが、インスタンスのネットワーク・パフォーマンスに悪影響を与えないことを確認します。

ボリュームがインスタンスから切り離されたり接続されたりしない限り、割り当ては変更されません。 ストレージとネットワークの帯域幅比率を変更した場合は、新しい帯域幅割り当てを実現するために、データボリュームを取り外し、再接続します。

ブロックボリュームのスループット限界値

各ボリュームにはIOPSとスループットの制限がある。 このスループット制限は、スループット乗数を使用して自動的に計算されるか(従来のプロファイル)、または明示的に指定することができます(定義されたパフォーマンスプロファイル)。

第1世代プロファイルでスタンドアロン・データ・ボリュームを作成する場合、ボリュームのスループット制限は、ボリューム容量、IOPS、および ボリューム・プロファイルに基づいて 計算されます。 IOPS の制限は、常にボリュームの最大 IOPS に設定されます。

プロビジョニングされたスループットの上限は、IOPSの合計数にスループット乗数を乗じた値によって決定されます。 スループット倍率は、3 IOPS/GB または 5 IOPS/GB 層では 16 KB、10 IOPS/GB またはカスタム IOPS 層では 256 KB です。

スループットの上限:

  • 汎用ボリューム・プロファイルの場合、制限は670MBps(5360Mbps)。
  • 5iops-tier ボリューム・プロファイルの場合、制限は768 MBps(6144 Mbps)です。
  • 10iops-tier およびカスタム・プロファイルの場合、スループットは1024 MBps(8192 Mbps)を超えることはできません。

ボリュームに割り当てられている帯域幅やスループットの制限はどこで確認できますか? ボリュームに割り当てられた帯域幅またはスループットの制限は、 Block Storage のボリューム詳細ページの「概要」タブにある「 スループット 」で確認できます。

ボリュームに割り当てられている帯域幅やスループットの制限はどこで確認できますか? ibmcloud is volume コマンドの出力に、帯域幅の値が表示されます。

ibmcloud is volume my-test-volume
Getting volume my-test-volume under account Test Account as user test.user@ibm.com...

ID                                     r006-3869cd62-7676-43e3-8196-dad27b0c0f27
Name                                   my-test-volume
CRN                                    crn:v1:bluemix:public:is:us-south-3:a/a1234567::volume:r006-3869cd62-7676-43e3-8196-dad27b0c0f27
Status                                 available
Attachment state                       unattached
Capacity                               100
IOPS                                   3000
Bandwidth(Mbps)                        393
Profile                                general-purpose
Encryption key                         -
Encryption                             provider_managed
Resource group                         defaults
Created                                2021-12-09T15:42:11+00:00
Zone                                   us-south-3
Health State                           ok
Volume Attachment Instance Reference   -
Active                                 false
Adjustable IOPS                        false
Busy                                   false
Tags                                   -

ボリュームに割り当てられている帯域幅やスループットの制限はどこで確認できますか? GET /volume/{id} 呼び出しに対する API レスポンスには、以下のサンプルスニペットのように、アタッチされていないボリュームの帯域幅が表示されます。

{
  "active": true,
  "bandwidth": 393,
  "busy": false,
  "capacity": 100,
  "created_at": "2021-12-09T15:42:11+00:00",
  "crn": "crn:v1:bluemix:public:is:us-south-3:a/a1234567::volume:r006-3869cd62-7676-43e3-8196-dad27b0c0f27",
  "encryption": "provider_managed",
  "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/ccbe6fe1-5680-4865-94d3-687076a38293",
  "id": "r006-3869cd62-7676-43e3-8196-dad27b0c0f273",
  "iops": 3000,
  "name": "my-test-volume",
  "profile": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/volume/profiles/general-purpose",
    "name": "general-purpose"},
  "volume_attachments": []
}

以下の例では、スタンドアロンボリュームをプロビジョニングしている:

  • volume-a が1,800GBの容量で5IOPS/GBのボリューム・プロファイルの場合、9,000IOPSを処理でき、最大スループット限界は1,179Mbpsとなる。
  • volume-b が3,000GBの容量で5IOPS/GBのボリューム・プロファイルの場合、15,000IOPSを処理でき、これは最大スループット制限が1,966Mbpsであることを意味する。
  • volume-c が3,000GBの容量と汎用ボリューム・プロファイルを持つ場合、9,000IOPSを処理でき、これは最大スループット制限が1,179Mbpsであることを意味する。
  • volume_d が2,000GBの容量と汎用ボリューム・プロファイルを持つ場合、6,000IOPSを処理でき、これは最大スループット限界が786Mbpsであることを意味する。

同じボリュームプロファイルを持つボリュームは、その容量に基づいて異なるIOPSおよびスループット制限値を持つことができます。 ボリュームは、容量やボリューム・プロファイルが異なっていても、同じIOPS制限を持つことができます。

接続ボリュームの帯域幅割り当て

適切な起動時間を確保するため、プライマリ起動ボリュームには最低393 Mbpsが割り当てられています。 残りのボリュームの帯域幅は、アタッチされたデータボリューム間で比例配分することも(加重帯域幅割り当て)、アタッチされたデータボリューム間で共有することも(プール帯域幅割り当て)できる。 インスタンスプロファイルが サポートしている場合、仮想サーバーインスタンスを作成または変更するときに、ストレージ QoS のモードを直接選択できます。

データ量に対する帯域幅の重み付け割り当て

デフォルトでは、ほとんどの仮想サーバーインスタンスは weighted ボリューム QoS 設定でプロビジョニングされます。 各ボリュームは、プロビジョニングされたスループット制限に基づいて割り当てられた帯域幅を使用できます。

ボリュームの1つが切り離されると、ボリュームの帯域幅割り当てが更新され、各ボリュームの割り当て帯域幅が増加する。 逆に、より多くのボリュームがアタッチされると、個々のボリュームの割り当て帯域幅は減少する。 仮想サーバーがサポートするボリューム帯域幅の割り当て方法については、 compute profiles トピックのcapabilitiesセクションを参照してください。

以下の例では、 cx3d-8x20 インスタンスの合計ボリューム帯域幅は4,000 Mbpsである。 データ量に分割できる利用可能な帯域幅は3607Mbpsである。 を付けると volume-a と _volume-bを付けた場合、それらの合計の最大スループット限界は3145Mbpsである。 この値は、利用可能な3607Mbpsよりも小さい。つまり、容量の多いvolume-bボリュームには1966Mbpsが割り当てられ、容量の少ないvolume-a_ボリュームには1179Mbpsが割り当てられていることになる。 これらの値は、ボリュームのプロビジョニングされたスループット制限であり、より多くの帯域幅が利用可能な場合でも、ボリュームに割り当てられる最大の帯域幅である。

2データボリュームによる加重帯域割当
2データボリュームによる加重帯域割当

2つのデータボリュームによるボリューム帯域幅の割り当て。
Volumes 最大IOPS 最大スループット制限 パーセンテージ 割り当てられたボリューム帯域幅
volume-a 9,000 1,179 Mbps 37.5% 1,179 Mbps
volume-b 15,000 人 1,966 Mbps 62.5% 1,966 Mbps
全データ量 該当なし 3,145 Mbps 100% 3,145[1]

_volume-c_アタッチすると、帯域幅の割り当てが変更されます。 3つのデータボリュームのスループット制限値を合計すると、4324Mbpsとなる。 この値は、利用可能な3607Mbpsを上回っている。 3607Mbpsは3つのデータ量に比例して分配される。

3データボリュームによる加重帯域割当
3データボリュームによる加重帯域割当

3つのデータボリュームによるボリューム帯域幅の割り当て。
Volumes 最大IOPS 最大スループット制限 パーセンテージ 割り当てられたボリューム帯域幅
volume-a 9,000 1,179 Mbps 27% 983.983.5Mbps
volume-b 15,000 人 1,966 Mbps 45%の 1,640 Mbps
volume-c 9,000 1,179 Mbps 27% 983.983.5Mbps
全データ量 該当なし 4,324 Mbps 100% 3,607 Mbps

_Volume-dを_アタッチすると、帯域幅の割り当てが再び変更される。 表4は、3列目にプロビジョニングされたスループット制限とともに、4つのアタッチされたボリュームを示している。

4データボリュームによる重み付け帯域割当
4データボリュームによる重み付け帯域割当

4つのデータボリュームによるボリューム帯域幅の割り当て。
Volumes 最大IOPS 最大スループット制限 パーセンテージ 割り当てられたボリューム帯域幅
volume-a 9,000 1,179 Mbps 23% 832 Mbps
volume-b 15,000 人 1,966 Mbps 38% 1,388 Mbps
volume-c 9,000 1,179 Mbps 23% 832 Mbps
volume-d 6,000 786 Mbps 15% 555 Mbps
全データ量 該当なし 4,324 Mbps 100% 3,607 Mbps

ボリューム帯域幅は、常にボリュームごとに割り当てられる。 帯域幅はボリュームごとに割り当てられ、ボリューム間で共有されません。 3つまたは4つのデータボリュームが接続されている例では、割り当てられた帯域幅は、ボ リューム自身のスループット制限よりも小さい。 ボリュームはより多くの量を処理できるようにプロビジョニングされていますが、そのボリュームに割り当てられた帯域幅しか使用できません。 他のボリュームが割り当てられた帯域幅を使用していない場合でも、他のボリュームに割り当てられた帯域幅を使用することはできません。

ボリュームサイズを大きくしたり、IOPSを調整したり、(第2世代プロファイルの)スループット制限を変更したりしても、割り当て帯域幅は自動的に変更されません。 帯域幅の割り当ては、ボリュームの脱着時に更新されます。

ほとんどの場合、アタッチされていないプロビジョニング済みボリュームの帯域幅値は、ボリュームがインスタンスにアタッチされた後に表示される帯域幅値と同じではありません。

データ量に対する帯域幅のプール割り当て

データボリュームのプール帯域幅割り当てをサポートする コンピュートプロファイルを 選択します。 動的な帯域幅割り当てでは、ピークI/O容量で動作しているボリュームが、他のボリュームアタッチメントから未使用の帯域幅を利用することができます。

つ目の例をもう一度見てほしい。 インスタンスの帯域幅の上限は16,000 Mbpsです。 当初、4,000Mbpsがボリューム帯域幅に、12,000Mbpsがネットワーク帯域幅に割り当てられる。 ブートボリュームの最小割り当ては393Mbpsで、アタッチされたデータボリュームには残りの3,607Mbpsの一部が割り当てられる。

デフォルトのボリューム QoS の設定は、 コンソールCLI、または API で 変更できます。 まず、仮想サーバーインスタンスを停止します。 次に、ボリューム QoS の設定を pooled に変更し、仮想サーバー・インスタンスを起動します。

データ量は全体で3,607Mbpsの帯域幅を共有している。 各ボリュームで使用される帯域幅は、ボリュームのIOPSとスループットの制限、およびインスタンスの全体的なボリューム帯域幅の制限によって制限されます。 3つのデータボリュームの例では volume-c がアクティブに使用されていない場合 volume-avolume-b はその空き帯域幅を使用でき、それぞれプロビジョニングされたIOPSとスループットの制限によって制限されます。 すべてのデータボリュームがIOのためにアクセスされる場合、それらの合計帯域幅は3,607Mbpsのボリューム帯域幅を超えることはできません。

ボリュームの切り離しや再接続を行っても、 QoS の動作は変わりません。

一般に利用可能な第2世代プロファイルは、プールされた帯域幅割り当てをサ ポートしていない。

次のステップ

ワークロードが必要とするデータ・ボリュームのタイプを考え、適切なインスタンスとボリューム・プロファイルを選択します。 詳しくは、 仮想サーバー・プロファイルとストレージ・プロファイルの関係 を参照してください。


  1. データボリュームの割り当て帯域幅値は、プロビジョニングされたスループット制限と等しい。 利用可能なインスタンスボリュームの帯域幅は3,607 MBpsで、これはデータボリュームのプロビジョニングされたスループット制限の合計よりも大きい。 ↩︎