Backup, parte 1: Finalidade, revisión de métodos e tecnoloxías

Backup, parte 1: Finalidade, revisión de métodos e tecnoloxías
Por que necesitas facer copias de seguridade? Despois de todo, o equipo é moi, moi fiable e, ademais, hai "nubes" que son mellores en fiabilidade que os servidores físicos: cunha configuración adecuada, un servidor "nube" pode sobrevivir facilmente á falla dun servidor físico de infraestrutura, e desde dende o punto de vista dos usuarios do servizo, haberá un pequeno salto no tempo apenas perceptible. Ademais, a duplicación de información moitas veces require pagar por tempo "extra" do procesador, carga do disco e tráfico de rede.

Un programa ideal execútase rápido, non perde memoria, non ten buratos e non existe.

-Descoñecido

Dado que os programas aínda están escritos por desenvolvedores de proteínas, e moitas veces non hai ningún proceso de proba, ademais de que os programas raramente se envían utilizando as "mellores prácticas" (que tamén son programas e, polo tanto, imperfectos), os administradores de sistemas a miúdo teñen que resolver problemas que soan brevemente pero Sucintamente: "volver como estaba", "traer a base ao funcionamento normal", "funciona lentamente - retrocede", e tamén o meu favorito "Non sei que, pero arranxao".

Ademais dos erros lóxicos que xorden como resultado do traballo descoidado dos desenvolvedores, ou dunha combinación de circunstancias, así como un coñecemento incompleto ou unha incomprensión das pequenas características dos programas de construción, incluídos os de conexión e do sistema, incluídos os sistemas operativos, controladores e firmware, tamén hai outros erros. Por exemplo, a maioría dos desenvolvedores confían no tempo de execución, esquecéndose por completo das leis físicas, que aínda son imposibles de eludir mediante programas. Isto inclúe a fiabilidade infinita do subsistema de disco e, en xeral, de calquera subsistema de almacenamento de datos (incluíndo a RAM e a caché do procesador!), e o tempo de procesamento cero no procesador e a ausencia de erros durante a transmisión pola rede e durante o procesamento na rede. procesador e a latencia da rede, que é igual a 0. Non debes descoidar o notorio prazo, porque se non o cumpre a tempo, haberá problemas peores que os matices do funcionamento da rede e do disco.

Backup, parte 1: Finalidade, revisión de métodos e tecnoloxías

Que facer con problemas que se elevan con toda a súa forza e colgan datos valiosos? Non hai nada que substitúa aos desenvolvedores vivos, e non é un feito que sexa posible nun futuro próximo. Por outra banda, só uns poucos proxectos lograron demostrar plenamente que o programa funcionará segundo o previsto, e non necesariamente será posible tomar e aplicar a evidencia a outros proxectos similares. Ademais, este tipo de probas leva moito tempo e requiren habilidades e coñecementos especiais, o que practicamente minimiza a posibilidade do seu uso tendo en conta os prazos. Ademais, aínda non sabemos utilizar tecnoloxía ultrarrápida, barata e de fiabilidade infinita para almacenar, procesar e transmitir información. Tales tecnoloxías, se as existen, están en forma de conceptos ou, a maioría das veces, só en libros e películas de ciencia ficción.

Os bos artistas copian, os grandes artistas rouban.

- Pablo Picasso.

As solucións máis exitosas e as cousas sorprendentemente sinxelas adoitan ocorrer onde se atopan conceptos, tecnoloxías, coñecementos e campos da ciencia que son absolutamente incompatibles a primeira vista.

Por exemplo, as aves e os avións teñen ás, pero a pesar da semellanza funcional - o principio de funcionamento nalgúns modos é o mesmo e os problemas técnicos resólvense dun xeito similar: ósos ocos, uso de materiais fortes e lixeiros, etc. - os resultados son completamente diferentes, aínda que moi similares. Os mellores exemplos que vemos na nosa tecnoloxía tamén están en gran parte tomados da natureza: os compartimentos presurizados de barcos e submarinos son unha analoxía directa cos anélidos; construír matrices de ataque e comprobar a integridade dos datos - duplicando a cadea de ADN; así como os órganos pareados, a independencia do traballo de diferentes órganos do sistema nervioso central (automatización do corazón) e os reflexos - sistemas autónomos en Internet. Por suposto, tomar e aplicar solucións preparadas "de frente" está chea de problemas, pero quen sabe, quizais non haxa outras solucións.

