ボリューム シャドウ コピー サービスのトラブルシューティング

 

トピックの最終更新日: 2011-10-05

Microsoft Exchange 対応ボリューム シャドウ コピー サービス (VSS) バックアップは、アクティブ ストレージ グループおよびデータベースと、パッシブ ストレージ グループおよびデータベースの両方についてサポートされます。Microsoft が提供するパッシブ コピー バックアップ ソリューションは、VSS 専用のソリューションです。このソリューションは、レプリケーション サービスに含まれる Exchange Replica VSS Writer によって実装されます。ストリーミング バックアップは、アクティブ ストレージ グループからのみサポートされます。ストリーミング バックアップ API を使用してレプリカ データベースをバックアップすることはできません。VSS バックアップ プログラムは、Exchange Writer のために、VSS リクエスタと共に使用する必要があります。

Microsoft Exchange Server 2003 では、ストリーミング バックアップを使用して、2 つの異なるストレージ グループに対して同時に 2 つのバックアップを実行できます。ただし、これに VSS を使用することはできません。たとえば、Exchange 2003 の VSS を使用する場合、ストレージ グループ 1 上のバックアップが完了するまでは、ストレージ グループ 2 をバックアップすることはできません。

Microsoft Exchange Server 2007 を使用すると、同じ Exchange サーバーに対して、2 つの独立した VSS バックアップジョブを実行できます。また、Exchange 2007 Writer によって、Exchange データを別の場所に復元できます。Exchange 2003 Writer では、元のパス以外の場所を VSS 復元操作の対象とすることはできません。

VSS バックアップは、Exchange Writer を使用してレプリカの場所に復元することはできません。ただし、レプリカ コピー ディレクトリなど、別の場所に復元することはできます。

Exchange 2007 では、Store.exe VSS Writer によって、任意のストレージ グループへの復元操作が可能になります。これには、回復用ストレージ グループ (RSG) が含まれます。さらに、Store.exe VSS Writer によって、データベースを、ストレージ グループに関連付けられていないフォルダの場所に復元することもできます。これを実行する場合、JET データベース エンジンを使用して、復元されたトランザクション ログをデータベースに再生することで、データベースを整合性があり、マウント可能な状態にすることができます。その後、データベースを別の場所に移動できます。

ボリューム シャドウ コピー サービスのトラブルシューティング

既定では、VSS は Windows Server 2003 サーバー上にインストールされます。VSS は、手動で起動するように設定され、リクエスタ (バックアップ プログラム) がシステム内のライタを使用できる場合は実行されます。 Windows Server 2003 Service Pack 2 (SP2) は、VSS のパフォーマンスに影響するいくつかの問題に対処しています。

Windows Server 2003 SP2 で修正された問題の一覧については、マイクロソフト サポート技術情報の記事 914962「Windows Server 2003 Service Pack 2 の更新の一覧」を参照してください。

VSS の更新プログラムのみをインストールすることも可能ですが、Service Pack 全体をインストールすることをお勧めします。さらに、関連する更新プログラム ロールアップ パッケージについてのマイクロソフト サポート技術情報の記事は、Windows Server 2003 におけるいくつかの VSS スナップショットの問題を解決するのに役立ちます。

詳細については、Windows Server 2003 用のボリューム シャドウ コピー サービス (VSS) の更新プログラム ロールアップ パッケージを使用して、いくつかの VSS スナップショットの問題を解決することについてのマイクロソフト サポート技術情報の記事 940349 を参照してください。

発生する可能性のある VSS の問題を解決するには、次の修正プログラムを使用できます。

サポート技術情報の記事番号 タイトル

833167

Windows Server 2003 用のボリューム シャドウ コピー サービス (VSS) 修正プログラム パッケージのリリースについて

915331

バックアップ プロセスが失敗し、ボリューム シャドウ コピー サービス ライタでタイムアウト エラーが発生する可能性がある

930800

