インスタント スナップショット: Compute Engine ワークロードをエラーや破損から保護
Karthik Satish
Senior Product Manager
David Seidman
Group Product Manager
※この投稿は米国時間 2024 年 8 月 31 日に、Google Cloud blog に投稿されたものの抄訳です。
あなたはアプリケーション管理者で、1 時間のメンテナンスの時間枠内でアプリケーションのアップグレードを行おうとしたところ、突然アップグレードが失敗したと想像してみてください。そこであなたは、ロールバック手順を開始しようと考えています。ロールバックの通常の流れでは、定期的なスナップショットから復元しますが、この方法では、復元するデータ量によっては完了するまでに数分ほどかかります。アプリケーションのアップグレード前のレプリカから復元する方法もありますが、これには維持費がかかります。
メンテナンスの時間枠をより有効に活用できて、ロールバック時間を予測可能な、費用対効果が高く非常に高速なディスクサイズに依存しない復元ソリューションがあるとしたらどうでしょうか。
このたび、Compute Engine にインスタント スナップショットが導入されます。これは、特定時点のディスクのチェックポイントをほぼ瞬時に高頻度に提供し、必要に応じて迅速に復元できるようにする機能です。
インスタント スナップショットにより、数秒の目標復旧時点(RPO)と数十秒の目標復旧時間(RTO)を達成できます。Google Cloud は、数秒で復元できる高パフォーマンスなチェックポイント機能を提供する唯一のハイパースケーラーです。インスタント スナップショットが復元されると、Compute Engine ワークロードはすぐに完全なディスク パフォーマンスで実行されますが、競合のハイパースケーラーでは、ワークロードが復元されて完全なパフォーマンスで動作するまでに数十分あるいは数時間かかることがあります。
Compute Engine のインスタント スナップショットを使用すると、コア インフラストラクチャはそのままで、データだけを以前の状態にロールバックする必要がある状況での復元が可能になります。一般的なユースケースは次のとおりです。
-
ユーザーエラー、アプリケーション ソフトウェアの障害、ファイル システムの破損からの迅速な復元ができるようにする。
-
定期的にスナップショットを作成し、それを瞬時に復元してデータ整合性チェックを実行する、データベース ワークロード用などのバックアップ検証ワークフロー。
-
アプリケーションのアップグレード前に復元ポイントを取得して、計画メンテナンスが失敗した場合に迅速にロールバックできるようにする。
上記に加えて、インスタント スナップショットを使用すると、以下も可能になります。
-
開発者の生産性を向上させる: 迅速な開発サイクルにおいて、ビルド時間が長い場合や複雑なコードを含む場合には、偶発的なエラーやビルドの失敗によって作業完了までの時間が長引きます。インスタント スナップショットを使用すると、オフサイトのバックアップを利用しなくても、高速な復元が可能になります。
-
バックアップ前に状態を確認する: 作成するバックアップが使用可能で目的の状態であるかを確認できます。長期のバックアップを開始する前に、インスタント スナップショットを使用してディスクのチェックポイントとクローンを作成し、セカンダリ マシンで検証します。
-
バックアップ頻度を増やす: インスタント スナップショットを使用すると、長いバックアップ時間枠を確保できない、大容量でビジネスクリティカルなデータベースでも頻繁にバックアップできます。
インスタント スナップショットの重要な側面
Compute Engine のインスタント スナップショットには、従来のスナップショットと比べて多くのメリットがあります。
-
インプレース バックアップ: インスタント スナップショットはゾーンディスクまたはリージョン ディスクで作成され、ソースディスクやメディアタイプと同じ場所に保存されます。つまり、ディスクのタイプが SDD(または HDD)の場合、そのディスクから作成されたインスタント スナップショットは同じディスクに保存されます。インスタント スナップショットには、作成時の固定料金と、保持する増分ストレージに対する料金が課金されます。
-
高速で増分的: インスタント スナップショットは数秒で作成され、各インスタント スナップショットには前回のインスタント スナップショット以降に変更された増分データ ブロックのみが保存されます。これにより高頻度のスナップショット作成が可能になり、バックアップ スナップショットに比べてより頻繁にスナップショットを作成できます。
-
ディスクへの高速な復元: 各インスタント スナップショットは、新しいディスクに数秒で復元できます。復元される新しいディスクは、スナップショットと同じゾーンにあり、そのディスクタイプを継承します。
-
バックアップまたはアーカイブに変換可能: インスタント スナップショットをセカンダリ ポイント オブ プレゼンスに移動して、地理的に冗長なストレージに長期的に保存できます。
インスタント スナップショットの仕組み
インスタント スナップショットは、最初のチェックポイントと比較して変更されたデータのみを保存するため、数秒で作成できます。
したがって、上記の例では、インスタント スナップショットは作成時にチェックポイントを作成しますが、実際にデータが保存されるのは、このディスクの 3 番目のブロックが新しいデータで上書きされたときだけです。ここで行っているように、ブロック 6 と 7 に書き込むことでデータを追加しても、チェックポイントに追加のストレージは必要ありません。
このため、ストレージ効率が非常に高くなるだけでなく、パフォーマンス効率も高くなります。インスタント スナップショットを作成しても、基盤となるディスクのパフォーマンスには影響がなく、前述したように、インスタント スナップショットの作成とこれを使用した復元は数秒で完了できます。
インスタント スナップショットはストレージ、パフォーマンス、費用対効果に優れているため、標準的なチェンジ マネジメントやメンテナンス フローに組み込めば、ワークロードを簡単かつ効率的に保護できます。
スナップショットのタイプの比較
標準のバックアップ スナップショットと比較した、インスタント スナップショットのさまざまなパフォーマンス特性の概要を以下に示します。
ユースケース例
Maya はアプリケーション管理者で、永続ディスク ボリュームでホストされているソフトウェアをアップグレードする必要があります。このタスクを 1 時間のメンテナンスの時間枠内で完了する必要があります。時間枠の終了時に、ボリュームに新しいソフトウェアが含まれている必要があり、そうであればアップグレードが成功したと見なされます。アップグレードが失敗した場合は、メンテナンスの時間枠の開始直前とまったく同じ状態にする必要があります(ロールバック)。
Maya のワークフローにおいて、定期的なスナップショットを使用した場合とインスタント スナップショットを使用した場合について考えてみましょう。
早速使ってみましょう
インスタント スナップショットは、デバイスの特定時点のバックアップをほぼ瞬時に作成して、迅速な復元と高頻度のバックアップを実現します。これにより、アプリケーションのアップグレード時間枠が最適化され、オフサイト バックアップの時間が短縮され、アップグレードの失敗時やユーザーエラーの発生時に高速な復元が可能になります。
Persistent Disk のインスタント スナップショットを活用するには、インスタント スナップショットのドキュメント ページをご覧ください。
ー シニア プロダクト マネージャー Karthik Satish
ー グループ プロダクト マネージャー David Seidman