Loading...

We've detected that your browser language is Chinese. Would you like to visit our Chinese website? [ Dismiss ]
著者: Dylan

vSphere Clientを使用してVMwareスナップショットを作成したことがある方は、「ゲストファイルシステムを静止化」という小さなチェックボックスに気付いたことがあるでしょう。障害発生時にVMバックアップが正常に復旧できるようにするには、この項目の意味を理解する必要があります。

本ガイドでは、この設定の意味と、本当に使用する必要がある状況を解説します。

「ゲストファイルシステムを静止化」とは何か

ファイルシステムの静止化とは、仮想ディスク上のデータをバックアップに適した状態にする処理のことです。OSやアプリケーションと連携し、メモリ上のダーティバッファをディスクにフラッシュし、一時的に書き込み処理を停止させ、ディスク上のすべてのデータに不整合が生じないよう調整します。

VMスナップショット作成時、大きく2種類の方式が存在します。

  • メモリ状態スナップショット:VMのRAMとCPU状態を保存し、実行中の状態に完全に巻き戻すことが可能です。パッチ適用テストに適していますが、データ整合性を保証しないため、正式なバックアップ用途には不向きです。
  • 静止化スナップショット(VSS対応スナップショットとも呼ばれる):「ゲストファイルシステムを静止化」にチェックを入れ、「仮想マシンのメモリを含む」のチェックを外すと、VMwareがゲスト内の専用ツールを活用し、最低限ファイルシステム整合性、適切な設定下でアプリケーション整合性のある状態のスナップショットを作成します。信頼性の高いバックアップの基盤となる唯一のスナップショット方式です。

補足

  • ファイルシステム整合性:ファイルシステムのメタデータと書き込み処理がディスクに反映され、NTFSやext4の破損を回避できます。アクティブなアプリケーション書き込みが存在しない場合、VSSが単純にファイルシステムを一時停止することで実現します。Windows Server 2008以降では、VMプラットフォームや稼働状況に応じ、ファイルシステム整合性またはアプリケーション整合性のスナップショットを作成可能です。
  • アプリケーション整合性:データベース、メールサーバーなどVSS対応アプリケーションが一時的に処理を停止し、未コミットのトランザクションを確定させた後、OSに準備完了を通知します。VSSライターによって実現され、バックアップの最善基準となります。

つまり「ゲストファイルシステムを静止化」のチェックボックスにチェックを入れると、vCenterに対して「VMware ToolsとMicrosoft VSSをゲスト内で活用し、すべてのI/Oを静止化し、アプリケーション整合性のあるスナップショットを作成せよ」と指示していることになります。

VMwareの静止化機構とVSSの連携仕組み

Windows仮想マシンの場合、ゲストファイルシステム静止化機能は3つのコンポーネントが密接に連携して動作します。

  • VMware Tools — WindowsゲストにインストールされるVMware VSSコンポーネント。VMware Tools導入時に自動的にインストールされます。
  • Microsoft ボリュームシャドウコピーサービス(VSS) — バックアップ処理を統制するフレームワーク。
  • VSSライター — SQLライター、Exchangeライター、Active Directoryライター、Hyper-Vライターなど、各アプリケーション固有のコンポーネント。アプリケーションを適切に一時停止・データフラッシュさせる処理を担います。

静止化スナップショット作成の「作成」ボタンをクリックした瞬間の処理フローは以下の通りです。

1. vCenterがESXiホストに指示を送信し、ホストがゲストOS内で稼働するVMware Toolsと通信します。

2. VMware Toolsがゲスト内にVSSスナップショット要求を発行し、ボリュームシャドウコピーサービスにバックアップシーケンスの開始を通知します。

3. VSSがすべての登録済みVSSライターに「バックアップ準備」状態への移行を通知。各ライターは配下のアプリケーションに対し、重要なトランザクションを完了させ、メモリ上のデータをディスクに書き出し、処理を一時停止するよう指示します。

4. すべてのライターが準備完了を通知すると、VSSはファイルシステムに対し、数秒間新規I/O要求を保留するよう指示します(フリーズ期間)。

5. Windowsが残りのすべてのダーティバッファをディスクにフラッシュし、ファイルシステムが完全に整合性の取れた状態になります。