Exchange 2007 または Exchange 2003 で VSS バックアップ操作が失敗するとイベント ID 9840 または 9607 がログに記録される

910250

Exchange Server 2003 データベースのスナップショット バックアップが失敗し、イベント ID 9607 がログに記録される

923628

Windows Server 2003 SP1 で、ボリューム スナップショットを使用するバックアップを実行するとバックアップ アプリケーションが応答を停止する

933779

ストレージ グループのスナップショット コピー バックアップが失敗し、Exchange Server 2003 のアプリケーション ログにイベント ID が記録される

バックアップ操作を実行する前に、Exchange Writer が安定した状態であり、エラーが発生していないことを確認してください。次のコマンドを実行すると、Exchange Writer の状態を判断できます。

VSSadmin list writers

このコマンドからの出力には、VSS を使用して登録されているすべてのライタが一覧表示されます。コマンドの結果で、ライタの [状態] フィールドを確認します。[状態] フィールドに [安定] 以外の状態が表示されているかどうかに注目してください。次の出力例では、"失敗" 状態にある Exchange Writer を示します。

ライタ名: 'Microsoft Exchange Writer'

ライタ Id: {GUID}

ライタ インスタンス Id: {GUD}

状態: [14] 失敗

最後のエラー: 再試行できるエラー

Exchange Writer が "失敗" 状態にある場合は、Microsoft Exchange Information Store サービスを再起動し、VSSadmin list writers コマンドを実行して、Exchange Writer の状態が "安定" 状態に戻るかどうかを確認します。次の出力例では、"安定" 状態にある Exchange Writer を示します。

ライタ名: 'Microsoft Exchange Writer'

ライタ Id: {GUID}

ライタ インスタンス Id: {GUD}

状態: [1] 安定

最後のエラー: エラーなし

VSSadmin list writers コマンドからの出力が空白である場合は、オペレーティング システムが適切なライタ情報を検出および表示することを妨げるレジストリ エラーが発生している可能性があります。この問題の修正方法および VSS Writer の一覧の再作成方法の詳細については、Windows Server 2003 ベースのコンピュータで "vssadmin list writers" コマンドを実行すると、エラー メッセージ "エラー: 0x8000FFFF" が表示されることについてのマイクロソフト サポート技術情報の記事 940184 を参照してください。

VSSadmin list providers コマンドでは、コンピュータ上の登録済みボリューム シャドウ コピー プロバイダが一覧表示されます。通常、このコマンドを実行すると、プロバイダの 1 つとして、または唯一のプロバイダとして、"Microsoft Software Shadow Copy Provider 1.0" が示されます。他のサードパーティのバックアップ プログラムでは、独自のプロバイダが使用される場合があります。次の出力例は、VSSadmin list providers コマンドからの結果を示します。

vssadmin 1.1 - ボリューム シャドウ コピー サービス管理コマンドライン ツール

(C) Copyright 2001 Microsoft Corp.

プロバイダ名: 'Microsoft Software Shadow Copy provider 1.0'

プロバイダの種類: System

プロバイダ ID: {GUID}

バージョン: 1.0.0.7

バックアップを正常に行うには、プロバイダ (複数可) が一覧にあること、および Exchange Writer が "安定" 状態にあることを確認してください。実行可能な他のテストの詳細については、コマンド プロンプトで「VSSadmin /?」と入力してください。

ボリューム シャドウ コピー サービスのトレース

バックアップの問題が解消しない場合は、VSS トレースを有効にする必要があります。トレースを有効にする方法の詳細については、マイクロソフト サポート技術情報の記事 887013「Microsoft Windows Server 2003 のボリューム シャドウ コピー サービスのデバッグ トレース機能を有効にする方法」を参照してください。

記事 887013 で説明されているレジストリ エントリを設定するためのバッチ ファイルを作成することができます。それには、テキスト ファイルに次のテキストを入力またはコピーします。そして、そのファイルを "EnableVSSTracing.bat" という名前で保存します。このバッチ ファイルには、C:\trace.txt という名前のファイル内のトレース情報が格納されます。

