Azure VM バックアップの概要

この記事では、Azure Backup サービスによって Azure 仮想マシン (VM) がどのようにバックアップされるかについて説明します。

Azure Backup では、VM 上のデータが誤って破壊されることを防ぐために、独立して分離されたバックアップを提供しています。 バックアップは、復旧ポイントの管理機能をビルトインで備えた Recovery Services コンテナーに格納されます。 構成とスケーリングは単純で、バックアップは最適化され、必要に応じて簡単に復元することができます。

バックアップ プロセスの一環として、スナップショットが取得され、運用環境のワークロードに影響を与えることなく、データが Recovery Services コンテナーに転送されます。 スナップショットは、こちらで説明されているように、さまざまなレベルの一貫性を提供します。

また Azure Backup には、SQL ServerSAP HANA のようなデータベース ワークロードに特化したワークロード対応のサービスがあり、15 分間の RPO (目標復旧時点) を提供し、個々のデータベースのバックアップと復元を可能にします。

バックアップ プロセス

Azure Backup によって Azure VM のバックアップが行われる方法を説明します。

  1. バックアップの対象として選択されている Azure VM に対して、Azure Backup はユーザーが指定したバックアップ スケジュールに従ってバックアップ ジョブを開始します。

  2. 最初のバックアップ時に、バックアップ拡張機能が VM にインストールされます (VM が実行されている場合)。

  3. 実行されている Windows VM については、Backup は Windows ボリューム シャドウ コピー サービス (VSS) と連携して VM のアプリ整合性スナップショットを取得します。

    • 既定では、Backup によって完全 VSS バックアップが取得されます。
    • Backup はアプリ整合性スナップショットを取得できない場合、基になるストレージのファイル整合性スナップショットを取得します (VM の停止中はアプリケーションの書き込みは行われないため)。
  4. Linux VM の場合、Backup ではファイル整合性スナップショットが取得されます。 アプリ整合性スナップショットの場合は、事前/事後スクリプトを手動でカスタマイズする必要があります。

  5. Backup でスナップショットが取得された後、コンテナーにデータが転送されます。

    • バックアップは、各 VM ディスクを並列にバックアップすることで最適化されます。
    • バックアップされているディスクごとに、Azure Backup はディスク上のブロックを読み取り、前回のバックアップ以降に変更されたデータ ブロックのみ (差分) を識別して転送します。
    • スナップショット データはコンテナーにすぐにコピーされない場合があります。 ピーク時には、数時間かかる場合があります。 毎日のバックアップ ポリシーでは、VM のバックアップの合計時間は 24 時間未満になります。
  6. Azure Backup がここで有効化された後に Windows VM に加えられた変更は次のとおりです。

    • Microsoft Visual C++ 2013 redistributable (x64) - 12.0.40660 が VM にインストールされています。
    • ボリューム シャドウ コピー サービス (VSS) のスタートアップの種類が手動から自動に変更されています。
    • IaaSVmProvider Windows サービスが追加されます。
  7. データ転送が完了すると、スナップショットが削除され、回復ポイントが作成されます。

Azure 仮想マシンのバックアップ アーキテクチャ

Azure VM バックアップの暗号化

Azure Backup を使用して Azure VM をバックアップするとき、保存中の VM は Storage Service Encryption (SSE) を使用して暗号化されます。 Azure Backup では、Azure Disk Encryption を使用して暗号化されている Azure VM もバックアップできます。