6. VMware VSSコンポーネントがESXiに「ゲストの静止化完了、スナップショット作成可能」と応答します。

7. ESXiが仮想ディスクのスナップショットを作成します。I/Oフリーズのタイムアウトが発生しない限り、一連の処理は通常数秒で完了します。

8. スナップショット作成後、VSSがファイルシステムのフリーズを解除し、アプリケーションが通常処理を再開します。

⚠️ 管理者が見落としがちな重要なポイント:ゲスト内でVSS静止化が失敗した場合(VSSライターが要求を拒否するケースなど)、VMwareは通知なしにファイルシステム整合性のみの非静止化スナップショットにフォールバックし、警告のみを出力します。vCenter上は「完了」と表示されるものの、アプリケーション整合性のないスナップショットとなるため、必ずゲスト内部から検証を実施してください。

また、VMware VSS静止化スナップショットはVSS_BT_COPYとしてVSSに通知されるため、SQL ServerやExchangeといったアプリケーションのトランザクションログ自動切り詰めは実行されません。バックアップ完了後にログ切り詰めを実施したい場合は、この機能に正式対応したエンタープライズ向けバックアップソリューションを使用する必要があります。

Linuxゲストの場合、WindowsのVSSに相当する標準機能が存在しないため、静止化の仕組みが異なります。最新のLinuxディストリビューションとVMware Toolsが導入されている環境では、システムドライバがFIFREEZE/FITHAW ioctl呼び出しを実行し、スナップショット前にファイルシステムをフリーズします。この機能はLinuxカーネル2.6.32以降、VMware Tools 5.x以上(vSphere 5.0以降)のVMでのみ利用可能です。

独自アプリケーションの静止化が必要な場合、VMware Toolsはフリーズ前・フリーズ失敗・フリーズ解除後のスクリプトを実行することもできます。スクリプトは/etc/vmware-tools/backupScripts.d配下に配置し、freeze、freezeFail、thawの引数に対応する記述が必要です。この機能にはVMware Tools 10.2以降が必須となります。

この複雑な連携処理からわかる通り、静止化は単なるチェックボックスの操作ではなく、スナップショットを復旧可能な安全なデータに変換する高度な調整機構です。

静止化を使用すべき場面・省略しても良い場面

すべてのVMで静止化スナップショットを作成する必要はなく、適切でないワークロードで過剰に使用するとI/O性能低下を引き起こします。

►「ゲストファイルシステムを静止化」を使用する必要があるケース

  • SQL Server、Oracle、MySQL、PostgreSQLなどトランザクションレベルの整合性が求められるデータベースを稼働するVM
  • Active Directoryドメインコントローラ — 復旧時のUSNロールバックや認証障害を防止するため
  • ログ切り詰めとデータ整合性が重要なExchangeメールサーバー
  • VSSライターを搭載し、クラッシュ整合性の復旧を許容できないすべてのアプリケーション
  • バックアップソリューションがアプリケーション対応の静止化スナップショットを明示的に実行する場合

►静止化を省略しても安全なケース(クラッシュ整合性で許容できる場合)

  • データベースを稼働しない非重要Webサーバー・静的ファイルサーバー
  • 独自フリーズスクリプトを作成しておらず、ファイルシステム整合性のみ必要なLinux VM(補足:独自スクリプトなしのLinux静止化は同期ドライバによるファイルシステム整合性のみ保証)
  • ゲスト内部でアプリケーション整合性を処理するエージェント型バックアップで保護されているVM
  • リスクを許容し、リスクの高いパッチ適用前の一時的な安全策として作成する長時間保持スナップショット

►必ず留意する落とし穴

  • 静止化処理は一時的にI/Oを停止するため、超低レイテンシが要求されるシステムはメンテナンス時間帯で事前に影響テストを実施してください。
  • WindowsのダイナミックディスクはVSS静止化に非対応で、スナップショットはファイルシステム整合性にフォールバックします。
  • VMwareスナップショット単体はバックアップではありません。静止化スナップショットは任意時点のデータ基盤に過ぎず、別のバックアップリポジトリにデータを複製するバックアップソフトが別途必要です。
  • 長期間のスナップショットチェーンはVM内の時刻ズレを引き起こす可能性があり、時刻精度に依存するアプリケーションの場合は監視が必要です。
  • VMware VSSスナップショットはVSS_BT_COPYとして扱われ、ログ自動切り詰めが実行されません。バックアップ後にSQLやExchangeのログを切り詰める運用の場合は、この機能に対応したバックアップ製品を導入する必要があります。

