Follow us on Twitter
Follow us on YouTube
Would you like to suggest a topic for the Exchange team to blog about? Send suggestions to us.
Artículo original publicado el viernes, 1 de junio de 2012
Durante los últimos meses, hemos recibido informes de un excesivo crecimiento de la carpeta Elementos recuperables (a la que muchos denominan Contenedor, pero nosotros ya no la llamamos así). Existen dos escenarios principales que pueden contribuir a este crecimiento excesivo.
La recuperación de elementos únicos y la retención por juicio permiten conservar los datos del buzón. Si no conoces estas características, consulta mi entrada anterior sobre la recuperación de elementos únicos en Exchange 2010 para obtener más información.
Además de conservar los datos del buzón, tanto la recuperación de elementos únicos como la retención por juicio habilitan el control de versiones. Fundamentalmente, cuando un elemento sufre un cambio, se realiza una copia en escritura (COW) para preservar la versión original del elemento. El elemento original se almacena en la carpeta Elementos recuperables\Versiones. Los usuarios no pueden ver esta carpeta.
Dado que Exchange 2010 incluye un cambio en el modo en que los clientes se conectan y tienen acceso a los datos relacionados con el buzón, la actividad de copia en escritura se produce en la capa Objetos de sistema de Exchange (XSO) del servidor de acceso de cliente.
El comportamiento de la copia en escritura puede provocar un crecimiento excesivo. Hemos descubierto que el siguiente escenario con Microsoft Outlook es una causa principal de una excesiva copia en escritura:
Vaya, es verdad.
Dado que los datos adjuntos forman parte del mensaje, no tiene sentido crear una copia para cada dato adjunto del elemento. Básicamente, cuando guardas un elemento con un dato adjunto, Outlook realiza lo siguiente:
La copia en escritura se produce tanto con SaveAttachment como con SaveMessage. Al profundizar en el código, descubrimos que la llamada a SaveAttachment llama en última instancia al método Flush (vaciado) (mediante el cual el cliente sincroniza el estado con el servidor) en el mensaje con el que está asociado tras guardar el dato adjunto. Es esta llamada a Flush la que señala al código de copia en escritura que actúe.
Tras un análisis más exhaustivo, observamos que la lógica de copia en escritura se desencadena en todas las llamadas a Flush. Este fue un descubrimiento muy esclarecedor ya que Flush se puede iniciar en múltiples escenarios, lo que puede ser la causa potencial de los miles de eventos de copia en escritura que vieron varios clientes en sus entornos.
El registro de versiones de calendario es el proceso por el cual los cambios del calendario que se producen en un buzón se guardan mediante copia en escritura. Esta característica se introdujo en Exchange 2010 para ayudar a solucionar problemas y reparar incidencias de fiabilidad del calendario.
El diseño del registro de versiones de calendario está hecho para que se cree un registro cada vez que se modifica un elemento del calendario. Estos registros proporcionan un historial de la reunión. Puedes usar el cmdlet Get-CalendarDiagnosticLog para revisar el historial y determinar qué clientes realizaron una acción destructiva. El Asistente para reparar calendarios hace un segundo uso del registro de versiones de calendario, al utilizar los registros para intentar determinar el historial de un determinado elemento de calendario para detectar incoherencias.
El registro de versiones de calendario está habilitado de forma predeterminada en los buzones en Exchange 2010. Es posible deshabilitarlo o habilitarlo en un buzón mediante la propiedad CalendarVersionStoreDisabled. Ten en cuenta que el nombre de la propiedad es CalendarVersionStoreDisabled, por lo que el valor predeterminado $false indica que el registro de versiones de calendario está habilitado de forma predeterminada. El proceso para almacenar copias de los elementos del calendario es distinto en función de la configuración del buzón:
Debido al problema mencionado anteriormente de que la lógica de copia en escritura no distinguía entre operaciones de vaciado y de guardado, en ciertos casos, el registro de versiones de calendario puede consumir un elevado porcentaje de la cuota de la carpeta Elementos recuperables (recuerda que el umbral de advertencia está en 20 GB y la cuota máxima es de 30 GB).
Si el tamaño de la carpeta es superior al valor de RecoverableItemsWarningQuota, el registro de versiones de calendario se deshabilitará para el buzón. El valor RecoverableItemsWarningQuota que se use depende de la configuración del buzón:
Cuando el registro de versiones de calendario se encuentra deshabilitado, se genera el siguiente evento en el registro de eventos de la aplicación en el servidor de acceso de cliente:
Identificador de evento: 5003 Origen: Almacenamiento de nivel intermedio de MSExchange Categoría de tarea: Copia en escritura Nivel: Información Descripción: El buzón del usuario <legacyExchangeDN> ha superado la cuota de advertencia del contenedor. El registro de calendario se ha deshabilitado para el buzón.
Y eso no es todo lo que hacemos. No me detendré en los aspectos específicos en esta temprana fase del desarrollo, pero estamos trabajando para mejorar el registro de versiones de calendario a fin de reducir el impacto que tiene esta característica en tu implementación. Compartiré más información en este blog en cuanto pueda.
Ross Smith IV Jefe principal de programas Experiencia del usuario de Exchange
Esta entrada de blog es una traducción. Puedes consultar el artículo original en Holy COW! Changes to Recoverable Items versioning in Exchange 2010 SP2 RU3