ID evento DFSR 2213 in Windows Server 2008 R2

Questo articolo descrive un problema che attiva l'ID evento 2213 in Windows 2008 o Windows 2012.

Si applica a: Windows Server 2008 R2 Service Pack 1
Numero KB originale: 2846759

Riepilogo

Microsoft ha introdotto nuove funzionalità per il servizio Replica DFS (DFSR) per Windows Server 2008 R2 tramite hotfix 2663685. Dopo aver installato l'hotfix 2663685 o una versione successiva di Dfsrs.exe in Windows Server 2008 R2, il servizio DFSR non esegue più il ripristino automatico del database ESE (Extensible Storage Engine) dopo l'arresto dirty del database. Al contrario, quando viene attivato il nuovo comportamento dfsr, l'ID evento 2213 viene registrato nel log DFSR. Un amministratore DFSR deve riprendere manualmente la replica dopo il rilevamento di un arresto dirty da parte di DFSR.

Windows Server 2012 presenta questo comportamento per impostazione predefinita.

Il servizio DFSR gestisce un database ESE per volume nei volumi che ospitano una cartella replicata. DFSR usa questo database per archiviare i metadati relativi a ogni file e cartella nella cartella replicata. L'integrità del database deve essere mantenuta per assicurarsi che il servizio continui a funzionare correttamente.

Quando DFSR riceve una notifica che indica che il servizio deve essere arrestato, inizia a eseguire il commit di tutte le modifiche in sospeso nel database ESE. L'arresto dirty in DFSR si verifica quando il servizio DFSR non può eseguire il commit di tutte le modifiche in sospeso nel database DSFR ESE prima dell'arresto del servizio DFSR. Durante l'avvio, il servizio DFSR controlla l'integrità del database.

Il ripristino dell'arresto dirty può causare backlog di grandi dimensioni e questi, a loro volta, possono causare conflitti di replica. In alcuni casi, prima del rilascio della correzione nell'hotfix 2780453 , il file vincente potrebbe non essere la versione eseguita dall'utente finale. L'aggiornamento per arrestare la replica durante l'arresto dirty è stato progettato come una protezione che consente agli amministratori di eseguire il backup dei dati per acquisire i delta dopo l'esecuzione dell'ultimo backup prima della ripresa della replica.

Dopo aver installato l'hotfix 2780453, non è più necessario sospendere la replica durante un arresto dirty. La correzione da hotfix 2780453 è inclusa in tutti i supporti predefiniti di Windows 2012.

Procedure consigliate

Procedure consigliate per il ripristino automatico in base al ruolo del server, al sistema operativo e al livello di patch:

Ruolo Windows Server 2008 R2 Windows Server 2008 R2 con KB 2780453 installato Windows Server 2012
DC Attivato Attivato Attivato
Nodo cluster Attivato Attivato Attivato
Server DFSR scrivibile Disattivato Attivato Attivato
Server DFSR di sola lettura Attivato Attivato Attivato

Disabilitare la funzionalità Arresta replica in Ripristino automatico

Per fare in modo che DFSR esegua il ripristino automatico quando viene rilevato un arresto del database dirty, modificare il valore del Registro di sistema seguente dopo l'installazione dell'hotfix 2780453 in Windows Server 2008 R2. È possibile distribuire questa modifica in tutte le versioni di Windows Server 2012. Se il valore non esiste, è necessario crearlo.

  • Chiave: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DFSR\Parameters
  • Valore: StopReplicationOnAutoRecovery
  • Tipo: Dword
  • Dati: 0

Riprendere la replica dopo la registrazione dell'evento 2213

Dopo la registrazione dell'evento 2213, un amministratore deve eseguire un comando WMIC per riprendere la replica. Le specifiche del comando vengono fornite nel testo dell'ID evento 2213.

Passaggio 1: Procedura di ripristino per l'ID evento 2213 connesso al server DFSR

  1. Eseguire il backup dei file in tutte le cartelle replicate nel volume. In caso contrario, potrebbe verificarsi una perdita di dati a causa di una risoluzione imprevista dei conflitti durante il ripristino delle cartelle replicate.

  2. Per riprendere la replica per questo volume, usare il ResumeReplication metodo WMI della DfsrVolumeConfig classe . Ad esempio, da un prompt dei comandi con privilegi elevati eseguire il comando seguente:

wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="E18D8280-2379-11E2-A5A0-806E6F6E6963" call ResumeReplication

Passaggio 2: Copiare il comando WMIC dal passaggio 2 nei passaggi di ripristino dell'ID evento 2213 e incollarlo in un prompt dei comandi con privilegi elevati

Quando il comando viene eseguito correttamente, restituisce i risultati seguenti:

wmic /namespace:\\root\microsoftdfs pathdfsrVolumeConfig where volumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919" call ResumeReplication

