Copia de seguridad, parte 1: Finalidad, revisión de métodos y tecnologías

Copia de seguridad, parte 1: Finalidad, revisión de métodos y tecnologías
¿Por qué necesitas hacer copias de seguridad? Después de todo, el equipo es muy, muy confiable y, además, hay "nubes" que son mejores en confiabilidad que los servidores físicos: con la configuración adecuada, un servidor "en la nube" puede sobrevivir fácilmente a la falla de un servidor físico de infraestructura, y de Desde el punto de vista de los usuarios del servicio, habrá un pequeño y apenas perceptible salto en el tiempo de servicio. Además, la duplicación de información a menudo requiere pagar por tiempo “extra” del procesador, carga del disco y tráfico de red.

Un programa ideal se ejecuta rápido, no pierde memoria, no tiene agujeros y no existe.

-Desconocido

Dado que los programas todavía son escritos por desarrolladores de proteínas, y a menudo no existe un proceso de prueba, además los programas rara vez se entregan utilizando "mejores prácticas" (que en sí mismas también son programas y, por lo tanto, imperfectas), los administradores de sistemas a menudo tienen que resolver problemas que parecen breves pero sucintamente: "volver a como estaba", "llevar la base al funcionamiento normal", "funciona lentamente - retroceder", y también mi favorito "No sé qué, pero arréglalo".

Además de los errores lógicos que surgen como resultado del trabajo descuidado de los desarrolladores, o una combinación de circunstancias, así como el conocimiento incompleto o la mala comprensión de las pequeñas características de los programas de compilación, incluidas las de conexión y de sistema, incluidos los sistemas operativos, controladores y firmware, También hay otros errores. Por ejemplo, la mayoría de los desarrolladores confían en el tiempo de ejecución, olvidándose por completo de las leyes físicas, que aún son imposibles de eludir mediante programas. Esto incluye la confiabilidad infinita del subsistema de disco y, en general, de cualquier subsistema de almacenamiento de datos (¡incluida la RAM y el caché del procesador!), el tiempo de procesamiento cero en el procesador y la ausencia de errores durante la transmisión a través de la red y durante el procesamiento en la red. procesador y latencia de red, que es igual a 0. No debe descuidar el notorio plazo, porque si no lo cumple a tiempo, habrá problemas peores que los matices del funcionamiento de la red y el disco.

Copia de seguridad, parte 1: Finalidad, revisión de métodos y tecnologías

¿Qué hacer con los problemas que surgen con toda su fuerza y ​​se ciernen sobre datos valiosos? No hay nada que pueda reemplazar a los desarrolladores vivos, y no es un hecho que esto sea posible en un futuro próximo. Por otro lado, sólo unos pocos proyectos han logrado demostrar plenamente que el programa funcionará según lo previsto, y no necesariamente será posible tomar y aplicar la evidencia a otros proyectos similares. Además, dichas pruebas requieren mucho tiempo y habilidades y conocimientos especiales, lo que prácticamente minimiza la posibilidad de utilizarlas teniendo en cuenta los plazos. Además, todavía no sabemos cómo utilizar tecnología ultrarrápida, barata e infinitamente fiable para almacenar, procesar y transmitir información. Estas tecnologías, si existen, se encuentran en forma de conceptos o, en la mayoría de los casos, sólo en libros y películas de ciencia ficción.

Buenos artistas copian grandes artistas roban.

-Pablo Picasso.

Las soluciones más exitosas y las cosas sorprendentemente simples suelen ocurrir cuando se encuentran conceptos, tecnologías, conocimientos y campos de la ciencia que a primera vista son absolutamente incompatibles.

Por ejemplo, los pájaros y los aviones tienen alas, pero a pesar de la similitud funcional (el principio de funcionamiento en algunos modos es el mismo y los problemas técnicos se resuelven de forma similar: huesos huecos, uso de materiales resistentes y ligeros, etc.) los resultados son completamente diferentes, aunque muy similares. Los mejores ejemplos que vemos en nuestra tecnología también están tomados en gran medida de la naturaleza: los compartimentos presurizados de barcos y submarinos son una analogía directa con los anélidos; construir matrices de incursiones y verificar la integridad de los datos: duplicar la cadena de ADN; así como órganos emparejados, independencia del trabajo de diferentes órganos del sistema nervioso central (automatización del corazón) y reflejos: sistemas autónomos en Internet. Por supuesto, tomar y aplicar soluciones ya preparadas “de frente” está plagado de problemas, pero quién sabe, tal vez no haya otras soluciones.

¡Si hubiera sabido dónde caerías, habría tendido pajitas!