暗号化 詳細 サポート
SSE SSE では、Azure Storage により、データを格納する前に自動的に暗号化することで、保存中の暗号化が提供されます。 Azure Storage では、取得前にデータの暗号化解除も行われます。 Azure Backup では、次の 2 種類の Storage Service Encryption を使用した VM のバックアップがサポートされています。
  • プラットフォーム マネージド キーを使用した SSE:この暗号化は、お使いの VM の全ディスクの既定です。 詳細については、こちらを参照してください。
  • カスタマー マネージド キーを使用した SSE. CMK では、ユーザーがディスクの暗号化に使用するキーを管理します。 詳細については、こちらを参照してください。
  • Azure Backup では、Azure VM の保存中の暗号化のために SSE が使用されます。
    Azure Disk Encryption Azure Disk Encryption では Azure VM の OS とデータ ディスクの両方が暗号化されます。

    Azure Disk Encryption は、シークレットとしてキー コンテナーで保護されている BitLocker 暗号化キー (BEK) と統合されます。 Azure Disk Encryption は、Azure Key Vault キー暗号化キー (KEK) とも統合されます。
    Azure Backup では、BEK のみで、または BEK と KEK を併用して、暗号化されたマネージドおよびアンマネージド Azure VM のバックアップがサポートされます。

    BEK と KEK の両方がバックアップされて暗号化されます。

    KEK と BEK がバックアップされるため、必要に応じて、必要なアクセス許可を持つユーザーは、キーとシークレットをキー コンテナーに復元できます。 ユーザーは、暗号化された VM を復旧することもできます。

    暗号化されたキーとシークレットは、承認されていないユーザーによって、または Azure によって読み取ることはできません。

    マネージドおよびアンマネージド Azure VM の場合、Backup では、BEK のみで暗号化された VM と、BEK と KEK を併用して暗号化された VM の両方がサポートされます。

    バックアップされる BEK (シークレット) と KEK (キー) は暗号化されます。 承認されたユーザーによってキー コンテナーに復元されたときに限り、読み取りと使用が可能です。 承認されていないユーザーも Azure も、バックアップされたキーまたはシークレットの読み取りまたは使用はできません。

    BEK もバックアップされます。 そのため、BEK が失われた場合、承認されたユーザーは BEK をキー コンテナーに復元し、暗号化された VM を復旧できます。 必要なレベルの権限を持つユーザーのみが、暗号化された VM またはキーとシークレットを、バックアップして復元できます。

    スナップショットの作成

    Azure Backup では、バックアップ スケジュールに従ってスナップショットが取得されます。

    • Windows VM: Windows VM の場合、Backup サービスは VSS と連携して、VM ディスクのアプリ整合性スナップショットを取得します。 既定の Azure Backup では、VSS の完全バックアップが作成されます (アプリケーション レベルで整合性のあるバックアップを取得するため、バックアップ時に、SQL Server などのアプリケーションのログは切り捨てられます)。 Azure VM バックアップで SQL Server データベースを使用している場合は、(ログを保持するため) VSS コピー バックアップを作成するように設定を変更できます。 詳細については、 こちらの記事を参照してください。

    • Linux VM: Linux VM のアプリ整合性スナップショットを取得するには、Linux の事前スクリプトおよび事後スクリプトのフレームワークを使用して、整合性を保証するための独自のカスタム スクリプトを記述します。

      • Azure Backup では、ユーザーが記述した事前/事後スクリプトのみが呼び出されます。
      • 事前スクリプトと事後スクリプトが正常に実行されると、Azure Backup は復旧ポイントをアプリケーション整合性としてマークします。 ただし、カスタム スクリプトを使用したときのアプリケーション整合性の最終的な責任はユーザーが担います。
      • スクリプトの構成方法に関する詳細を確認してください。

    スナップショットの整合性

    次の表では、スナップショットの整合性の種類について説明します。

    スナップショット 詳細 回復 考慮事項
    アプリケーションの整合性 アプリ整合性バックアップでは、メモリの内容と保留中の I/O 操作がキャプチャされます。 アプリ整合性スナップショットでは、バックアップが発生する前にアプリ データの整合性を保証するために、VSS ライター (または Linux の事前/事後スクリプト) が使用されます。 アプリ整合性スナップショットで VM を復旧すると、VM が起動されます。 データの損失や破損はありません。 アプリは整合性が確保された状態で開始します。 Windows: すべての VSS ライターが成功した

    Linux: 事前/事後スクリプトが構成されて成功した
    ファイル システム整合性 ファイル システム整合性バックアップでは、同時にすべてのファイルのスナップショットを作成することで整合性が提供されます。

    ファイル システム整合性スナップショットで VM を復旧すると、VM が起動されます。 データの損失や破損はありません。 復元されたデータに一貫性が保たれるようにするために、アプリは独自の "修正" メカニズムを実装する必要があります。 Windows: 一部の VSS ライターが失敗した

    Linux: 既定 (事前/事後スクリプトが構成されていないか失敗した)
    クラッシュ整合性 クラッシュ整合性スナップショットは、通常、バックアップ時に Azure VM がシャットダウンした場合に発生します。 バックアップ時にディスクに既に存在していたデータのみが、キャプチャされバックアップされます。 VM のブート プロセスから開始し、その後ディスク チェックを行って破損エラーを修正します。 クラッシュ前にディスクに転送されなかったメモリ内のデータや書き込み操作は、すべて失われます。 アプリは独自のデータ検証を実装しています。 たとえば、データベース アプリでは検証のためトランザクション ログを使用できます。 トランザクション ログにデータベース内に存在しないエントリが含まれている場合、データベース ソフトウェアはデータの整合性が得られるまでトランザクションをロールバックします。 VM はシャットダウン (停止/割り当て解除) 状態です。

    注意

    プロビジョニングの状態が 成功 の場合、Azure Backup ではファイル システム整合性バックアップが実行されます。 プロビジョニングの状態が 使用不可 または 失敗 の場合は、クラッシュ整合性バックアップが実行されます。 プロビジョニングの状態が 作成中 または 削除中 の場合は、Azure Backup が操作を再試行していることを意味します。

    バックアップと復元の考慮事項

    考慮事項 詳細
    ディスク VM ディスクのバックアップは並列です。 たとえば、VM にディスクが 4 つある場合、Backup サービスは 4 つすべてのディスクを並列でバックアップしようとします。 バックアップは増分的 (変更されたデータのみ) です。
    スケジュール設定 バックアップ トラフィックを減らすには、異なる VM を一日の異なる時間帯にバックアップし、時間帯が重ならないようにします。 同時に VM をバックアップすると、トラフィックの渋滞が発生します。
    バックアップの準備 バックアップの準備に必要な時間に注意してください。 準備時間には、バックアップ拡張機能のインストールまたは更新と、バックアップ スケジュールに従ったスナップショットのトリガーが含まれます。
    データ転送 Azure Backup で前回のバックアップからの増分変更を識別するために必要な時間を考慮してください。

    増分バックアップの Azure Backup では、ブロックのチェックサムを計算することによって、変更が特定されます。 ブロックが変更されている場合は、コンテナーに転送するようにマークされます。 サービスは識別されたブロックを分析して、転送するデータ量をさらに最小化しようとします。 変更されたすべてのブロックが評価された後、Azure Backup によってコンテナーに変更が転送されます。

    スナップショットを取得してからコンテナーにコピーするまでの間、ラグが生じる場合があります。 ピーク時には、スナップショットがコンテナーに転送されるまで、最大 8 時間かかることがあります。 毎日のバックアップでは、VM のバックアップ時間は 24 時間未満になります。
    初回バックアップ 増分バックアップの合計バックアップ時間は 24 時間未満ですが、初回バックアップではそうはならないことがあります。 初回バックアップに必要な時間は、データのサイズと、いつバックアップが処理されるかによって異なります。
    復元キュー Azure Backup では複数のストレージ アカウントからの復元ジョブが同時に処理され、復元要求はキューに入れられます。
    復元コピー 復元処理の間、データがコンテナーからストレージ アカウントにコピーされます。

    合計復元時間は、1 秒あたりの I/O 操作数 (IOPS) とストレージ アカウントのスループットに依存します。

    コピー時間を短縮するには、他のアプリケーションの書き込みおよび読み取りの負荷がないストレージ アカウントを選択します。

    バックアップ パフォーマンス

    以下の一般的なシナリオは、合計バックアップ時間に影響を与える可能性があります。

    • 保護された Azure VM への新しいディスクの追加: VM で増分バックアップが行われているときに、新しいディスクが追加されると、バックアップの時間が長くなります。 既存ディスクの差分レプリケーションに加えて、新しいディスクの初期レプリケーションが行われるため、合計バックアップが 24 時間を超える場合があります。
    • 断片化したディスク: ディスクの変更が連続していると、バックアップ操作は速くなります。 変更がディスク全体に分散および断片化している場合、バックアップは遅くなります。
    • ディスク チャーン: 増分バックアップが実行されている保護されたディスクで毎日のチャーンが 200 GB を超える場合、バックアップの完了に時間がかかる (8 時間を超える) 可能性があります。
    • バックアップのバージョン: (インスタント リストア バージョンと呼ばれる) 最新バージョンの Backup では、変更の識別に、チェックサム比較より最適化されたプロセスが使用されます。 ただし、インスタント リストアを使用していて、バックアップ スナップショットを削除した場合、バックアップはチェックサム比較に切り替わります。 この場合、バックアップ操作は 24 時間を超えます (または失敗します)。

    復元のパフォーマンス

    以下の一般的なシナリオは、合計復元時間に影響を与える可能性があります。

    • 合計復元時間は、1 秒あたりの出入力操作数 (IOPS) とストレージ アカウントのスループットに依存します。
    • 合計復元時間は、ターゲットのストレージ アカウントに他のアプリケーションの読み取りや書き込み操作が読み込まれる場合、影響を受けることがあります。 復元操作を改善するには、他のアプリケーション データが読み込まれないストレージ アカウントを選択します。

    ベスト プラクティス

    VM バックアップを構成するときは、次のプラクティスに従うことをお勧めします。

    • ポリシーで設定されている既定のスケジュール時間を変更します。 たとえば、ポリシーで既定の時間が午前 0 時の場合、リソースが最適に使用されるよう、数分時間を進めることを検討してください。
    • 1 つのコンテナーから複数の VM を復元する場合は、ターゲットのストレージ アカウントがスロットルされないようにするために、それぞれ異なる汎用 v2 ストレージ アカウントを使用することを強くお勧めします。 たとえば、VM ごとに異なるストレージ アカウントが必要です。 たとえば、10 個の VM を復元する場合は、10 個の異なるストレージ アカウントを使用します。
    • インスタント リストアでの Premium Storage を使用している VM のバックアップについては、割り当てられた合計記憶域スペースの 50% の空き領域を割り当てることが推奨されます。これは最初のバックアップに のみ 必要です。 最初のバックアップが完了すると、バックアップに 50% の空き領域は不要になります。
    • ストレージ アカウントあたりのディスク数の制限は、サービスとしてのインフラストラクチャ (IaaS) VM で実行されているアプリケーションがディスクにどれくらいアクセスするかによって決まります。 通常、1 つのストレージ アカウント上に 5 ~ 10 個以上のディスクが存在する場合は、一部のディスクを別のストレージ アカウントに移動して負荷を分散します。
    • PowerShell を使用してマネージド ディスクが含まれている VM を復元するには、追加のパラメーター TargetResourceGroupName を指定して、マネージド ディスクの復元先となるリソース グループを指定します。詳細については こちらを参照してください。

    バックアップのコスト

    Azure Backup を使用してバックアップされている Azure VM は、Azure Backup の価格の対象になります。

    課金は、最初のバックアップが正常に完了するまでは開始されません。 この時点で、ストレージと保護する VM の両方に対する課金が開始されます。 VM のバックアップ データがコンテナーに格納されている限り、課金は継続されます。 VM の保護を停止したが VM のバックアップ データがコンテナーに存在している場合、課金は継続されます。

    指定された VM に対する課金は、保護が停止され、かつすべてのバックアップ データが削除されている場合にのみ停止します。 保護が停止してアクティブなバックアップ ジョブがないとき、最後に成功した VM バックアップのサイズは、毎月の課金に使用する保護されたインスタンスのサイズになります。

    保護されたインスタンス サイズの計算は、"実際の" VM のサイズに基づきます。 VM のサイズは、一時的なストレージを除く、VM 内のすべてのデータの合計です。 価格は、VM にアタッチされている各データ ディスクの最大サポート サイズではなく、データ ディスクに格納されている実際のデータに基づきます。

    同様に、バックアップ ストレージの課金は、Azure Backup に格納されているデータ量 (各回復ポイントの実際のデータの合計) に基づきます。

    たとえば、最大サイズが各 32 TB のデータ ディスクが 2 台追加で搭載されている A2 Standard サイズの VM があります。 次の表は、これらの各ディスクに格納されている実際のデータです。

    ディスク 最大サイズ 実際のデータ量
    OS ディスク 32 TB 17 GB
    ローカル/一時ディスク 135 GB 5 GB (バックアップに含まれない)
    データ ディスク 1 32 TB 30 GB
    データ ディスク 2 32 TB 0 GB

    この場合の VM の実際のサイズは、17 GB + 30 GB + 0 GB = 47 GB です。 この保護されたインスタンスのサイズ (47 GB) が、毎月の課金の基礎になります。 VM のデータ量が大きくなると、課金に使用される保護されたインスタンスのサイズもそれに応じて変化します。

    次のステップ