Microsoftのボリューム・シャドウ・コピー・テクノロジーを活用した一貫性のあるバックアップ

アプリケーションが実行中の仮想マシンや物理マシンのバックアップを作成する場合、特にファイルやデータベースへのデータ書き込みが頻繁に行われるアプリケーションについては、バックアップデータの一貫性を確保することが不可欠です。バックアップデータの一貫性が保たれていれば、データの破損や遅延を招くことなく復旧作業を進めることができます。この目的のために、マイクロソフトはVSSテクノロジーを開発しました。

このブログ記事では、ボリューム シャドウ コピー サービス(VSS)とは何か、その仕組み、そしてこのテクノロジーがWindowsベースの仮想マシンや物理マシンのバックアップにおいてなぜ重要なのかについて解説します。

VSSとは何ですか?

Windows オペレーティングシステムの標準機能であるボリューム シャドウ コピー サービス(VSS)は、アプリケーションの状態を正確に反映した一貫性のあるバックアップの作成を可能にします。バックアップデータの一貫性を確保するために、以下の処理が行われます:

  • VSSは、アプリケーションによる書き込み操作を一時的に停止します。
  • メモリ内のバッファがディスクに書き込まれ、つまりフラッシュされ、ファイルシステムが凍結されます。
  • Windows オペレーティングシステムでは、ボリュームスナップショット(シャドウコピーとも呼ばれる)が作成されます。

ボリューム シャドウ コピー(Volume Shadow Copy)は、ボリューム スナップショット サービスとも呼ばれ、一連の COM(コンポーネント・オブジェクト・モデル) Windowsのインターフェースであり、さまざまなアプリケーション向けに一貫性のあるバックアップを作成するためのフレームワークを提供します。VSSは、Windows XPおよびWindows Server 2003で初めて導入されました。

VSSテクノロジーが必要な理由

アプリケーションデータの一貫性は、VMおよび物理サーバーのバックアップにおいて重要です。一貫性が確保されていれば、仮想マシンや物理マシン上で実行されているアプリケーションが、バックアップから復元された後も完全に機能することが保証されます。

VSSを使用しない場合、一貫性のないバックアップが作成されます。このようなバックアップは、各ブロックをコピー時点の状態のまま単純にコピーすることで作成されます。データベースやシステムアプリケーションなどのアプリケーションによって、あるファイルが継続的に使用されていると仮定します。 このアプリケーションは、ブロックの書き込みや削除によって、開いているファイル内のデータを絶えず変更しています。ファイルの最初の部分がコピーされている間に、ファイルの他の部分で使用されているブロックは変化しています。ファイルの他の部分がバックアップリポジトリにコピーされる頃には、最初の部分のブロックはすでに変化しています。その結果、一貫性のないデータブロックが得られ、特定の時点の状態を正確に反映したものではなくなります。

