DFSレプリケーション

必要情報

http://technet.microsoft.com/ja-jp/library/cc772778.aspx

http://technet.microsoft.com/ja-jp/library/cc725867.aspx
http://technet.microsoft.com/ja-jp/library/cc753409.aspx

http://technet.microsoft.com/ja-jp/library/cc773238%28v=ws.10%29.aspx
http://support.microsoft.com/kb/978326/ja
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1160850741

http://blogs.technet.com/b/askds/archive/2010/03/31/tuning-replication-performance-in-dfsr-especially-on-win2008-r2.aspx

http://relax0909.blog110.fc2.com/blog-entry-127.html

http://support.microsoft.com/kb/968102/ja

DFSとbackupexec2010R3

運用中のファイルサーバ(backupexec2010R3でバックアップ取得)にDFS-Rをいれたことでbackupexecが正常動作をしなくなったことがあり、 そのときの記録を残す。

構成

①AD, BK : windows server 2008 R2 standard
→FSのバックアップ、FSのレプリカ
②FS : windows server 2008 R2 standard
→マスタ (D:\FS)

backupexec2010R3の設定
対象ディレクトリ : D:\FS配下をバックアップ

問題

バックアップジョブの失敗

なぜかバックアップジョブが失敗してしまう。
バックアップステータスは「完了」となるが、中身がとれない。

原因は、DFS-Rで使用しているシステムファイルが原因。
ポイントは2つある。

◆レプリケーション対象ディレクトリ下のウィンドウで、システムフォルダを表示させと「dfsprivate」ディレクトリができている。
これはDFS-Rがレプリケーションや差分チェック、重複チェックをおこなうためのフォルダである。
DFS-Rサービスが動作している限り、これはファイルを閲覧すらできない。
おそらく、backupexec2010R3がファイルをつかむことができないため、失敗したと思われる。

シマンテックサポートの公開情報。
http://www.symantec.com/docs/TECH88068

◆backupexec2010R3がVSSに対応できていない。
そのため、実ファイルを処理している。
※VSSとは、「VSSは、スナップショット作成支援機能をオペレーティング・システムのレベルで提供するサービス・VSSによるバックアップ処理では、いったんこのようなスナップショットを作成し、そこからバックアップ・データを取得してバックアップ処理を行う。」
http://www.atmarkit.co.jp/fwin2k/dnsvrguide/vss/vss_01.html参照

このサイトがわかりやすい
http://faq.backup119.jp/2008/05/post-38.html
ちなみにacronis backup & recavory 10 ではVSSを採用していて、もちろんバックアップができた。

解決手段

解決手段は2つある。

backupexec2010R3のシャドウコピーコンポーネント機能を使用する

対象ディレクトリを設定する際に、シャドウコピーコンポーネントがある。その項目下にDFS-R管理下のディレクトリを選択する
他の手順は特に問わない。

※しかし、この解決策はbackupexec2010R3の合成バックアップを使用している場合には不適切なため、以下を使用する。

backupexec2010R3バックアップ中はDFS-Rサービスを停止する。

システムフォルダであるdfsprivateが操作できないため、このような手段をとった。
この際にbackupexec2010R3に設定を追加
プリコマンド :DFS-Rサービス停止
例) c:\PSTools\PsService.exe コンピュータ名 -u administrator@ドメイン -p password start "DFSR"
ポストコマンド:DFS-Rサービス開始
例) c:\PSTools\PsService.exe コンピュータ名 -u administrator@ドメイン -p password stop "DFSR"

※pstoolsを使用する。以下からダウンロード
http://technet.microsoft.com/ja-jp/sysinternals/bb896649.aspx

※ただし、これでもbackupexec2010R3で増分バックアップがフルバックアップになる問題が起きていたが、時間が経ったら、正常に動作し出した。
これは未解決。

DFSレプリケーション

問題

DFS レプリケーションで一部複製されないファイルがある

原因

以下サイトから、システム内部で持っている属性があり、その属性が一次続性(0x100 0x120)のファイルはレプリケーション対象から除外されてしまう。

http://blogs.technet.com/b/jpntsblog/archive/2010/05/07/dfs.aspx

なぜこのような現象がおきてしまうか不明だが、以下のように作成されてしまう。
・オフィス製品などの保存時にできる一次ファイルや破損時の復元時に偶然作成される。
・使用しているアプリケーションの考慮漏れ。
  ※意図的にも作成できる。以下はpythonで作成した際の例

# -*- coding: cp932 -*-

import win32api
import win32con

# 通常ファイル
win32api.SetFileAttributes('c:\\test2\\FILE_ATTRIBUTE_NORMAL.txt', win32con.FILE_ATTRIBUTE_NORMAL)
win32api.SetFileAttributes('c:\\test2\\FILE_ATTRIBUTE_ARCHIVE.txt', win32con.FILE_ATTRIBUTE_ARCHIVE)
win32api.SetFileAttributes('c:\\test2\\FILE_ATTRIBUTE_HIDDEN.txt', win32con.FILE_ATTRIBUTE_HIDDEN)
win32api.SetFileAttributes('c:\\test2\\FILE_ATTRIBUTE_READONLY.txt', win32con.FILE_ATTRIBUTE_READONLY)
win32api.SetFileAttributes('c:\\test2\\FILE_ATTRIBUTE_SYSTEM.txt', win32con.FILE_ATTRIBUTE_SYSTEM)
# 以下が一次ファイル
win32api.SetFileAttributes('c:\\test2\\FILE_ATTRIBUTE_TEMPORARY100.txt', win32con.FILE_ATTRIBUTE_TEMPORARY)
win32api.SetFileAttributes('c:\\test2\\FILE_ATTRIBUTE_TEMPORARY120.txt', win32con.FILE_ATTRIBUTE_TEMPORARY)

解決作

これはrobocopyで変換することができる。
手順は以下。

# robocopyで移動させることで属性を通常属性(0x20 0x80)に変換できる。
robocopy 対象ファイルがあるディレクトリ 一次保存先 ファイル名 /A-:T /SEC

# delは削除。上書きしてしまうと属性が変わらないため、削除する。
del 対象ファイル

# robocopyで元ディレクトリに戻す。
robocopy 一次保存先 対象ファイルがあるディレクトリ ファイル名 /MOV /SEC

ただし、こういった特性があるため、以下2つのスクリプトが必要だった。
・一次属性抽出スクリプト
・一次属性変換スクリプト

一次属性抽出スクリプト

これは正常動作後に載せることとする。
運用していくには、定期的に実行しないといけないため、forfilesを使えば、良さそう。
http://www.atmarkit.co.jp/fwin2k/win2ktips/1137forfiles/forfiles.html

一次属性変換スクリプト

これは解決策をスクリプトにするだけ。一次抽出スクリプトで出力したファイル名を流せばよい。

備考

上記はDFS-Rが悪いとか、backupexecが悪いとかそういうことを言いたいわけではなく、
それぞれの特性があり、それが合わないということです。

backupexecは合成バックアップなど素敵な機能が満載で、使用しやすいツールです。
DFS-Rは双方向、一方向レプリケーションが選択でき、使い方次第でいいものになります。

それを認識した上で提案・構築しないと痛い目をあいます。

おすすめの記事