[Windows] ファイル共有 Recovery Kit の処理概要

ファイル共有リカバリーキットが提供する監視機能についてご説明します。

対象製品
・ファイル共有 リカバリーキット (LifeKeeper for Windows)
 ※本処理概要は LifeKeeper for Windows v8.4 に付属するリカバリーキットをもとに作成しています。
 
 
クイックチェック (quickCheck)

(1) 以下のコマンドを実行します。

$LKBIN/FSCheck.exe -f ../etc/[ファイル共有リソース設定ファイル]

(1-1) FSCheck.exe の中で、ファイル共有リソース設定ファイルに記載された各ファイル共有設定に対して MSDN ライブラリの以下関数を呼出し、共有リソースを取得できることを確認します。

NetShareGetInfo()

(1-2) 本関数の返値が 0 の場合、当該ファイル共有設定の監視に成功したと判断します。本処理結果について、イベントログや標準出力へのメッセージ出力は行いません。

(1-3) 本関数の返値が 0 以外の場合、当該ファイル共有設定の監視に失敗したと判断し、以下ようなのエラーメッセージをイベントログへ出力します。

Error 13299 "Share name \"%s\" is not shared"

(1-4) (1-1) をファイル共有リソース設定ファイルに記載された全てのファイル共有設定に対して実行し、1つでも(1-2)の処理を実施した場合、監視成功とみなして監視処理を終了します。
   全てのファイル共有設定で (1-3) の処理を実行した場合、監視失敗と判断して監視処理を終了します。
 

詳細チェック (deepCheck)

クイックチェックと同一の処理を実行します。
 

 
 
起動処理 (restore)

(1) イベントログへ以下のメッセージを出力します。

Information 13203 "RESTORE FILE SHARE LIST RESOURCE INSTANCE \"$ID\" START."

(2) 以下コマンドを実行し、LanmanServer サービスの起動状況を確認します。

sc query LanmanServer

  LanmanServer サービスが起動していた場合、(3) へ進みます
  LanmanServer サービスが停止している場合、以下のようなメッセージをイベントログへ出力して (2-1) へ進みます。

Information 13206 "Starting the server service as it is not up and running."

(2-1) 以下コマンドを実行し、LanmanServer サービスを起動します。

sc start LanmanServer

  コマンド実行に成功した場合、(2-2) へ進みます。
  コマンド実行に失敗した場合、起動処理失敗とみなして以下のようなエラーメッセージをイベントログへ出力して (6) へ進みます。

Error  13207 "Unable to start Server service on the machine \"$CurMach\"."

(2-2) 以下コマンドを実行し、browser サービスを起動します。

sc start browser

  コマンド実行に成功した場合、(2-3) へ進みます。
  コマンド実行に失敗した場合、起動処理失敗とみなし、以下のようなエラーメッセージをイベントログへ出力して (6) へ進みます。

Error  13208 "Unable to start Computer Browser service on the machine \"$CurMach\"."

(2-3) 再度以下コマンドを実行し、LanmanServer が起動していることを確認します。

sc query LanmanServer

  LanmanServer サービスが起動している場合、(3) へ進みます
  LanmanServer サービスが起動していなかった場合、起動処理失敗とみなし、以下のようなエラーメッセージをイベントログへ出力して (6) へ進みます。

Information 13206 "Unable to successfully start the LanManager service on machine \"$CurMach\"."

(3) 以下コマンドを実行し、ファイル共有リソース設定ファイルから読取した共有名を OS へ反映します。

$LKBIN/LmShareNameAdd.exe $LKROOT/etc/[ファイル共有リソース設定ファイル]

(3-1) LmShareNameAdd.exe の中で、ファイル共有リソース設定ファイルに記載された各ファイル共有設定に対して MSDN ライブラリの以下関数を呼出し、共有名 OS へ追加します。

NetShareAdd()

(3-2) 本関数の返値が 0 の場合、共有名の追加に成功したと判断します。
   本処理結果について、イベントログや標準出力へのメッセージ出力は行いません。

(3-3) 本関数の返値が 2118 の場合、以下の MSDN ライブラリ関数を呼出し、共有名を削除します。
   ※ NetShareAdd() 関数のエラーコード 2118 は、既に共有名が使用されていることを示します。

NetShareDel()

   共有名の削除後、再度 NetShareAdd() 関数を呼出して共有名を OS へ追加し、(3-4) へ進みます。

(3-4) NetShareAdd() 関数の返値が 0 以外の場合、共有名の追加に失敗したとみなし、以下のようなエラーメッセージをイベントログへ出力します。

Error 13290 "Update operation for share \"%s\" located at \"%s\" has failed; error %u, parmerr=%u, error message = %s Note that all authorized users must be domain user accounts."

(3-5) (3-1) をファイル共有リソース設定ファイルに記載された全ての共有名に対して実行し、1つでも追加に成功して (3-2) の処理を実施した場合、(4-1) へ進みます。
   全ての共有名で追加に失敗して (3-4) の処理が実行された場合、リソース起動に失敗したとみなして (6) へ進みます。

(4-1) ファイル共有リソース設定ファイルの *CSCFlag 値を参照し、本値に対応するキャッシュ設定キーワードを置換します。

  0:"Manual"
  16:"Documents"
  32:"Programs"
  48:"None"
  8192:”BranchCache"
  上記以外:"" (空文字)

(4-2) 置換したキーワードが空文字以外のとき、置換したキーワードを用いて以下コマンドを実行し、共有名に対してオフライン・フォルダとして動作する際のキャッシュ設定を指定します。

