Instantáneas de volumen (VSS): el mecanismo y la práctica — por qué se puede hacer copia de seguridad de archivos en uso

· Actualizado el: · · Windows, VSS, Copias de seguridad, Archivos, NTFS, Aplicaciones de negocio, Investigación de fallos, Sistemas de información

Historial de revisiones (primera versión, publicada el 1 Aug 2026)
Primera publicación
Citar este artículo(DOI (archivo registrado): 10.5281/zenodo.22175783)

Los DOI siguientes remiten a versiones ya archivadas y pueden diferir del texto actual. Para citar el texto actual, utilice la URL de esta página.

Go Komura (2026). Instantáneas de volumen (VSS): el mecanismo y la práctica — por qué se puede hacer copia de seguridad de archivos en uso. KomuraSoft LLC. https://comcomponent.com/es/blog/vss-volume-shadow-copy-guide/

DOI (archivo registrado)
10.5281/zenodo.22175783
DOI (última versión registrada)
10.5281/zenodo.22175784

«Intenté copiar un archivo que otra aplicación tenía abierto y me dijo que el proceso no puede acceder al archivo». «Me pidieron hacer copia de seguridad de la carpeta de datos sin detener el sistema central». «¿Por qué el software de copia de seguridad puede copiar tranquilamente un archivo de base de datos en uso?» — tanto en el desarrollo de aplicaciones de negocio como en la operación de servidores de archivos, tarde o temprano se tropieza con estas preguntas.

En el centro de la respuesta está el Servicio de instantáneas de volumen (VSS: Volume Shadow Copy Service). Es un mecanismo integrado en Windows desde hace más de veinte años, y sobre él se apoyan Windows Server Backup, Restaurar sistema y prácticamente todo el software de copia de seguridad comercial.1

Este artículo separa «el mecanismo que permite copiar un archivo aunque esté en uso» de «hasta dónde protege realmente esa copia». El público son los desarrolladores de aplicaciones de negocio a quienes se les pide una «función para copiar archivos en uso» y el personal de sistemas que opera las copias de seguridad de servidores de archivos y PC de trabajo.

Empieza por la conclusión y una guía de lectura por objetivo, y a continuación explica los actores de VSS, cómo se guarda, qué comprobar en la operación, las decisiones del desarrollador y las trampas, en ese orden. Las explicaciones técnicas se basan en fuentes primarias a agosto de 2026.

La serie «Las profundidades de la E/S de Windows» analizó el interior del administrador de caché y de NTFS. Este artículo es su continuación y trata la capa de «instantánea» que se intercala justo por encima del volumen.

1. Primero la conclusión

VSS es el mecanismo que, en coordinación con el escritor, detiene un instante las escrituras de la aplicación para tomar la copia de seguridad a partir de la copia de ese momento. Crear una instantánea no hace innecesaria la copia de seguridad en otro medio.

Qué hace este mecanismo

VSS es un conjunto de interfaces COM y un servicio de coordinación que permite hacer copia de seguridad de un volumen mientras las aplicaciones siguen escribiendo en él. Está integrado desde Windows XP.2

Hay tres roles más un coordinador. El servicio VSS intermedia entre el solicitante que pide la instantánea (el software de copia de seguridad), el escritor que garantiza la coherencia de los datos del lado de la aplicación (SQL Server, por ejemplo) y el proveedor que crea realmente la instantánea.1

El punto de coherencia se crea con la secuencia «congelación de los escritores (máximo 60 segundos) → creación de la instantánea (en 10 segundos o menos) → descongelación». Si se supera el tiempo límite, la creación se cancela y el solicitante lo intenta de nuevo.1

Separar cómo se guarda de qué coherencia se garantiza

El proveedor de sistema estándar de Windows usa copy-on-write. En lugar de duplicar todo el volumen, reserva en el área de diferencias (diff area), justo antes de reescribirlos, únicamente los bloques que se modifican después de la instantánea. El área de diferencias tiene que estar en un volumen NTFS.1

Que el escritor coopere o no cambia la calidad de la copia. Una instantánea sin cooperación equivale al «disco en el instante en que se corta la alimentación» (coherencia ante bloqueos, crash consistent); con cooperación, los escritores rotan registros y vacían cachés de antemano, y dejan un estado coherente que la propia aplicación garantiza como recuperable (coherencia de aplicación, application consistent).31

En operación y en desarrollo se comprueban cosas distintas

En operación, la herramienta es vssadmin. Con list shadows / list writers / list shadowstorage se ve el estado actual, y con resize shadowstorage se ajusta el límite del área de diferencias. Cuando el área de diferencias se agota, las instantáneas más antiguas se eliminan en silencio.451

Incorporar un solicitante de VSS a una aplicación propia es un trabajo considerable. Es una API nativa basada en COM, sin envoltorio oficial para .NET. En la mayoría de los casos bastan los reintentos, ajustar el modo de uso compartido o una parada breve; si de verdad se necesita VSS, la solución práctica es un script de DiskShadow (solo en Windows Server).67

La instantánea no es en sí una copia de seguridad. Como la diferencia copy-on-write depende de los bloques intactos del volumen original, no ofrece ninguna protección ante un fallo que se lleve el volumen original entero, como una avería de disco o un robo. Tampoco se puede confiar en ella frente al ransomware, por la eliminación de instantáneas (apartado 7.3) o el agotamiento del área de diferencias por reescrituras masivas (apartado 7.4). Solo cobra sentido combinada con una copia de seguridad en otro medio.1

Lectura por objetivo o síntoma