Se eu soubese onde caerías, tería tes pallas!

—Refraneiro popular bielorruso

Isto significa que as copias de seguridade son vitais para aqueles que queiran:

  • Pode restaurar o funcionamento dos seus sistemas cun tempo de inactividade mínimo, ou mesmo sen el
  • Actúa con audacia, porque en caso de erro sempre existe a posibilidade de retroceder
  • Minimizar as consecuencias da corrupción intencionada de datos

Aquí tes unha pequena teoría

Calquera clasificación é arbitraria. A natureza non clasifica. Clasificamos porque nos é máis cómodo. E clasificamos segundo datos que tamén tomamos arbitrariamente.

—Jean Bruler

Independentemente do método de almacenamento físico, o almacenamento lóxico de datos pódese dividir en dúas formas de acceder a estes datos: bloque e ficheiro. Esta división foi recentemente moi borrosa, porque o almacenamento lóxico puramente de bloques, así como de ficheiros, non existe. Non obstante, para simplificar, asumiremos que existen.

O almacenamento de datos en bloque implica que hai un dispositivo físico onde os datos se escriben en determinadas partes fixas, bloques. Accédese aos bloques a un determinado enderezo; cada bloque ten o seu propio enderezo dentro do dispositivo.

Unha copia de seguridade adoita facerse copiando bloques de datos. Para garantir a integridade dos datos, a gravación de novos bloques, así como as modificacións dos existentes, quedan suspendidas no momento da copia. Se tomamos unha analoxía do mundo común, o máis próximo é un armario con celas idénticas numeradas.

Backup, parte 1: Finalidade, revisión de métodos e tecnoloxías

O almacenamento de datos de ficheiros baseado no principio do dispositivo lóxico está próximo ao almacenamento en bloque e a miúdo organízase na parte superior. As diferenzas importantes son a presenza dunha xerarquía de almacenamento e nomes lexibles polos humanos. Unha abstracción atribúese en forma de ficheiro - unha área de datos nomeada, así como un directorio - un ficheiro especial no que se almacenan descricións e acceso a outros ficheiros. Os ficheiros pódense proporcionar con metadatos adicionais: tempo de creación, marcas de acceso, etc. As copias de seguridade adoitan facerse deste xeito: buscan ficheiros modificados e despois cópiaos noutro almacenamento de ficheiros coa mesma estrutura. A integridade dos datos adoita implementarse pola ausencia de ficheiros nos que se escriben. Copia de seguranza dos metadatos do ficheiro do mesmo xeito. A analoxía máis próxima é unha biblioteca, que ten seccións con diferentes libros, e tamén ten un catálogo cos nomes dos libros lexibles polos humanos.

Backup, parte 1: Finalidade, revisión de métodos e tecnoloxías

Recentemente, ás veces descríbese outra opción, a partir da que, en principio, comezou o almacenamento de datos de ficheiros, e que ten as mesmas características arcaicas: o almacenamento de datos de obxectos.

Diferénciase do almacenamento de ficheiros en que non ten máis dun aniñamento (esquema plano) e os nomes dos ficheiros, aínda que son lexibles polos humanos, aínda son máis axeitados para o procesamento por máquinas. Cando se realizan copias de seguridade, o almacenamento de obxectos adoita tratarse de forma similar ao almacenamento de ficheiros, pero ás veces hai outras opcións.

— Hai dous tipos de administradores de sistemas, os que non fan copias de seguridade e os que XA o fan.
- En realidade, hai tres tipos: tamén hai quen comproba que as copias de seguridade se poden restaurar.

-Descoñecido

Tamén vale a pena entender que o proceso de copia de seguridade de datos en si é realizado por programas, polo que ten as mesmas desvantaxes que calquera outro programa. Para eliminar (non eliminar!) a dependencia do factor humano, así como as características - que individualmente non teñen un efecto forte, pero que xuntos poden dar un efecto notable - o chamado regra 3-2-1. Hai moitas opcións sobre como descifralo, pero gústame máis a seguinte interpretación: hai que gardar 3 conxuntos dos mesmos datos, 2 conxuntos en diferentes formatos e 1 conxunto nun almacenamento xeograficamente remoto.

O formato de almacenamento debe entenderse do seguinte xeito:

  • Se hai unha dependencia do método de almacenamento físico, cambiamos o método físico.
  • Se hai unha dependencia do método de almacenamento lóxico, cambiamos o método lóxico.

