Azure マネージド ディスクの共有

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット

Azure 共有ディスクは、マネージド ディスクを複数の仮想マシン (VM) に同時に接続できるようにする Azure マネージド ディスクの機能です。 マネージド ディスクを複数の VM に接続すると、新規にデプロイするか、既存のクラスター化されたアプリケーションを Azure に移行することができます。

しくみ

クラスター内の VM は、SCSI 永続的な予約 (SCSI PR) を使用するクラスター化アプリケーションによって選択された予約に基づいて、接続されたディスクに対して読み取りまたは書き込みを行うことができます。 SCSI PR は、オンプレミスの記憶域ネットワーク (SAN) 上で実行されているアプリケーションによって利用される業界標準です。 マネージド ディスクで SCSI PR を有効にすると、これらのアプリケーションを Azure にそのまま移行することができます。

マネージド ディスクを共有することで、共有ブロック ストレージに複数の VM からアクセスできます。VM は論理ユニット番号 (LUN) として公開されます。 その後 LUN は、ターゲット (ディスク) からイニシエーター (VM) に提示されます。 これらの LUN は、VM からは直接接続ストレージ (DAS) やローカル ドライブのように見えます。

共有されたマネージド ディスクでは、SMB または NFS を使用してアクセスできるフル マネージドのファイルシステムをネイティブに提供していません。 Windows Server フェールオーバー クラスター (WSFC) や Pacemaker のような、クラスター ノードの通信と書き込みロックを処理するクラスター マネージャーを使用する必要があります。

制限事項

一般的な制限事項

一部の種類のディスクでのみ、共有ディスクを有効にできます。 現在、共有ディスクを有効にできるのは、Ultra Disks、Premium SSD v2 マネージド ディスク、Premium SSD マネージド ディスク、Standard SSD のみです。 共有ディスクは個々の Virtual Machine Scale Sets にアタッチできますが、仮想マシン スケール セット モデルで定義したり、自動的にデプロイしたりすることはできません。

重要

ホスト キャッシュは、共有ディスクではサポートされていません。

共有ディスクが有効になっているマネージド ディスクはそれぞれ、次の制限も受けることになります。これらはディスクの種類別に整理されています。

Ultra ディスク

Ultra ディスクには、共有ディスクとは関係なく、独自の制限リストがあります。 Ultra ディスクの制限については、「Azure Ultra ディスクの使用」を参照してください。

Ultra ディスクを共有するとき、次の追加制限があります。

Premium SSD v2

Premium SSD v2 マネージド ディスクには、共有ディスクとは関係なく、独自の制限リストがあります。 これらの制限については、「Premium SSD v2 の制限事項」を参照してください。

Premium SSD v2 ディスクを共有するとき、次の追加制限があります。

Premium SSD

Standard SSD

オペレーティング システムの要件

共有ディスクは、複数のオペレーティング システムでサポートされます。 サポートされているオペレーティング システムについては、「Windows」または「Linux」セクションを参照してください。

課金への影響

ディスクを共有すると、ディスクの種類に応じて、2 つの異なる方法で課金が影響を受ける可能性があります。

共有 Premium SSD ディスクの場合、ディスクのサービス レベルのコストに加えて、SSD がマウントされる VM ごとに追加料金が増加します。 詳細については、マネージド ディスク の価格を参照してください。

Ultra ディスクには、マウントされる VM ごとに追加料金は発生しません。 ディスクが構成されている合計 IOPS と MBps に対して課金されます。 通常、Ultra ディスクには、合計 IOPS/MBps を決定する 2 つのパフォーマンス スロットルがあります。 ただし、共有 Ultra ディスクとして構成すると、さらに 2 つのパフォーマンス スロットルが公開され、合計で 4 つになります。 これら 2 つの追加スロットルにより、余分なコストでパフォーマンスを向上させることができ、また各測定には既定値があり、ディスクのパフォーマンスとコストが増加します。