Lo que quiere saber o en lo que está atascado Dónde leer primero
Por qué un archivo en uso no se puede copiar de forma ordinaria Capítulo 2: tres barreras — violación de uso compartido, coherencia y operación
Cómo se reparten los roles de VSS y por qué se puede crear una copia en tan poco tiempo Capítulo 3: los actores, 4.1: copy-on-write, 4.2: cómo se crea el punto de coherencia
La diferencia entre «usamos VSS» y «tenemos una copia de seguridad coherente» 4.3: la cooperación del escritor cambia la coherencia
La copia de seguridad falla con un error de VSS Capítulo 5: comandos de comprobación, 7.2: aislar errores de escritor
Han desaparecido las Versiones anteriores, o quiere revisar el periodo de retención 5.1: Versiones anteriores, 7.4: vigilancia del área de diferencias y de las pérdidas
Duda si incorporar VSS a una aplicación propia Empiece por 6.2: tabla de decisión según el requisito, y después 6.1: solicitante y 6.3: escritor
Si las instantáneas bastan por sí solas frente a fallos y ataques Capítulo 7: diferencia con la copia de seguridad y trampas de operación

Quien quiera entender el mecanismo, lea desde el capítulo 2; quien opere el entorno, los capítulos 5 y 7; quien desarrolle, la tabla de decisión del 6.2.

En el diagrama, una línea continua marca una relación que siempre se cumple y una línea discontinua una relación condicional (las condiciones están en la explicación de cada relación en la página de detalle). La lista completa de relaciones (26 en total, con evidencia y grado de certeza) y las definiciones de los conceptos principales están reunidas en la página de detalle del mapa de conocimiento (en japonés). Datos: JSON-LD / Turtle

2. Planteamiento del problema — por qué un archivo en uso no se puede copiar de forma ordinaria

Empiece por por qué ni siquiera se puede abrir

El punto de partida es el modo de uso compartido de archivos de Windows. Al abrir un archivo (CreateFile), Windows declara, como modo de uso compartido (dwShareMode), qué se permite a otros procesos mientras el propio proceso lo tiene abierto. Mientras haya un proceso que lo abrió sin permitir el uso compartido de lectura, cualquier proceso que intente abrirlo después para lectura fallará con una violación de uso compartido (ERROR_SHARING_VIOLATION, error 32).8 En .NET es el conocido error que aparece como IOException («El proceso no puede obtener acceso al archivo porque está siendo utilizado en otro proceso»).

Lo importante es que esto no es un error, sino el mecanismo correcto para proteger los datos. Si se lee un archivo a mitad de una escritura, quien lo lee acaba con un estado a medias, incoherente. El diseño del control de exclusión, tratado en detalle en «Conocimientos básicos del control de exclusión en la integración de archivos — Mejores prácticas de bloqueo de archivos y claim atómico», es la base de la integración entre aplicaciones.

Sin embargo, este mecanismo correcto choca de raíz con la copia de seguridad. Aquí hay tres barreras distintas.

Barrera 1: la violación de uso compartido impide abrir el origen

Un archivo que una base de datos o una aplicación de negocio mantiene abierto de forma permanente puede que, directamente, no se pueda abrir como origen de la copia.

Barrera 2: aunque se abra, el contenido de la copia no es coherente

Aunque se pueda abrir (porque el uso compartido de lectura está permitido), copiar lleva tiempo. Como la aplicación sigue escribiendo mientras se copia, la primera mitad y la segunda mitad del archivo pueden acabar reflejando instantes distintos, o puede dejar de haber coherencia entre varios archivos (los datos y su registro, por ejemplo).

Además, como se vio en la entrega del «administrador de caché», la escritura primero pasa por la caché en memoria, así que mirar solo el archivo en disco no garantiza ver la versión más reciente. «Poder leerlo» y «poder copiarlo en un estado coherente» son problemas distintos.

Barrera 3: no se puede detener la aplicación el tiempo suficiente para copiar

«Entonces basta con detener la aplicación y copiar» es un argumento correcto, pero en un sistema de negocio o un servidor de archivos que funciona las 24 horas no es aceptable.

En definitiva, el requisito es «una copia de un instante coherente, sin detener la aplicación». Resolverlo por su cuenta es demasiada carga para cada aplicación, y VSS es el mecanismo preparado a nivel de sistema operativo. VSS se ofrece como un marco de trabajo basado en interfaces COM que permite hacer copia de seguridad de un volumen incluso mientras la aplicación sigue escribiendo en él.2

3. Los actores de VSS — solicitante, escritor y proveedor

La arquitectura de VSS se organiza en tres roles y un servicio que actúa de intermediario entre ellos.1

Rol Qué hace Ejemplo concreto
Servicio VSS Coordinación entre los roles. Parte de Windows El propio VSS
Solicitante El software que pide crear (o importar o eliminar) una instantánea El software de copia de seguridad en general. Windows Server Backup y DiskShadow también son solicitantes
Escritor El componente que, del lado de la aplicación, garantiza la coherencia de los datos de los que hay que hacer copia de seguridad Lo proporcionan SQL Server o Exchange Server. Los escritores de componentes de Windows como el Registro se incluyen en el sistema operativo
Proveedor El componente que crea y mantiene realmente la instantánea El proveedor de sistema estándar de Windows (copy-on-write). También hay proveedores de hardware en el dispositivo de almacenamiento

El software de copia de seguridad y la aplicación se reparten el trabajo

La gracia de este reparto es que productos que no se conocen entre sí pueden coordinarse. El software de copia de seguridad (el solicitante) no conoce la estructura interna de SQL Server. Aun así, puede tomar una copia de seguridad coherente con esta división del trabajo.19

  1. El escritor de SQL Server declara, como metadatos, el conjunto de archivos (los componentes) de los que hay que hacer copia de seguridad.
  2. El escritor pone en orden sus propios datos antes y después de crear el punto de coherencia.
  3. El solicitante toma la copia de seguridad siguiendo esa declaración y esa coordinación.