Para conseguir o máximo efecto da regra 3-2-1, recoméndase cambiar o formato de almacenamento de ambos os dous sentidos.

Desde o punto de vista da preparación dunha copia de seguridade para o propósito previsto - restaurar a funcionalidade - distínguese entre copias de seguridade "quentes" e "frías". Os quentes difieren dos fríos en só unha cousa: están inmediatamente listos para o seu uso, mentres que os fríos requiren algúns pasos adicionais para a súa recuperación: descifrado, extracción do arquivo, etc.

Non confundas as copias en quente e en frío coas copias en liña e fóra de liña, que implican illamento físico dos datos e, de feito, son un sinal máis da clasificación dos métodos de copia de seguridade. Polo tanto, unha copia sen conexión, que non está conectada directamente ao sistema onde hai que restaurala, pode ser quente ou fría (en termos de preparación para a recuperación). Unha copia en liña pode estar dispoñible directamente onde hai que restaurala, e a maioría das veces está quente, pero tamén hai outras frías.

Ademais, non esqueza que o proceso de creación de copias de seguridade en si non adoita finalizar coa creación dunha copia de seguridade e pode haber un número bastante grande de copias. Polo tanto, é necesario distinguir entre copias de seguridade completas, é dicir. aqueles que se poden restaurar independentemente doutras copias de seguridade, así como copias diferenciais (incrementais, diferenciais, decrementais, etc.) - aquelas que non se poden restaurar de forma independente e requiren a restauración preliminar doutras copias de seguridade.

As copias de seguridade incrementais diferenciais son un intento de aforrar espazo de almacenamento. Así, só se escriben na copia de seguranza os datos modificados da copia de seguridade anterior.

Os decrementais diferenciais créanse co mesmo propósito, pero dun xeito lixeiramente diferente: realízase unha copia de seguridade completa, pero só se almacena a diferenza entre a copia fresca e a anterior.

Por separado, paga a pena considerar o proceso de copia de seguridade sobre o almacenamento, que admite a ausencia de almacenamento de duplicados. Así, se escribe copias de seguridade completas enriba dela, só se escribirán realmente as diferenzas entre as copias de seguridade, pero o proceso de restauración das copias de seguridade será semellante á restauración dunha copia completa e totalmente transparente.

Ques custodiet ipsos custodes?

(Quen vai gardar os propios vixiantes? - lat.)

É moi desagradable cando non hai copias de seguridade, pero é moito peor se parece que se fixo unha copia de seguridade, pero ao restaurar resulta que non se pode restaurar porque:

  • Comprometeuse a integridade dos datos de orixe.
  • O almacenamento de copia de seguranza está danado.
  • A restauración funciona moi lentamente; non pode usar datos que se recuperaron parcialmente.

Un proceso de copia de seguridade correctamente construído debe ter en conta tales comentarios, especialmente os dous primeiros.

A integridade dos datos de orixe pódese garantir de varias maneiras. Os máis utilizados son os seguintes: a) crear instantáneas do sistema de ficheiros a nivel de bloque, b) "conxelar" o estado do sistema de ficheiros, c) un dispositivo de bloque especial con almacenamento de versións, d) gravación secuencial de ficheiros ou bloques. As sumas de comprobación tamén se aplican para garantir que os datos se verifican durante a recuperación.

Tamén se pode detectar a corrupción do almacenamento mediante sumas de comprobación. Un método adicional é o uso de dispositivos ou sistemas de ficheiros especializados nos que non se poden cambiar os datos xa rexistrados, pero si poden engadir outros novos.

Para acelerar a recuperación, a recuperación de datos utilízase con múltiples procesos de recuperación, sempre que non haxa un pescozo de botella en forma de rede lenta ou sistema de disco lento. Para sortear a situación con datos parcialmente recuperados, pode dividir o proceso de copia de seguridade en subtarefas relativamente pequenas, cada unha das cales se realiza por separado. Así, faise posible restaurar constantemente o rendemento mentres se prevé o tempo de recuperación. Este problema atópase na maioría das veces no plano organizativo (SLA), polo que non nos detendremos en detalle.

Un experto en especias non é quen as engade a cada prato, senón quen nunca lle engade nada extra.

-EN. Sinyavsky

As prácticas relativas ao software utilizado polos administradores de sistemas poden variar, pero os principios xerais seguen sendo, dun xeito ou doutro, os mesmos, en particular:

  • Recoméndase encarecidamente usar solucións preparadas.
  • Os programas deben funcionar de forma previsible, é dicir. Non debería haber funcións non documentadas nin colos de botella.
  • Configurar cada programa debe ser tan sinxelo que non teñas que ler o manual ou a folla de trucos cada vez.
  • Se é posible, a solución debería ser universal, porque servidores poden variar moito nas súas características de hardware.

