¿Qué protege realmente nuestros datos? ¿Son las instantáneas que se crean en cuestión de segundos y permiten volver al instante a un estado anterior? ¿Son las copias de seguridad periódicas que se almacenan en una ubicación separada? ¿O es la replicación, que garantiza la continuidad del funcionamiento incluso en caso de fallo de un sitio?
En este artículo explicaremos por qué una instantánea no es una copia de seguridad, por qué la replicación no sustituye a una copia de seguridad y qué requisitos se imponen a un sistema moderno de protección de datos.
Esto no es una copia de seguridad
A primera vista, las instantáneas y las copias de seguridad parecen similares; después de todo, crear una instantánea permite volver a un estado anterior de la máquina virtual. Entonces, ¿cómo es que esto no es una copia de seguridad? Aunque, hablando en serio, técnicamente una instantánea y una copia de seguridad resuelven problemas fundamentalmente diferentes y se implementan de manera distinta.
Cuando se crea una instantánea, el hipervisor captura el estado de la máquina virtual en un momento específico en el tiempo. Después de esto, los nuevos registros se realizan mediante un mecanismo de copia en escritura o redirección en escritura, según la implementación específica de la plataforma. En lugar de copiar todo el disco virtual, se crean estructuras que permiten guardar el estado original y registrar los cambios posteriores por separado.
Es por esto que crear una instantánea generalmente toma solo unos segundos y es prácticamente independiente del tamaño del disco virtual: los datos no se copian en su totalidad. Si se crea una instantánea con memoria guardada, se registran adicionalmente el contenido de la RAM y el estado de los dispositivos virtuales. Esto permite restaurar la máquina virtual después de la recuperación a casi el mismo estado en el que se encontraba cuando se creó la instantánea.
Al acceder a los datos, el hipervisor determina dónde se encuentra la versión actual de cada bloque: ya sea en la imagen original del disco virtual o en los archivos de cambios creados después de la instantánea.
Tenga en cuenta que una instantánea no es una copia independiente de los datos. Solo captura el estado del almacenamiento existente en un momento determinado. Mientras exista una instantánea, permanece vinculada a los datos originales y a la forma en que se almacenan. Es por esto que las instantáneas son excelentes para retrocesos a corto plazo, pruebas, actualizaciones o clonación de máquinas virtuales, pero no pueden reemplazar por sí solas una copia de seguridad completa.
Degradación del rendimiento
Crear una instantánea por sí sola generalmente tiene poco o ningún impacto en el rendimiento. Los problemas comienzan a aparecer cuando las instantáneas se utilizan durante mucho tiempo sin consolidarlas ni eliminarlas posteriormente.
En muchas plataformas de virtualización, las instantáneas se implementan mediante cadenas de cambios. A medida que se acumulan dichas cadenas, el sistema tiene que realizar accesos adicionales para determinar dónde se encuentra la versión actual de cada bloque de datos. Cuanto más larga sea la cadena, mayor será la sobrecarga potencial para las operaciones de lectura y escritura.
Con un número reducido de instantáneas, este efecto suele ser imperceptible. Sin embargo, las cadenas largas pueden aumentar la latencia de E/S, crear una carga adicional en el subsistema de almacenamiento y ralentizar la consolidación de las instantáneas después de eliminarlas. Esto es especialmente notable en máquinas virtuales muy cargadas, por ejemplo, aquellas con bases de datos o servicios de archivos, donde incluso un pequeño aumento en la latencia del subsistema de disco puede afectar los tiempos de respuesta de las aplicaciones.
Es por esto que las instantáneas deben considerarse una herramienta temporal y eliminarse inmediatamente después de completar la operación para la cual fueron creadas.
Fragilidad de la cadena
Otra característica de las instantáneas es que en muchas plataformas de virtualización forman una cadena de estados dependientes. Cada nueva instantánea almacena solo los cambios relativos al estado anterior, y no una copia completa del disco virtual.
En tales implementaciones, el daño a uno de los elementos de la cadena puede hacer que los estados posteriores no estén disponibles, ya que dependen de los niveles anteriores. Es por esto que las instantáneas no pueden considerarse copias de seguridad independientes: dependen de la integridad de los datos originales y de toda la cadena de cambios.
Tampoco hay que olvidar las dificultades que pueden surgir al eliminar instantáneas. En este caso, el sistema necesita consolidar los cambios acumulados para integrarlos en el almacenamiento principal de datos. Los hipervisores modernos generalmente realizan esta operación sin detener la máquina virtual, pero con grandes volúmenes de datos modificados, la consolidación puede implicar operaciones intensivas de lectura y escritura, aumentando la carga en el subsistema de almacenamiento y reduciendo temporalmente el rendimiento.
La ilusión de la consistencia
Incluso si una instantánea se creó correctamente, esto no significa que pueda usarse para restaurar la aplicación sin problemas.
Una instantánea captura el estado de los datos en un momento específico en el tiempo, pero este estado no siempre coincide con el que la aplicación considera consistente. Muchas aplicaciones modernas utilizan ampliamente la RAM para almacenar en búfer las operaciones y escribir datos en el disco de forma asíncrona.
Como resultado, puede obtener una instantánea denominada consistente ante fallos que captura el estado del sistema como si la máquina virtual se hubiera apagado de forma anormal en ese momento. La mayoría de los sistemas de archivos con registro por diario pueden restaurar automáticamente la consistencia de sus propios metadatos después de tal evento. Muchos DBMS modernos también realizan la recuperación utilizando registros de transacciones, pero algunos cambios que aún no se han escrito en el disco pueden perderse.
Para obtener una instantánea consistente con la aplicación, el estado de la aplicación y del sistema de archivos debe ser consistente antes de crear la instantánea. En este caso, antes de crear una instantánea, la aplicación completa las transacciones actuales (o las lleva a un estado consistente), garantiza que los datos en caché se escriban en el disco y suspende temporalmente las operaciones de escritura.
Las instantáneas siguen siendo una herramienta extremadamente útil: permiten revertir rápidamente una actualización fallida, probar cambios, crear un clon de una máquina virtual o capturar el estado del sistema antes de un trabajo arriesgado. Sin embargo, no pueden utilizarse como una estrategia integral de protección de datos. No crean una copia independiente de la información, pueden afectar el rendimiento durante el almacenamiento a largo plazo y, lo más importante, no garantizan un estado consistente de la aplicación sin una coordinación adicional con el sistema operativo invitado y las propias aplicaciones.
Una copia de seguridad integral requiere un sistema independiente que almacene datos de forma aislada de la infraestructura de producción, admita políticas de almacenamiento, deduplicación, soporte para varios tipos de almacenamiento y garantice una recuperación verificada.
¿Cómo debería ser un sistema de copias de seguridad moderno?
Bien, ya hemos aclarado lo de las instantáneas. Entonces, ¿cómo debería ser un sistema de copias de seguridad para infraestructura virtual moderna?
- Copia de seguridad sin agente
Históricamente, la copia de seguridad se basaba en instalar un agente especial en cada sistema operativo. Este enfoque sigue siendo válido para servidores físicos y aplicaciones individuales, pero en una infraestructura virtual crea complejidades adicionales. Cada agente debe instalarse, actualizarse, verificarse su compatibilidad con el sistema operativo y supervisarse su rendimiento. Con decenas o cientos de máquinas virtuales, esto se convierte en una tarea operativa adicional. Además, el agente utiliza los recursos del sistema operativo invitado y se convierte en otro componente cuyo fallo puede provocar problemas al crear copias de seguridad.
Por lo tanto, las plataformas de virtualización modernas utilizan cada vez más el enfoque sin agente. En este caso, el sistema de copias de seguridad interactúa directamente con el hipervisor a través de su API, inicia la creación de instantáneas mediante la API del hipervisor y copia los discos virtuales sin instalar un agente especializado de copias de seguridad dentro de los sistemas operativos invitados.
- Eficiencia de almacenamiento
Un sistema de copias de seguridad moderno no solo debe crear copias de seguridad, sino también gestionar eficientemente su ciclo de vida.
Para ello se utilizan esquemas de copia de seguridad incremental, que permiten guardar solo los datos modificados después de la primera copia completa. Además, se utilizan la deduplicación y la compresión, que reducen el volumen de información almacenada y disminuyen los requisitos de capacidad de almacenamiento.
Las políticas de almacenamiento son igualmente importantes. Determinan automáticamente cuánto tiempo deben conservarse las copias de seguridad diarias, semanales o mensuales y cuándo pueden eliminarse de forma segura sin infringir los requisitos empresariales o normativos.
Además, los sistemas de copias de seguridad modernos deben proteger las propias copias de seguridad mediante el soporte de cifrado tanto durante la transferencia de datos como durante el almacenamiento. Esto reduce el riesgo de que las copias de seguridad se vean comprometidas incluso si un atacante obtiene acceso a la red o a los soportes físicos.
- Consistencia de la aplicación
Obtener una copia de seguridad de una máquina virtual no es suficiente. Es importante que las aplicaciones funcionen correctamente después de la recuperación.
Si la copia de seguridad se realiza sin coordinación con la aplicación, se crea una copia consistente ante fallos, es decir, una copia equivalente a un apagado de emergencia de la máquina virtual.
Para los DBMS modernos como PostgreSQL o MySQL, esta situación generalmente no es crítica: en el siguiente inicio realizan la recuperación utilizando los registros de transacciones. Sin embargo, este proceso requiere tiempo adicional, y para algunas aplicaciones este nivel de consistencia no es suficiente. Por lo tanto, para servicios críticos se utilizan copias de seguridad consistentes con la aplicación.
- Almacenamiento independiente de copias de seguridad
Incluso una copia de seguridad bien creada es inútil si se almacena en el mismo circuito que la infraestructura productiva.
El ransomware moderno busca no solo cifrar los datos de trabajo, sino también destruir las copias de seguridad, dejando a la víctima sin posibilidad de recuperación. Si el servidor de copias de seguridad es accesible desde la misma red y utiliza las mismas cuentas administrativas, existe una alta probabilidad de que un atacante pueda deshabilitar también el sistema de recuperación.
Por lo tanto, hoy en día se utilizan cada vez más tanto la regla clásica 3-2-1 como su modificación moderna 3-2-1-1-0. Esta última supone al menos una copia inmutable o físicamente aislada, así como la verificación periódica de la posibilidad de recuperación.
Como dicho almacenamiento pueden utilizarse bibliotecas de cintas, almacenamientos de objetos compatibles con S3 con soporte de Object Lock, o sitios remotos con su propia infraestructura de almacenamiento.
Al mismo tiempo, un sistema de copias de seguridad moderno debe soportar el trabajo simultáneo con varios tipos de almacenamiento. Por ejemplo, las copias de seguridad activas pueden almacenarse en una matriz de discos local para una recuperación rápida y, posteriormente, migrarse automáticamente a un almacenamiento de objetos o a una biblioteca de cintas para conservación a largo plazo y protección contra ransomware.
- Verificación de la posibilidad de recuperación
El hecho de que una copia de seguridad se haya creado correctamente no significa que será posible restaurar el sistema a partir de ella. Corrupción de medios, errores de transferencia de datos, interrupciones en la cadena de copias incrementales o problemas con el repositorio: lamentablemente, es solo cuando necesita vitalmente sus copias de seguridad que puede descubrir estas cosas desagradables. Es por esto que una de las funciones más importantes de un sistema de copias de seguridad moderno es la verificación automática de la posibilidad de recuperación a partir de las copias. Dicha verificación puede incluir la comprobación de sumas de verificación, la lectura de datos desde el repositorio y la verificación automática de la integridad de la copia de seguridad.
La replicación no sustituye a una copia de seguridad
Al diseñar un sistema de protección de datos, es importante considerar que la copia de seguridad y la replicación resuelven tareas diferentes.
Una copia de seguridad permite restaurar datos después de una eliminación accidental, un error lógico, la corrupción de archivos o un ataque de ransomware. La replicación, por el contrario, está destinada a restaurar rápidamente la funcionalidad después de un fallo de hardware, sistema de almacenamiento o de todo el sitio.
Si su infraestructura tiene objetivos estrictos de tiempo de recuperación (RTO), la copia de seguridad por sí sola puede no ser suficiente, ya que incluso con una copia disponible, restaurar un gran número de máquinas virtuales puede llevar una cantidad significativa de tiempo. En tales casos, se utiliza la replicación a un sitio de respaldo. Esta transmite los cambios de forma síncrona o asíncrona y permite el cambio rápido de servicios a una infraestructura de respaldo en caso de emergencia. La mayoría de los mecanismos de replicación reproducen los cambios prácticamente sin latencia, por lo que las eliminaciones accidentales de datos, los errores lógicos o el cifrado de archivos por malware generalmente se replican en el sitio de respaldo.
Ambas tecnologías generalmente se utilizan juntas en infraestructuras maduras: la replicación garantiza la continuidad del servicio, mientras que la copia de seguridad permite la recuperación de datos en diversos escenarios de fallo.