net stop swprv 
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Debug\Tracing /v TraceFile /t REG_SZ /d C:\trace.txt /f 
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Debug\Tracing /v TraceLevel /t REG_DWORD /d 0xffffffff /f 
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Debug\Tracing /v TraceEnterExit /t REG_DWORD /d 1 /f 
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Debug\Tracing /v TraceToFile /t REG_DWORD /d 1 /f 
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Debug\Tracing /v TraceToDebugger /t REG_DWORD /d 1 /f 
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Debug\Tracing /v TraceFileLineInfo /t REG_DWORD /d 1 /f 
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Debug\Tracing /v TraceForceFlush /t REG_DWORD /d 0 /f

VSS をトレースするには、次の手順を実行します。

  1. トレースを有効にするように Windows レジストリを変更します。それには、記事 887013 の手順に従うか、以前に作成した EnableVSSTracing.bat ファイルを実行します。

  2. 発生している VSS の問題を再現します。

  3. トラブルシューティングの対象である問題に対応する VSS エラーが発生したら、VSS サービスを停止します。それには、次のコマンドを実行します。

    net stop VSS
    net stop SWPRV
    
  4. VSS トレースを無効にします。それには、次のコマンドを実行します。

    reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Debug\Tracing /f
    
  5. 生成されたトレース ファイルを確認します。

Exchange Writer のトレース

Exchange Writer は、Microsoft Exchange インフォメーション ストアと共に提供される、組み込みの VSS Writer です。このライタは、Store.exe プロセス内で実行されます。VSS リクエスタ (VSS バックアップ プログラム) がアクティブなデータベースの VSS バックアップを要求すると、Exchange Writer が使用されます。Exchange Server 2007 内の他のすべてのコンポーネントと同様に、トレースはイベント トレース ログ (ETL) ファイル内に書き込まれます。

インフォメーション ストアは、Exchange Writer 用の次のタグを提供します。

タグ 説明

TagVSS

Exchange Server 2007 では、Exchange Writer で使用できる唯一のタグは TagVSS です。このタグは、次のような、Exchange 2003 で提供されるすべての VSS タグを組み合わせるものです。

  • Exchange VSS Snapshot Initialize

  • Exchange VSS Snapshot OnIdentify

  • Exchange VSS Snapshot OnPrepareBackup

  • Exchange VSS Snapshot OnThaw

  • Exchange VSS Snapshot OnPostSnapshot

  • Exchange VSS Snapshot OnBackupComplete

  • Exchange VSS Snapshot OnPreRestore

  • Exchange VSS Snapshot EcAddComponents

  • Exchange VSS EcPrepareJetInitBackup

  • Exchange VSS Snapshot EcBuildSGArrayFromWriteComp

note注 :
Exchange Writer の既定の凍結のタイムアウトは 20 秒です。

レプリカ ライタのトレース

Exchange クラスタ レプリカ ライタは、レプリケーション サービスと共に提供される、組み込みの VSS Writer です。このライタは、M.E.Cluster.Replay.exe プロセス内で実行されます。VSS リクエスタ (VSS バックアップ プログラム) がコピー データベースの VSS バックアップを要求すると、Exchange クラスタ レプリカ ライタが使用されます。Exchange Server 2007 内の他のコンポーネントと同様に、トレースは ETL 形式で書き込まれます。

レプリカ サービスは、Exchange クラスタ レプリカ ライタ用の次のタグを提供します。

タグ 説明

ReplicaVssWriterInterop

  • このトレースにより、VSS Writer とレプリケーション サービスの間でやり取りできるようになります。

Extra.exe を使用したレプリカ ライタのトレース