Casi todo el software de copia de seguridad de terceros que se ejecuta en Windows es un solicitante de VSS.1

Cuando algo falla, los tres roles dicen dónde mirar

El momento en que estos tres roles importan en el día a día de sistemas es la resolución de incidencias. Que el fallo de la copia de seguridad sea un problema del solicitante (el software), de un escritor concreto (la aplicación) o del proveedor y el área de diferencias (la infraestructura) cambia por completo dónde hay que investigar (capítulos 5 y 7).

4. Cómo funciona la instantánea — copy-on-write y el «punto de coherencia»

4.1. Copy-on-write — conservar «ese instante» sin duplicar el volumen

Solo se reservan los bloques previos a la reescritura

La palabra «instantánea» sugiere una réplica de todo el volumen, pero lo que usa el proveedor de sistema estándar de Windows es copy-on-write. En el momento de crear la instantánea casi no se copia nada.

Después, cuando un bloque del volumen original está a punto de reescribirse, el bloque previo a la reescritura se reserva en el área de diferencias (diff area, el almacenamiento de instantáneas) antes de que termine la reescritura, y solo entonces se deja pasar la escritura.1 Esa reserva hace falta solo en la primera reescritura de cada bloque; sobrescribir un bloque que ya está reservado no agranda el área de diferencias.

Instante Volumen original Área de diferencias
T0: se crea la instantánea 1 2 3 4 5 (vacía)
T1: se reescribe el bloque 3 1 2 3’ 4 5 3 (se reserva el contenido previo)
T2: se lee la instantánea los bloques 1, 2, 4 y 5 se leen desde aquí el bloque 3 se lee desde aquí

Al leer, se combinan el volumen original y el área de diferencias

Para leer «el volumen tal como estaba en ese instante», los bloques que no han cambiado se leen del volumen original y los que han cambiado, del área de diferencias, y se combinan. Como solo se copia lo que cambió, la creación es instantánea y el espacio consumido es solo la diferencia.

La otra cara es que, cuanto más se escribe en un volumen, más rápido se consume el área de diferencias. Qué determina el consumo se trata en detalle en el apartado 7.4. El área de diferencias se coloca en un volumen NTFS de la misma máquina que los datos originales.1

Lo que sostiene este mecanismo es el archivo de componente del proveedor de sistema, swprv.dll, y el controlador que se intercala en la E/S del volumen, volsnap.sys.1 Si le interesa cómo se intercalan las cosas en la pila de E/S, vea también «Controladores de filtro y minifiltros».

Hay otros métodos: la copia completa, que separa un espejo, y redirect-on-write, que escribe los cambios en otro volumen. Los proveedores de hardware usan el método que mejor encaja en el dispositivo de almacenamiento.1

4.2. Cómo se crea el punto de coherencia — 60 segundos para congelar, 10 para crear

Si copy-on-write es «cómo se guarda», el verdadero aporte de VSS es «qué instante se guarda», es decir, cómo se crea el punto de coherencia. La creación de una instantánea avanza así.1

El solicitante pide la creaciónenumera escritores y recopila metadatosCada escritor declara sus destinos de copia(componentes) en XMLCada escritor prepara sus datosrota registros, vacía cachés, etc.hasta un estado coherente recuperableSe congelan las E/S de escritura del escritor(la lectura sigue posible. Máximo 60 segundos)VSS vacía los búferes del sistema de archivosy congela el sistema de archivosEl proveedor crea la instantánea(en 10 segundos o menos. Mientras, la E/S de escritura está congelada)Se libera el sistema de archivos → se descongelan los escritores (thaw)las aplicaciones reanudan la escrituraEl solicitante toma la copia de seguridaddesde la instantánea, al ritmo que necesite

Figura 1: Flujo de creación de una instantánea. Solo se detienen unos segundos o unas decenas de segundos, y la copia de seguridad en sí se hace contra la instantánea.

El tiempo que se detiene y el tiempo que tarda la copia de seguridad son distintos

Hay tres puntos que retener.

  1. La aplicación se detiene solo el instante en que se crea el punto de coherencia. La congelación está limitada a 60 segundos y la creación (commit) del proveedor a 10 segundos; si se supera cualquiera de los dos, la creación se cancela y el solicitante lo intenta de nuevo.1 La copia de seguridad en sí, que puede tardar horas, se ejecuta contra la instantánea de solo lectura ya creada, con la aplicación en marcha.
  2. Durante la congelación la lectura sigue siendo posible. Lo que se detiene es solo la E/S de escritura.1
  3. También se congela el sistema de archivos. VSS vacía los búferes del sistema de archivos antes de congelarlo, de modo que las escrituras que estaban en caché y los metadatos del sistema de archivos se reflejan en la instantánea en un orden coherente.1

4.3. Coherencia ante bloqueos y coherencia de aplicación

Aquí aparece la distinción que separa la calidad de una copia de seguridad.

Sin escritor: el mismo estado que recuperarse de una parada brusca

Una instantánea hecha sin cooperación del escritor es, en la terminología de Microsoft, un estado de coherencia ante bloqueos (crash consistent). La definición oficial es «un estado del disco equivalente al que se encontraría tras un fallo catastrófico que apaga el sistema de forma brusca», y restaurar desde ahí se describe como «equivalente a un reinicio tras un apagado brusco».3 El sistema de archivos no está dañado, pero desde el punto de vista de la aplicación es «el instante en que se arrancó el cable de alimentación a mitad de una escritura». Una base de datos con mecanismo de recuperación a partir del registro de transacciones suele poder recuperarse, pero la recuperación es un presupuesto.

Con escritor: la aplicación prepara un estado coherente recuperable

Con la cooperación del escritor, cada escritor rota los registros de transacciones y vacía las cachés justo antes del punto de coherencia, y deja los datos en un estado coherente que la propia aplicación garantiza que puede recuperar correctamente.1 Eso es la coherencia de aplicación, y es la razón de ser del mecanismo de escritor.