—Proverbio popular bielorruso

Esto significa que las copias de seguridad son vitales para quienes desean:

  • Ser capaz de restaurar el funcionamiento de sus sistemas con un tiempo de inactividad mínimo, o incluso sin él
  • Actúe con valentía, porque en caso de error siempre existe la posibilidad de retroceder
  • Minimizar las consecuencias de la corrupción intencional de datos

Aquí una pequeña teoría.

Cualquier clasificación es arbitraria. La naturaleza no clasifica. Clasificamos porque nos conviene más. Y clasificamos según datos que también tomamos de forma arbitraria.

—Jean Brüler

Independientemente del método de almacenamiento físico, el almacenamiento lógico de datos se puede dividir en dos formas de acceder a estos datos: bloque y archivo. Esta división se ha vuelto muy difusa últimamente, porque el almacenamiento lógico puramente de bloques, así como el de archivos, no existe. Sin embargo, por simplicidad, asumiremos que existen.

El almacenamiento de datos en bloques implica que existe un dispositivo físico donde los datos se escriben en ciertas porciones fijas, bloques. Se accede a los bloques en una dirección determinada; cada bloque tiene su propia dirección dentro del dispositivo.

Por lo general, una copia de seguridad se realiza copiando bloques de datos. Para garantizar la integridad de los datos, el registro de nuevos bloques, así como los cambios en los existentes, se suspenden en el momento de la copia. Si tomamos una analogía del mundo ordinario, lo más parecido es un armario con celdas idénticas.

Copia de seguridad, parte 1: Finalidad, revisión de métodos y tecnologías

El almacenamiento de datos de archivos basado en el principio de dispositivo lógico está cerca del almacenamiento en bloque y, a menudo, está organizado en la parte superior. Las diferencias importantes son la presencia de una jerarquía de almacenamiento y nombres legibles por humanos. Una abstracción se asigna en forma de archivo (un área de datos con nombre), así como un directorio (un archivo especial en el que se almacenan descripciones y acceso a otros archivos). Los archivos pueden recibir metadatos adicionales: hora de creación, indicadores de acceso, etc. Las copias de seguridad generalmente se realizan de esta manera: buscan archivos modificados y luego los copian en otro almacenamiento de archivos con la misma estructura. La integridad de los datos generalmente se logra mediante la ausencia de archivos en los que se escriba. Los metadatos del archivo se respaldan de la misma manera. La analogía más cercana es una biblioteca, que tiene secciones con diferentes libros y también tiene un catálogo con nombres de libros legibles por humanos.

Copia de seguridad, parte 1: Finalidad, revisión de métodos y tecnologías

Recientemente, a veces se describe otra opción, a partir de la cual, en principio, comenzó el almacenamiento de datos en archivos, y que tiene las mismas características arcaicas: el almacenamiento de datos de objetos.

Se diferencia del almacenamiento de archivos en que no tiene más de un anidamiento (esquema plano) y los nombres de los archivos, aunque legibles por humanos, son aún más adecuados para el procesamiento por máquinas. Al realizar copias de seguridad, el almacenamiento de objetos suele tratarse de manera similar al almacenamiento de archivos, pero ocasionalmente existen otras opciones.

— Hay dos tipos de administradores de sistemas, los que no hacen copias de seguridad y los que YA lo hacen.
- En realidad, hay tres tipos: también hay quienes comprueban que las copias de seguridad se pueden restaurar.

-Desconocido

También vale la pena entender que el proceso de copia de seguridad de los datos en sí lo llevan a cabo programas, por lo que tiene las mismas desventajas que cualquier otro programa. Para eliminar (¡no eliminar!) la dependencia del factor humano, así como características que individualmente no tienen un gran impacto, pero que juntas pueden dar un efecto notable, se utiliza el llamado regla 3-2-1. Hay muchas opciones sobre cómo descifrarlo, pero prefiero la siguiente interpretación: es necesario almacenar 3 conjuntos de los mismos datos, 2 conjuntos deben almacenarse en diferentes formatos y 1 conjunto debe almacenarse en un almacenamiento geográficamente remoto.

El formato de almacenamiento debe entenderse de la siguiente manera:

  • Si depende del método de almacenamiento físico, cambiamos el método físico.
  • Si existe una dependencia del método de almacenamiento lógico, cambiamos el método lógico.

Para lograr el máximo efecto de la regla 3-2-1, se recomienda cambiar el formato de almacenamiento en ambos sentidos.

