DFSレプリケーションと一時ファイル

みなさんこんにちは!
これは私の最初の出版物です。将来、頻繁に執筆することを望みます。
何かが正しく設計されていない場合は、正しい方法で修正します。

DFSレプリケーションの興味深い機能を扱う必要がありました。 また、問題自体は新しいものではありませんが、多くの人がそれをコーンで埋めることができます。

したがって、DFSレプリケーションが正常に構成されて動作する安定した作業環境があります。 レプリケーショングループが作成され、必要なすべてのサーバーが追加され、トポロジが正しく、スケジュールが正常で、すべてが正常です...レプリケートフォルダーに追加された新しいファイルがリモートサーバーにコピーされなくなるまで。

たとえば、 LAB-DC1LAB-FS1の 2つのサーバーしかないテスト環境を作成しました。 それぞれにフォルダーC:\ DFSRがあり 、その間で複製が行われます。

2つのテストファイルをLAB-DC1のこのフォルダーにコピーすると、1つだけが2番目のサーバーに複製されたことがわかります。

画像

なんで?


DFSレプリケーションメカニズムは、 一時属性が設定されているファイルを設計上コピーしないように設計されているためです。 fsutilコマンドを使用して、両方のファイルの属性を確認します。

not-a-temporary-file.txtファイルの属性は0x20です。


temporary-file.txtファイルの属性は0x120です:


これらの16進数のデコードは非常に簡単です。 考えられる各ファイル属性には、独自の16進値があります。 すべてのオプションは次のとおりです。
読み取り専用0x1
非表示0x2
システム0x4
ディレクトリ0x10
アーカイブ0x20
装置0x40
普通0x80
仮設0x100
SPARSE_FILE0x200
REPARSE_POINT0x400
圧縮された0x800
オフライン0x1000
NOT_CONTENT_INDEXED0x2000
暗号化0x4000

このリストから、 not-a-temporary-file.txtに「Archive」属性のみがあり、 temporary-file.txtには 「Archive」および「Temporary」属性があることがわかります。
また、 「一時」が設定されているすべてのファイルは、 DFSレプリケーションメカニズムを使用してレプリケートされません。

小さなPowerShellスクリプトを使用して、すべての添付ファイルおよびフォルダーからこの属性を削除するのは非常に簡単です。
Get-ChildItem C:\DFSR -recurse | ForEach-Object -process {if (($_.attributes -band 0x100) -eq 0x100) {$_.attributes = ($_.attributes -band 0xFEFF)}} 


属性と出来上がりを削除してください! 「問題のある」 temporary-file.txtファイルがリモートサーバー正常にコピーされました。


「一時的な」ファイルがネットワーク内のどこから来たか-物語は沈黙しています。 どこかから来ました。 実験するために、ファイルの「一時」属性を手で設定できます。 これには、簡単なPowerShellスクリプトを使用することもできます。
 $file = Get-Item C:\DFSR\temporary-file.txt $file.Attributes = 0x120 


以上で、この記事がDFSレプリケーションの作業に関連する問題の解決に役立つことを願っています。

最後に、2008年にブログでこのトピックに関する包括的な記事を公​​開してくれたCraig Landisに感謝します。

Source: https://habr.com/ru/post/J245075/


All Articles