Conviene notar que lo que el escritor garantiza es «un estado coherente y recuperable desde el punto de vista de la aplicación»; no confirma por su cuenta las transacciones en curso ni las lleva a término. El trabajo no confirmado se revierte al restaurar (el mismo comportamiento que la recuperación habitual de una base de datos). El escritor entrega esta garantía de calidad sin detener la aplicación, con una congelación de unas decenas de segundos.

Que el software de copia de seguridad tenga opciones como «usar VSS» o «garantizar la coherencia de la aplicación» es precisamente el reflejo de esta distinción. En un conjunto de archivos corrientes de un servidor de archivos, la coherencia ante bloqueos casi nunca es un problema; en un servidor que aloja una base de datos o un almacén de correo, que el escritor correspondiente esté sano es la calidad misma de la copia de seguridad.

5. Comandos de operación en la práctica — vssadmin y Versiones anteriores

La herramienta para comprobar el estado de VSS en el día a día de sistemas es vssadmin. Se ejecuta desde un símbolo del sistema con privilegios de administrador. Primero liste el estado actual, y cambie el límite del área de diferencias solo después de confirmar tanto la necesidad como el riesgo de perder instantáneas.

Qué se puede comprobar y qué comandos hay

La referencia actual de comandos presenta list shadows / list writers / delete shadows / resize shadowstorage como disponibles tanto en cliente como en servidor.4 La referencia de Windows Server documenta además create shadow / list shadowstorage / list providers y otros.5 Tenga en cuenta que vssadmin solo puede administrar las instantáneas creadas por el proveedor de sistema.1

Distinguir los comandos de comprobación del de cambio de límite

Comando Qué muestra Cuándo usarlo
vssadmin list shadows Lista de las instantáneas existentes (fecha de creación, volumen de origen, nombre del volumen de instantánea) Comprobar hasta qué fecha hay puntos de coherencia disponibles para restaurar. Comprobar si han quedado restos acumulados después de una copia de seguridad
vssadmin list writers Lista de los escritores registrados y su estado Primer diagnóstico cuando el software de copia de seguridad falla con un error de VSS. Qué escritor, y por tanto qué aplicación, está fallando
vssadmin list shadowstorage Uso, asignación y límite del almacenamiento de instantáneas (el área de diferencias) Investigar «han desaparecido las Versiones anteriores». Si el uso está pegado al límite
vssadmin resize shadowstorage — (cambia el límite del área de diferencias) Ampliar el área de diferencias cuando no alcanza para el número de generaciones que se quieren conservar10

Si list writers muestra un escritor en estado de error, lo que hay que sospechar no es VSS en sí, sino la aplicación que proporciona ese escritor. Compruebe el estado del servicio de la aplicación responsable y los registros de eventos de aplicación y de sistema (capítulo 7).

Tratar el cambio de límite aparte de las comprobaciones

El /maxsize de resize shadowstorage admite un límite con unidad como KB, MB o GB; si no se especifica, no hay límite. Lo que importa es la advertencia documentada de que cambiar el límite del almacenamiento (en particular, reducirlo) puede provocar por sí mismo la pérdida de instantáneas.10 No reduzca a la ligera el límite de un volumen cuyas generaciones quiere conservar.

5.1. Relación con Versiones anteriores

Al habilitar Instantáneas de carpetas compartidas (Shadow Copies of Shared Folders) en un servidor de archivos, se conservan de forma periódica copias de un instante de los archivos del recurso compartido, y el usuario puede restaurar un archivo que borró o sobrescribió desde Versiones anteriores sin ayuda del administrador.1 Es la aplicación más cercana de VSS y una forma fiable de reducir la carga del servicio de asistencia.

Hay límites, no obstante. Las instantáneas del proveedor de sistema tienen un máximo de 512 por volumen, y de esas, la función de Instantáneas de carpetas compartidas mantiene 64 de forma predeterminada (se puede cambiar con el valor del Registro MaxShadowCopies).1

Y, como se explica en los apartados siguientes, si el área de diferencias se queda corta se eliminan automáticamente las generaciones más antiguas. Lo seguro es entender que «cuántas generaciones quedan» no lo decide el número configurado, sino el volumen de escritura y el tamaño del área de diferencias.

6. Cómo debe implicarse un desarrollador — ¿necesita VSS su aplicación?

A partir de aquí, la perspectiva es la del desarrollador. Cuando le piden «añadir una función de copia de seguridad que copie también archivos en uso», ¿cómo hay que relacionarse con VSS?

Use primero la tabla de decisión del apartado 6.2 para ver si VSS hace falta, y solo entonces elija la implementación. El 6.1 trata del «solicitante», el lado que pide la copia; el 6.3, del «escritor», el lado que permite que hagan copia de seguridad de los datos de su propia aplicación.

6.1. Escribir un solicitante propio es un trabajo considerable

La API de VSS se ofrece como interfaces COM y C++ tanto para solicitantes como para escritores (el centro del lado solicitante es IVssBackupComponents).6 No hay un envoltorio oficial para .NET, y hay que implementar correctamente la recopilación de metadatos de los escritores, la administración del conjunto de instantáneas y la limpieza tras un error, así que no es algo que se incorpore a la ligera como una función más de una aplicación de negocio. En nuestros presupuestos de Custom Software Development, «escribir un solicitante de VSS» se trata como un elemento de desarrollo independiente.

Considere primero el software existente o, en Windows Server, DiskShadow

Hay dos respuestas prácticas. La primera, dejarlo en manos de un software de copia de seguridad ya compatible con VSS. La segunda, en Windows Server, usar DiskShadow desde un script.