Desde el punto de vista de la preparación de una copia de seguridad para el propósito previsto (restaurar la funcionalidad), se hace una distinción entre copias de seguridad "en caliente" y "en frío". Los calientes se diferencian de los fríos en una sola cosa: están inmediatamente listos para su uso, mientras que los fríos requieren algunos pasos adicionales para su recuperación: descifrado, extracción del archivo, etc.

No confunda las copias en caliente y en frío con las copias en línea y fuera de línea, que implican el aislamiento físico de los datos y, de hecho, son otro signo de la clasificación de los métodos de copia de seguridad. Por lo tanto, una copia fuera de línea, que no está conectada directamente al sistema donde debe restaurarse, puede estar en caliente o en frío (en términos de preparación para la recuperación). Una copia en línea puede estar disponible directamente donde necesita ser restaurada, y la mayoría de las veces está caliente, pero también las hay frías.

Además, no olvide que el proceso de creación de copias de seguridad en sí no suele terminar con la creación de una copia de seguridad, sino que puede haber una cantidad bastante grande de copias. Por tanto, es necesario distinguir entre copias de seguridad completas, es decir. aquellas que se pueden restaurar independientemente de otras copias de seguridad, así como copias diferenciales (incrementales, diferenciales, decrementales, etc.), aquellas que no se pueden restaurar de forma independiente y requieren la restauración preliminar de una o más copias de seguridad.

Las copias de seguridad incrementales diferenciales son un intento de ahorrar espacio de almacenamiento de copias de seguridad. Por lo tanto, sólo los datos modificados de la copia de seguridad anterior se escriben en la copia de seguridad.

Los decrementales diferenciales se crean con el mismo propósito, pero de una manera ligeramente diferente: se realiza una copia de seguridad completa, pero en realidad solo se almacena la diferencia entre la copia nueva y la anterior.

Por separado, vale la pena considerar el proceso de copia de seguridad sobre almacenamiento, que respalda la ausencia de almacenamiento de duplicados. Por lo tanto, si escribe copias de seguridad completas encima, solo se escribirán las diferencias entre las copias de seguridad, pero el proceso de restauración de las copias de seguridad será similar a restaurar desde una copia completa y completamente transparente.

¿Quis custodiet ipsos custodes?

(¿Quién protegerá a los propios vigilantes? - lat.)

Es muy desagradable cuando no hay copias de seguridad, pero es mucho peor si parece que se ha hecho una copia de seguridad, pero al restaurar resulta que no se puede restaurar porque:

  • La integridad de los datos de origen se ha visto comprometida.
  • El almacenamiento de respaldo está dañado.
  • La restauración funciona muy lentamente; no se pueden utilizar datos que se hayan recuperado parcialmente.

Un proceso de copia de seguridad construido correctamente debe tener en cuenta dichos comentarios, especialmente los dos primeros.

La integridad de los datos de origen se puede garantizar de varias formas. Los más utilizados son los siguientes: a) crear instantáneas del sistema de archivos a nivel de bloque, b) "congelar" el estado del sistema de archivos, c) un dispositivo de bloque especial con almacenamiento de versiones, d) grabación secuencial de archivos o bloques. También se aplican sumas de verificación para garantizar que los datos se verifiquen durante la recuperación.

La corrupción del almacenamiento también se puede detectar mediante sumas de verificación. Un método adicional es el uso de dispositivos o sistemas de archivos especializados en los que los datos ya grabados no se pueden cambiar, pero se pueden agregar otros nuevos.

Para acelerar la recuperación, la recuperación de datos se utiliza con múltiples procesos de recuperación, siempre que no haya ningún cuello de botella en forma de una red lenta o un sistema de disco lento. Para solucionar la situación con datos parcialmente recuperados, puede dividir el proceso de copia de seguridad en subtareas relativamente pequeñas, cada una de las cuales se realiza por separado. Por lo tanto, es posible restaurar consistentemente el rendimiento mientras se predice el tiempo de recuperación. Este problema suele radicar en el plano organizativo (SLA), por lo que no nos detendremos en esto en detalle.

Un experto en especias no es el que las añade a cada plato, sino el que nunca le añade nada extra.

-EN. Sinyavsky

Las prácticas relativas al software utilizado por los administradores de sistemas pueden variar, pero los principios generales siguen siendo, de una forma u otra, los mismos, en particular:

  • Se recomienda encarecidamente utilizar soluciones ya preparadas.
  • Los programas deberían funcionar de forma predecible, es decir. No debe haber características no documentadas ni cuellos de botella.
  • Configurar cada programa debería ser tan simple que no tengas que leer el manual o la hoja de trucos cada vez.
  • Si es posible, la solución debería ser universal, porque Los servidores pueden variar mucho en sus características de hardware.

