Un buzón dañado o corrupto puede tener el potencial de interrumpir el servicio por desmontar el almacén de información completo, lo que afecta a todos los usuarios en ese servidor. La cuarentena de buzones, una nueva funcionalidad de Exchange Server 2010, podrá ayudarnos a prevenir esta situación.
Mailbox Quarantine es una funcionalidad del Information Store de Exchange 2010 que, basado en valores que configuramos en la Registry, tiene la capacidad de detectar y aislar uno o más buzones puede podrían afectar la estabilidad del Information Store, por un tiempo determinado. Estos buzones se denominan Poisoned Mailboxes.
¿Cuándo un buzón es enviado a la cuarentena?
La cuarentena de un buzón puede suceder en dos ocasiones:
- Un thread trabajando en un mailbox crashea.
- Más de 5 threads asignados para procesar en un buzón, no reportaron avances por un período largo de tiempo.
¿Cómo funciona?
El store va a identificar con un tag el buzón que tiene el potencial de comprometer el store. Este tag incluye la cantidad de veces que el buzón causó este crash en el store y un time stamp. Si el Information Store fue impactado por un buzón, una clave en el registro se creará en el siguiente path:
HKLM\SYSTEM\CCS\Services\MSexchangeIS\Servername\Private-dbguid\Quarantined Mailboxes\ {Mailbox GUID}
Y contendrá los siguientes valores:
CrashCount: Es la cantidad de veces que el buzón impactó el store.
LastCrashTime: La última vez que lo hizo.
Cada vez que se monta una base de datos, el Information Store lee el regsitro para verificar si algún mailbox almacenado en esa base fue identificado. Si existe algún valor, entonces ese mailbox se pasará a cuarentena.
Por default, si un buzón fue identificado como amenaza 3 veces en 2 horas, entonces ese buzón estará en cuarentena por 6 horas.
Estas configuraciones pueden modificarse desde la siguiente key del registro:
HKLM\SYSTEM\CCS\Services\MSexchangeIS\ParameterSystem\Servername\Private-dbguid\Quarantined Mailboxes
Con los siguientes valores:
MailboxQuarantineCrashThreshold: Cantidad de veces que un buzón es tagueado antes de moverlo a la cuarentena.
MailboxQuarantineDurationInseconds: La cantidad de tiempo (en segundos) que el buzón permanecerá en la cuarentena antes que el Store lo libere.
NOTA: Estos valores no existen por default, deben crearse sólo si se pretende modificar el comportamiento por default.
¿Cómo nos damos cuenta de un buzón en cuarentena?
Sin una herramienta de monitoreo proactivo (como SCOM), el troubleshooting puede ser complejo. El usuario va a recibír un error bastante genérico, del tipo:
Cannot open your default e-mail folders. The attempt to log on to Microsoft Exchange has failed.
Intentando iniciar sesión desde el OWA, no va a ser muy diferente:
¿Porqué mencioné, entonces, las herramientas de monitoreo proactivo? Porque podemos monitorear dos cosas en particular:
- Cuando el store manda un buzón a la cuarentena, en ese momento se genera el evento 10018:
Log Name: Application
Source: MSExchangeIS
Event ID: 10018
Task Category: General
Level: Error
Description:
The mailbox for user /o=ESEUTIL/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=PabloV has been quarantined. Access to this mailbox will be restricted to administrative logons for the next 6 hours.
- La creación de la clave en el registro que mencioné más arriba: HKLM\SYSTEM\CCS\Services\MSexchangeIS\Servername\Private-dbguid\Quarantined Mailboxes\ {Mailbox guid}.
¿Cómo remover un buzón de la cuarentena manualmente?
Si no podemos esperar las 6 horas, entonces simplemente borrando la clave HKLM\SYSTEM\CCS\Services\MSexchangeIS\Servername\Private-dbguid\Quarantined Mailboxes\ {Mailbox guid} del registro, y desmontar y volver a montar la base es suficiente.