本記事はNutanixのTechnical Marketing EngineerのMike Umpherysが2022年9月1日に投稿した記事の翻訳版です。
原文はこちら。
これまでの記事でNutanixの分散アーキテクチャがどのようにビジネスクリティカルアプリケーションとデータベースに最適なのかをご紹介してきました。このアーキテクチャはその上に構成される他のすべての機能の基盤となっています。この記事では、クローンの作成時間をスピードアップし、あっという間の復元を実現するきめ細やかで効率的なNutanixのスナップショットに焦点を当てることにします。まず最初に何がスナップショットで何がスナップショットでないのかを定義しておきましょう。スナップショットは任意の時間のシステムの状態を参照する事ができるものです。しかしながら、システム内でバックアップを取る際にスナップショットを使うことはできますが、スナップショット自体はバックアップではありません。
きめ細やかで効率的なスナップショットはNutanixのデータ保護機構の基盤です。 Nutanixは大規模なLUNやコンテナのレベルではなく、仮想マシンの目線でのスナップショットを単一のvdiskの単位で提供しています。Nutanixのスナップショットの先進性を理解するためには、まずは現在利用されている様々なタイプのスナップショットを理解する必要があります。
現在エンタープライズのIT分野で広く利用されているスナップショットにはcopy-on-write(CoW)とredirect-on-write(RoW)の2つのタイプがあります。しかしながら、これらの2つのスナップショットの実装は同じではありません。それぞれの実装にはメリットとデメリットが存在します。Nutanixはいくつかの重要な理由からRoWのスナップショットを選択しました。
1つ目は、多くの数のReadとWriteをリダイレクトについてです。RoWでは保護されているブロックへの更新を新たな場所へとリダイレクトし、その後メタデータ内のポインターをその場所を参照するように更新します。これは結果として1回のWrite操作です。RoWのスナップショットからの復元を行う際にはシステムはどこにデータが保存されているのかを探し出し、それを直接読み出すだけです。
CoWは保護されたブロックを更新しようとする際に、別のスナップショット領域にコピーします、これには1回のRead操作と2回のWrite操作が伴います。復元操作を行う場合、システムは復元したいデータが見つかるまでチェーン内のそれぞれのスナップショットを確認する必要があります。 これがオーバーヘッドとなり、スナップショットの復元時間が長くなってしまいます。
2つ目の理由は、RoWのスナップショットは長期的なスナップショットストレージにより適しているからです。スナップショットが時を経ていくつも積み上がってきた場合に、フルコピーを走査するよりも、メタデータチェインを走査するためのオーバーヘッドが小さくなってくるのです。これはつまり、同等のCoWを利用したスナップショットと比較してRoWではシステムのCPUとI/Oを抑えられるということです。
最後にスナップショットの実装の観点で、どれほどのきめ細やかさでシステムがデータを保護し復元するのかということを考えました。ストレージ装置は大抵の場合、LUNかボリュームのレベルで動作しており、どのようなデータがそこに保存されているという理解はしていません。仮想化を活用する場合、この大きなスコープは結果として同時に多くの仮想マシンのスナップショットを同時に取るという結果になります。これがそれぞれの仮想マシンごとにLUNを作成するなどという、非効率な運用プラクティスとワークアラウンドを生み出す結果となっています。加えて、こうした複雑さを管理するためにLUN、ボリューム、ファンイン/ファンアウト率、キュー深度そしてそれ以外にも多くのエキスパートレベルの知識が必要になるという結果にもつながっています。
Nutanixがどのようにスナップショットとクローンを実装しているか
もっとうまい方法があります。Nutanixはアプリケーションの目線でのアプローチで、RoWを活用してvDiskベースのスナップショットを実装しています。AOSは仮想マシンまたはボリュームグループの最初のスナップショットを取得する時に、read-onlyのメタデータのゼロスペースクローンを作成し、そこに紐づく仮想マシンのデータを変更不能にします。こうしたスナップショットの作成には数秒しかかからないため、アプリケーションと仮想マシンのバックアップウィンドウを短期化することができます。システムが変更されたデータのスナップショットを継続して取得し、更新と新たな書き込みについては新たな場所へリダイレクトされます。
スナップショット内のオリジナルのデータは変更されないまま保持され、システムはこのデータをスナップショットと起動中の仮想マシンで共有します。AOSはスナップショットのプロセスを透過的に取り扱いますので、アプリケーションと仮想マシンへアクセスする仮想化スタックにはなんら変更はありません。
スナップショットには2つのレベルの一貫性があります。クラッシュコンシステントスナップショットは瞬時にスナップショットを取得し、オペレーティングシステム(OS)または仮想マシンのクラッシュからワークロードを復元する際に役立ちます。アプリケーションコンシステントスナップショットではスナップショットの取得前にNutanixゲストツールとMicrosoft Volume Shadow Copy Service(VSS)を活用して、オープン中のトランザクションをすべて完了させ、トランザクションログをさかのぼって、キャッシュをディスクへ吐き出し、ファイルシステムを静止させます。これを行うことでスナップショットはアプリケーション内でデータがどのような状態であったのかを理解して取得されるため、復元が容易になります。Nutanixのスケールアウトアーキテクチャ上で、アプリケーションを意識したスナップショットを活用することで、静止時間を短縮し、結果として一貫したパフォーマンスを得ることができます。
RPOや保持期間のニーズをベースとして、仮想マシンとボリュームグループの両方のスナップショットをスケジュールし、その保持期間を分単位、時間単位、日単位、週単位、月単位ベースでローカルと、リモートとで設定することができます。 加えて、複数の仮想マシンとボリュームグループをNutanixのProtection Domain(保護ドメイン)内にグループ化することもでき、これによって一つのRPO対して仮想マシンの一つ一つはその1要素としての運用を実現することができます。この構造は特にMicrosoft SQL ServerベースのアプリケーションやMicrosoft Exchange名のどのような複雑なアプリケーションを保護する場合に特に有効です。
復元という観点からは、管理者は個別のファイル、仮想マシンまたはvDiskの単位、そしてストレージコンテナという大きな単位でのきめ細やかなデータのリカバリが可能です。この柔軟性はLUNを復元するというような時間とリソースの無駄をすることなく、必要な範囲をピンポイントで復元するということを実現してくれます。既存の起動中の仮想マシンをクラッシュコンシステントスナップショットコピーへ置き換えることも、起動中の仮想マシンを温存してスナップショットのクローンを別に作成することも可能です。アプリケーションのオーナーは自身が利用しているアプリケーションが一貫性を持った状態で常に復元できる状況にあることを知りながら、夜にゆっくりと休むことができます。これらの全てはスピードと効率性の結果の高速な復元によるものです。
アプリケーションのレベルでのきめ細やかさを持つクローンは Nutanixのスナップショット機能の上に成り立っており、同様の容量効率とパフォーマンスについての特性も継承されています。仮想マシンの展開と復元を含むクローンは様々な目的に利用することができます。仮想化スタックのVMware vStorage APIs for Array Integration(VAAI)のような機能との統合は管理者がクローンを利用した仮想マシンの展開のシンプル化を実現しています。Nutanixは同様のネイティブ機能をAHVでも、そして、Hyper-Vではクイッククローンプラグインとして提供しています。また、アプリケーションのアップグレードの前にロールバックを実現するためにヴォリュームグループを個別にクローンすることもできます。Nutanixのクローンは我々のスナップショットテクノロジーの上に構成されており、同じ容量効率と性能特性を継承しています。
なぜこれが重要なのか?
Nutanixはエンタープライズのインフラストラクチャーはパワフルでありながら、管理はシンプルであるべきだと考えています。我々はスナップショットとDRはプラットフォームを利用開始した初日から利用のできるプラットフォームのコアと統合されたものにするという決断をしました。結果として、アプリケーションと仮想マシンはローカル及びリモートで高性能かつ柔軟性のある以下のようなアーキテクチャーで保護されることになります:
- きめ細やか– スナップショットはvDiskのレベルのきめ細やかさで実装されており、単一のファイル単位の復元からストレージコンテナ全体の復元までを妥協なく(細やかに)行うことができます。
- 効率的 – スナップショットとクローンはメタデータがここのvDiskのブロックマップをポイントするだけになっているため優れた容量効率を発揮します。これによって高速なスナップショットと復元がディスクのチェーンを走査することなく実現されます。
- 高性能– RoWスナップショット、クローン、vDiskのブロックマップを活用することによって、皆様のビジネスを推進するアプリケーションの最高パフォーマンスをご提供することができます。
- 簡単– 仮想マシンとボリュームグループの保護と復元をRPOと復元を行いたい場所に応じて簡単に構成可能です。
次の記事では、きめ細やかな効率性を備えたスナップショットとクローンの上に構成されるレプリケーションと災害復旧(DR)について掘り下げたいと思います。アプリケーションがどこで動作していたとしてもNutanixがどれだけアプリケーションの保護と復元をシンプルにすることをご支援できるかを確認いただけるはずです。