Existen los siguientes programas comunes para realizar copias de seguridad de dispositivos de bloque:

  • dd, familiar para los veteranos de la administración de sistemas, también incluye programas similares (el mismo dd_rescue, por ejemplo).
  • Utilidades integradas en algunos sistemas de archivos que crean un volcado del sistema de archivos.
  • Utilidades omnívoras; por ejemplo parteclon.
  • Decisiones propias, a menudo de propiedad; por ejemplo, NortonGhost y posteriores.

Para los sistemas de archivos, el problema de la copia de seguridad se resuelve parcialmente utilizando métodos aplicables para dispositivos de bloque, pero el problema se puede resolver de manera más eficiente usando, por ejemplo:

  • Rsync, un programa y protocolo de propósito general para sincronizar el estado de los sistemas de archivos.
  • Herramientas de archivo integradas (ZFS).
  • Herramientas de archivo de terceros; el representante más popular es el alquitrán. Hay otros, por ejemplo, dar, un sustituto del alquitrán destinado a los sistemas modernos.

Vale la pena mencionar por separado las herramientas de software para garantizar la coherencia de los datos al crear copias de seguridad. Las opciones más utilizadas son:

  • Montar el sistema de archivos en modo de solo lectura (ReadOnly) o congelar el sistema de archivos (freeze): el método tiene una aplicabilidad limitada.
  • Creación de instantáneas del estado de sistemas de archivos o dispositivos de bloque (LVM, ZFS).
  • El uso de herramientas de terceros para la organización de impresiones, incluso en los casos en los que por algún motivo no se puedan proporcionar los puntos anteriores (programas como hotcopy).
  • Sin embargo, la técnica de copia sobre cambio (CopyOnWrite) suele estar vinculada al sistema de archivos utilizado (BTRFS, ZFS).

Por lo tanto, para un servidor pequeño es necesario proporcionar un esquema de copia de seguridad que cumpla con los siguientes requisitos:

  • Fácil de usar: no se requieren pasos adicionales especiales durante la operación, pasos mínimos para crear y restaurar copias.
  • Universal: funciona tanto en servidores grandes como pequeños; esto es importante cuando se aumenta la cantidad de servidores o se escala.
  • Instalado por un administrador de paquetes, o en uno o dos comandos como "descargar y descomprimir".
  • Estable: se utiliza un formato de almacenamiento estándar o establecido desde hace mucho tiempo.
  • Rápido en el trabajo.

Solicitantes de entre aquellos que más o menos cumplan con los requisitos:

  • rdiff-copia de seguridad
  • rsnapshot
  • eructar
  • duplicar
  • duplicidad
  • deja dup
  • Dar
  • copia de seguridad z
  • inquieto
  • borgbackup

Copia de seguridad, parte 1: Finalidad, revisión de métodos y tecnologías

Como banco de pruebas se utilizará una máquina virtual (basada en XenServer) con las siguientes características:

  • 4 núcleos de 2.5 GHz,
  • 16 GB de RAM,
  • Almacenamiento híbrido de 50 GB (sistema de almacenamiento con almacenamiento en caché en SSD del 20 % del tamaño del disco virtual) en forma de disco virtual independiente sin particionamiento,
  • Canal de Internet de 200 Mbps.

Casi la misma máquina se utilizará como servidor receptor de respaldo, solo que con un disco duro de 500 GB.

Sistema operativo: Centos 7 x64: partición estándar, se utilizará una partición adicional como fuente de datos.

Como datos iniciales, tomemos un sitio de WordPress con 40 GB de archivos multimedia y una base de datos MySQL. Dado que los servidores virtuales varían mucho en características, y también para una mejor reproducibilidad, aquí está

Resultados de las pruebas del servidor utilizando sysbench.sysbench --threads=4 --time=30 --cpu-max-prime=20000 ejecución de CPU
sysbench 1.1.0-18a9f86 (usando LuaJIT 2.1.0-beta3 incluido)
Ejecutando la prueba con las siguientes opciones:
Número de hilos: 4
Inicializando el generador de números aleatorios desde la hora actual

Límite de números primos: 20000

Inicializando subprocesos de trabajo...

¡Se iniciaron los hilos!

Velocidad de la CPU:
eventos por segundo: 836.69

rendimiento:
eventos/s (eps): 836.6908
tiempo transcurrido: 30.0039s
número total de eventos: 25104

Latencia (ms):
mínimo: 2.38
promedio: 4.78
máx: 22.39
Percentil 95: 10.46
suma: 119923.64