DiskShadow es un solicitante de VSS incluido en el sistema operativo. Además del modo interactivo tiene un modo de script (diskshadow /s script.txt), de modo que la creación de la instantánea, su publicación como letra de unidad (expose), la ejecución de un lote que hace la copia (exec) y la limpieza se pueden escribir en un solo script.71 Se puede armar el flujo «crear una instantánea → extraer los archivos con la propia rutina de copia → eliminarla» sin escribir una sola línea de COM.

Sin embargo, DiskShadow es exclusivo de Windows Server y no se incluye en las ediciones de cliente del sistema operativo.1 Si los PC cliente también entran en el alcance, eso solo ya inclina la decisión hacia un producto de copia de seguridad existente.

6.2. ¿Hace falta VSS? — tabla de decisión

Por experiencia, la mayoría de las consultas sobre «copiar archivos en uso» se resuelven sin VSS. Determine el nivel del requisito antes de elegir la herramienta.

Requisito Respuesta práctica ¿Hace falta VSS?
Poder leer, aunque haya que esperar un poco, un archivo que otra aplicación está escribiendo Reintentos (reintento más espera). La violación de uso compartido suele ser un estado transitorio No
La otra aplicación permite el uso compartido de lectura Abrir con el mismo modo de uso compartido (FileShare.ReadWrite en .NET). El riesgo de leer un archivo a medias lo asume usted No
La aplicación se puede detener en un receso del trabajo (noche, pausa) Copiar mientras está detenida. Lo más simple y lo más seguro No
Se puede acordar un contrato de integración con la otra aplicación Pasar a un diseño de integración atómico, por ejemplo entregar mediante un cambio de nombre una vez completado el archivo (véase el artículo sobre exclusión) No
Quiere duplicar, en un estado coherente, todo el conjunto de datos de una aplicación que no se puede detener VSS. Primero software de copia de seguridad existente, después un script de DiskShadow (solo Server) y, en último lugar, un solicitante propio Sí

6.3. ¿Debería registrar un escritor su aplicación?

También conviene ordenar la pregunta en la otra dirección: ¿debería una aplicación de negocio propia ofrecer un escritor de VSS? Si lo escribe, los datos de su aplicación se podrán copiar con coherencia de aplicación sea cual sea el software de copia de seguridad que use el cliente.

Un escritor exprés no detiene las escrituras

Hay un mecanismo más ligero que un escritor completo, el escritor exprés (IVssExpressWriter), pero lo único que hace es registrar una declaración de metadatos sobre qué archivos incluir y cuáles excluir.6

Como no recibe notificaciones de congelación o descongelación, no puede detener las escrituras de la aplicación al ritmo de la creación de la instantánea. Un escritor exprés solo encaja junto a un diseño de guardado que no se rompe si se captura a mitad de escritura, es decir, uno para el que basta la coherencia ante bloqueos. Si hace falta coordinarse en el punto de coherencia, se necesita una implementación de escritor completa.

Decida si necesita un escritor propio a partir de cómo guarda los datos

La regla práctica es simple.

  • No hace falta si los datos viven en una base de datos como SQL Server. El escritor del propio motor garantiza la coherencia.1
  • Si el guardado es de archivos simples, resuélvalo primero en el diseño de la rutina de guardado. Si escribe en un archivo temporal y lo sustituye con un cambio de nombre, de modo que el guardado sea atómico, ni siquiera una instantánea con coherencia ante bloqueos dejará un archivo de guardado roto.
  • Registrar un escritor solo merece la pena en aplicaciones que tienen un almacén de datos propio repartido en varios archivos y necesitan que esos archivos sean coherentes entre sí en el punto de coherencia. Antes de eso, quizá convenga replantearse si debe guardar tantos datos en un formato propio.

7. Trampas — cuatro que de verdad importan en la operación

No compruebe solo «si se creó un punto de coherencia», sino también «si sobrevive» y «si tiene una calidad de la que se pueda restaurar». Los cuatro puntos siguientes hay que considerarlos por separado en la operación.

7.1. VSS no es una copia de seguridad en sí

Esta es la trampa más importante. La instantánea del proveedor de sistema es una diferencia en el disco de la misma máquina que los datos originales. No es una réplica completa aparte: al leer se combinan los bloques del volumen original que aún no se han reescrito con el área de diferencias.

Por eso no cubre los casos en que se pierde el volumen original entero, como un fallo de disco o el robo o extravío de la máquina. Colocar solo el área de diferencias en otro volumen no cambia esa dependencia. Y si se pierde el área de diferencias, tampoco se puede combinar.

Tampoco se puede confiar en las instantáneas frente a un ransomware que cifra el volumen entero. Las escrituras del cifrado sí reservan el contenido previo, pero en un ataque real se pierden por la eliminación de instantáneas o por el agotamiento del área de diferencias a causa de reescrituras masivas. Los apartados 7.3 y 7.4 tratan este punto.

La documentación de Microsoft también traza una línea clara entre instantánea y copia de seguridad: «la copia de seguridad es lo que se copió desde la instantánea a un medio como una cinta, y la instantánea se puede eliminar una vez hecha esa copia».1 La instantánea es un punto de coherencia y un medio de restauración rápida ante un error. No sustituye a la copia de seguridad en otro medio y en otra ubicación.

7.2. Los errores de escritor son problemas del lado de la aplicación

Cuando el software de copia de seguridad falla con un «error de VSS», compruebe lo siguiente, en este orden.

  1. Identifique qué escritor está fallando con vssadmin list writers.
  2. Compruebe el estado del servicio de la aplicación o del componente de Windows que proporciona ese escritor.
  3. Revise los registros de eventos de aplicación y de sistema e investigue la causa del lado de la aplicación responsable.