VMwareでスナップショット作成時にゲストファイルシステムを静止化する手順

事前要件
VMware ToolsがVMに最新版でインストールされていること(VMステータスが「実行中」かつ「VMware Tools:正常」と表示される状態)
ゲストOSがVSSに対応(Windows Server 2003以降、各種最新Windows)、またはLinuxのファイルシステムフリーズ機能に対応していること
データストアにスナップショット差分ファイルを保存する十分な空き容量(目安20%以上)が存在すること
I/O負荷が極端に高い時間帯の静止化スナップショット作成は避け、フリーズタイムアウトの発生を防止すること
アプリケーション整合性を必要とするWindowsゲストの場合、ボリュームシャドウコピーサービスの起動種別を手動または自動に設定し、サードパーティ製VSSプロバイダとの競合がないこと

静止化スナップショット作成手順

手順1. 稼働中の仮想マシンを右クリックし、「スナップショット」→「スナップショットの作成」を選択します。

VMware take snapshot

手順2. スナップショット名と説明文を入力(例:パッチ適用前 静止化スナップ)。

手順3. 「仮想マシンのメモリを含む」のチェックを外します。メモリ付きスナップショットは、バックアップ用途の真のアプリケーション整合性静止化と競合します。

手順4. 「ゲストファイルシステムを静止化(VMware Toolsのインストールが必要)」にチェックを入れます。

Snapshot quiesce guest file system

手順5. 「作成」をクリックします。

手順6. 最近のタスク欄を確認し、スナップショット作成完了タスクが表示されることを確認します。

静止化が正常に実行されたか検証する方法

vCenter上で「スナップショット作成完了」と表示されただけでは、アプリケーションレベルの静止化が正常完了したとは限りません。ゲスト内でVSS処理が失敗した場合、VMwareは通知なしにファイルシステム整合性のスナップショットに切り替わるため、以下の方法で検証を実施します。

1. vss_manifests.zipファイルの有無確認
データストア上のVMフォルダを参照し、スナップショット作成時刻に生成されたvss_manifests.zipファイルが存在するか確認します。ZIP内のbackup.xmlには処理に参加したすべてのVSSライターのメタデータが記録されています。このファイルが存在しない、またはbackup.xmlの内容が不完全な場合はVSS静止化が完全に起動していません。

2. ゲストのイベントビューアログ確認
Windowsゲストのイベントビューアを開き、Windowsログ→アプリケーションに移動し、スナップショット作成時刻付近のVSS関連イベントを確認します。ソース「VSS」から出力される情報ログでライターが安定状態である旨が記載されていれば正常です。「VSSライターが要求を拒否しました」やタイムアウト関連のエラーが記録されている場合は不具合が発生しています。

3. vssadminによるライター状態監視
重要なスナップショット作成前に、ゲスト内でvssadmin list writersコマンドを実行し、すべてのライターが「安定」状態でエラーなしであることを確認します。ライターが「失敗」または「完了待ち」と表示されている場合、該当アプリケーションの整合性が保証されないスナップショットとなります。

vSphere画面だけでなく、必ずゲスト内部から検証を実施してください。

「見かけ上の成功」に注意:vCenter上は完了と表示されるものの、VMware VSSコンポーネントがVSSフリーズを中断しファイルシステム整合性のみのスナップショットになるケースが存在します。VMの.vmxファイルにdisk.EnableUUID = “TRUE”が記述されていると発生しやすく、Windows VMではVSSがディスクUUIDを読み取れなくなり、Linux VMでは静止化機能が完全に動作しなくなる既知の事象です。

ゲストファイルシステム静止化の一般的な障害とトラブルシューティング

静止化処理が失敗する場合、明確なエラーメッセージが出力されることが大半です。頻出する障害と解決策を記載します。

1. 「スナップショット処理がI/O保留の制限時間を超過しました」