Equidad de los hilos:
eventos (promedio/desvestándar): 6276.0000/13.91
tiempo de ejecución (promedio/desv estándar): 29.9809/0.01

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=leer ejecución de memoria
sysbench 1.1.0-18a9f86 (usando LuaJIT 2.1.0-beta3 incluido)
Ejecutando la prueba con las siguientes opciones:
Número de hilos: 4
Inicializando el generador de números aleatorios desde la hora actual

Ejecutando prueba de velocidad de memoria con las siguientes opciones:
tamaño de bloque: 1 KiB
tamaño total: 102400MiB
operación: leer
alcance: mundial

Inicializando subprocesos de trabajo...

¡Se iniciaron los hilos!

Operaciones totales: 50900446 (1696677.10 por segundo)

49707.47 MiB transferidos (1656.91 MiB/seg)

rendimiento:
eventos/s (eps): 1696677.1017
tiempo transcurrido: 30.0001s
número total de eventos: 50900446

Latencia (ms):
mínimo: 0.00
promedio: 0.00
máx: 24.01
Percentil 95: 0.00
suma: 39106.74

Equidad de los hilos:
eventos (promedio/desvestándar): 12725111.5000/137775.15
tiempo de ejecución (promedio/desv estándar): 9.7767/0.10

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=escribir memoria ejecutada
sysbench 1.1.0-18a9f86 (usando LuaJIT 2.1.0-beta3 incluido)
Ejecutando la prueba con las siguientes opciones:
Número de hilos: 4
Inicializando el generador de números aleatorios desde la hora actual

Ejecutando prueba de velocidad de memoria con las siguientes opciones:
tamaño de bloque: 1 KiB
tamaño total: 102400MiB
operación: escribir
alcance: mundial

Inicializando subprocesos de trabajo...

¡Se iniciaron los hilos!

Operaciones totales: 35910413 (1197008.62 por segundo)

35068.76 MiB transferidos (1168.95 MiB/seg)

rendimiento:
eventos/s (eps): 1197008.6179
tiempo transcurrido: 30.0001s
número total de eventos: 35910413

Latencia (ms):
mínimo: 0.00
promedio: 0.00
máx: 16.90
Percentil 95: 0.00
suma: 43604.83

Equidad de los hilos:
eventos (promedio/desvestándar): 8977603.2500/233905.84
tiempo de ejecución (promedio/desv estándar): 10.9012/0.41

sysbench --threads=4 --file-test-mode=rndrw --time=60 --file-block-size=4K --file-total-size=1G fileio run
sysbench 1.1.0-18a9f86 (usando LuaJIT 2.1.0-beta3 incluido)
Ejecutando la prueba con las siguientes opciones:
Número de hilos: 4
Inicializando el generador de números aleatorios desde la hora actual

Indicadores adicionales de apertura de archivos: (ninguno)
128 archivos, 8MiB cada uno
Tamaño total de archivo de 1 GiB
Tamaño de bloque 4KiB
Número de solicitudes de E/S: 0
Relación de lectura/escritura para prueba IO aleatoria combinada: 1.50
FSYNC periódico habilitado, llamando a fsync() cada 100 solicitudes.
Llamar a fsync() al final de la prueba, habilitado.
Uso del modo de E/S síncrono
Haciendo una prueba aleatoria de lectura y escritura
Inicializando subprocesos de trabajo...

¡Se iniciaron los hilos!

rendimiento:
léase: IOPS=3868.21 15.11 MiB/s (15.84 MB/s)
escribir: IOPS=2578.83 10.07 MiB/s (10.56 MB/s)
sincronización f: IOPS = 8226.98

Latencia (ms):
mínimo: 0.00
promedio: 0.27
máx: 18.01
Percentil 95: 1.08
suma: 238469.45

Esta nota comienza un gran

serie de artículos sobre copias de seguridad

  1. Copia de seguridad, parte 1: Por qué es necesaria la copia de seguridad, una descripción general de los métodos, las tecnologías
  2. Copia de seguridad Parte 2: revisión y prueba de herramientas de copia de seguridad basadas en rsync
  3. Copia de seguridad Parte 3: revisión y prueba de duplicidad, duplicación, deja dup
  4. Backup Parte 4: Revisión y prueba de zbackup, restic, borgbackup
  5. Copia de seguridad Parte 5: Probando bacula y veeam backup para linux
  6. Copia de seguridad Parte 6: Comparación de herramientas de copia de seguridad
  7. Copia de seguridad Parte 7: Conclusiones

Fuente: habr.com

Añadir un comentario