net share [共有名] /Cache:[キャッシュ設定キーワード]

  置換したキーワードが空文字のとき、あるいは本コマンドの実行に成功した場合、リソース起動処理に成功したと判断して (5) へ進みます。

  本コマンドの実行に失敗した場合、リソース起動処理に失敗したと判断し、以下のエラーメッセージをイベントログへ出力して (6) へ進みます。

Error 13212 "Failed in The Offline setting.The FileShare resource could not be restored."

(5) 起動処理に成功した場合、以下のメッセージを出力して起動処理を終了します。

Information 13204 "LifeKeeper: RESTORE FILE SHARE LIST RESOURCE INSTANCE \"$ID\" END."

(6) 起動処理に失敗した場合、以下のメッセージを出力して起動処理を終了します。

Error 13210 "LifeKeeper: RESTORE FILE SHARE LIST RESOURCE INSTANCE \"$ID\" Failed. (err=$err)"

 

停止処理 (remove)

(1) イベントログへ以下のメッセージを出力します。

Information 13183 "REMOVE FILE SHARE LIST RESOURCE INSTANCE \"$ID\" START."

(2) 以下コマンドを実行し、LanmanServer サービスの起動状況を確認します。

sc query LanmanServer

  LanmanServer サービスが起動していた場合、(3) へ進みます
  LanmanServer サービスが停止している場合、以下のようなメッセージをイベントログへ出力して (2-1) へ進みます。

Information 13186 "Starting the server service as it is not up and running."

(2-1) 以下コマンドを実行し、LanmanServer サービスを起動します。

sc start LanmanServer

  コマンド実行に成功した場合、(2-2) へ進みます。
  コマンド実行に失敗した場合、リソース停止処理失敗とみなして以下のようなエラーメッセージをイベントログへ出力して (6) へ進みます。

Error  13187 "Unable to start Server service on the machine \"$CurMach\"."

(2-2) 以下コマンドを実行し、browser サービスを起動します。

sc start browser

  コマンド実行に成功した場合、(2-3) へ進みます。
  コマンド実行に失敗した場合、リソース停止処理失敗とみなし、以下のようなエラーメッセージをイベントログへ出力して (6) へ進みます。

Error  13188 "Unable to start Computer Browser service on the machine \"$CurMach\"."

(2-3) 再度以下コマンドを実行し、LanmanServer が起動していることを確認します。

sc query LanmanServer

  LanmanServer サービスが起動している場合、(3) へ進みます
  LanmanServer サービスが起動していなかった場合、リソース停止処理失敗とみなし、以下のようなエラーメッセージをイベントログへ出力して (6) へ進みます。

Information 13185 "Unable to successfully start the LanManager service on machine \"$CurMach\"."

(3) 以下コマンドを実行し、リソースが持つ共有名を OS から削除します。

$LKBIN/LmShareNameDel.exe $LKROOT/etc/[ファイル共有リソース設定ファイル]

(3-1) LmShareNameDel.exe の中で、MSDN ライブラリの以下関数を呼出し、リソースが持つ共有名を OS から削除します。

NetShareDel()

  本関数の返値が 0、あるいは 2310 の場合、共有名の削除に成功したと判断します。本処理結果について、イベントログや標準出力へのメッセージ出力は行いません。
  本関数の返値が 0、あるいは 2310 以外の場合、共有名の削除に失敗したとみなします。
  ※ NetShareDel() 関数のエラーコード 2310 は、指定された共有名が存在しなかったことを示します。

(3-2) (3-1) をリソースが持つ全ての共有名に対して実行します。

(4) (3-1) で呼出する関数処理で 1つでも失敗を示すエラーコードが返された場合、以下のようなメッセージをイベントログへ出力して (5) へ進みます。
  ただし、本メッセージを出力したとしても、リソース停止処理には成功したものと判断します。

Warning 13190 "Unable to delete the share names on machine \"$CurMach\"."

   全ての共有名で削除に成功した場合、(4-1) へ進みます。

(4-1) 以下コマンドを実行し、ファイル共有リソース設定ファイルから読取した共有名を再度 OS へ反映します。

$LKBIN/LmShareNameAdd.exe $LKROOT/etc/[ファイル共有リソース設定ファイル]

  LmShareNameAdd.exe 内部の処理については、restore 処理の (3-1) から (3-5) をご参照ください。

(4-2) (4-1) の処理に成功した場合、 リソース停止処理に成功したとみなして (5) へ進みます。

   (4-1) の処理に失敗した場合、以下のようなメッセージをイベントログへ出力し、(5) へ進みます。
  ただし、本メッセージを出力したとしても、リソース停止処理には成功したものと判断します。

Warning 13191 "Unable to re-add the share names on machine \"$CurMach\"."

(5) リソース停止処理に成功した場合、以下のメッセージを出力して停止処理を終了します。

Information 13184 "LifeKeeper: REMOVE FILE SHARE LIST RESOURCE INSTANCE \"$ID\" END Successfull."

(6) リソース停止処理に失敗した場合、以下のメッセージを出力して停止処理を終了します。

Error 13189 "LifeKeeper: REMOVE FILE SHARE LIST RESOURCE INSTANCE \"$ID\" Failed. (err=$err)"

 

回復処理 (recover)

リソース起動処理 (restore) と同一の処理を実行します。

 


改訂履歴

[公開日:2017年7月4日]

return top