根本原因:I/Oフリーズ期間(標準20秒)内にスナップショット作成が完了しなかったこと。VMのディスク負荷が極端に高い、VSSライターの応答に時間を要する、低速ストレージ上にVMディスクが配置されている場合に発生します。

解決策:I/O負荷の低い時間帯にバックアップ・スナップショットを再スケジュールします。可能であればVMのディスクリソースを増強し、ゲストに十分な空きメモリとディスク容量を確保してページングの過剰発生を抑えます。VMware Toolsを最新版にアップデートし、VSSタイムアウト関連の改善を適用します。

2. 「VssSyncStart操作が失敗しました:IDispatchエラー #8449」

根本原因:VSSコーディネーターが同期処理を起動できないエラーで、必須のVSSライターが異常状態、または旧型バックアップクライアントなどサードパーティ製エージェントがVSSプロバイダーを占有していることが要因です。Broadcom技術情報KB 394014によると、ライター配下アプリケーションの異常、ライター環境の設定不備、コンポーネント競合が主な発生要因となります。

解決策:ゲストOS内でvssadmin list writersを実行し、エラーを出力するライターを特定します。SQLライター・Exchangeライターが処理完了不能な状態で停止しているケースが多いため、VM再起動または該当アプリケーションサービスの再起動を実施します。問題が解消しない場合はVMware Toolsを完全アンインストール後再インストールし、カスタムインストール画面でVMware VSSコンポーネントを明示的に有効化します。また、ディスク空き容量とVSSサービスの起動状態を確認します。

3. disk.EnableUUIDによる障害

症状:静止化処理がエラーで失敗する、または正常完了と表示されるもののvss_manifests.zipが生成されずファイルシステム整合性のみのバックアップとなる。

根本原因:VMの.vmxファイル内のdisk.EnableUUIDパラメータは、仮想ディスクがゲストOSにUUIDを通知するかどうかを制御し、Windows Server 2008以降のアプリケーションレベルVSS静止化に必須の設定です。OSごとの動作差は以下の通りです。

  • Windows VM:アプリケーション整合性スナップショットにはdisk UUIDの有効化が必要。vSphere 4.1以降で作成したVMは既定でdisk.EnableUUIDがTRUEに設定されています。パラメータが存在しない、またはFALSEに設定されている場合はファイルシステム整合性の静止化のみ実行されます。TRUEに設定してもVSSがUUIDを読み取れない場合はBroadcom技術情報に記載の既知の不具合が要因となります。
  • Linux VM:disk.EnableUUID = TRUEを設定すると静止化が失敗する既知の事象。Broadcom KB 341553に、Linuxゲストで本パラメータをTRUEにするとスナップショット静止化が動作しないことが記載されています。

解決策

  • アプリケーション整合性を必要とするWindows VM:disk.EnableUUIDをTRUEに設定(最新vSphereで作成したVMは既定値)。設定後も静止化が失敗する場合はゲスト内のVSSライター状態を調査します。
  • Linux VM:disk.EnableUUIDをFALSEに設定する、またはパラメータ自体を削除し、静止化の障害を回避します。

確認・変更手順:VM設定編集→VMオプション→詳細→構成パラメータからdisk.EnableUUIDを検索・追加します。設定変更後はVMの再起動が必須です。

4. VMware VSSコンポーネントのインストール不備

症状:「ゲストファイルシステムを静止化」のチェックボックスがグレーアウトしたまま、またはゲスト内にVSS関連エラーが出力されずスナップショット作成が失敗する。

解決策:VMware Toolsを変更インストールし、VMware VSSコンポーネントにチェックが入っていることを確認します(既定でチェック済みだが手動で無効化されるケースがあります)。改善しない場合はVMware Toolsを完全に削除し再インストールします。

最新のエンタープライズバックアップソリューションにおける静止化活用