Un escritor es, en sustancia, un componente del lado de la aplicación (o de un componente de Windows).1 Dejarse llevar por la apariencia de «un error del software de copia de seguridad» y seguir investigando solo el producto de copia es el camino largo. El enfoque general para aislar un fallo sigue el patrón de «acotar a los sospechosos a partir de hechos observables» tratado en «Cuando hereda un sistema sin código fuente ni documentación».

7.3. El ransomware viene precisamente a borrar las instantáneas

Esto es algo que el lado de la defensa debe conocer. Si Versiones anteriores puede devolver un archivo, ¿no se podría también devolver lo cifrado por ransomware? Es la esperanza natural, pero está ampliamente documentado que gran parte del ransomware elimina las instantáneas antes o después de cifrar, precisamente para cerrar esta vía de restauración. Eliminar instantáneas se puede hacer con comandos legítimos si se tienen privilegios de administrador, así que no es el último bastión frente a un atacante que ya está dentro. La respuesta, por tanto, se apoya en tres puntos.

  • Trate las instantáneas no como «parte del plan de recuperación», sino como «bienvenidas si sobreviven».
  • Tenga aparte una copia de seguridad sin conexión y en otra ubicación a la que el atacante no pueda llegar.
  • No conceda privilegios de administrador a las cuentas de operación diaria.

Para defender el ciclo de vida completo del PC, incluidas copias de seguridad, cifrado y baja, vea también «Guía práctica de BitLocker» y «Qué hacer antes de desechar un PC con Windows».

7.4. Cuando el área de diferencias se agota, las generaciones más antiguas desaparecen en silencio

El consumo lo decide el rango, no el número de escrituras

Como se vio en el capítulo 4, copy-on-write consume el área de diferencias cuando cada bloque se reescribe por primera vez después de tomar la instantánea. Sobrescribir un bloque ya reservado, por muchas veces que sea, no añade consumo, así que el consumo no lo decide «el número de escrituras», sino «cuán amplio es el rango de bloques reescritos desde las instantáneas que se están conservando».

Confirme también las generaciones perdidas en el registro Sistema

Cuando el área de diferencias alcanza su límite, las instantáneas de ese volumen se eliminan de más antigua a más reciente.1 No se notifica nada al usuario interactivo, de modo que suele descubrirse solo cuando «deberíamos poder volver a la versión de la semana pasada» resulta ser falso. No es del todo silencioso, no obstante: en el registro Sistema quedan eventos con origen volsnap (el 25 cuando se eliminó una instantánea porque no se pudo asegurar el área de diferencias, y los 35 y 36 cuando falló la ampliación o se abortó la operación al alcanzar el límite, entre otros). Además de las comprobaciones periódicas, incluir estos eventos volsnap en la supervisión y las alertas permite enterarse enseguida de una pérdida.

Compare el periodo de retención que necesita con el uso del área de diferencias

Operaciones que «recorren una parte amplia del volumen», como actualizaciones masivas de archivos, conversiones por lotes o desfragmentación, se comen el área de diferencias de un golpe precisamente por esta naturaleza de «lo decide el rango reescrito».

Compruebe periódicamente, con vssadmin list shadowstorage, si las generaciones retenidas cubren el requisito de negocio («como máximo, ¿cuántos días después nos damos cuenta de un borrado accidental?») y, si hace falta, amplíe el límite.510

8. Resumen

VSS se entiende mejor si se parte en tres preguntas: «qué se pone en orden», «cómo se guarda» y «cómo se opera».

Qué se pone en orden: un punto de coherencia aunque el archivo esté en uso

Que un archivo en uso no se pueda copiar de forma ordinaria se debe a la violación de uso compartido y a la coherencia, y eso es el mecanismo correcto para proteger los datos. VSS es la respuesta a nivel de sistema operativo a «queremos una copia coherente sin detener».

VSS es un marco en el que el servicio VSS intermedia entre tres roles —solicitante (pedir), escritor (garantizar la coherencia) y proveedor (crear)—, de modo que un software de copia de seguridad y una aplicación de negocio que no se conocen pueden coordinarse.

Cómo se guarda: crear rápido un punto de coherencia y hacer aparte la copia de seguridad

El proveedor de sistema usa copy-on-write, y el punto de coherencia se crea con «congelación de los escritores (máximo 60 segundos) → creación (en 10 segundos o menos) → descongelación». Sin cooperación del escritor se obtiene coherencia ante bloqueos; con ella, coherencia de aplicación.

La instantánea no es una copia de seguridad. No es más que una diferencia que depende de los bloques intactos del volumen original; es inútil ante la pérdida del volumen original en un fallo de disco, y tampoco se puede confiar en ella frente al ransomware por la eliminación de instantáneas o el agotamiento del área de diferencias. Combínela con una copia de seguridad sin conexión y en otra ubicación.

Cómo se opera: comprobar el estado e implicarse solo lo necesario

En operación, compruebe con vssadmin (list shadows / list writers / list shadowstorage). Ante un error de escritor, sospeche del lado de la aplicación, y mire con regularidad el uso del área de diferencias.

El desarrollador debe confirmar primero, con la tabla de decisión, si se resuelve con reintentos, modo de uso compartido, una ventana de parada o un diseño de integración, y acudir a VSS solo cuando de verdad hace falta. Un script de DiskShadow (solo Server) o un software existente es una respuesta más realista que una implementación propia.

Artículos relacionados

Ámbitos de consulta relacionados

KomuraSoft LLC se ocupa del diseño y el desarrollo de aplicaciones de negocio que incluyen «copiar y hacer copia de seguridad de archivos en uso», de la investigación de causas de violaciones de uso compartido en la integración de archivos y de fallos de copia de seguridad (errores de escritor de VSS), y de ordenar la operación de copias de seguridad y gestión de generaciones en servidores de archivos. Empezar por si VSS es siquiera el requisito adecuado no es ningún problema.

