Artículo original publicado el martes, 5 de junio de 2012

*pero nunca te atreviste a preguntar

Si el funcionamiento de las copias de seguridad de datos de Exchange que usan el Servicio de instantáneas de volumen (VSS) te parece un poco complicado, has de saber que al menos no eres el único. Es posible que los administradores se pregunten: “¿Qué es todo eso de la inmovilización que veo en mis registros de eventos? ¿Qué es exactamente el VSS Writer de Exchange y qué hace en mis bases de datos? ¿Cómo puede crear una instantánea de una base de datos de 135 GB en menos de 60 segundos?

Si alguna vez te has hecho estas preguntas pero las respuestas solo han servido para confundirte aún más, aquí tienes una guía para aclarar algunas de esas cuestiones. Para comprender cómo funciona una copia de seguridad de VSS de Exchange, resulta fundamental entender los aspectos básicos de VSS. En TechNet y MSDN puedes encontrar información muy útil al respecto, así como el blog del equipo de Windows Server Core, “Ask the Core Team”. Mi estimado colega Randy Monteleone resume muy bien los aspectos básicos de VSS en su entrada, al tiempo que proporciona vínculos (también incluidos aquí) a algunos útiles documentos de TechNet sobre VSS:

Cómo realizar el seguimiento de VSS, por Randy Monteleone
http://blogs.technet.com/b/askcore/archive/2012/04/29/how-to-vss-tracing.aspx

Cómo funciona el Servicio de instantáneas de volumen
http://technet.microsoft.com/es-es/library/cc785914(WS.10).aspx

Servicio de instantáneas de volumen
http://technet.microsoft.com/es-es/library/ee923636.aspx

Si estás familiarizado al menos con los aspectos básicos de VSS, te interesará la 2ª parte de esta serie, en la que analizamos los eventos que se producen en una copia de seguridad de VSS de Exchange y cómo los registra Exchange en el registro de eventos de aplicaciones.

Por si necesitas conocer o recordar rápidamente los aspectos básicos de VSS y el Writer de Exchange, los he condensado en los siguientes puntos visuales para complementar las referencias anteriores.

Instantáneas

Ten en cuenta que las soluciones de VSS para Exchange (y para todas las aplicaciones) varían en gran medida entre distintas configuraciones de hardware y software. Hay instantáneas clonadas o COW, soluciones de hardware y software, en definitiva, una gran variedad de tecnologías basadas en el subsistema de VSS central. Para comprender las copias de seguridad de Exchange, solo vamos a ilustrar un tipo específico de solución de todas esas. A continuación, se describe lo que son las instantáneas de "copia en escritura" o "COW".

En una copia de seguridad de VSS de Exchange basada en una instantánea COW, tenemos la creación de instantáneas de los discos en los que se hospedan los datos de Exchange. Independientemente de de qué se haga la copia seguridad, incluso si se trata de un único archivo de una base de datos y algunos registros, VSS crea una instantánea del disco completo en el que están los datos almacenados. Si los datos residen en varios discos, como cuando una base de datos de Exchange está en un disco y los registros en otro, VSS creará instantáneas de todos los discos.

¿Y qué es una “instantánea”? Una instantánea de volumen es un área de espacio dentro de lo que se denomina “almacenamiento de instantáneas”, que, en sí misma, es un área generalmente pequeña de espacio en el disco que se encuentra en su carpeta Información del volumen de sistema.

Desde el momento en que se crea la instantánea de un disco, no se podrá escribir ningún cambio en ningún bloque de datos hasta que se escriba una copia de ese bloque de datos antes del cambio (tal y como era cuando se creó la instantánea) en el área de diferenciación del almacenamiento de instantáneas. De este modo, se conservarán los datos del disco del momento en que se creó la instantánea, bloque a bloque, en el área de almacenamiento de instantáneas. Los datos de la instantánea estarán disponibles del disco original, si los bloques de datos solicitados no han cambiado, o del área de diferenciación si sí han cambiado. Los aspectos fundamentas se ilustran abajo:

El disco E: tiene una instantánea creada a las 1 pm:

imagen

Un minuto después se escribe en uno de los bloques, pero no antes de que se conserven los datos tal y como estaban a las 1 pm en el área de diferenciación:

imagen

Como el disco real cambia los datos como estaban a las 1 pm, se escribe en el almacenamiento de instantáneas, conservando así un registro del disco tal y como estaba en ese momento:

imagen

Siguiente paso:

imagen

En la figura superior, un servidor de copia de seguridad solicita datos de la instantánea de los bloques 2 y 53. El bloque 53 de las 1 pm se conserva en la instantánea, por lo que se copia directamente del almacenamiento de instantáneas. El bloque 2 no se ha modificado desde las 1 pm, por lo que se copia mediante el controlador de VSS VOLSNAP.SYS, que opera como un controlador de filtro bajo el controlador del sistema de archivos NTFS.SYS. Al operar en la pila IRP (la parte de la memoria kernel que administra la E/S del disco) bajo el sistema de archivos, puede leer bloques de datos sin que NTFS objete que hay un archivo en uso. VOLSNAP.SYS también es responsable de garantizar que los bloques se copien en el almacenamiento de instantáneas si se solicita escribir en ellos, de ahí el nombre “Copia en escritura”. En el siguiente vínculo, Tim McMichael proporciona más información sobre VOLSNAP.SYS:

Exchange / VSS / y el tamaño del bloque diferencial…
http://blogs.technet.com/b/timmcmic/archive/2011/07/12/exchange-vss-and-differential-block-size.aspx

Ahora que hemos explicado los aspectos básicos de una instantánea COW, vamos a ver cómo funciona con Exchange, junto con otros conceptos principales:

Writer de Microsoft Exchange

Ahora sabemos que de todos los discos que almacenan datos de Exchange, VSS crea una instantánea. Pero ¿cómo sabe una aplicación de copia de seguridad qué discos son esos? A menudo, un administrador selecciona bases de datos para copia de seguridad sin especificar en qué discos están almacenados sus archivos de datos. En tal caso, se necesita algo para informar de dónde están los archivos de datos y, por ende, de qué discos debe VSS crear instantáneas. Esta información también indica a una aplicación de copia de seguridad, también denominada solicitante de VSS, qué archivos de datos concretos se deben copiar de las instantáneas para su preservación en los medios de copia de seguridad, ya que no deseamos copiar nada del disco que no necesitemos.

El mecanismo que se usa aquí es el Writer VSS de Microsoft Exchange. Como el escritor de VSS de cualquier aplicación (hay muchos, simplemente ejecuta VSSADMIN LIST WRITERS para verlos), su primera función es indicar a la aplicación de copia de seguridad de qué datos se necesita realizar una copia de seguridad, especialmente del archivo EDB, los registros y el archivo de punto de control de cada base de datos solicitada. La información sobre estos archivos de datos de Exchange específicos se conoce como metadatos del escritor.

imagen

(haz clic en la miniatura para ver la versión en tamaño completo)

En la figura de arriba vemos los pasos iniciales de una copia de seguridad de Exchange. El Writer de Exchange indica al servidor de copia de seguridad (el solicitante) que hay una base de datos ubicada en una carpeta en el volumen E: y que los registros de transacción para esa base de datos se encuentran en una carpeta en D:. En base a esa información, la aplicación de copia de seguridad solicitará instantáneas de los volúmenes D: y E: cuando el trabajo progrese.

El VSS Writer de Exchange cumple otro rol esencial además de proporcionar metadatos a los solicitantes de VSS. También tiene la tarea de detener la escritura en bases de datos y registros del disco o “inmovilizarlos” durante el tiempo necesario para crear las instantáneas requeridas. Una instantánea COW no suele tardar mucho en crearse pues, en principio, solo consiste en la designación de un área en el almacenamiento de instantáneas en la que se preserven los bloques cuando cambien en el disco real. A pesar de que esta operación es relativamente rápida, puede tardar hasta un minuto, tiempo suficiente para que los bloques de datos cambien en un disco entre el comienzo y la finalización del proceso de creación de la instantánea. Si los bloques de datos cambian pero su versión original a la hora exacta en la que comenzó la creación de la instantánea no se conserva, esos bloques pueden resultar incoherentes respecto a otros datos de instantánea, especialmente entre registros, bases de datos y archivos de punto de control. Por lo tanto, el Writer de Exchange impide que el servicio Almacén de información o el Servicio de replicación de Microsoft Exchange escriban lo que hay en la memoria RAM en los archivos de base de datos inmovilizados. En el caso del servicio Almacén de información, el archivo de registro de transacción actual (Exx.log) se cierra antes de que el Writer de Exchange permita a VSS realizar la instantánea. De este modo, se garantiza que nada cambie en los archivos de datos entre el comienzo de la instantánea y su finalización, momento en el que las bases de datos se “inmovilizan”. Cuando las bases de datos se inmovilizan, se permite a la E/S de escritura de la memoria RAM ir al disco de nuevo.

Aquí puedes encontrar más información sobre cómo interactúa el escritor de VSS de una aplicación con VSS en lo relativo a la inmovilización y al tiempo necesario para que se complete una instantánea:

Método CVssWriter::OnFreeze
http://msdn.microsoft.com/es-es/library/windows/desktop/aa381563(v=vs.85).aspx

La última responsabilidad principal del Writer de Exchange es indicar al servicio Almacén de información (o al Servicio de replicación de Microsoft Exchange en el caso de una copia de seguridad pasiva) que la copia de seguridad se ha completado y, si corresponde, llevar a cabo tareas posteriores a la copia de seguridad, como el truncamiento de registros, marcar la base de datos para indicar que ya no tiene una copia de seguridad en curso, etc.

En la segunda y la tercera parte de esta serie, analizaremos paso a paso cómo los elementos descritos anteriormente se relacionan en una copia de seguridad de Exchange, cómo se generan los eventos del registro de aplicaciones y compararemos el proceso para una base de datos montada con el de una copia de base de datos pasiva.

Quiero expresar mi agradecimiento por su colaboración en el contenido de estas entradas a Michael Blanton, Tim McMichael, Randy Monteleone, Dave Vespa y Tom Kern.

Jesse Tedoff

Esta entrada de blog es una traducción. Puedes consultar el artículo original en Everything You Need to Know About Exchange Backups* - Part 1