Executing(file://ww2008r2dc1/root/microsoftdfs:DfsrVolumeConfig.VolumeGuid=%22F1CF316E-6A40-11E2-A826-00155D41C919%22)-%3EResumeReplication()">\WW2008R2DC1\root\microsoftdfs:DfsrVolumeConfig.VolumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919")->ResumeReplication()
L'esecuzione del metodo ha avuto esito positivo. Parametri out:istanza di __PARAMETERS{ ReturnValue = 0;};

Per gli utenti di PowerShell, è necessario aggiungere virgolette singole al comando WMIC per eseguirlo da PowerShell, come indicato di seguito:

wmic /namespace:\\root\microsoftdfs pathdfsrVolumeConfig where 'volumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919"' call ResumeReplication

Passaggio 3: Verificare se gli ID evento 2212 e 2214 sono stati registrati

Controllare se gli ID evento 2212 e 2214 sono stati registrati nel server in cui è stato eseguito il comando di replica di ripresa. Nota aggiuntiva sul ripristino se è necessario reinizializzare una cartella replicata (o eseguire la sincronizzazione iniziale) dopo un arresto dirty, seguire questa procedura:

  1. Disabilitare la cartella replicata.
  2. Abilitare la replica usando la procedura descritta nei passaggi di ripristino precedenti per l'ID evento 2213 connesso alla sezione del server DFSR .
  3. Abilitare la cartella replicata.

Se si disabilita e si abilita la cartella replicata prima di eseguire il comando WMIC, la sincronizzazione iniziale non si verifica perché gestione volumi è offline.

Passaggi per ridurre le probabilità di un arresto sporco

In Windows, un servizio ha 30 secondi per essere arrestato dopo aver ricevuto una notifica di arresto. Dopo 30 secondi, Service Control Manager forza l'arresto del servizio. Per quanto riguarda il servizio DFSR, un server hub occupato potrebbe richiedere più di 30 secondi per eseguire il commit delle modifiche in sospeso nel database. Se il servizio DFSR non esegue il commit di tutte le modifiche nei 30 secondi assegnati da Gestione controllo servizi, il servizio viene chiuso forzatamente e viene attivato un ripristino di arresto dirty.

Anche le interruzioni dell'alimentazione o qualsiasi altro riavvio rigido di un server DFSR possono attivare un ripristino di arresto dirty. Per ridurre le probabilità di un arresto dirty, assicurarsi che i server DFSR siano connessi a un ups (Uninterruptible Power Supply) per consentire l'arresto normale.

Estendere i tempi di arresto del servizio

Nei server DFSR che richiedono più di 30 secondi per l'arresto, è possibile usare il valore WaitToKillServiceTimeout per estendere il periodo di tempo consentito per l'arresto di tutti i servizi.

Un server DSFR che richiede più tempo per l'arresto registra in genere gli eventi 2212 e 2214 nella maggior parte dei riavvii o riavvii del servizio. In alternativa, se il ripristino automatico da un arresto dirty è abilitato, l'evento 2213 viene connesso a ogni riavvio o riavvio del server del servizio DFSR.

  • Percorso: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
  • Valore: WaitToKillServiceTimeout
  • Tipo: Stringa
  • Dati: 300000

Questo valore è espresso in millisecondi. In questo esempio vengono visualizzati cinque minuti di tempo di arresto. Il valore può essere aumentato o ridotto in base alle esigenze. Questo valore influisce su tutti i servizi, non solo su DFSR. È consigliabile impostare questo valore sul valore più basso che offre ancora a DFSR il tempo sufficiente per l'arresto pulito. Usare il processo seguente per determinare per quanto tempo il servizio DFSR deve essere arrestato:

  1. Aggiungere il valore del Registro di sistema WaitToKillServiceTimeout con un'impostazione di 300000 millisecondi (5 minuti). Riavviare il server per abilitare l'impostazione.

    Importante

    Vedere la nota sull'installazione di 2549760 nella sezione Note seguenti su WaitToKillServiceTimeOut .

  2. Monitorare i riavvii successivi del server per gli eventi DFSR 1006 (DFSR si arresta) e 1008 (DFSR arrestato). Si noti il tempo trascorso tra gli eventi 1006 e 1008.

  3. Modificare il tempo consentito per l'arresto modificando il valore WaitToKillServiceTimeout in modo che rifletta più da vicino l'ora effettiva di arresto pulito di DSFR.

Note su WaitToKillServiceTimeOut

  • Il riavvio del server o il riavvio di DFSR più volte in una riga non fornirà un esempio adeguato del tempo necessario per l'arresto di DFSR. Per accumulare transazioni di database in sospeso, è necessario consentire l'esecuzione del tempo di esecuzione del servizio.

  • L'impostazione WaitToKillServiceTimeout ha un valore massimo di un'ora. Se l'impostazione supera un'ora, SCM ripristina l'impostazione predefinita di 30 secondi per l'arresto del servizio.

  • Per assicurarsi che SCM funzioni correttamente per quanto riguarda l'impostazione WaitToKillServiceTimeout, assicurarsi che l'hotfix 2549760 sia installato in Windows Server 2008 R2.