Referencias

  1. Microsoft Learn, Volume Shadow Copy Service (Windows Server). Sobre el reparto de roles entre el servicio VSS, el solicitante (software de copia de seguridad: Windows Server Backup y DPM son ejemplos, y casi todo el software de copia de seguridad en Windows es un solicitante), el escritor (lo proporcionan productos como SQL Server y Exchange Server; los escritores de componentes de Windows como el Registro se incluyen en el sistema operativo) y el proveedor; sobre el procedimiento de creación de la instantánea (recopilación de metadatos de los escritores → preparación completando transacciones, rotando registros y vaciando cachés → congelación de la E/S de escritura durante 60 segundos como máximo, con la lectura aún posible → vaciado y congelación de los búferes del sistema de archivos → creación por el proveedor en 10 segundos o menos → descongelación; si se supera un límite, se cancela y el solicitante reintenta); sobre los tres métodos —copia completa, copy-on-write y redirect-on-write—; sobre que el proveedor de sistema usa copy-on-write y el área de diferencias debe estar en un volumen NTFS; sobre que los archivos de componente son swprv.dll y volsnap.sys; sobre que las instantáneas de ese volumen se eliminan de más antigua a más reciente cuando se agota el espacio libre del área de diferencias; sobre que las instantáneas de software tienen un máximo de 512 por volumen y Instantáneas de carpetas compartidas mantiene 64 de forma predeterminada (se cambia con MaxShadowCopies); sobre que Instantáneas de carpetas compartidas permite al usuario restaurar archivos eliminados o modificados sin ayuda del administrador; sobre la diferencia entre instantánea y copia de seguridad (el contenido copiado a un medio es la copia de seguridad, y la instantánea se puede eliminar después); sobre que DiskShadow es un solicitante de VSS exclusivo de Windows Server; y sobre que vssadmin solo puede administrar las instantáneas creadas por el proveedor de sistema. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16 ↩17 ↩18 ↩19 ↩20 ↩21 ↩22 ↩23 ↩24 ↩25 ↩26 ↩27 ↩28

  2. Microsoft Learn, Volume Shadow Copy Service (Win32). Sobre que VSS es un conjunto de interfaces COM que implementa un marco de trabajo para hacer copia de seguridad de un volumen mientras las aplicaciones del sistema siguen escribiendo en él, y sobre que se admite desde Windows XP. ↩ ↩2

  3. Microsoft Learn, VSS Glossary: crash consistent state. Sobre que un estado de coherencia ante bloqueos es «un estado del disco equivalente al que se encontraría tras un fallo catastrófico que apaga el sistema de forma brusca»; sobre que restaurar desde un conjunto de instantáneas así es «equivalente a un reinicio tras un apagado brusco»; y sobre que este es el estado predeterminado de los datos de los que se ha hecho instantánea sin soporte de escritor. ↩ ↩2

  4. Microsoft Learn, vssadmin. Sobre que vssadmin es el comando que muestra las instantáneas de volumen actuales y todos los escritores y proveedores de instantáneas instalados, y sobre que los subcomandos delete shadows / list shadows / list writers / resize shadowstorage se presentan como disponibles tanto en cliente como en servidor. ↩ ↩2

  5. Microsoft Learn, Vssadmin (Windows Server 2012 R2 and 2012). Sobre que la referencia orientada a Windows Server enumera los subcomandos de vssadmin add shadowstorage / create shadow / delete shadows / delete shadowstorage / list providers / list shadows / list shadowstorage (enumera todas las asociaciones de almacenamiento de instantáneas del sistema) / list volumes / list writers / resize shadowstorage. ↩ ↩2 ↩3

  6. Microsoft Learn, Volume Shadow Copy API Interfaces. Sobre que la API de VSS se ofrece como interfaces COM y C++ que admiten crear solicitantes y escritores, y sobre que están definidas las interfaces de la familia IVssBackupComponents para solicitantes, la familia IVssCreateWriterMetadata para escritores e IVssExpressWriter para el escritor exprés más ligero. ↩ ↩2 ↩3

  7. Microsoft Learn, Diskshadow. Sobre que DiskShadow es una herramienta que expone la funcionalidad de VSS, con un intérprete de comandos interactivo y un modo de script (diskshadow /s script.txt); sobre que la ejecución exige pertenecer al grupo local Administrators; y sobre que comandos como add, create, expose (publica una instantánea persistente como, por ejemplo, una letra de unidad), exec (ejecuta un archivo local) y delete shadows permiten escribir en un solo script desde la creación de la instantánea hasta la publicación y la ejecución del script de copia de seguridad. ↩ ↩2

  8. Microsoft Learn, CreateFileW function. Sobre que, al abrir un archivo, dwShareMode especifica el acceso compartido (lectura, escritura, eliminación) permitido a las aperturas posteriores; y sobre que una apertura que pide un acceso en conflicto con el modo de uso compartido de un identificador existente falla con una violación de uso compartido (ERROR_SHARING_VIOLATION). ↩

  9. Microsoft Learn, Overview of Processing a Backup Under VSS. Sobre que el solicitante y el escritor se coordinan en el procesamiento de la copia de seguridad, el escritor declara los archivos (componentes) de los que es responsable mediante metadatos de solo lectura (Writer Metadata Document) y el solicitante los interpreta para elegir de qué hacer copia y lo registra en sus propios metadatos (Backup Components Document); y sobre que el escritor pausa la E/S de forma breve antes de crear la instantánea y vuelve al funcionamiento normal una vez completada. ↩

  10. Microsoft Learn, Vssadmin resize shadowstorage. Sobre que este comando cambia el tamaño máximo usable como almacenamiento de instantáneas; sobre que, si no se especifica /maxsize, no hay límite al uso del almacenamiento; sobre que el valor se puede indicar en unidades KB/MB/GB/TB/PB/EB; y sobre la advertencia de que cambiar el tamaño de una asociación de almacenamiento puede hacer perder instantáneas. ↩ ↩2 ↩3