共有 Ultra ディスクに含まれる 4 つのパフォーマンス スロットルは、diskMBpsReadWrite、diskIOPSReadOnly、diskMBpsReadWrite、diskMBpsReadOnly です。 各パフォーマンス スロットルは、ディスクのパフォーマンスを変更するように構成できます。 共有 Ultra ディスクのパフォーマンスは、次の方法で計算されます:合計プロビジョニングされた IOPS (diskIOPSReadWrite + diskIOPSReadOnly) とプロビジョニングされたスループット MBps (diskMBpsReadWrite + diskMBpsReadOnly) です。

プロビジョニングされた合計 IOPS とプロビジョニングされたスループットの合計を決定したら、 価格計算ツール でそれらを使用して、Ultra 共有ディスクのコストを決定できます。

ディスク サイズ

現在のところ、Ultra ディスク、Premium SSD v2、Premium SSD、Standard SSD のみで共有ディスクを有効にできます。 ディスクのサイズによって maxShares 制限が異なる場合があります。これは、maxShares 値を設定するときに超えることはできません。

ディスクごとに、ディスクを同時に共有できるノードの最大数を表す maxShares 値を定義できます。 たとえば、2 ノードのフェールオーバークラスターをセットアップする場合は、maxShares=2を設定します。 最大値は上限です。 ノード数が指定された maxShares 値よりも少ない場合は、ノードがクラスターに参加したり、クラスターから離脱したり (ディスクのマウントまたはマウント解除) できます。

Note

maxShares 値を設定または編集できるのは、ディスクがすべてのノードからデタッチされている場合のみです。

Premium SSD の範囲

次の表は、maxShares の許容最大値を Premium SSD サイズ別にまとめたものです。

ディスク サイズ maxShares の制限
P1、P2、P3、P4、P6、P10、P15、P20 3
P30、P40、P50 5
P60、P70、P80 10

ディスクの IOPS と帯域幅の制限は、maxShares 値の影響を受けません。 たとえば、P15 ディスクの最大 IOPS は、maxShares = 1 でも maxShares > 1 でも 1100 です。

Standard SSD の範囲

次の表は、maxShares の許容最大値を Standard SSD サイズ別にまとめたものです。

ディスク サイズ maxShares の制限
E1、E2、E3、E4、E6、E10、E15、E20 3
E30、E40、E50 5
E60、E70、E80 10

ディスクの IOPS と帯域幅の制限は、maxShares 値の影響を受けません。 たとえば、E15 ディスクの最大 IOPS は、maxShares = 1 でも maxShares > 1 でも 500 です。

Ultra ディスクの範囲

最小 maxShares 値は 1、最大 maxShares 値は 15 です。 Ultra ディスクにサイズ制限はありません。Ultra ディスクではサイズを問わず、maxShares に最大値までのあらゆる値を使用できます。

Premium SSD v2 の範囲

最小 maxShares 値は 1、最大 maxShares 値は 15 です。 Premium SSD v2 ディスクにサイズ制限はありません。Premium SSD v2 ディスクではサイズを問わず、maxShares に最大値までのあらゆる値を使用できます。

サンプル ワークロード

Windows

Azure 共有ディスクは、Windows Server 2008 以降でサポートされています。 ほとんどの Windows ベースのクラスタリングは、クラスタ ノード通信のためのすべてのコアインフラストラクチャを処理し、アプリケーションで並列アクセス パターンを利用できるように WSFC 上にビルドされています。 WSFC では、ご使用の Windows Server のバージョンに応じて、CSV と非 CSV ベースのオプションの両方が有効になります。 詳細については、「フェールオーバー クラスターを作成する」を参照してください。

WSFC で実行される一般的なアプリケーションには、次のようなものがあります。

Linux

Azure 共有ディスクは、以下でサポートされています。

Linux クラスターでは、Pacemaker などのクラスター マネージャーを利用できます。 Pacemaker は Corosync 上に構築され、高可用性環境にデプロイされたアプリケーションのクラスター通信を可能にします。 一般的なクラスター化されたファイルシステムには、ocfs2gfs2 があります。 SCSI 永続的予約 (SCSI PR) または STONITH Block Device (SBD) ベースのクラスター モデルを使用して、ディスクへのアクセスを調節することができます。 SCSI PR を使用する場合は、fence_scsisg_persist などのユーティリティを使用して、予約と登録を操作できます。