Exchange VSS Writer のトレースを実行するには、Microsoft Exchange トラブルシューティング アシスタント (Extra.exe) を使用することもできます。そのためには、次の手順を実行します。

  1. Exchange 管理シェルから次のコマンドを実行します。

    Set-EventLogLevel "MSExchange Repl\Exchange VSS Writer" -level expert
    
  2. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、「extra.exe」と入力し、[OK] をクリックします。

  3. [[ようこそ] ページに移動する] をクリックし、[タスクを選択する] をクリックします。

  4. [トレースを制御する] をクリックします。トレースを解釈するためのモジュールが存在しないことを示すメッセージが表示されたら、[OK] をクリックします。

  5. トレース ファイルを保存する場所を指定し、トレース ファイルのサイズを 200 MB に設定します。

  6. [手動トレース タグを設定する] をクリックし、トレースの種類を示す次のチェック ボックスをオンにします。

    • PFD

    • 致命的

    • エラー

    • 警告

    • 情報

    • デバッグ

  7. [トレースするコンポーネント] の一覧で、[Cluster.Replay] チェック ボックスをオンにします。

    note注 :
    このチェック ボックスは、クラスタ化された Exchange 環境に対してのみ適用されます。
  8. [トレース タグ] の一覧で、以下のチェック ボックスをオンにします。

    • ReplicaInstance

    • ReplicaVssWriterInterop

  9. [トレースするコンポーネント] の一覧で、[Store] チェック ボックスをオンにします。

  10. [トレース タグ] の一覧で、以下のチェック ボックスをオンにします。

    • tagVSS

    • tagMostError

  11. [トレースを開始する] をクリックします。

  12. Exchange VSS バックアップを開始します。バックアップが失敗したら、Exchange トラブルシューティング アシスタントの [今すぐトレースを停止する] をクリックします。

BETest ツールの実行

BETest は、高度なバックアップおよび復元操作をテストする VSS リクエスタです。次のような複雑な VSS 機能をアプリケーションで使用する場合、このツールを使用してテストできます。

  • 増分バックアップと差分バックアップ

  • Authoritative Restore など、複雑な復元オプション

  • ロールフォワード オプション

BETest ツールを使用して、Exchange ストレージ グループの VSS バックアップを作成し、Exchange VSS Writer をテストできます。BETest では、VSS リクエスタで実行可能な操作のほとんどを実行できます。また、BETest を使用して、Exchange 2007 サーバー上のアクティブなデータベースとレプリカ データベースの VSS スナップショットを作成することもできます。

BETest は VSS SDK 7.2 に含まれています。この SDK を入手するには、Microsoft ダウンロード センターの記事「Volume Shadow Copy Service SDK 7.2」(このサイトは英語の場合があります) を参照してください。

この SDK にある BETest のバージョンでは、テキストベースのバージョンのコンポーネント ファイル (Components.txt) が使用されます。Components.txt ファイルの XML ベースのバージョンを使用する BETest のバージョンは、Windows SDK に含まれています。BETest の Windows SDK バージョンの入手および使用方法の詳細については、「BETest Tool」(このサイトは英語の場合があります) を参照してください。

note注 :
ここで説明する手順では、BETest でテキストベースのバージョンのコンポーネント ファイルを使用します。

