DFS Replication stucks on single files

ich bin heute auf ein seltsames Verhalten der DFS Replikation gestossen. Zwei replizierende Ordner weisen den selben Inhalt auf, bis auf ein einziges File, das nur auf einer Seite existiert. Die Replikation funktioniert ohne Probleme, und es findet beim Erstellen von Testdaten ein zügiger Abgleich statt. Das Backlog weisst zu meiner Verwunderung keinerlei Rückstandsdaten auf. Das File ist weder gelockt noch versteckt, keine Einträge im Eventlog.

 

Ursache

Ein Besuch im DFSR Debug Log (%systemroot%\debug) gibt nähren Aufschluss

20160112 18:21:33.059 1740 USNC  1359 UsnConsumer::ProcessUsnRecord Skipping USN_RECORD with FILE_ATTRIBUTE_TEMPORARY flag:
+ USN_RECORD:
+ RecordLength:        96
+ MajorVersion:        2
+ MinorVersion:        0
+ FileRefNumber:       0x1000000006AB1
+ ParentFileRefNumber: 0x1000000006AB0
+ USN:                 0x1298b1d0
+ TimeStamp:           20160112 18:21:33.059 W. Europe Standard Time
+ Reason:              Close Rename New Name
+ SourceInfo:          0x0
+ SecurityId:          0x0
+ FileAttributes:      0x120  <– Archive and Temporary Bit set
+ FileNameLength:      30
+ FileNameOffset:      60
+ FileName:            problemfile.txt

Das File bzw. die Änderung am File wird erkannt, nur wird durch das gesetzte Temporary Attribut die Replikation unterbunden.

 

Check and Fix

fsutil usn readdata attributes temporary

Attributwerte:

READONLY 0x1
HIDDEN 0x2
SYSTEM 0x4
DIRECTORY 0x10
ARCHIVE 0x20
DEVICE 0x40
NORMAL 0x80
TEMPORARY 0x100
SPARSE_FILE 0x200
REPARSE_POINT 0x400
COMPRESSED 0x800
OFFLINE 0x1000
NOT_CONTENT_INDEXED 0x2000
ENCRYPTED 0x4000

 

get-itemproperty attributes temporary

attributes AT Temporary

 

Das Attribut kann mittels Powershell entfernt werden (siehe untern). Sobald das Temporary Attribut entfernt ist, triggered DFSR eine Replikation an.

20160112 19:35:14.265 1740 USNC  2859 UsnConsumer::CreateNewRecord ID record created from USN_RECORD:
+ USN_RECORD:
+ RecordLength:        96
+ MajorVersion:        2
+ MinorVersion:        0
+ FileRefNumber:       0x1000000006ABC
+ ParentFileRefNumber: 0x1000000006AB0
+ USN:                 0x129912a0
+ TimeStamp:           20160112 19:35:14.265 W. Europe Standard Time
+ Reason:              Basic Info Change Close
+ SourceInfo:          0x0
+ SecurityId:          0x0
+ FileAttributes:      0x20  <– Archive Bit set
+ FileNameLength:      30
+ FileNameOffset:      60
+ FileName:            problemfile.txt

 

Powershell Code

 

Links
http://blogs.technet.com/b/heyscriptingguy/archive/2011/01/26/use-a-powershell-cmdlet-to-work-with-file-attributes.aspx
http://blogs.technet.com/b/askds/archive/2008/11/11/dfsr-does-not-replicate-temporary-files.aspx
https://technet.microsoft.com/en-us/library/cc773238(v=ws.10).aspx#BKMK_038

 

Holger Wache

Holger Wache