Failed to execute GetVersionVector Method – erreur DFSR sur 2008 R2

J’ai rencontré ce jour des dysfonctionnements sur un serveur de fichiers (A) dont certains partages sont répliqués sur un autre serveur de fichiers (B). Ces deux serveurs fonctionnent sous Windows Server 2008 R2.

En vérifiant le backlog comme ceci :

dfsrdiag backlog /sendingmember:A /receivingmember:B /rgname:shares /rfname:shares

J’obtenais cette erreur :

Failed to execute GetVersionVector Method. Err: -2147217406 <0x80041002> operation Failed.

En cause, le KB2663685. Ce hotfix change la manière dont DFSR récupère après une coupure inopinée de la réplication ; en effet, afin d’éviter que des données corrompues soit réécrites à la place de données viables, DFSR arrête toute réplication entre les machines concernées et attend une commande bien précise pour reprendre cette réplication. Ce « temps mort » permet donc aux administrateurs de vérifier l’intégrité des données ou d’analyser la raison du dysfonctionnement initial. Pour voir si cette mise à jour a été installée, une requête Powershell très simple peut être utilisée :

Get-Hotfix | Where-Object { $_.HotfixID -eq "KB2663685" }

En fouillant un peu dans le journal d’événements DFS Replication sur le serveur B, il est possible de trouver l’instruction permettant de relancer la réplication. Pour se faire, il suffit de chercher l’ID 2213, qui ressemble à ceci :

En ouvrant une invite de commande en administrateur et en y saisissant l’instruction donnée, on relance donc la synchronisation.

En attendant quelques minutes, on devrait voir apparaître des événements 2212 et 2214 indiquant que la réplication DFSR est en cours de récupération suite à une interruption anormale, puis que celle-ci s’est déroulée avec succès. On peut donc exécuter de nouveau la commande dfsrdiag backlog et celle-ci devrait retourner simplement la liste des éléments qui vont être répliqués tôt ou tard.