永続的な予約フロー

次の図は、SCSI PR を利用してノード間のフェールオーバーを有効にする、2 ノードのクラスター化されたデータベース アプリケーションのサンプルを示しています。

Azure VM1、VM2、およびそれらの間で共有されるディスクで構成される 2 ノード クラスター。クラスターで実行されているアプリケーションは、ディスクへのアクセスを処理します。

フローは次のとおりです。

  1. Azure VM1 と VM2 の両方で実行されているクラスター化アプリケーションは、ディスクに対して読み取りまたは書き込みするその意図を登録します。
  2. その後、VM1 上のアプリケーション インスタンスが、そのディスクに書き込むための排他的な予約を受け取ります。
  3. この予約はご使用の Azure ディスクに適用され、データベースがディスクに排他的に書き込めるようになります。 VM2 上のアプリケーション インスタンスからの書き込みは成功しません。
  4. VM1 上のアプリケーション インスタンスがダウンすると、VM2 上のインスタンスがデータベースのフェールオーバーを開始し、ディスクを引き継げるようになります。
  5. この予約は現在 Azure ディスクに適用されているため、このディスクでは VM1 からの書き込みを受け付けなくなります。 VM2 からの書き込みのみを受け付けます。
  6. クラスター化アプリケーションは、データベースのフェールオーバーを完了し、VM2 からの要求を処理できます。

次の図は、機械学習モデルのトレーニングなど、並列プロセスを実行するためにディスクからデータを読み取る複数のノードで構成される、別の一般的なクラスター化されたワークロードを示しています。

4 ノード VM クラスター。各ノードでは書き込みの意図が登録され、アプリケーションでは書き込み結果を適切に処理するため、排他的な予約を受け取る

フローは次のとおりです。

  1. すべての VM で実行されているクラスター化アプリケーションは、ディスクに対して読み取りまたは書き込みするための意図を登録します。
  2. VM1 上のアプリケーション インスタンスは、他の VM からのディスクへの読み取りを開いている間、ディスクへの書き込みの排他的な予約を受け取ります。
  3. この予約は、Azure ディスクに適用されます。
  4. これで、クラスター内のすべてのノードがディスクから読み取るれようになります。 クラスター内のすべてのノードに代わって、1 つのノードだけが結果をディスクに書き戻します。

Ultra ディスク予約フロー

Ultra ディスクでは、合計 4 つのスロットルに対して 2 つの追加スロットルが提供されます。 このため、Ultra ディスク予約フローは前セクションの説明のとおりに動作できます。あるいは、パフォーマンスをさらに細かく調整したり、分配したりできます。

予約所有者、登録済み、その他に対する`ReadOnly` または `Read/Write` のアクセス権を示す表の画像。

パフォーマンス スロットル

Premium SSD パフォーマンス スロットル

Premium SSD では、ディスクの IOPS とスループットが固定になります。たとえば、P30 の IOPS は 5000 です。 ディスクが 2 つの VM 間で共有される場合でも、5 つの VM 間で共有される場合でも、この値は変わりません。 ディスク上限に 1 つの VM で到達することもあれば、ディスク上限が 2 つ以上の VM 間で分割されることもあります。

Ultra ディスク パフォーマンス スロットル

Ultra ディスクには、変更可能な属性を公開して変更を許可するという方法でパフォーマンス設定をユーザーに許可する独特の機能があります。 既定では変更可能な属性は 2 つだけですが、共有 Ultra ディスクには 2 つの属性が追加されています。

属性 説明
DiskIOPSReadWrite 書き込みアクセス権のある共有ディスクをマウントするすべての VM で許可される IOPS の合計数。
DiskMBpsReadWrite 書き込みアクセス権のある共有ディスクをマウントするすべての VM で許可される合計スループット (毎秒 MB)。
DiskIOPSReadOnly* ReadOnly として共有ディスクをマウントするすべての VM で許可される IOPS の合計数。
DiskMBpsReadOnly* ReadOnly として共有ディスクをマウントするすべての VM で許可される合計スループット (毎秒 MB)。

