Azure Disk Storageは、Azure仮想マシン (VM) のマネージド ディスクを提供します。 ミッション クリティカルなワークロード用に構築され、エンタープライズ レベルの信頼性と可用性を保証します。 ハードウェア障害を防ぐためにデータが自動的にレプリケートされ、持続性の要件を満たす複数の冗長性オプションが用意されています。
Azureを使用する場合、信頼性は共有の責任です。 Microsoftには、回復性と回復性をサポートするためのさまざまな機能が用意されています。 使用するすべてのサービスでこれらの機能がどのように機能するかを理解し、ビジネス目標とアップタイムの目標を達成するために必要な機能を選択する必要があります。
この記事では、一時的な障害、可用性ゾーンの障害、リージョン全体の障害など、さまざまな潜在的な障害や問題に対してAzure Disk Storage回復性を確保する方法について説明します。 また、バックアップと回復のオプションについても説明し、Azure Disk Storage サービス レベル アグリーメント (SLA) に関する重要な情報を強調表示します。
Important
ディスクの信頼性を考慮する場合は、 VM 上で実行される VM、ネットワーク インフラストラクチャ、アプリケーションの信頼性も考慮する必要があります。 ディスクの回復性を向上させるだけで、他のコンポーネントに等しい回復性がない場合は、影響が制限される可能性があります。 回復性の要件によっては、複数の領域で構成の変更が必要になる場合があります。
運用環境のデプロイに関する推奨事項
Azure Well-Architected Framework は、信頼性、パフォーマンス、セキュリティ、コスト、運用に関する推奨事項を提供します。 これらの領域が互いに及ぼす影響を理解し、信頼性の高いAzure Disk Storage ソリューションに貢献するには、architecture のベスト プラクティスを参照Azure Disk Storage。
信頼性アーキテクチャの概要
各仮想マシン (VM) は、さまざまな目的でディスクを使用します。
- OS ディスク: 1 つの OS ディスクでオペレーティング システムが実行されます。 既定では、データを保持するマネージド ディスクです。 また、管理されていないエフェメラル OS ディスクを使用することもできます。 OS ディスクを使用してアプリケーションやデータを格納しないようにします。
- データ ディスク: アプリケーションとデータを格納するための 0 個以上のマネージド ディスク。
- 一時ディスク: すべての VM に含まれる非永続的なアンマネージド ディスク。
このガイドでは、データを確実に保持するマネージド ディスクに特に焦点を当てています。 さまざまなディスク ロールの詳細については、「 ディスクロール」を参照してください。
マネージド ディスクは、99.999% VM の可用性を考慮して設計されており、少なくとも 99.99999999999% (11 9 秒) の持続性を提供します。 マネージド ディスクを使うと、データが 3 回レプリケートされます。 3 つのコピーのいずれかが使用できなくなった場合、Azureは自動的にバックグラウンドでデータの新しいコピーを生成します。 これにより、データの永続化と高いフォールト トレランスが保証されます。
既定では、マネージド ディスクでは ローカル冗長ストレージ (LRS) が使用されます。 LRS は、ディスク データの 3 つのコピーを 1 つのデータセンター内に保持し、ドライブやサーバー ラックの問題などのハードウェア障害から保護します。
LRS はサーバー ラックやドライブの障害からディスクを保護しますが、データセンター内での火災や洪水などの災害は考慮されません。 より高いレベルの保護を実現するには、 ゾーン冗長ストレージ (ZRS) を使用します。これは、複数の可用性ゾーン間でディスクをレプリケートします。
複数の VM で実行されているアプリケーションの場合、複数の可用性ゾーンに分散されている場合、複数の VM の可用性 SLA が最も高くなります。 複数の可用性ゾーンに分散された VM とディスクの場合、ディスクとその親の VM はそれぞれ同じゾーンに併置されるため、1 つのゾーン全体で障害が発生した場合でも、複数の VM がダウンすることはありません。
ゾーンが利用できない場合、またはワークロードが VM 間の待機時間に影響を受ける場合は、複数の 障害ドメインに VM とディスクをデプロイします。 障害ドメインはゾーン冗長性を提供しませんが、ハードウェア障害、ネットワーク障害、または停電の影響を軽減します。 これにより、1 つのストレージ 障害ドメインがダウンした場合に、複数の VM が失敗するのを防ぐことができます。
一時的な障害に対する回復性
一時的な障害は、コンポーネントにおける短い断続的な障害です。 これらはクラウドのような分散環境で頻繁に発生し、運用の通常の範囲であり、 一時的な障害は、短時間の経過後に自分自身を修正します。 アプリケーションで一時的な障害を処理できることは重要です。通常は、影響を受ける要求を再試行します。
クラウドでホストされているすべてのアプリケーションは、クラウドでホストされている API、データベース、およびその他のコンポーネントと通信する際に、Azure一時的な障害処理ガイダンスに従う必要があります。 詳細については、「一時的な障害を処理するための推奨事項」を参照してください。
マネージド ディスクは、Azure インフラストラクチャの一時的な障害から自動的に復旧します。
可用性ゾーンの障害に対する回復性
Availability zones は、Azure リージョン内のデータセンターの物理的に分離されたグループです。 1 つのゾーンで障害が発生した際には、サービスを残りのゾーンのいずれかにフェールオーバーできます。
マネージド ディスクで可用性ゾーンを使用するには、次の 2 つの方法があります。
- ゾーン冗長 (ZRS) ディスクは、リージョン内の 3 つの可用性ゾーンにデプロイできます。 ZRS ディスクは自動ゾーンの回復性を提供するため、最適な信頼性を得るため、ZRS ディスクを使用することをお勧めします。
- ゾーン LRS ディスクは、1 つのゾーンにのみデプロイできます。 ゾーン LRS ディスクでは、ゾーンの停止に対する回復性を備えたワークロードを構成する必要があります。 これを行うには、複数の VM とディスクをデプロイし、それらを可用性ゾーンに分散させます。
可用性ゾーンのサポートを構成しない場合、ディスクは 非ゾーン または リージョン であり、リージョン内の任意の可用性ゾーンに配置される可能性があります。 これらのディスクは、リージョン内でレプリケートされるため、LRS と見なされます。
ゾーン冗長ディスク
ゾーン冗長ストレージ (ZRS) は、リージョン内の 3 つの可用性ゾーン間でデータを同期的にレプリケートします。 マネージド ディスクのゾーン冗長を有効にすると、Azure、単一ゾーンの障害がデータの可用性に影響を与えないことを確認できます。
ZRS ディスクを VM 間で共有 して、SQL FCI、SAP ASCS/SCS、GFS2 などのクラスター化または分散アプリケーションの可用性を向上させることができます。 共有 ZRS ディスクは、複数の可用性ゾーンに分散された ZRS ディスクと VM の両方を利用して、異なるゾーンのプライマリ VM とセカンダリ VM に接続できます。 プライマリ ゾーンで障害が発生した場合は、 SCSI 永続予約を使用してセカンダリ VM にすばやくフェールオーバーできます。
ZRS ディスクがダウンしたゾーン内の単一の VM にデータ ディスクとして接続されている場合は、障害が発生した VM からディスクを 強制的にデタッチ し、別の VM に接続できます。
必要条件
リージョンのサポート: ZRS マネージド ディスクをサポートするリージョンの一覧については、「 マネージド ディスクの冗長性オプション」を参照してください。
ディスクの種類: ゾーン冗長ディスクは、Premium SSD および Standard SSD マネージド ディスクでサポートされています。 ZRS は、Premium SSD v2、Ultra Disks、または Standard HDD マネージド ディスクではサポートされていません。
Cost
ZRS では、レプリケーションのオーバーヘッドが増え、複数のゾーンにわたってデータを維持するために必要なインフラストラクチャが原因で、LRS よりも高いコストが発生します。 正確なコスト差は、リージョンとディスクの種類によって異なります。 価格の詳細については、「Azure マネージド ディスクの価格」を参照してください。
可用性ゾーンのサポートを設定する
新しい ZRS ディスクを作成する: 新しい ZRS マネージド ディスクを作成するには、 「Tutorial - Linux VM の場合は Azure CLI を使用してAzure ディスクを管理する」、または「Tutorial: Windows VM のAzure PowerShell を使用したディスクの管理」を参照してください。 ディスクの作成時に ZRS ディスク層を選択します。
ワークロードに適している場合は、異なるゾーン内の複数の VM で 共有ディスク を構成するなど、VM にディスクを接続する責任があります。
ZRS を使用するように既存のディスクを変更します。 既存の非ゾーン (リージョン) ディスクを ZRS に変換できます。
ゾーン LRS ディスクを ZRS に変換することはできませんが、スナップショットから新しい ZRS ディスクを作成できます。 詳細な移行手順と要件については、「 LRS から ZRS へのディスクの変換 」を参照してください。
可用性ゾーンのサポートを無効にします。 既存の ZRS ディスクの可用性ゾーン構成を変更することはできません。 代わりに、前のディスクのスナップショットを使用して新しい構成で新しいディスクを作成し、古いディスクを削除する必要があります。
すべてのゾーンが正常な場合の動作
このセクションでは、ZRS を使用するようにマネージド ディスクが構成されていて、すべての可用性ゾーンが動作している場合に想定される内容について説明します。
クロス ゾーン操作: Azure は、ゾーン冗長ディスクで VM を使用する場合に、可用性ゾーン間のトラフィック ルーティングを自動的に管理します。 通常の操作中、要求はゾーン間で透過的に分散されます。
ゾーン間データ レプリケーション: ZRS ディスクは、すべての書き込みをリージョン内の複数の可用性ゾーン間で同期的にレプリケートします。 書き込み操作は、複数のゾーンのクラスターにデータが格納された後にのみ完了します。 この方法では、強力な一貫性と高可用性が提供されますが、LRS ディスクと比較して書き込み待機時間が若干長くなる可能性があります。
ゾーン障害時の動作
このセクションでは、ZRS を使用するようにマネージド ディスクが構成されていて、可用性ゾーンが停止した場合に想定される内容について説明します。
検出と応答: 一部のゾーンの停止は、ディスクのみ、VM のみ、またはその両方に影響する場合があります。 観察する動作は、ゾーンの停止がディスクに接続されている VM に影響するかどうかによって異なります。
VM が正常なままであっても、ディスクが停止の影響を受けている場合、VM は引き続き動作します。 Microsoftは、正常な可用性ゾーン内のデータに対して動作するようにディスク操作を自動的にリダイレクトします。何もする必要はありません。
VM がダウンしている場合は、ワークロードを別の可用性ゾーン内の別の VM に切り替える必要があります。
共有ディスク: 別のゾーンにセカンダリ VM を既に作成し、 共有ディスクを構成している場合は、セカンダリ VM が構成変更なしで使用できるディスクを使用できます。
共有されていないディスク: 障害が発生した VM からディスクを 強制的にデタッチ し、正常なゾーンに VM をアタッチできます。 強制デタッチを実行するには:
- Azure CLI: az vm disk detach コマンドを
--force-detach引数と共に使用します。 - Azure PowerShell: Remove-AzVMDataDisk コマンドレットを
-ForceDetach引数と共に使用します。
- Azure CLI: az vm disk detach コマンドを
- Notification: ゾーンがダウンしても、Microsoftから自動的に通知はされません。 ただし、Azure Resource Health を使用して個々のリソースの正常性を監視したり、Resource Healthアラートを設定して問題を通知することができます。 また、Azure Service Health を使用して、ゾーンエラーを含むサービスの全体的な正常性を把握し、Service Health アラートを設定して問題を通知することもできます。
予想されるデータ損失: ゾーン障害時にデータ損失は発生しません。
予想されるダウンタイム: ディスクが複数の VM 間で共有されている場合、ダウンタイムは発生しません。
Redistribution: Azure は、正常なゾーン内のディスクの別のコピーにトラフィックを自動的に再ルーティングします。
ゾーンの回復
Azureは、以前に失敗したゾーンが正常であることを自動的に検出し、復旧されたゾーンにデータ同期を復元します。
ゾーナル LRS ディスク
ゾーン LRS ディスクは、特定の可用性ゾーンに存在し、そのゾーン内の VM にのみ接続します。 ディスクのデータのコピーはすべて同じゾーンにあります。 単一のゾーン LRS ディスクと仮想マシンでは、ゾーンの回復性は提供されません。 ディスクを含むゾーンで障害が発生した場合、ディスクが使用できなくなる可能性があります。
マルチ VM ワークロードの場合、複数の VM とそのゾーンの LRS ディスクを異なる可用性ゾーンにデプロイすることで、ゾーンの回復性を実現できます。 この方法は、Web サーバー、アプリケーション層、データベース クラスターなどのワークロードの高可用性を実現する最も一般的な方法です。 ゾーンで障害が発生した場合は、正常なゾーン内の VM を使用して、ワークロードが引き続き動作するように構成できます。
このマルチゾーン分散パターンは、LRS のみをサポートする Premium SSD v2 や Ultra Disks など、すべてのディスクの種類で動作します。 この方法の詳細については、「 可用性ゾーン間で VM とディスクを分散する」を参照してください。
必要条件
リージョンのサポート: ゾーン LRS マネージド ディスクは、 可用性ゾーンを持つすべてのリージョンでサポートされています。
ディスクの種類: すべてのマネージド ディスクの種類では、ゾーン LRS デプロイがサポートされます。
Cost
ゾーン LRS ディスクは、非ゾーン ディスクと同じレートで課金されます。 価格の詳細については、「Azure マネージド ディスクの価格」を参照してください。
可用性ゾーンのサポートを設定する
可用性ゾーンのサポートがある新しいディスクを作成する: ゾーン LRS 冗長性を持つ新しいマネージド ディスクを作成するには、 「Tutorial - Linux VM のAzure CLI を使用したAzure ディスクの管理、または Tutorial: Windows VM の Azure PowerShell を使用したディスクの管理」を参照してください。
ディスクの作成時に可用性ゾーンを選択します。
Important
単一の可用性ゾーンへのピン留めは、ニーズに合わせてゾーン間の待機時間が長すぎる場合と、待機時間が要件を満たしていないことを確認した後にのみ推奨されます。 ゾーン リソースだけでは、可用性ゾーンの停止に対する回復性は提供されません。 ゾーン リソースの回復性を向上させるには、個別のリソースを複数の可用性ゾーンに明示的にデプロイし、トラフィック ルーティングとフェールオーバーを構成する必要があります。 詳細については、「 ゾーン リソースとゾーンの回復性」を参照してください。
既存のディスクの可用性ゾーン構成を変更します 。既存のゾーン LRS ディスクの可用性ゾーン構成を変更することはできません。 代わりに、前のディスクのスナップショットを使用して新しい構成で新しいディスクを作成し、古いディスクを削除する必要があります。
すべてのゾーンが正常な場合の動作
このセクションでは、ゾーン LRS を使用するようにマネージド ディスクが構成されていて、すべての可用性ゾーンが動作している場合に想定される内容について説明します。
ゾーン間操作: ゾーン VM と同じゾーン内のゾーン LRS ディスク間のトラフィックは、可用性ゾーン内に残ります。
複数の VM を複数のゾーンにデプロイする場合は、受信要求を VM 全体に分散する必要があります。 各 VM は、独自のゾーン ディスクの読み取りと書き込みを行います。
ゾーン間データ レプリケーション: ゾーン LRS ディスクに対するすべての書き込み操作は、可用性ゾーン内で同期的にレプリケートされます。
複数の VM をゾーンにまたがってデプロイする場合、ワークロードで VM 間のデータ整合性が必要な場合は、データベース レプリケーションやアプリケーション層レプリケーションなどを使用してデータを同期する必要があります。
ゾーン障害時の動作
このセクションでは、ゾーン LRS を使用するようにマネージド ディスクが構成されていて、可用性ゾーンが停止した場合に想定される内容について説明します。
検出と応答: ゾーン LRS ディスクを持つ単一の VM がある場合は、ゾーンの停止を検出し、フェールオーバーまたは別の応答をトリガーする必要があります。
複数のゾーンに VM を分散している場合は、ゾーンの障害を検出し、正常なゾーン内の VM で引き続き実行するようにワークロードを構成する必要があります。
- Notification: ゾーンがダウンしても、Microsoftから自動的に通知はされません。 ただし、Azure Resource Health を使用して個々のリソースの正常性を監視したり、Resource Healthアラートを設定して問題を通知することができます。 また、Azure Service Health を使用して、ゾーンエラーを含むサービスの全体的な正常性を把握し、Service Health アラートを設定して問題を通知することもできます。
予想されるデータ損失: LRS レプリケーションでは、少なくとも 99.99999999999% (11 9 秒) の持続性が提供されます。つまり、ディスクはデータを保持し、ゾーンの復旧後にデータを復旧できます。
複数のゾーンに VM を分散している場合、障害が発生したゾーン内のディスク上にのみ存在していたデータは一時的に使用できなくなります。 アプリケーションが VM 間でデータを同期する場合、正常なゾーン内の VM は引き続き独自のデータを使用して要求を処理します。
予想されるダウンタイム: 可用性ゾーンが復旧するまで、単一のゾーン LRS ディスクは使用できません。
複数のゾーンに分散された VM とディスクがある場合、ワークロードは正常なゾーン内の VM で引き続き動作できます。
再 分配: ゾーン LRS ディスクを持つ単一の VM がある場合は、使用可能な場合は、別の VM へのトラフィックを再ルーティングする必要があります。
複数のゾーンに分散された VM がある場合は、正常なゾーン内の VM にトラフィックを自動的に再配布するようにワークロードを構成できます。
ゾーンの回復
障害が発生した可用性ゾーンが復旧すると、マネージド ディスクは自動的に回復します。 ディスクに接続されている VM が停止の影響を受けた場合は、再起動します。 アプリケーション データを使用する場合は、アプリケーション データを他の可用性ゾーン内の他の VM とディスクに再同期する必要があります。
ゾーンエラーのテスト
ディスク レベルでゾーン障害を直接シミュレートすることはできませんが、Azure Chaos Studio のサポートを使用して、仮想マシン スケール セットでのゾーンダウン イベントのシミュレーションや、個別の仮想マシンの損失をシミュレートすることができます。
障害発生時のゾーン障害とマネージド ディスクの動作に対するアプリケーションの回復性をテストする必要があります。 シミュレートされたゾーンの停止中にディスクパフォーマンスを監視し、アプリケーションが待機時間の増加を適切に処理することを検証します。 アプリケーションが一時的な I/O 遅延を処理し、共有ディスクのデタッチ操作を強制できることを確認する自動テスト シナリオを実装します。
リージョン全体の障害に対する回復性
Azure Disk Storageは、特定のAzure リージョンの境界内で動作する単一リージョン サービスです。 このサービスでは、ネイティブマルチリージョン機能やリージョン間の自動フェールオーバーは提供されません。 リージョンが使用できなくなった場合、そのリージョンのマネージド ディスク リソースも使用できなくなります。
回復性のためのカスタム マルチリージョン ソリューション
複数リージョンのソリューションを構築するには、各リージョンに仮想マシンとディスクをデプロイし、リージョン間でデータをレプリケートまたはバックアップし、必要に応じてバックアップのフェールオーバーまたは復元を行います。 お客様は、すべてのリージョンのリソースの管理、データの調整と同期、フェールオーバーまたは復元の処理を担当します。 一般的な方法には、次のようなものがあります。
- Azure Site Recovery。仮想マシンとディスクのリージョン間レプリケーションを提供します。
- Azure Backup は、ディスクを含むマネージド バックアップ サービスを提供します。 リージョン間の復元を使用して、別のリージョンの VM を復元できます。
- リージョン間でディスクのディスク スナップショットをコピーすることで、独自のスナップショット ベースのソリューションを構築できます。
- 一部のデータベースとアプリケーションでは、変更をレプリケートしてクラスターを管理することで、リージョン間で動作するレプリケーション アプローチが提供されます。 たとえば、SQL Server Always On 可用性グループ は、カスタマイズ可能な一貫性とフェールオーバー動作を備えたアプリケーション対応のリージョン間データ保護を提供します。
バックアップと復元
Azureマネージド ディスクでは、データの損失や破損から保護するための複数のバックアップ アプローチがサポートされています。 Azure Disk Backup は、スナップショット のライフサイクル管理を自動化するクラウドベースのネイティブ ソリューションです。 クラッシュ整合性の増分バックアップを、構成可能な保持ポリシーを使用して提供します。 このエージェントレス アプローチでは、アプリケーションのパフォーマンスに影響を与えずに 1 日に複数のバックアップをサポートし、Azure Backup センターと統合して一元管理します。 増分スナップショットを使用して、ストレージ コストとバックアップ時間を削減できます。
VM レベルの保護では、Azure Backup は、接続されているすべてのディスクを含む、仮想マシン全体に対してアプリケーション整合性バックアップを提供します。 この方法は、複数のディスクまたはアプリケーション対応バックアップの調整されたバックアップが必要な場合に最適です。 データベース ワークロードの場合は、トランザクション整合性保護と高速復旧オプションを提供するアプリケーション固有のバックアップ ソリューションを検討してください。
重要なワークロードの場合は、トランザクションの整合性のために、Azureディスク バックアップ、リージョン間スナップショット レプリケーション、およびアプリケーション レベルのバックアップを組み合わせた階層化バックアップ戦略を実装します。 復旧要件、コンプライアンスのニーズ、コストに関する考慮事項に基づいてバックアップ ポリシーを構成します。
サービス水準合意書
Azure サービスのサービス レベル アグリーメント (SLA) では、各サービスの予想される可用性と、その可用性の期待を達成するためにソリューションが満たす必要がある条件について説明します。 詳細については、オンラインサービスのSLAを参照してください。
Azure Disk Storage独自の可用性 SLA は提供されませんが、代わりに VM の SLA に含まれています。 ディスクの構成は、VM の可用性 SLA に影響する可能性があります。