ゲストファイルシステム静止化はVMware標準機能ですが、エンタープライズ向けバックアップ製品はこの機能を拡張し、より高度なデータ整合性制御を実現しています。Info2Softのi2Backupなどのソリューションは同一のVSS機構を活用したアプリケーション対応処理を搭載し、さらに以下の拡張機能を提供します。

  • ログ切り詰め:静止化スナップショットによるバックアップ完了後、バックアップソフトがExchangeやSQL Serverに対しトランザクションログの切り詰めを指示し、ゲストのディスク容量を節約します。
  • インデックス作成・細粒度リカバリ:VSSメタデータを含む静止化スナップショットにより、VM全体を復旧することなくデータベース内の単一テーブルだけを復元することが可能です。

このほかi2Backupは多様なバックアップニーズに対応する各種機能を搭載しています。

  • バックアップスケジュール:完全・増分・差分といった事前設定したバックアップ種別、毎時・毎日・毎週・毎月など任意の間隔でバックアップタスクを自動実行します。
  • スケーラブルなバックアップ:バックアップノードを水平スケーリングし、急増するバックアップ容量に対応可能です。
  • 即時リカバリVMwareバックアップイメージを高速にマウントして即時利用可能にするため、長時間のフルデータ復旧処理を待機する必要がありません。
  • 高水準なセキュリティ:AES-256標準アルゴリズムによるバックアップ暗号化に対応しデータを保護。ランサムウェアによるバックアップ改ざん・削除を防止するイミュータブルバックアップ機能を搭載します。

下記ボタンよりi2Backupの60日間無料トライアルを申し込めます。

60日間無料トライアル

まとめ

ゲストファイルシステムの静止化を実施しないVMwareスナップショットは、書き込み途中のデータや未確定トランザクションを保存するため、データベースやActive Directory復旧時に検知困難なデータ破損を引き起こすリスクがあります。静止化機能によりアプリケーション整合性のあるスナップショットを作成することで、ドメインコントローラー、SQL Server、Exchangeサーバーを復旧後の修復作業なしで、作成時点の完全な状態に戻すことができます。

ただし手動で作成した静止化スナップショットは完全なバックアップとは言えません。仮想マシンを完全に保護するには、Info2Softのi2BackupといったプロフェッショナルなVMwareバックアップソリューションが必要です。アプリケーション対応の静止化処理を自動化し、バックアップデータをオフサイトに複製、世代管理を実施し、細粒度リカバリ機能を提供します。

概要は準備中です

関連記事

GhettoVCBを使用したVMware ESXi仮想マシンのバックアップ実施手順
本記事ではVMware ESXiの仮想マシン向けghettoVCBバックアップ環境の構築方法を解説します。インストール、設定、単一仮想マシン・全仮想マシンのバックアップスクリプト、バックアップ検証などの手順を段階的に記載しています。
記事を読む
VMware HAクラスタの設定方法【手順解説ガイド】
VMware HAクラスタ設定完全ガイド。VMware高可用性HAクラスタの段階的な設定手順、必要条件、ベストプラクティス、代替ソリューションを解説します。
記事を読む
VMwareスナップショットの削除方法(手順ガイド)
VMwareにおけるスナップショットの削除は単なるファイル削除ではなく、パフォーマンスに影響を及ぼす可能性のあるデータ統合処理を伴います。本ガイドでは、vSphere、ESXi、PowerCLIを使用した手順をステップバイステップで解説し、環境を安定かつ効率的に保つためのベストプラクティスも紹介します。
記事を読む
バックアップとスナップショット:主な違いと使い分け
バックアップとスナップショットはいずれもリカバリポイントを作成することでデータを保護しますが、目的は異なります。スナップショットは高速なロールバックを実現する特定時点の簡易コピーを提供する一方、バックアップは長期的なデータ保護と災害リカバリのために別場所に保管される独立したコピーを作成します。スナップショットはリカバリ速度を向上させるものの、元のストレージ環境に依存するケースが大半であるため、バックアップの代替にはなりません。
記事を読む
ビジネスデータのセキュリティ強化を始めませんか?

· 世界中のエンタープライズおよびミッドマーケットのお客様

· トライアル期間中、サポートチームが対応します

· 60日間の無料トライアルまたはデモで、Info2Softが企業データをどのように保護するかをご確認ください。

フォームにご記入の上、送信してください。担当者より追ってご連絡いたします。
このフォームを送信することにより、 プライバシー通知を読み、同意したことを確認します。
{{ isSubmitting ? '送信中...' : '送信する' }}