トップ回答者
wbadminコマンドによるシステム情報バックアップ

質問
-
WindowsServer2008(Cドライブのみ)のAD2台×2で、ドメインを2つ構築しています。
このうち、片方のドメインでwbadminによるSystemStateBackupを採取できません。
ADの復元可能バックアップを採取するために、以下のコマンドを実行するスクリプトをタスクスケジュールに
設定することを想定しています。
> wbadmin start systemstatebackup -backuptarget:C: -quiet
出力先をCドライブに設定していますが、そのままでは「重要なドライブが・・・」と出てバックアップできませんので、
以下のようにレジストリを変更しています。
HKLM\System\CurrentControlSet\Services\wbengine\SystemStateBackup
名前:AllowSSBToAnyVolume
データ型:DWORD32
値:1
また、「バックアップライタが・・・」というエラーも発生したため、情報を辿って発見した以下のフォーラムに、
挙げられていた対処方法も実施しました。
http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2008ja/thread/40d80cdc-5937-40f3-81a1-bc36dd24edce
上記の変更で、片方のドメインのドメコンでは、2台とも正常にバックアップを実行できています。
しかし、もう片方のドメインのドメインでは、次のようなエラーが発生してバックアップが実行できません。
> wbadmin start systemstatebackup -backuptarget:C: -quiet
:
エラー - ボリュームシャドウコピーサービスの操作エラー(0x800423f0)
シャドウコピーセットには、選択したライタのコンポーネントを
正しバックアップするために必要なボリュームのサブセットのみが
含まれます。
出力されているログを確認しても、サイズが0バイトで何も記録されておらず、
失敗した原因がよく分かりません。
実行した時間帯では、イベントビューアに以下のエラーが記録されております。
(前後には、それ以外のエラーはありませんでした。)
ログの名前:アプリケーション ソース:Backup
イベントID:521 レベル:エラー
バックアップボリュームに対するシャドウコピー操作が失敗したため、'yyyy/mm/dd HH:MM:SS'で開始した
バックアップはエラーコード'2155348129'で失敗しました。問題の解決後にバックアップを再度実行して下さい。
上記の件についていろいろと調査をしましたが、有用な情報は見つかりませんでした。
本現象について何か情報をお持ちの方は、ご助言いただけないでしょうか。
回答
-
こんにちは。
エラーコード 0x800423f0 と 2155348129 はそれぞれtechnetに解説があります。
http://technet.microsoft.com/ja-jp/library/ee692290(WS.10).aspxエラーコード 2155348129 は、
"ボリューム シャドウ コピー サービス操作に失敗しました。"VSS"およ2155348129 "SPP"のアプリケーション イベント ログで詳細を確認してください"
と解説されていますので、VSSでエラーが発生した事が解ります。エラーコード 0x800423F0 の方が具体的なVSSのエラー内容です。文言通り、VSS Writerがバックアップしようとしているデータを格納したボリュームのうち、一部しかアクセスできなかった事を意味しています。
エラー発生直後にvssadmin list writersコマンドを実行すれば、エラーが発生したVSS Writerはエラーの状態が表示されるかと思います。
vshadow.exe -WM2コマンドを実行することで、VSS Writerがバックアップするデータ/ファイルのパスが確認できます。
http://msdn.microsoft.com/en-us/library/bb530725(VS.85).aspx
エラーが発生したVSS Writerのバックアップ対象が存在するかどうか、確認してみてください。また、VSSでエラーが発生した場合は、VSS Traceの解析がセオリーです。
- 回答としてマーク 三沢健二Moderator 2010年4月21日 6:31
-
こんにちは。
VSS Traceの方法ですが、ろんさんの提示されている方法で問題なくログが作成されます。
http://support.microsoft.com/kb/887013/ja
設定値の誤りや、ログの作成先の注意点などに引っかかっているのではないかと思います。例えば、C:ドライブをバックアップする場合は、C:ドライブにはログを作成できません。vshadowについては、VSSReportsの直下の他にもサンプルがありますので、 これを実行するのも手です。
例えば、Server x86の場合は TestApps\vshadow\bin\release-server
Server x64の場合はTestApps\vshadow\bin\obj-free\amd64
のものを私は使用しています。- 回答としてマーク 三沢健二Moderator 2010年4月21日 6:31
-
こんにちは。
VSS Traceを解析する場合、ライタ名、ライタID、ライタインスタンスIDの他、エラーコード(今回は2155348129や0x807800A1,0x800423F0,2147754992)、APIの名前で探して、エラーが発生しているところを探しています。
APIについては、 http://msdn.microsoft.com/en-us/library/aa384645(v=VS.85).aspx を参照して下さい。VSS Writer系のAPIでは、次のようなものがあります。
IVssCreateExpressWriterMetadata
IVssCreateWriterMetadata
IVssCreateWriterMetadataEx
IVssExpressWriter
IVssWriterComponentsろんさんの確認された、"562291行目に~..."の着眼点は正しいはずです。その行の直前(といっても、数百行になりますが)にVSS Writerがエラーを返している箇所があると思います。
VSSの動作から考えると、次の順でエラーに至っていると推測されるからです。1.wbadminがバックアップを開始
2.wbadminがVSS経由でVSS Writerをキック
3.FRSのVSS Writerがエラーを返す
4.CVssBackupComponents::AbortBackupの発生(これが562291行目のログ)
ただ、VSS Traceを探しても手かがリが見つからない場合は、VSS Traceの解析は一旦保留にして、FRSの方から攻めた方がいいかもしれません。
VSS Traceの話を出したのは、ログに "このファイルでエラーが発生しました" 的な記録があって、ファイルのパスから一気に解決できれば早い、と考えたからです。FRSの方からの攻め方ですが、まずFRS(File Replicationサービス)を停止してバックアップを取得する方法があります。FRSが停止していれば、そもそもFRS VSS Writerはバックアップ対象になりません。(この場合は、"FRSのデータはバックアップされない"という問題が残ります。)
FRSとくればSysvolです。Sysvolの整備を行う事で解消される可能性はあると思います。(これは、発想レベルの話で、確証まではありません)
http://support.microsoft.com/kb/315457/ja
http://blogs.technet.com/jpntsblog/default.aspx- 回答としてマーク 三沢健二Moderator 2010年4月21日 6:31
すべての返信
-
こんにちは。
エラーコード 0x800423f0 と 2155348129 はそれぞれtechnetに解説があります。
http://technet.microsoft.com/ja-jp/library/ee692290(WS.10).aspxエラーコード 2155348129 は、
"ボリューム シャドウ コピー サービス操作に失敗しました。"VSS"およ2155348129 "SPP"のアプリケーション イベント ログで詳細を確認してください"
と解説されていますので、VSSでエラーが発生した事が解ります。エラーコード 0x800423F0 の方が具体的なVSSのエラー内容です。文言通り、VSS Writerがバックアップしようとしているデータを格納したボリュームのうち、一部しかアクセスできなかった事を意味しています。
エラー発生直後にvssadmin list writersコマンドを実行すれば、エラーが発生したVSS Writerはエラーの状態が表示されるかと思います。
vshadow.exe -WM2コマンドを実行することで、VSS Writerがバックアップするデータ/ファイルのパスが確認できます。
http://msdn.microsoft.com/en-us/library/bb530725(VS.85).aspx
エラーが発生したVSS Writerのバックアップ対象が存在するかどうか、確認してみてください。また、VSSでエラーが発生した場合は、VSS Traceの解析がセオリーです。
- 回答としてマーク 三沢健二Moderator 2010年4月21日 6:31
-
早速のご回答、ありがとうございます。
大変有用な情報を頂き、感謝しております。
> エラーコード 0x800423f0 と 2155348129 はそれぞれtechnetに解説があります。
> http://technet.microsoft.com/ja-jp/library/ee692290(WS.10).aspx> エラーコード 2155348129 は、
> "ボリューム シャドウ コピー サービス操作に失敗しました。"VSS"およ2155348129 "SPP"のアプリケーション> イベント ログで詳細を確認してください"
> と 解説されていますので、VSSでエラーが発生した事が解ります。エラーコードに関しての解説は読んではいたのですが、「 イベント ログで詳細を確認してください」という部分を、
「イベントビューアでエラーを確認して下さい」と認識しておりました。
実際確認してみてVSSのエラーが発生していませんでしたので、皆目検討が付かず本フォーラムにご相談させていただきました。
>エラー発生直後にvssadmin list writersコマンドを実行すれば、エラーが発生したVSS Writerはエラーの状態が
>表示されるかと思います。
上記のようなコマンドがあるのですね。勉強出不足でした。
今現在確認できる環境ではありませんので、月曜日に確認してみたいと思います。
結果は、後日投稿いたします。
-
先日いろいろと情報をご提供いただいたのですが、いまだ解決への糸口すら掴めていません。
まず、vshadowコマンドを使用してVSS Writerがバックアップするデータ/ファイルのパスを確認する件ですが、
vshadowコマンドが入手が出来ませんでした。
Windows Server 2008では、標準ではvshadowコマンドは用意されておらず、SDKをインストールすれば
使えるらしいということは分かりました。
しかし、対象サーバはどうしても再起動することが出来ず、またvshadowはSDKのsamplesに含まれていること
が判明しましたので、samplesのみインストールしました。
インストールして中身を見てみると、C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\WinBase\VSS\vshadowにソースが格納されていました。
これを別のPCでコンパイルしてみたところ、
stdafx.h(24) : fatal error C1083: include ファイルを開けません。'atlbase.h': No such file or directory
とエラーが発生してしまいました。
おそらく以下と同じ症状だと思いますが、今の環境では確認できませんので、別途環境を作ってコンパイルしたいと思います。
http://ysmt.blog21.fc2.com/blog-entry-244.html
また、「Volume Shadow Copy Service SDK 7.2」をダウンロードしてインストールして
vshadowコマンドを実行してみましたが、以下のようなエラーが発生して使用できませんでした。
C:\Program Files\Microsoft\VSSSDK72\Tools\VSSReports>vshadow.exe -wm2 -tracing
VSHADOW.EXE 2.2 - Volume Shadow Copy sample client
Copyright (C) 2005 Microsoft Corporation. All rights reserved.
(Option: List extended writer metadata)
(Gathering writer metadata...)
(Waiting for the asynchronous operation to finish...)
Initialize writer metadata ...
ERROR: Win32 call "GetVolumePathNameW((LPCWSTR)path.c_str(), WString2Buffer(volumeRootPath), (DWORD)volumeRootPath.lengt
h())" failed.
- GetLastError() == 2
- Error text:
- Please re-run VSHADOW.EXE with the /tracing option to get more details
C:\Program Files\Microsoft\VSSSDK72\Tools\VSSReports>vshadow.exe -tracing -wm2
VSHADOW.EXE 2.2 - Volume Shadow Copy sample client
Copyright (C) 2005 Microsoft Corporation. All rights reserved.
(Option: Enable tracing)
[[ CommandLineParser::MatchArgument @ shadow.cpp: 748]] ENTER CommandLineParser::MatchArgument
[[ CommandLineParser::MatchArgument @ shadow.cpp: 750]] Matching Arg: '-wm2' with 'p'
[[ CommandLineParser::MatchArgument @ shadow.cpp: 754]] Return: FALSE
[[ CommandLineParser::MatchArgument @ shadow.cpp: 748]] EXIT CommandLineParser::MatchArgument
[[ CommandLineParser::MatchArgument @ shadow.cpp: 748]] ENTER CommandLineParser::MatchArgument
[[ CommandLineParser::MatchArgument @ shadow.cpp: 750]] Matching Arg: '-wm2' with 'nw':
(省 略)
:
- Please re-run VSHADOW.EXE with the /tracing option to get more details
[[ GetUniqueVolumeNameForPath @ util.h: 296]] OUTPUT: - Please re-run VSHADOW.EXE with the /tracing option to get more details
[[ GetUniqueVolumeNameForPath @ util.h: 296]] EXIT GetUniqueVolumeNameForPath
[[ VssFileDescriptor::Initialize @ writer.cpp: 732]] EXIT VssFileDescriptor::Initialize
[[ VssWriter::Initialize @ writer.cpp: 293]] EXIT VssWriter::Initialize
[[ VssClient::InitializeWriterMetadata @ writer.cpp: 63]] EXIT VssClient::InitializeWriterMetadata
[[ VssClient::GatherWriterMetadata @ writer.cpp: 27]] EXIT VssClient::GatherWriterMetadata
[[ CommandLineParser::MainRoutine @ shadow.cpp: 84]] EXIT CommandLineParser::MainRoutine
[[ wmain @ shadow.cpp: 66]] HRESULT Error catched: 0x80070002
[[ CommandLineParser::~CommandLineParser @ shadow.cpp: 964]] ENTER CommandLineParser::~CommandLineParser
[[ CommandLineParser::~CommandLineParser @ shadow.cpp: 964]] EXIT CommandLineParser::~CommandLineParser
[[ wmain @ shadow.cpp: 31]] EXIT wmain# 上記の出力が正常であるのか、コマンドの実行に失敗しているのかは、確認中です。。
また、VSS Traceの解析の件ですが、VSSのデバッグトレース機能を有効にする方法として、以下のような情報が
ございましたので(WS2003ですが)、同様に設定してみましたが、トレースファイルが出力されることはありませんでした。
http://support.microsoft.com/kb/887013/ja
この件に関しましては、もしよろしければTraceの方法をご教示いただけないでしょうか。
以上です。
よろしくお願い致します。
-
1件報告を忘れておりましたので、追加で報告いたします。
> エラー発生直後にvssadmin list writersコマンドを実行すれば、エラーが発生したVSS Writerはエラーの状態が
> 表示されるかと思います。
vssadmin list writersでライタの状態を確認したところ、1つのライタでエラーが発生していました。
ライタ名: 'FRS Writer'
ライタ Id: {d76f5a28-3092-4589-ba48-2958fb88ce29}
ライタ インスタンス Id: {345ef153-9d1d-4a95-aafa-500bb41de90c}
状態: [8] 失敗
最後のエラー: 一致しないシャドウ コピーこれで、"FRS Writer"が原因であることが分かりました。
しかし、ここから先の原因究明が出来ていない状態です。
また何か進捗がありましたら、ご報告いたします。
-
こんにちは。
VSS Traceの方法ですが、ろんさんの提示されている方法で問題なくログが作成されます。
http://support.microsoft.com/kb/887013/ja
設定値の誤りや、ログの作成先の注意点などに引っかかっているのではないかと思います。例えば、C:ドライブをバックアップする場合は、C:ドライブにはログを作成できません。vshadowについては、VSSReportsの直下の他にもサンプルがありますので、 これを実行するのも手です。
例えば、Server x86の場合は TestApps\vshadow\bin\release-server
Server x64の場合はTestApps\vshadow\bin\obj-free\amd64
のものを私は使用しています。- 回答としてマーク 三沢健二Moderator 2010年4月21日 6:31
-
中年やっちゅうねん様
いつもアドバイスを頂きありがとうございます。
VSS Traceに関してですが、原因は出力先ではなくレジストリのキー名の設定ミスでした。
TracingとしなければいけないところをTraceとしていたため、修正してトレースファイルが出力されることを確認できました。
# 約90MBになりました。
早速中身を確認してみたのですが。。。難解です。
562291行目に「[1705718660,0x0014ec:0x08dc:0x12854358] backupext\vsxml\vs_cmxml.cxx(4185): CVssBackupComponents::AbortBackup: Adding context: 'バックアップを中止します' (0)」と出ていたので、
その前後のワードを拾って調べてみたのですが、とくに引っかかるものがありませんでした。
ライタ名、ライタID、ライタインスタンスIDでもトレースファイルを検索してみたのですが、特に目を引くワードはありませんでした。
まことに申し訳ないのですが、中年やっちゅうねん様がいつもされている方法をご教示願えないでしょうか。
vshadowコマンドに関しては、教えていただいたパス内にあるexeでも試してみたのですが、結果は同じでした。
どうやら、前述のコマンド結果は正常(コマンドの動作自体が)のようです。
# 使用OSは、Win2008stの32bitです。
以上です。
よろしくお願い致します。
-
こんにちは。
VSS Traceを解析する場合、ライタ名、ライタID、ライタインスタンスIDの他、エラーコード(今回は2155348129や0x807800A1,0x800423F0,2147754992)、APIの名前で探して、エラーが発生しているところを探しています。
APIについては、 http://msdn.microsoft.com/en-us/library/aa384645(v=VS.85).aspx を参照して下さい。VSS Writer系のAPIでは、次のようなものがあります。
IVssCreateExpressWriterMetadata
IVssCreateWriterMetadata
IVssCreateWriterMetadataEx
IVssExpressWriter
IVssWriterComponentsろんさんの確認された、"562291行目に~..."の着眼点は正しいはずです。その行の直前(といっても、数百行になりますが)にVSS Writerがエラーを返している箇所があると思います。
VSSの動作から考えると、次の順でエラーに至っていると推測されるからです。1.wbadminがバックアップを開始
2.wbadminがVSS経由でVSS Writerをキック
3.FRSのVSS Writerがエラーを返す
4.CVssBackupComponents::AbortBackupの発生(これが562291行目のログ)
ただ、VSS Traceを探しても手かがリが見つからない場合は、VSS Traceの解析は一旦保留にして、FRSの方から攻めた方がいいかもしれません。
VSS Traceの話を出したのは、ログに "このファイルでエラーが発生しました" 的な記録があって、ファイルのパスから一気に解決できれば早い、と考えたからです。FRSの方からの攻め方ですが、まずFRS(File Replicationサービス)を停止してバックアップを取得する方法があります。FRSが停止していれば、そもそもFRS VSS Writerはバックアップ対象になりません。(この場合は、"FRSのデータはバックアップされない"という問題が残ります。)
FRSとくればSysvolです。Sysvolの整備を行う事で解消される可能性はあると思います。(これは、発想レベルの話で、確証まではありません)
http://support.microsoft.com/kb/315457/ja
http://blogs.technet.com/jpntsblog/default.aspx- 回答としてマーク 三沢健二Moderator 2010年4月21日 6:31