Using Microsoft’s Volume Shadow Copy Technology for Consistent Backups
Al crear una copia de seguridad de un equipo virtual o físico con aplicaciones en ejecución, especialmente aplicaciones que escriben datos de forma intensiva en archivos y bases de datos, es esencial garantizar la coherencia de los datos de copia de seguridad. Hacer backups coherentes facilita las recuperaciones sin corrupción de datos ni retrasos. Para ello, Microsoft desarrolló la tecnología VSS.
Esta entrada de blog explica qué es Volume Shadow Copy Service (VSS), cómo funciona y por qué esta tecnología es importante para hacer backup de máquinas virtuales y físicas basadas en Windows.
¿Qué es el VSS?
Volume Shadow copy Service (VSS), una función nativa de los sistemas operativos Windows, facilita la creación de backups coherentes con las aplicaciones. Para hacer backup de datos coherentes, ocurre lo siguiente:
- VSS detiene temporalmente las operaciones de escritura realizadas por las aplicaciones.
- Los búferes de la memoria se escriben en el disco, es decir, se vacían y el sistema de archivos se congela.
- Una instantánea de volumen, también llamada copia sombra, se crea en el sistema operativo Windows.
Volume Shadow Copy, también conocido como Volume Snapshot Service, es un conjunto de interfaces COM (Component Object Model) en Windows, que proporcionan el marco para crear backups coherentes para diferentes aplicaciones. VSS se lanzó por primera vez con Windows XP y Windows Server 2003.
Por qué necesita la tecnología VSS
La coherencia de los datos de las aplicaciones es importante para hacer backups de máquinas virtuales y servidores físicos. La coherencia garantiza que las aplicaciones que se ejecutan en máquinas virtuales o físicas son totalmente funcionales después de restaurarlas a partir de una copia de seguridad.
Sin VSS, se obtiene un backup inconsistente. Una copia de seguridad de este tipo se crea simplemente copiando cada bloque en el estado en el que se encuentra en el momento de ser copiado. Supongamos que un archivo es utilizado continuamente por una aplicación como una base de datos o una aplicación de sistema. Esta aplicación cambia continuamente los datos del archivo abierto escribiendo/borrando bloques. Mientras se copia la primera parte del archivo, los bloques utilizados por otras partes del archivo van cambiando. Para cuando las otras partes del archivo se copian en el repositorio de backups, los bloques de la primera parte ya han cambiado. Lo que se obtiene son bloques de datos que no son coherentes y no representan un único punto específico en el tiempo.
Una forma de evitar esta situación es hacer backups de máquinas virtuales basados en instantáneas. Cuando se inicia el proceso de backup, se toma una instantánea, es decir, una copia exacta de la máquina virtual. Durante este proceso, todos los discos VM (que se representan como archivos.vmdk en entornos VMware) pasan a ser de sólo lectura. Para almacenar los cambios realizados durante el proceso de backups en el disco maestro, VMware ESXi crea un archivo delta conectado al archivo principal.vmdk. Una vez creado el archivo delta, el software de backup comienza a copiar los datos del archivo.vmdk de sólo lectura. Una vez finalizado el proceso de backup, el archivo delta se fusiona con el archivo.vmdk.
Este enfoque puede funcionar bien para sistemas de archivos con una carga no muy elevada, como el almacenamiento interno de archivos o los servidores web. Sin embargo, si el proceso de backups se inicia en el momento en que se están ejecutando determinadas transacciones y se están realizando operaciones de E/S (entrada/salida), pueden perderse datos. Cuando se utilizan aplicaciones o bases de datos como Microsoft SQL Server, Active Directory o Exchange Server, no se puede simplemente cerrar el archivo y luego añadirle datos. En este caso, Volume Shadow Copy Service (VSS) puede ayudar. Esta tecnología permite crear copias puntuales de archivos que están abiertos y en uso sin comprometer la integridad ni la usabilidad de estas copias.
Cómo funciona el servicio Volume Shadow Copy
Para entender cómo funciona el VSS, primero tenemos que repasar los componentes que integran esta función. Los componentes de alto nivel del VSS son:
- El proveedor de V SS es el componente central de VSS, que crea instantáneas de volúmenes. El proveedor de VSS puede tener una implementación de software o hardware. El proveedor de software de copia en escritura VSS está incluido en el sistema operativo Windows. Los proveedores de hardware suelen utilizarse con almacenamiento SAN (red de área de almacenamiento). Los proveedores de hardware descargan el sistema operativo anfitrión al crear una copia sombra.
- Los escritores son componentes de software que escriben datos en archivos y bases de datos para garantizar su coherencia. Cada aplicación compatible con VSS añade su escritor al sistema operativo durante la instalación. Ejemplos de aplicaciones que proporcionan un escritor VSS son Microsoft SQL Server y Exchange Server.
- El solicitante es un componente de software que ordena al proveedor de VSS que empiece o deje de funcionar (creando, borrando o importando instantáneas). El solicitante puede ser un componente nativo de Windows (como NTBackup o Snapshot Manager para Hyper-V) o una aplicación de terceros como un software de backup.
- El servicio VSS es un componente del sistema operativo que garantiza que todos los demás componentes puedan comunicarse y trabajar entre sí.
Las instantáneas se toman a nivel de volumen, y VSS funciona con bloques (y los bloques son utilizados por los archivos). Por eso no se pueden hacer instantáneas de archivos o carpetas. Una copia sombra puede almacenarse en el mismo volumen o en otro. El lugar de un volumen asignado al almacenamiento de las instantáneas se denomina área diff.
La carpeta System Volume Information se utiliza para almacenar los archivos de copia shadow de VSS. Los archivos tienen identificadores como 3517271a-d214-3a47-c5ea-01137a4fe675.
La tecnología VSS puede utilizarse como herramienta nativa de Windows para guardar copias puntuales (instantáneas) de volúmenes de disco. Las copias permiten revertir los cambios y volver al estado guardado de todo el volumen o de archivos concretos. No obstante, para una protección de datos más fiable, se recomienda hacer un verdadero backups que se guarde en un soporte externo.
VSS es un procedimiento incremental: Windows puede crear varias instantáneas de volumen una tras otra. Tras crear la primera copia sombra, VSS realiza un seguimiento de los cambios en los discos dividiendo los datos en bloques de 16 KB. Si hay cambios en el disco, el servicio escribe este bloque completo en una copia sombra. Como resultado, no es necesario copiar todo el conjunto de datos con cada nueva instantánea, y sólo se copian los bloques modificados.
Principales requisitos y limitaciones del VSS:
- Se necesitan al menos 300 MB de espacio en disco para crear instantáneas de VSS.
- El número máximo de instantáneas de volumen es de 64 por defecto.
- El sistema Windows asigna el 10% del espacio del volumen a las instantáneas.
Tenga en cuenta que las instantáneas de VSS activadas por una aplicación de backup suelen eliminarse una vez finalizado el job de backups.
Herramientas nativas para gestionar las instantáneas de VSS
Puede utilizar las herramientas nativas de Windows para gestionar las instantáneas de volumen. Saber cómo funcionan con las instantáneas puede ayudar a comprender mejor la tecnología VSS y a solucionar posibles problemas (por ejemplo, una instantánea VSS temporal que no se elimina tras crear una copia de seguridad completa).
Algunas opciones de VSS están disponibles en la GUI de Windows, pero todas las opciones son accesibles en la línea de comandos, que es más interesante para nosotros. Existen dos herramientas VSS que puede utilizar en Windows PowerShell o CMD:
- vssadmin – disponible en todas las versiones de Windows a partir de Windows XP (incluido Windows 10) y excepto Windows 8.
- diskshadow – disponible sólo en las versiones de Windows Server. Se trata de una implementación avanzada de vssadmin, que permite no sólo trabajar en modo interactivo, sino también crear scripts.
Tenga en cuenta que estas dos utilidades son diferentes y funcionan en contextos distintos. Una copia shadow creada en vssadmin no puede ser gestionada en diskshadow y viceversa. Puedes ver la instantánea creada con una herramienta diferente, pero no puedes realizar ninguna acción con ella.
Volume Shadow Copy Service API está disponible para permitir que las aplicaciones de backup utilicen VSS y creen backups coherentes con las aplicaciones para garantizar la coherencia de los datos de backup.
Las máquinas virtuales VMware que ejecutan Windows utilizan el componente VMware VSS como controlador VSS en un sistema operativo invitado Windows para el quiescing. El controlador se instala al instalar VMware Tools. En otros casos, cuando se utilizan versiones antiguas de Windows, se emplea un controlador SYNC. Esta es una lista de sistemas operativos invitados compatibles con la coherencia de aplicaciones en entornos VMware.
Cómo se crea una copia oculta
Una vez creada una copia sombra (instantánea de volumen), su tamaño es de 0 bytes. Cuando se escriben datos nuevos, los datos se escriben en el disco (donde normalmente deberían estar), pero los datos antiguos se escriben en una copia sombra para que puedas restaurar esos datos antiguos más tarde. Como resultado, el tamaño de la copia sombra crece.
Hay dos enfoques principales para escribir datos al crear una instantánea:
- Redirección en escritura (RoW): Escritura de nuevos bloques en una instantánea (shadow copy) y almacenamiento de metadatos con información sobre en qué bloques del disco deben escribirse. Este enfoque implica una escritura rápida de los datos, pero una lectura lenta. Si necesitas volver al estado inicial en el que se creó la instantánea, tardarás unos segundos en borrar una instantánea (casi instantáneamente). El enfoque RoW se utiliza para crear instantáneas de discos virtuales VM (VMDK) en VMware ESXi y VMware Workstation.
- Copia en Escritura (CoW): Escritura de nuevos bloques en el lugar necesario del disco y envío del contenido de los bloques reescritos a una instantánea. Escribir es lento, pero leer es rápido. Las instantáneas anteriores (estados de datos previos) se borran en unos segundos (casi instantáneamente). El enfoque CoW se utiliza para las instantáneas VSS.
Con tantas aplicaciones diferentes que pueden escribir datos en discos, Microsoft creó una interfaz unificada con VSS para notificar a todas las aplicaciones que se va a crear una instantánea después de iniciar la creación de instantáneas. La idea del mensaje de notificación es: Un sistema creará una instantánea – detenga sus actividades de escritura y vacíe los buffers de escritura en los discos para adoptar los datos al estado consistente.
El flujo de trabajo para crear una instantánea de VSS es el siguiente:
- El solicitante de VSS comprueba los servicios disponibles con los que puede comunicarse, enumera los escritores y recopila los metadatos.
- Tras recopilar una lista de escritores, el solicitante se comunica con el proveedor de VSS e indica a una instantánea qué datos desea crear y dónde debe ubicarse la instantánea. En la mayoría de los casos, la instantánea se encuentra en el mismo volumen del disco original. En casos alternativos, los proveedores de hardware SAN pueden crear un volumen independiente para una instantánea denominado instantánea de almacenamiento.
-
Prepararse para hacer backups. Este paso implica solicitar el estado real de los escritores VSS (después de obtener los metadatos) y prepararse para la operación más importante, cuando los escritores deben actuar uno tras otro. Se notifica a los redactores que deben prepararse para la creación de instantáneas. El búfer del sistema se vacía y la aplicación se congela para garantizar que se pueda realizar una copia de datos coherente. Por defecto, cada escritor debe encajar en el tiempo que se le ha asignado, que es de 60 segundos. Microsoft Exchange Server sólo dispone de 20 segundos para esta operación (este tiempo lo establece Microsoft).
Nota: 20 segundos es un periodo corto. Si una aplicación no cabe en este tiempo, los escritores devuelven un error y la instantánea no se toma. Si el rendimiento del almacenamiento no es suficiente para ajustarse a este límite de tiempo, puedes probar a actualizar el hardware para solucionar este problema. Por ejemplo, puedes cambiar los dispositivos de almacenamiento HDD por SSD. Como alternativa, puede intentar migrar otras cargas de trabajo a otro almacenamiento y utilizar almacenamiento dedicado sólo para el equipo que ejecuta Microsoft Exchange Server. Compruebe los registros para detectar qué escritor falló en la tarea de creación de instantáneas.
-
Si todo está bien, y la actividad del sistema está congelada, entonces VSS dice que el proveedor puede crear una copia sombra. Sólo hay 10 segundos para crear una instantánea. Las solicitudes de E/S del sistema de archivos no están disponibles temporalmente durante este periodo. En este momento también se puede crear una instantánea de la máquina virtual. Una vez transcurridos los 10 segundos, todos los escritores se descongelan y las operaciones de entrada/salida (E/S) vuelven a estar activas.
Nota: Si los proveedores de VSS tardan más de 10 segundos en consignar la copia sombra, la operación falla.
- VSS indica a los escritores que las aplicaciones pueden descongelar las peticiones de E/S y continuar escribiendo datos en los discos. Si utilizamos una aplicación de backup y se ha creado una copia de seguridad utilizando el servicio VSS de Windows, se puede eliminar la instantánea VSS. Esta operación puede ser realizada por la propia aplicación de backups. Alternativamente, puede eliminar una instantánea de volumen con diskshadow o vssadmin.
Si tiene problemas con VSS, un reinicio de la máquina puede solucionar los problemas en muchos casos cuando otros métodos no funcionan. Algunos problemas relacionados con las limitaciones de tiempo (por ejemplo, 10 segundos para crear una instantánea) pueden solucionarse actualizando el hardware, incluidos los dispositivos de disco, o reduciendo las cargas.
Pruebe a crear una instantánea manualmente y compruebe si le caben los 20 segundos asignados (utilizando Exchange Server como ejemplo). En caso de fallo, reinicie, reduzca las cargas y vuelva a intentarlo.
A partir de Windows Server 2012, VSS es compatible con recursos compartidos de archivos SMB en Windows. La tecnología VSS es muy útil con los recursos compartidos, ya que los archivos pueden ser escritos continuamente por usuarios y aplicaciones, haciendo que los backups de recursos compartidos sean un reto sin VSS. NAKIVO Backup & Replication 10.7 es compatible con backups de recursos compartidos.
Funcionamiento del servicio Volume Shadow Copy en la solución NAKIVO
Hemos explorado cómo funciona el VSS en general. Veamos ahora cómo funciona la tecnología VSS al crear backups de VMware vSphere VM con software de backup dedicado como NAKIVO Backup & Replication.
En pocas palabras, el Servicio Volume Shadow Copy funciona de la siguiente manera: El solicitante inicia el proveedor de VSS. El proveedor redirige a los escritores para que escriban los datos en un archivo de registro y comienza a crear la instantánea del volumen. Después de que el solicitante envíe la señal de parada al proveedor (normalmente después de que la instantánea esté lista), éste empieza a mover los datos del archivo de registro al volumen.
En este caso, NAKIVO Backup & Replication se convierte en un solicitante de VSS al hacer backups de una VMware vSphere VM utilizando VSS.
- Antes de iniciar el backup de la máquina virtual, la solución NAKIVO escribe los datos a través de su escritor VSS.
- Cuando se inicia la copia de seguridad, NAKIVO Backup & Replication solicita al proveedor de VSS que empiece a funcionar. El escritor redirige los datos al archivo de registro mientras el volumen se «congela».
- NAKIVO Backup & Replication comienza a crear una instantánea en la capa VM. Puede tardar desde unos segundos hasta varios minutos, dependiendo de la carga de almacenamiento VMFS. Durante este tiempo, el escritor continúa escribiendo datos en el archivo de registro.
- Se ha creado correctamente una instantánea de la máquina virtual. NAKIVO Backup & Replication, como solicitante, envía la señal al proveedor para que deje de funcionar.
- El proveedor de VSS traslada los cambios del archivo de registro al volumen. NAKIVO Backup & Replication copia el bloque de datos de la instantánea de la máquina virtual en el repositorio de backups.
Puede configurar el modo App-aware para la coherencia de los datos de backup en el asistente, en el paso Opciones. De esta forma se habilita VSS en una máquina que ejecuta Windows para hacer backup de esta máquina.
Conclusión
Volume Shadow Copy Service (VSS) es una gran tecnología para mantener los backups de máquinas virtuales coherentes, pero sólo funciona en máquinas basadas en Windows. Para hacer backups coherentes de máquinas basadas en Linux, debes implementar scripts especiales de precongelación y postdescongelación. La solución NAKIVO también proporciona backups coherentes automatizados para servidores y estaciones de trabajo Linux.