BETest ツールを使用するには、次の手順を実行します。

  1. BETest ツールを入手してインストールします。既定では、このツールの i386 バージョンは次のフォルダにインストールされます。

    C:\Program Files (x86)\Microsoft\VSSSDK72\TestApps\betest\obj\i386

    note注 :
    AMD64 ベースのバージョンの BETest も利用できます。BETest を実行する前に、必ず、オペレーティング システムに対応する適切なバージョンが含まれているディレクトリに移動します。
  2. 次のコマンドを実行して、使用可能なライタの一覧を取得します。

    betest.exe > AvailableWriters.txt
    
  3. Components.txt ファイルを作成して、BETest 用の VSS コンポーネントを指定します。コンポーネント ファイルでは、オプションの指定に次の形式が使用されます。

    "<WriterId>": "<component-logical-path>" {"target" # "new target", ...}, ..."<component-logical-path>" : '"<subcomponent-logical-path>,...";
    
  4. Components.txt ファイルで使用するため、WriterId エントリの値を取得します。そのためには、次の手順を実行します。

    1. メモ帳などのテキスト エディタで AvailableWriters.txt ファイルを開きます。

    2. 次のテキストを検索します。

      Microsoft Exchange Writer

    3. WriterId フィールドの値を書き留めます。たとえば、76fe1ac4-15f7-4bcd-987e-8e1acb462fb7 などです。

  5. Components.txt ファイル内の <component-logical-path> プレースホルダのパスを特定します。このパスは、次のいずれかの形式で指定されている可能性があります。

    • <logical-path>

    • <logical-path>\<component-name>

    • <component-name> (論理パスが存在しない場合)

    たとえば、Microsoft Exchange Server\Microsoft Information Store\<ServerName>\<StorageGroupGUID> などです。

  6. Components.txt ファイルに値を追加し、変更をファイルに保存します。次に、Components.txt ファイルの内容の例を示します。

    1. "{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\<Server Name>\68e5b198-468e-4328-8e8d-8d5276b8e355 ";

    この例では、最初の GUID は Exchange Writer を表します。2 番目の GUID は特定のストレージ グループを表します。複数のストレージ グループがある場合、1 つのストレージ グループに対してのみ BETest ツールを実行するように選択できます。特定のストレージ グループの GUID を取得するには、LDP.exe ツールを使用するか、Get-StorageGroup コマンドレットを実行します。LDP ツールを使用する場合は、次のオブジェクトを見つけて、詳細ウィンドウの objectGUID の値を書き留めます。

    CN=First Storage Group,CN=InformationStore,CN=<ServerName>,CN=Servers,CN=First Administrative Group,CN=Administrative Groups,CN=First Organization,CN=Organizations,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=fourthcoffee,DC=com

    note注 :
    このパスでは、組織および管理グループの既定の名前が使用されています。このパスを、実際の組織で適切なパスに変更します。

    コマンドラインからストレージ グループの GUID を取得するには、Exchange 管理シェルで次のコマンドを実行します。

    Get-StorageGroup  <SG name> |fl Guid
    

    ストリーミング バックアップは、アクティブ ストレージ グループからのみサポートされます。パッシブなデータベース コピーをバックアップする場合は、VSS バックアップを使用する必要があります。データベースがクラスタ連続レプリケーション データベースである場合、またはローカル連続レプリケーションを使用している場合、Components.txt ファイルは、次のいずれかのようなものになります。

    CCR レプリカ コピーの場合

    1. "{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\Replica\<ClusteredMailboxServerName>\<StorageGroupGUID> ";

    LCR レプリカ コピーの場合

    1. "{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\Replica\<Server Name>\68e5b198-468e-4328-8e8d-8d5276b8e355 ";

    note注 :
    ストリーミング バックアップの成功または失敗は、Exchange VSS Writer の状態を示すものではありません。
  7. Components.txt ファイルが保存されたら、次のコマンドを実行して BETest を開始します。

    BETEST.exe /B /E /T 1 /S output.XML /C components.txt /D c:\betest > Output.txt
    

    このコマンドは、C:\BETest ディレクトリにバックアップを作成します。

    note注 :
    /E オプションを指定せずにこのコマンドを実行することもできます。
  8. バックアップが正常に実行されなかった場合は、Output.txt ファイルの内容を調べて、記録されているエラー メッセージを確認します。

詳細情報

Exchange Server 2007 Service Pack 1 (SP1) および一部の Exchange 更新プログラム ロールアップ パッケージには、VSS の問題に関する修正プログラムが含まれています。最新の Exchange 2007 Service Pack を Exchange 用の最新の更新プログラム ロールアップ パッケージと共にインストールすることをお勧めします。詳細については、「Exchange 2007 用の最新の Service Pack または更新プログラムのロールアップを入手する方法」を参照してください。