Existen os seguintes programas comúns para facer copias de seguridade de dispositivos de bloque:

  • dd, familiar para os veteranos da administración do sistema, isto tamén inclúe programas similares (o mesmo dd_rescue, por exemplo).
  • Utilidades integradas nalgúns sistemas de ficheiros que crean un volcado do sistema de ficheiros.
  • Utilidades omnívoras; por exemplo partclone.
  • Decisións propias, moitas veces propietarias; por exemplo, NortonGhost e máis tarde.

Para os sistemas de ficheiros, o problema de copia de seguridade resólvese parcialmente mediante métodos aplicables aos dispositivos de bloque, pero o problema pódese resolver de forma máis eficiente usando, por exemplo:

  • Rsync, un programa e protocolo de propósito xeral para sincronizar o estado dos sistemas de ficheiros.
  • Ferramentas de arquivo integradas (ZFS).
  • Ferramentas de arquivo de terceiros; o representante máis popular é tar. Hai outros, por exemplo, dar - un substituto do alcatrán dirixido a sistemas modernos.

Paga a pena mencionar por separado as ferramentas de software para garantir a coherencia dos datos ao crear copias de seguridade. As opcións máis utilizadas son:

  • Montar o sistema de ficheiros en modo de só lectura (ReadOnly) ou conxelar o sistema de ficheiros (conxelar) - o método é de aplicabilidade limitada.
  • Creación de instantáneas do estado dos sistemas de ficheiros ou dispositivos de bloque (LVM, ZFS).
  • O uso de ferramentas de terceiros para organizar impresións, mesmo nos casos en que por algún motivo non se poidan proporcionar os puntos anteriores (programas como hotcopy).
  • A técnica de copia ao cambio (CopyOnWrite), con todo, a maioría das veces está ligada ao sistema de ficheiros utilizado (BTRFS, ZFS).

Polo tanto, para un servidor pequeno, cómpre proporcionar un esquema de copia de seguridade que cumpra os seguintes requisitos:

  • Fácil de usar: non se precisan pasos adicionais especiais durante o funcionamento, pasos mínimos para crear e restaurar copias.
  • Universal - funciona tanto en servidores grandes como pequenos; isto é importante ao aumentar o número de servidores ou escalar.
  • Instalado por un xestor de paquetes, ou nun ou dous comandos como "descargar e desempaquetar".
  • Estable: úsase un formato de almacenamento estándar ou establecido desde hai moito tempo.
  • Rápido no traballo.

Solicitantes entre aqueles que cumpran máis ou menos os requisitos:

  • rdiff-backup
  • rsnapshot
  • eructo
  • duplicar
  • duplicidade
  • deixe dup
  • dar
  • zbackup
  • descansar
  • borgbackup

Backup, parte 1: Finalidade, revisión de métodos e tecnoloxías

Como banco de probas utilizarase unha máquina virtual (baseada en XenServer) coas seguintes características:

  • 4 núcleos 2.5 GHz,
  • 16 GB de RAM,
  • Almacenamento híbrido de 50 GB (sistema de almacenamento con caché en SSD 20 % do tamaño do disco virtual) en forma de disco virtual separado sen particionar,
  • Canle de Internet de 200 Mbps.

Case a mesma máquina empregarase como servidor receptor de copia de seguridade, só cun disco duro de 500 GB.

Sistema operativo - Centos 7 x64: partición estándar, partición adicional utilizarase como fonte de datos.

Como datos iniciais, tomemos un sitio web en Wordpress, con ficheiros multimedia de 40 GB de tamaño e unha base de datos mysql. Dado que os servidores virtuais varían moito en características, e tamén para unha mellor reproducibilidade, aquí está

resultados das probas do servidor usando sysbench.sysbench --threads=4 --time=30 --cpu-max-prime=20000 cpu run
sysbench 1.1.0-18a9f86 (usando o paquete LuaJIT 2.1.0-beta3)
Realización da proba coas seguintes opcións:
Número de fíos: 4
Inicializando o xerador de números aleatorios desde o momento actual

Límite de números primos: 20000

Iniciando fíos de traballo...

Fíos iniciados.

Velocidade da CPU:
eventos por segundo: 836.69