Artículos recientes con las mismas etiquetas para profundizar en temas cercanos.

Estas páginas sitúan el tema en un contexto más amplio de servicios y decisiones.

El artículo está directamente relacionado con los siguientes servicios.

Preguntas frecuentes

Preguntas habituales en las consultas sobre el tema del artículo.

Si hay instantáneas, ¿ya no hace falta una copia de seguridad?
Sigue haciendo falta. Las instantáneas que crea el proveedor de sistema estándar de Windows son diferencias copy-on-write: no tienen aparte una réplica completa de ese instante, sino que dependen de los bloques del volumen original que aún no se han reescrito. Aunque se coloque el área de diferencias (diff area) en otro volumen, si se pierde el volumen original tampoco se puede restaurar nada, de modo que ante un fallo de disco o el robo o extravío del PC, que se llevan el volumen original entero, la instantánea no ofrece ninguna protección. Con el ransomware ocurre lo mismo: la propia escritura de cifrado sí reserva en el área de diferencias los bloques previos a la reescritura, pero en los ataques reales las instantáneas se pierden porque se eliminan o porque el área de diferencias se agota con reescrituras masivas, así que no se puede confiar en ellas. La documentación de Microsoft también distingue ambos conceptos: la copia de seguridad es lo que se copia desde la instantánea a un medio como una cinta, y una vez hecha esa copia la instantánea en sí puede eliminarse. La instantánea es un punto de coherencia para tomar una copia de seguridad y un medio de restauración rápida ante un error menor. No sustituye a la copia de seguridad en otro medio y en otra ubicación.
Quiero que mi aplicación de negocio propia copie archivos en uso. ¿Debería usar VSS?
Lo realista es buscar primero una vía que no necesite VSS. El solicitante de VSS hay que escribirlo contra la API nativa basada en COM (IVssBackupComponents y similares), y como no hay un envoltorio oficial para .NET, incorporarlo a una aplicación propia es un trabajo considerable. Si el requisito es solo poder leer, en algún momento, un archivo que otro proceso está escribiendo, bastan los reintentos; si el uso compartido de lectura está permitido, basta con abrir con el mismo modo de uso compartido. Si la aplicación se puede detener un momento, copiar en una pausa natural del trabajo es lo más seguro. VSS solo entra en juego cuando el requisito es duplicar, en un estado coherente, todo el conjunto de datos de una aplicación que no se puede detener, y aun así conviene evaluar antes un software de copia de seguridad compatible con VSS o un script de DiskShadow, antes que una implementación propia.
En vssadmin list writers un escritor aparece en estado de error. ¿Qué hay que hacer?
Lo básico es investigarlo como un problema del lado de la aplicación responsable de ese escritor. vssadmin list writers muestra la lista de escritores registrados junto con su estado, así que el primer paso es identificar cuál está fallando. Como los escritores los proporcionan aplicaciones como SQL Server o componentes de Windows (el Registro, por ejemplo), la causa del error casi siempre está en el estado del servicio de la aplicación responsable o en los errores registrados en los registros de eventos de aplicación y de sistema, más que en el propio VSS. Reinicie el servicio correspondiente, aísle las condiciones de reproducción y, si no se resuelve, consulte la información de soporte de esa aplicación. El mismo procedimiento es el primer diagnóstico cuando el software de copia de seguridad falla por un error de VSS.
Una instantánea desapareció sin que nadie se diera cuenta. ¿Por qué?
La causa más habitual es la falta de espacio en el área de diferencias (el almacenamiento de instantáneas). Con copy-on-write, la primera vez que se reescribe cada bloque después de tomar la instantánea se reserva el contenido previo en el área de diferencias, así que cuanto más amplio es el rango reescrito, más se consume esa área. Al llegar al límite asignado, Windows elimina las instantáneas más antiguas, en orden, para liberar espacio. No se notifica nada al usuario interactivo y la instantánea desaparece en silencio, de modo que suele descubrirse cuando se espera volver a la versión de la semana pasada con Versiones anteriores y resulta que ya no está (en el registro Sistema quedan eventos con origen volsnap, como el evento 25, así que vigilarlos permite darse cuenta). Revise el uso y el límite con vssadmin list shadowstorage y, si hace falta, amplíe el límite con vssadmin resize shadowstorage. Tenga en cuenta, eso sí, que cambiar el límite (en particular, reducirlo) puede provocar por sí mismo la pérdida de instantáneas.
¿Qué relación hay entre Versiones anteriores del Explorador de archivos y VSS?
Versiones anteriores es una de las puertas de entrada para recuperar archivos pasados que están dentro de las instantáneas creadas por VSS. En un servidor de archivos, al habilitar Instantáneas de carpetas compartidas (Shadow Copies of Shared Folders) se crean instantáneas de forma periódica, y el usuario puede hacer clic con el botón derecho sobre un archivo de la carpeta compartida y restaurarlo por sí mismo desde Versiones anteriores. La ventaja es poder corregir un borrado o una sobrescritura accidental sin recurrir al administrador. Sin embargo, como en el fondo se trata de instantáneas, hay un límite de generaciones que se pueden conservar, y si el área de diferencias se queda corta, las generaciones más antiguas desaparecen. Como se explica en el cuerpo del artículo, tener Versiones anteriores no equivale a no necesitar copia de seguridad.

Perfil del autor

Página de presentación del autor del artículo.

Go Komura

Representante de KomuraSoft LLC

Especializado en desarrollo de software para Windows, consultoría técnica e investigación de fallos, sobre todo en proyectos con sistemas existentes y errores difíciles de reproducir.

Volver al blog