* 共有 Ultra ディスクのみに適用

パフォーマンス属性はユーザーによる変更が可能であり、設定できます。そのしくみは次のように決められています:

  • DiskIOPSReadWrite:
    • ディスクが 100 GiB 以下の場合、ベースラインの最小 IOPS は 100 です。
      • 100 GiB を超えるディスクの場合、設定できるベースラインの最小 IOPS は GiB あたり 1 ずつ増加します。 そのため、101 GiB のディスクの場合、DiskIOPSReadWrite を設定できる最小値は 101 IOPS です。
    • この属性を設定できる最大値はディスクのサイズによって決まります。数式は 300 * GiB で、最大 160,000 です。
  • DiskMBpsReadWrite
    • この属性の最小スループット (MB/秒) は IOPS によって決まります。数式は IOPS あたり 4 KiB/秒です。 したがって、IOPS が 101 の場合、設定できる最小 MB/秒は 1 です。
    • この属性を設定できる最大値は、設定した IOPS の数によって決まります。数式は IOPS あたり 256 KiB/秒で、最大 4,000 MB/秒です。
  • DiskIOPSReadOnly
    • この属性の最小ベースライン IOPS は 100 です。 DiskIOPSReadOnly の場合、ベースラインはディスク サイズに合わせて増加しません。
    • この属性を設定できる最大値はディスクのサイズによって決まります。数式は 300 * GiB で、最大 160,000 です。
  • DiskMBpsReadOnly
    • この属性の最小スループット (MB/秒) は 1 です。 DiskMBpsReadOnly の場合、ベースラインは IOPS に合わせて増加しません。
    • この属性を設定できる最大値は、設定した IOPS の数によって決まります。数式は IOPS あたり 256 KiB/秒で、最大 4,000 MB/秒です。

次の例で取り上げるシナリオからは、共有 Ultra ディスクを具体的にどのように調整できるかわかります。

クラスター共有ボリュームを使用する 2 つのノード クラスター

次は、クラスター化された共有ボリュームを使用する 2 ノード WSFC の例です。 この構成では、両方の VM でディスクに同時に書き込みアクセスできます。その結果、2 つの VM 間で ReadWrite スロットルが分割され、ReadOnly スロットルは使用されません。

CSV 2 ノード Ultra の例

クラスター共有ボリュームのない 2 つのノード クラスター

次は、クラスター化された共有ボリュームを使用しない 2 ノード WSFC の例です。 この構成では、1 つだけの VM がディスクに書き込みアクセスできます。 結果として、プライマリ VM に独占的に ReadWrite スロットルが使用され、ReadOnly スロットルはセカンダリでのみ使用されます。

CSV 2 ノードで CSV Ultra ディスクなしの例

4 ノード Linux クラスター

次は、シングル ライターが 1 つ、スケールアウト リーダーが 3 つ与えられた 4 ノード Linux クラスターの例です。 この構成では、1 つだけの VM がディスクに書き込みアクセスできます。 結果として、プライマリ VM に独占的に ReadWrite スロットルが使用され、ReadOnly スロットルはセカンダリ VM によって分割されます。

4 ノード Ultra の調整例

Ultra の価格

Ultra 共有ディスクは、プロビジョニング済みの容量、プロビジョニング済みの IOPS の合計 (diskIOPSReadWrite + diskIOPSReadOnly) とプロビジョニング済みのスループット MBps の合計 (diskMBpsReadWrite + diskMBpsReadOnly) に基づいて課金されます。 追加の VM マウントごとに追加料金は発生しません。 たとえば、次の構成の Ultra 共有ディスク (diskSizeGB:1024、DiskIOPSReadWrite:10000、DiskMBpsReadWrite:600、DiskIOPSReadOnly:100、DiskMBpsReadOnly:1) は、2 台の VM にマウントされているか、5台の VM にマウントされているかに関係なく、1024 GiB、10100 IOPS、および 601 MBps で課金されます。

次のステップ

ご使用のマネージド ディスクに対して共有ディスクの有効化と使用に関心がある場合は、「共有ディスクを有効にする」の記事に進んでください。