この状況を回避する一つの方法は スナップショットベースの VMのバックアップ。バックアップ処理が開始されると、スナップショット、つまりVMの完全なコピーが作成されます。この処理中、すべてのVMディスク(これらは .vmdk (VMware環境内のファイル)が読み取り専用になります。バックアップ処理中に加えられた変更をマスターディスクに保存するため、VMware ESXiはメインの .vmdk ファイル。デルタファイルの作成後、バックアップソフトウェアは読み取り専用 .vmdk ファイル。バックアップ処理が完了すると、デルタファイルは .vmdk ファイル。

この手法は、内部ファイルストレージやWebサーバーなど、負荷がそれほど高くないファイルシステムでは有効かもしれません。しかし、特定のトランザクションが実行中でI/O(入出力)操作が行われている最中にバックアッププロセスが開始されると、データが失われる可能性があります。Microsoft SQL Server、Active Directory、Exchange Serverなどのアプリケーションやデータベースを使用している場合、単にファイルを閉じてからデータを追加することはできません。 ここで役立つのが、ボリューム シャドウ コピー サービス(VSS)です。この技術により、開かれて使用中のファイルについて、その完全性や使用性を損なうことなく、特定の時点のコピーを作成することができます。

ボリューム シャドウ コピー サービスの仕組み

VSSの仕組みを理解するには、まずこの機能を構成する要素について確認する必要があります。VSSの主な構成要素は以下の通りです:

  • その VSSプロバイダー は、ボリュームのシャドウコピー(スナップショット)を作成するVSSの中核コンポーネントです。VSSプロバイダーには、ソフトウェア実装とハードウェア実装があります。コピーオンライト方式のソフトウェアVSSプロバイダーは、Windows OSに組み込まれています。ハードウェアプロバイダーは通常、SAN(ストレージエリアネットワーク)ストレージで使用されます。ハードウェアプロバイダーは、シャドウコピーを作成する際にホストOSの負荷を軽減します。
  • その 作家 これらは、一貫性を確保するためにファイルやデータベースにデータを書き込むソフトウェアコンポーネントです。VSSをサポートする各アプリケーションは、インストール時にオペレーティングシステムに独自のライターを追加します。VSSライターを提供するアプリケーションの例としては、Microsoft SQL Server や Exchange Server が挙げられます。
  • その 依頼者 これは、VSSプロバイダーに対して処理(シャドウコピーの作成、削除、またはインポート)の開始または停止を指示するソフトウェアコンポーネントです。リクエスト元としては、Windowsのネイティブコンポーネント(NTBackupやHyper-V用スナップショットマネージャーなど)や、バックアップソフトウェアなどのサードパーティ製アプリケーションが考えられます。
  • その VSSサービス これは、他のすべてのコンポーネントが相互に通信し、連携できるようにするOSのコンポーネントです。

How does VSS work?

スナップショットはボリュームレベルで作成され、VSSはブロック単位で動作します(ファイルはブロックを使用して構成されています)。そのため、ファイルやフォルダーのスナップショットを作成することはできません。シャドウコピーは、同じボリュームまたは別のボリュームに保存できます。ボリューム上でシャドウコピーの保存用に割り当てられた領域は、"差分領域(diff area)"と呼ばれます。

"System Volume Information"フォルダーは、VSSシャドウコピーファイルの保存に使用されます。これらのファイルには、次のような識別子が付いています。 3517271a-d214-3a47-c5ea-01137a4fe675.

VSS テクノロジーは、ディスクボリュームの特定時点のコピー(スナップショット)を保存するための Windows ネイティブツールとして利用できます。このコピーを使用することで、変更を元に戻し、ボリューム全体または特定のファイルを保存された状態に戻すことができます。とはいえ、より信頼性の高いデータ保護のためには、外部メディアに保存する本格的なバックアップを作成することをお勧めします。

VSS は増分処理を行うため、Windows は複数のボリュームスナップショットを連続して作成することができます。 最初のシャドウコピーを作成した後、VSSはデータを16KBのブロックに分割してディスク上の変更を追跡します。ディスクに変更がある場合、このサービスはそのブロック全体をシャドウコピーに書き込みます。その結果、新しいスナップショットを作成するたびにデータセット全体をコピーする必要はなく、変更されたブロックのみがコピーされます。

VSSの主な要件と制限事項:

  • VSSスナップショットを作成するには、少なくとも300 MBのディスク容量が必要です。
  • ボリュームスナップショットの最大数は、デフォルトで64個です。
  • Windowsシステムにより、ボリューム領域の10%がシャドウコピー用に割り当てられます。

なお、バックアップアプリケーションによって作成されたVSSスナップショットは、通常、バックアップジョブが完了すると削除されます。

VSSシャドウコピーを管理するためのネイティブツール

Windowsのネイティブツールを使用して、ボリュームシャドウコピーを管理することができます。スナップショットとの連携方法を理解することで、VSSテクノロジーをより深く理解し、発生しうる問題(たとえば、バックアップ完了後に一時的なVSSスナップショットが削除されない場合など)のトラブルシューティングに役立ちます。

WindowsのGUIでは一部のVSSオプションしか利用できませんが、コマンドラインではすべてのオプションにアクセスできるため、私たちにとってはそちらの方が有用です。Windows PowerShellやCMDで使用できるVSSツールは2つあります:

  • vssadmin – Windows XP以降(Windows 10を含む)のすべてのWindowsバージョンで利用可能ですが、Windows 8は除きます。
  • diskshadow – Windows Server 版でのみ利用可能です。これは、 vssadminこれにより、対話モードでの作業だけでなく、スクリプトの作成も可能になります。

なお、これら2つのユーティリティは異なるものであり、動作するコンテキストも異なります。で作成されたシャドウコピーは vssadmin では管理できません diskshadow その逆も同様です。別のツールで作成されたスナップショットを表示することはできますが、それに対して操作を行うことはできません。

ボリューム・シャドウ・コピー・サービス(VSS)API を利用することで、バックアップアプリケーションは VSS を使用して、バックアップデータの一貫性を確保するためのアプリケーション対応バックアップを作成できます。

Windows を実行する VMware VM では、クワイエシングのために、ゲスト Windows オペレーティングシステム内の VSS ドライバーとして VMware VSS コンポーネントが使用されます。このドライバーは、 VMware Tools をインストールする. それ以外の場合、古いバージョンのWindowsを使用する際は、SYNCドライバが使用されます。以下に 対応ゲストOSの一覧 VMware環境におけるアプリケーションを意識したクワイエシングのためのシステム。

シャドウコピーの作成方法

シャドウコピー(ボリュームスナップショット)が作成されると、そのサイズは0バイトになります。新しいデータが書き込まれる際、データは(本来あるべき場所である)ディスク上に書き込まれますが、古いデータはシャドウコピーに書き込まれるため、後でその古いデータを復元することができます。その結果、シャドウコピーのサイズは増加します。

スナップショット作成時にデータを書き込む主なアプローチには、以下の2つがあります:

  • Redirect on write (RoW): スナップショット(シャドウコピー)に新しいブロックを書き込み、ディスク上のどのブロックに書き込むべきかという情報を含むメタデータを保存します。このアプローチでは、データの書き込みは高速ですが、読み取りは低速になります。スナップショットが作成された時点の状態にロールバックする必要がある場合、スナップショットを削除することで数秒で完了します(ほぼ瞬時です)。RoWアプローチは、 VMの仮想ディスクのスナップショットを作成する (VMDK) を VMware ESXi および VMware Workstation で使用します。
  • Copy on Write (CoW): ディスク上の必要な場所に新しいブロックを書き込み、書き換えられたブロックの内容をスナップショットに送信します。書き込みは遅いですが、読み取りは高速です。以前のスナップショット(以前のデータ状態)は数秒(ほぼ瞬時)で削除されます。VSSスナップショットにはCoW方式が採用されています。

ディスクにデータを書き込むことができるアプリケーションは多種多様であるため、マイクロソフトはVSSを用いて統一されたインターフェースを構築し、スナップショットの作成を開始した後に、すべてのアプリケーションに対してスナップショットが作成されようとしていることを通知するようにしました。この通知メッセージの趣旨は、"システムがスナップショットを作成します。書き込み処理を停止し、書き込みバッファをディスクにフラッシュして、データを一貫性のある状態にしてください"というものです。

VSSスナップショットを作成するワークフローは以下の通りです:

  1. VSSリクエスターは、通信可能な利用可能なサービスをチェックし、ライターを列挙して、メタデータを収集します。
  2. ライターのリストを収集した後、依頼者はVSSプロバイダーと通信し、どのデータに対してスナップショットを作成するか、およびスナップショットをどこに配置するかを指定します。ほとんどの場合、スナップショットは元のディスク上の同じボリュームに配置されます。また、SANハードウェアプロバイダーによっては、"ストレージスナップショット"と呼ばれる、スナップショット専用の別個のボリュームを作成できる場合もあります。
  3. バックアップの準備。このステップでは、(メタデータを取得した後)VSSライターの実際のステータスを確認し、ライターが順番に動作しなければならない最も重要な操作に備えます。 ライターには、スナップショットの作成準備を行うよう通知されます。一貫性のあるデータコピーを作成できるように、システムバッファがフラッシュされ、アプリケーションがフリーズされます。各ライターは、デフォルトで割り当てられた60秒以内に処理を完了する必要があります。Microsoft Exchange Serverでは、この操作に割り当てられる時間はわずか20秒です(この時間はMicrosoftによって設定されています)。

    注: 20 秒は短い時間です。アプリケーションがこの時間内に処理を完了できない場合、ライターはエラーを返し、スナップショットは作成されません。ストレージのパフォーマンスがこの時間制限内に収まらない場合は、ハードウェアのアップグレードを試みて、この問題を解決してください。 たとえば、HDDからSSDストレージデバイスに変更することができます。あるいは、他のワークロードを別のストレージに移行し、Microsoft Exchange Serverを実行しているマシンには専用のストレージのみを使用するようにすることもできます。ログを確認して、どのライターがスナップショットの作成タスクに失敗したかを特定してください。

  1. すべてが正常で、システムの動作が一時停止している場合、VSSはプロバイダーに対してシャドウコピーを作成できることを通知します。スナップショットの作成には10秒間しかありません。この間、ファイルシステムのI/O要求は一時的に利用できなくなります。この時間帯は、VMのスナップショットを作成することも可能です。10秒が経過すると、すべての書き込み処理が再開され、入出力(I/O)操作が再び可能になります。

    注: VSS プロバイダーがシャドウ コピーのコミットに 10 秒以上かかった場合、操作は失敗します。

  1. VSSは、アプリケーションに対してI/O要求のロックを解除し、ディスクへのデータ書き込みを再開できることを通知します。バックアップアプリケーションを使用しており、Windows VSSサービスを利用したバックアップが作成されている場合、VSSスナップショットを削除することができます。この操作は、バックアップアプリケーション自体で行うことができます。あるいは、次のコマンドを使用してボリュームスナップショットを削除することもできます。 diskshadow または vssadmin.

    VSSに関する問題が発生した場合、他の方法が効果がないときは、多くの場合、マシンを再起動することで問題を解決できます。 時間制限に関連する問題(例:スナップショットの作成に10秒かかるなど)は、ディスクデバイスを含むハードウェアのアップグレード、または負荷の軽減によって解決できる場合があります。

    手動でスナップショットを作成し、割り当てられた20秒以内に完了するかどうかを確認してください(Exchange Serverを例として)。失敗した場合は、再起動し、負荷を軽減してから再度試してください。

Windows Server 2012 以降、VSS は Windows の SMB ファイル共有をサポートしています。VSS テクノロジーはファイル共有において非常に有用です。ユーザーやアプリケーションによってファイルへの書き込みが継続的に行われるため、VSS なしでは共有フォルダのバックアップは困難となるからです。 NAKIVO Backup & Replication 10.7 に対応 ファイル共有のバックアップ.

NAKIVOのソリューションにおけるボリュームシャドウコピーサービスの仕組み

VSSの一般的な仕組みについてはすでに説明しました。それでは、専用のバックアップソフトウェアを使用してVMware vSphereの仮想マシン(VM)のバックアップを作成する際、VSS技術がどのように機能するのかを見ていきましょう。 NAKIVO Backup & Replication.

簡単に言えば、ボリューム シャドウ コピー サービスは次のように動作します。要求元が VSS プロバイダーを起動します。プロバイダーは、書き込み元に対してデータをログ ファイルに書き込むようリダイレクトし、ボリューム スナップショットの作成を開始します。要求元がプロバイダーに停止信号を送信すると(通常はスナップショットの準備が完了した後)、プロバイダーはログ ファイルからボリュームへのデータの移動を開始します。

この場合、 NAKIVO Backup & Replication VSS を使用して VMware vSphere VM をバックアップする際、VSS リクエスターとなります。

  1. VMのバックアップが開始される前に、NAKIVOソリューションはVSSライターを介してデータを書き込みます。

VSS writer services are working with applications

  1. バックアップが開始されると、 NAKIVO Backup & Replication VSSプロバイダーに処理を開始するよう要求します。ボリュームが"フリーズ"している間、ライターはデータをログファイルに書き込みます。

VSS backup has been started

  1. NAKIVO Backup & Replication VMレイヤーでのスナップショットの作成を開始します。VMFSストレージの負荷状況によっては、数秒から数分かかる場合があります。この間も、ライターはログファイルへの書き込みを継続します。
  2. VMのスナップショットが正常に作成されました。 NAKIVO Backup & Replicationリクエスト元は、プロバイダーに対して作業を停止するよう信号を送ります。

VM backup using VSS software is in process

  1. VSS プロバイダーは、ログファイルの変更内容をボリュームに反映します。 NAKIVO Backup & Replication VMスナップショットのデータブロックをバックアップリポジトリにコピーします。

    バックアップデータの一貫性を確保するためのアプリケーション認識モードは、ウィザードの Options 手順。これにより、Windows を実行しているマシンで VSS を有効にし、そのマシンのバックアップが可能になります。
    The app-aware mode is used to enable VSS for VM backup

結論

ボリューム・シャドウ・コピー・サービス(VSS)は、VMのバックアップの一貫性を保つための優れた技術ですが、Windowsベースのマシンでのみ機能します。Linuxベースのマシンで一貫性のあるバックアップを作成するには、特別な"プレフリーズ"および"ポストソー"スクリプトを実装する必要があります。NAKIVOのソリューションでは、Linuxサーバーやワークステーション向けの自動化された一貫性のあるバックアップも提供しています。

試してみてください NAKIVO Backup & Replication

試してみてください NAKIVO Backup & Replication

無料トライアルをご利用いただき、本ソリューションのデータ保護機能をすべてお試しください。15日間無料です。機能や容量の制限は一切ありません。クレジットカードも不要です。

People also read