Rendemento:
eventos/s (eps): 836.6908
tempo transcorrido: 30.0039 s
Número total de eventos: 25104

Latencia (ms):
mín.: 2.38
media: 4.78
máximo: 22.39
Percentil 95: 10.46
suma: 119923.64

Temas xustos:
eventos (avg/stddev): 6276.0000/13.91
tempo de execución (avg/stddev): 29.9809/0.01

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=leer execución da memoria
sysbench 1.1.0-18a9f86 (usando o paquete LuaJIT 2.1.0-beta3)
Realización da proba coas seguintes opcións:
Número de fíos: 4
Inicializando o xerador de números aleatorios desde o momento actual

Execución da proba de velocidade da memoria coas seguintes opcións:
Tamaño do bloque: 1 KiB
Tamaño total: 102400 MiB
operación: ler
alcance: global

Iniciando fíos de traballo...

Fíos iniciados.

Total de operacións: 50900446 (1696677.10 por segundo)

49707.47 MiB transferidos (1656.91 MiB/s)

Rendemento:
eventos/s (eps): 1696677.1017
tempo transcorrido: 30.0001 s
Número total de eventos: 50900446

Latencia (ms):
mín.: 0.00
media: 0.00
máximo: 24.01
Percentil 95: 0.00
suma: 39106.74

Temas xustos:
eventos (avg/stddev): 12725111.5000/137775.15
tempo de execución (avg/stddev): 9.7767/0.10

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=escribir memoria de execución
sysbench 1.1.0-18a9f86 (usando o paquete LuaJIT 2.1.0-beta3)
Realización da proba coas seguintes opcións:
Número de fíos: 4
Inicializando o xerador de números aleatorios desde o momento actual

Execución da proba de velocidade da memoria coas seguintes opcións:
Tamaño do bloque: 1 KiB
Tamaño total: 102400 MiB
operación: escribir
alcance: global

Iniciando fíos de traballo...

Fíos iniciados.

Total de operacións: 35910413 (1197008.62 por segundo)

35068.76 MiB transferidos (1168.95 MiB/s)

Rendemento:
eventos/s (eps): 1197008.6179
tempo transcorrido: 30.0001 s
Número total de eventos: 35910413

Latencia (ms):
mín.: 0.00
media: 0.00
máximo: 16.90
Percentil 95: 0.00
suma: 43604.83

Temas xustos:
eventos (avg/stddev): 8977603.2500/233905.84
tempo de execución (avg/stddev): 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 o paquete LuaJIT 2.1.0-beta3)
Realización da proba coas seguintes opcións:
Número de fíos: 4
Inicializando o xerador de números aleatorios desde o momento actual

Marcadores de ficheiros adicionais abertos: (ningunha)
128 ficheiros, 8 MiB cada un
Tamaño total do ficheiro 1 GiB
Tamaño do bloque 4 KiB
Número de solicitudes de E/S: 0
Relación de lectura/escritura para a proba de E/S aleatoria combinada: 1.50
FSYNC periódico activado, chamando a fsync() cada 100 solicitudes.
Chamando a fsync() ao final da proba, activado.
Usando o modo de E/S síncrona
Facendo unha proba aleatoria r/w
Iniciando fíos de traballo...

Fíos iniciados.

Rendemento:
ler: IOPS=3868.21 15.11 MiB/s (15.84 MB/s)
escribir: IOPS=2578.83 10.07 MiB/s (10.56 MB/s)
fsync: IOPS=8226.98

Latencia (ms):
mín.: 0.00
media: 0.27
máximo: 18.01
Percentil 95: 1.08
suma: 238469.45

Esta nota comeza moi grande

serie de artigos sobre copias de seguridade

  1. Copia de seguranza, parte 1: Por que é necesaria a copia de seguridade, unha visión xeral dos métodos e tecnoloxías
  2. Parte 2 da copia de seguranza: revisión e proba de ferramentas de copia de seguridade baseadas en rsync
  3. Parte 3 de copia de seguranza: revisión e proba de duplicidade, duplicación, deja dup
  4. Parte 4 da copia de seguranza: revisión e proba de zbackup, restic e borgbackup
  5. Copia de seguranza Parte 5: probando a copia de seguridade de bacula e veeam para Linux
  6. Copia de seguranza Parte 6: Comparación de ferramentas de copia de seguranza
  7. Copia de seguridade Parte 7: Conclusións

Fonte: www.habr.com

Engadir un comentario