Hey guys,
well I just did some more tests and found out something. I'm not sure whose "fault" it really is - but I'd say there is a good chance it might be on NetApp's side.
Clearly something changed in Robocopy. Which is easy to prove since the copy works just fine with older versions of it but not with more recent ones. Now the base-problem however might be on NetApp's side - who seem not to imitate an actual Windows Fileserver quite closely enough. Which again is easilsy proven - because the problem does not occur when copying between (or to) Windows fileservers. So maybe newer Robocopy version rely on a feature not present or broken in NetApp's CIFS implementation?
So here's what I did. I copied a simple folder with a few PDFs with Robocopy. I copied from a cDOT Filer to a 7mode filer here, but copying the same folder from a "real" Windows fileshare shows the exact same behavior.
I did an initial robocopy /MIR /COPYALL - which as expected creates a duplicate ot the folder and files. Every subsequent run of /MIR /COPYALL shows the problem we have - all files are marked as "Modified" although they are not. However as established, the files do not get copied.
So another run with the /debug parameter:
-------------------------------------------------------------------------------
ROBOCOPY :: Robustes Dateikopieren fr Windows
-------------------------------------------------------------------------------
Gestartet: Freitag, 2. Juni 2017 12:18:40
OSVersion : 6.3 (9600) 25800306
Quelle : \\?\UNC\SOURCE-FILER\testfolder\
Root : "\\SOURCE-FILER\fpm\"
VolName : "fpm"
Serial : 80000415
MaxName : 255
FSFlag : 000400CF
FSType : "NTFS"
IsNTFS : 1
Ziel : \\?\UNC\TARGET-FILER\testfolder\
Root : "\\TARGET-FILER\data\"
VolName : ""
Serial : 3B02D496
MaxName : 255
FSFlag : 0004004F
FSType : "NTFS"
IsNTFS : 1
Fudge : 0
Dateien : *.*
Optionen: *.* /S /E /COPYALL /PURGE /MIR /DEBUG /R:1000000 /W:30
------------------------------------------------------------------------------
\\?\UNC\SOURCE-FILER\testfolder\tr-3197_TEchnicalOverviewofSnapDrive.pdf: Create: 1cd4ee6369beb3e LastA: 1d2db899501cfd8 LastWr: 1cd49f3a4f22f93 Change: 1d093933059611c
\\?\UNC\SOURCE-FILER\testfolder\tr-3483_ThinProvisioningInANetAppSANorIPSANEnterpriseEnvironment.pdf: Create: 1cd4ee636a428c6 LastA: 1d2db8995068ac8 LastWr: 1cd486bafe9d4dd Change: 1d093933059af46
\\?\UNC\SOURCE-FILER\testfolder\tr-3563_ThinProvisioningIncreasesStorageUtilizationWithOnDemandUtilization.pdf: Create: 1cd4ee636a895aa LastA: 1d2db89953c1968 LastWr: 1cd49f39598b963 Change: 1d093933059fd5c
\\?\UNC\SOURCE-FILER\testfolder\tr-3702_BestPractivesForMicrosoftVirtualizationAndSnapManagerHyperV.pdf: Create: 1cd4ee636b19682 LastA: 1d2db8995601bf6 LastWr: 1cd4a3269d656a4 Change: 1d09393305a4b86
\\?\UNC\SOURCE-FILER\testfolder\tr-3828_SnapDrive62WindowsBestPractices.pdf: Create: 1cd4ee636ba7040 LastA: 1d2db89956d3b74 LastWr: 1cd49f3b27efb4b Change: 1d09393305a999c
\\?\UNC\SOURCE-FILER\testfolder\tr-3965_ThinProvisioningDeploymentAndImplementationGuideDataOntap87-mode.pdf: Create: 1cd4ee636c37136 LastA: 1d2db899590efc4 LastWr: 1cd496422779fad Change: 1d09393305ae7b2
\\?\UNC\SOURCE-FILER\testfolder\Thumbs.db: Create: 1ce4bf5d00dcf28 LastA: 1d2db8994f3c65e LastWr: 1ce4bf5dbc19250 Change: 1d0b3fd4d24fd44
\\?\UNC\TARGET-FILER\testfolder\Thumbs.db: Create: 1ce4bf5d00dcf28 LastA: 1d2db89890de0ea LastWr: 1ce4bf5dbc19250 Change: 1d2db8994f02cce
\\?\UNC\TARGET-FILER\testfolder\tr-3197_TEchnicalOverviewofSnapDrive.pdf: Create: 1cd4ee6369beb3e LastA: 1d2db898929cd32 LastWr: 1cd49f3a4f22f93 Change: 1d2db8994fd4c7e
\\?\UNC\TARGET-FILER\testfolder\tr-3483_ThinProvisioningInANetAppSANorIPSANEnterpriseEnvironment.pdf: Create: 1cd4ee636a428c6 LastA: 1d2db898931bc72 LastWr: 1cd486bafe9d4dd Change: 1d2db8995022e74
\\?\UNC\TARGET-FILER\testfolder\tr-3563_ThinProvisioningIncreasesStorageUtilizationWithOnDemandUtilization.pdf: Create: 1cd4ee636a895aa LastA: 1d2db898967722c LastWr: 1cd49f39598b963 Change: 1d2db89953796ea
\\?\UNC\TARGET-FILER\testfolder\tr-3702_BestPractivesForMicrosoftVirtualizationAndSnapManagerHyperV.pdf: Create: 1cd4ee636b19682 LastA: 1d2db89898e5aea LastWr: 1cd4a3269d656a4 Change: 1d2db89955b9a18
\\?\UNC\TARGET-FILER\testfolder\tr-3828_SnapDrive62WindowsBestPractices.pdf: Create: 1cd4ee636ba7040 LastA: 1d2db8989a3907c LastWr: 1cd49f3b27efb4b Change: 1d2db8995689448
\\?\UNC\TARGET-FILER\testfolder\tr-3965_ThinProvisioningDeploymentAndImplementationGuideDataOntap87-mode.pdf: Create: 1cd4ee636c37136 LastA: 1d2db8989d0e1bc LastWr: 1cd496422779fad Change: 1d2db89958c6ea4
7 -A--------D-- \\?\UNC\SOURCE-FILER\testfolder\
FindNextFile() Difference = - 16845h:22m:20.6824330s \\SOURCE-FILER\testfolder\Thumbs.db
FindNextFile() Difference = - 17835h:22m:32.9412450s \\SOURCE-FILER\testfolder\tr-3197_TEchnicalOverviewofSnapDrive.pdf
FindNextFile() Difference = - 17835h:22m:32.9712430s \\SOURCE-FILER\testfolder\tr-3483_ThinProvisioningInANetAppSANorIPSANEnterpriseEnvironment.pdf
FindNextFile() Difference = - 17835h:22m:33.3192590s \\SOURCE-FILER\testfolder\tr-3563_ThinProvisioningIncreasesStorageUtilizationWithOnDemandUtilization.pdf
FindNextFile() Difference = - 17835h:22m:33.5532690s \\SOURCE-FILER\testfolder\tr-3702_BestPractivesForMicrosoftVirtualizationAndSnapManagerHyperV.pdf
FindNextFile() Difference = - 17835h:22m:33.6363180s \\SOURCE-FILER\testfolder\tr-3828_SnapDrive62WindowsBestPractices.pdf
FindNextFile() Difference = - 17835h:22m:33.8692850s \\SOURCE-FILER\testfolder\tr-3965_ThinProvisioningDeploymentAndImplementationGuideDataOntap87-mode.pdf
SR GROUP OWNER DACL SACL - SECURITY_DESCRIPTOR_CONTROL
D D PIDP PIDP
SR - - YI-- YI-- - Source
Ge„ndert 25088 --SH--------- Thumbs.db
SR GROUP OWNER DACL SACL - SECURITY_DESCRIPTOR_CONTROL
D D PIDP PIDP
SR - - YI-- YI-- - Source
Ge„ndert 754236 -A----------- tr-3197_TEchnicalOverviewofSnapDrive.pdf
SR GROUP OWNER DACL SACL - SECURITY_DESCRIPTOR_CONTROL
D D PIDP PIDP
SR - - YI-- YI-- - Source
Ge„ndert 98707 -A----------- tr-3483_ThinProvisioningInANetAppSANorIPSANEnterpriseEnvironment.pdf
SR GROUP OWNER DACL SACL - SECURITY_DESCRIPTOR_CONTROL
D D PIDP PIDP
SR - - YI-- YI-- - Source
Ge„ndert 3.4 m -A----------- tr-3563_ThinProvisioningIncreasesStorageUtilizationWithOnDemandUtilization.pdf
SR GROUP OWNER DACL SACL - SECURITY_DESCRIPTOR_CONTROL
D D PIDP PIDP
SR - - YI-- YI-- - Source
Ge„ndert 2.3 m -A----------- tr-3702_BestPractivesForMicrosoftVirtualizationAndSnapManagerHyperV.pdf
SR GROUP OWNER DACL SACL - SECURITY_DESCRIPTOR_CONTROL
D D PIDP PIDP
SR - - YI-- YI-- - Source
Ge„ndert 755698 -A----------- tr-3828_SnapDrive62WindowsBestPractices.pdf
SR GROUP OWNER DACL SACL - SECURITY_DESCRIPTOR_CONTROL
D D PIDP PIDP
SR - - YI-- YI-- - Source
Ge„ndert 2.3 m -A----------- tr-3965_ThinProvisioningDeploymentAndImplementationGuideDataOntap87-mode.pdf
SR GROUP OWNER DACL SACL - SECURITY_DESCRIPTOR_CONTROL
D D PIDP PIDP
SR - - YI-- YI-- - Source
------------------------------------------------------------------------------
Insgesamt KopiertšbersprungenKeine šbereinstimmung FEHLER Extras
Verzeich.: 1 0 0 0 0 0
Dateien: 7 7 0 0 0 0
Bytes: 9.68 m 9.68 m 0 0 0 0
Zeiten: 0:00:00 0:00:00 0:00:00 0:00:00
Geschwindigkeit: 406352480 Bytes/Sek.
Geschwindigkeit: 23251.675 Megabytes/Min.
Beendet: Freitag, 2. Juni 2017 12:18:40
OK. So the same command with Robocopy as it shipped with Windows XP:
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows :: Version XP010
-------------------------------------------------------------------------------
Started : Fri Jun 02 12:28:25 2017
OSVersion : 6.2 (9200) 23F00206
Source : \\?\UNC\SOURCE-FILER\testfolder\
Root : "\\SOURCE-FILER\fpm\"
VolName : "fpm"
Serial : 80000415
MaxName : 255
FSFlag : 000400CF
FSType : "NTFS"
IsNTFS : 1
Dest : \\?\UNC\TARGET-FILER\testfolder\
Root : "\\TARGET-FILER\data\"
VolName : ""
Serial : 3B02D496
MaxName : 255
FSFlag : 0004004F
FSType : "NTFS"
IsNTFS : 1
Fudge : 0
Files : *.*
Options : *.* /S /E /COPYALL /PURGE /MIR /DEBUG /R:1000000 /W:30
------------------------------------------------------------------------------
7 -A--------D-- \\?\UNC\SOURCE-FILER\testfolder\
------------------------------------------------------------------------------
Total Copied Skipped Mismatch FAILED Extras
Dirs : 1 0 1 0 0 0
Files : 7 0 7 0 0 0
Bytes : 9.68 m 0 9.68 m 0 0 0
Times : 0:00:00 0:00:00 0:00:00 0:00:00
Ended : Fri Jun 02 12:28:25 2017
And finally, the "new" robocopy again but (re-) copying the folder to a Windows Fileshare (my 8.1 workstation in this case):
-------------------------------------------------------------------------------
ROBOCOPY :: Robustes Dateikopieren fr Windows
-------------------------------------------------------------------------------
Gestartet: Freitag, 2. Juni 2017 12:33:38
OSVersion : 6.3 (9600) 25800306
Quelle : \\?\UNC\SOURCE-FILER\testfolder\
Root : "\\o1903cifs\fpm\"
VolName : "fpm"
Serial : 80000415
MaxName : 255
FSFlag : 000400CF
FSType : "NTFS"
IsNTFS : 1
Ziel : \\?\UNC\WINDOWS\testfolder\
Root : "\\o0001\dmp\"
VolName : "E_DATA"
Serial : 6431E6C3
MaxName : 255
FSFlag : 00C700FF
FSType : "NTFS"
IsNTFS : 1
Fudge : 0
Dateien : *.*
Optionen: *.* /S /E /COPYALL /PURGE /MIR /DEBUG /R:1000000 /W:30
------------------------------------------------------------------------------
\\?\UNC\SOURCE-FILER\testfolder\tr-3197_TEchnicalOverviewofSnapDrive.pdf: Create: 1cd4ee6369beb3e LastA: 1d2db8bad9a9546 LastWr: 1cd49f3a4f22f93 Change: 1d093933059611c
\\?\UNC\SOURCE-FILER\testfolder\tr-3483_ThinProvisioningInANetAppSANorIPSANEnterpriseEnvironment.pdf: Create: 1cd4ee636a428c6 LastA: 1d2db8bad9df0a6 LastWr: 1cd486bafe9d4dd Change: 1d093933059af46
\\?\UNC\SOURCE-FILER\testfolder\tr-3563_ThinProvisioningIncreasesStorageUtilizationWithOnDemandUtilization.pdf: Create: 1cd4ee636a895aa LastA: 1d2db8badceeb66 LastWr: 1cd49f39598b963 Change: 1d093933059fd5c
\\?\UNC\SOURCE-FILER\testfolder\tr-3702_BestPractivesForMicrosoftVirtualizationAndSnapManagerHyperV.pdf: Create: 1cd4ee636b19682 LastA: 1d2db8badf2edf4 LastWr: 1cd4a3269d656a4 Change: 1d09393305a4b86
\\?\UNC\SOURCE-FILER\testfolder\tr-3828_SnapDrive62WindowsBestPractices.pdf: Create: 1cd4ee636ba7040 LastA: 1d2db8badffbf2a LastWr: 1cd49f3b27efb4b Change: 1d09393305a999c
\\?\UNC\SOURCE-FILER\testfolder\tr-3965_ThinProvisioningDeploymentAndImplementationGuideDataOntap87-mode.pdf: Create: 1cd4ee636c37136 LastA: 1d2db8bae228938 LastWr: 1cd496422779fad Change: 1d09393305ae7b2
\\?\UNC\SOURCE-FILER\testfolder\Thumbs.db: Create: 1ce4bf5d00dcf28 LastA: 1d2db8bad8e6050 LastWr: 1ce4bf5dbc19250 Change: 1d0b3fd4d24fd44
\\?\UNC\WINDOWS\testfolder\Thumbs.db: Create: 1ce4bf5d00dcf28 LastA: 1d2db8994f3c65e LastWr: 1ce4bf5dbc19250 Change: 1d0b3fd4d24fd44
\\?\UNC\WINDOWS\testfolder\tr-3197_TEchnicalOverviewofSnapDrive.pdf: Create: 1cd4ee6369beb3e LastA: 1d2db899501cfd8 LastWr: 1cd49f3a4f22f93 Change: 1d093933059611c
\\?\UNC\WINDOWS\testfolder\tr-3483_ThinProvisioningInANetAppSANorIPSANEnterpriseEnvironment.pdf: Create: 1cd4ee636a428c6 LastA: 1d2db8995068ac8 LastWr: 1cd486bafe9d4dd Change: 1d093933059af46
\\?\UNC\WINDOWS\testfolder\tr-3563_ThinProvisioningIncreasesStorageUtilizationWithOnDemandUtilization.pdf: Create: 1cd4ee636a895aa LastA: 1d2db89953c1968 LastWr: 1cd49f39598b963 Change: 1d093933059fd5c
\\?\UNC\WINDOWS\testfolder\tr-3702_BestPractivesForMicrosoftVirtualizationAndSnapManagerHyperV.pdf: Create: 1cd4ee636b19682 LastA: 1d2db8995601bf6 LastWr: 1cd4a3269d656a4 Change: 1d09393305a4b86
\\?\UNC\WINDOWS\testfolder\tr-3828_SnapDrive62WindowsBestPractices.pdf: Create: 1cd4ee636ba7040 LastA: 1d2db89956d3b74 LastWr: 1cd49f3b27efb4b Change: 1d09393305a999c
\\?\UNC\WINDOWS\testfolder\tr-3965_ThinProvisioningDeploymentAndImplementationGuideDataOntap87-mode.pdf: Create: 1cd4ee636c37136 LastA: 1d2db899590efc4 LastWr: 1cd496422779fad Change: 1d09393305ae7b2
7 -A--------D-- \\?\UNC\SOURCE-FILER\testfolder\
SR GROUP OWNER DACL SACL - SECURITY_DESCRIPTOR_CONTROL
D D PIDP PIDP
SR - - YI-- YI-- - Source
------------------------------------------------------------------------------
Insgesamt KopiertšbersprungenKeine šbereinstimmung FEHLER Extras
Verzeich.: 1 0 0 0 0 0
Dateien: 7 0 7 0 0 0
Bytes: 9.68 m 0 9.68 m 0 0 0
Zeiten: 0:00:00 0:00:00 0:00:00 0:00:00
Beendet: Freitag, 2. Juni 2017 12:33:38
So here lies the problem then. It is a difference in the "change" timestamp. When the files are copied to a Windows Fileshare, Robocopy reads that value from the files correctly.
However when Robocopy get's the "last changed" timestamp from the NetApp, different values are showing!
Have a look at this comparison from the robocopy "to windows":
\\?\UNC\SOURCE-FILER\testfolder\Thumbs.db: Create: 1ce4bf5d00dcf28 LastA: 1d2db8bad8e6050 LastWr: 1ce4bf5dbc19250 Change: 1d0b3fd4d24fd44
\\?\UNC\WINDOWS\testfolder\Thumbs.db: Create: 1ce4bf5d00dcf28 LastA: 1d2db8994f3c65e LastWr: 1ce4bf5dbc19250 Change: 1d0b3fd4d24fd44
and now what happens when we copy to NetApp:
\\?\UNC\SOURCE-FILER\testfolder\Thumbs.db: Create: 1ce4bf5d00dcf28 LastA: 1d2db8994f3c65e LastWr: 1ce4bf5dbc19250 Change: 1d0b3fd4d24fd44
\\?\UNC\TARGET-FILER\testfolder\Thumbs.db: Create: 1ce4bf5d00dcf28 LastA: 1d2db89890de0ea LastWr: 1ce4bf5dbc19250 Change: 1d2db8994f02cce
See the difference? On the NetApp the "change" value for the file differs from the value on the Windows fileshare. The value does NOT change when I re-run robocopy by the way, on neither Windows nor NetApp.
By the way, the "translation" for the timestamps:
1d0b3fd4d24fd44 => 01.07.2015 14:56:09
1d2db8994f02cce => 02.06.2017 12:18:30
So this is it them - when Robocopy copies a file to a Windows fileshare it actually successfully copies "changed" timestamp. But it is NOT able to do so on a NetApp fileshare where the value corresponds with the time when the file was actually copied. And since Robocopy is not able to properly fix this timestamp it "re-tries" to fix it every single time we run robocopy. So as I said earlier, this seems to me to be "on the NetApp side of things".
None of this helps us though. Because we all know that opening a case for this is futile, but NetApp's and Microsoft's L1 will blame the other company and send me away. Anyone got an "inside contact" who might be in a position to have a look at this?
Regards
Chris