Backup de dados usando FreeFileSync e 7-zip

Anamnese, por assim dizer:

Servidor Fujitsu rx300 s6, RAID6 de 6 discos de 1TB, XenServer 6.2 instalado, vários servidores girando, entre eles Ubuntu com várias bolas, 3,5 milhões de arquivos, 1,5 TB de dados, tudo isso vai crescendo e inchando gradativamente.

Tarefa: configurar backup de dados de um servidor de arquivos, parcialmente diariamente, parcialmente semanalmente.
Temos uma máquina de backup do Windows com RAID5 (uma unidade de sistema de padrão ruim com um controlador RAID embutido na mãe) além de um disco separado de 2 TB para cópia intermediária do estado atual dos arquivos. Era possível usar qualquer distribuição Linux, mas esta máquina já estava disponível com raid array e licença Windows.

Instalar em um servidor de backup FreeFileSync, configuramos um “espelho” de tudo em uma linha de todos os compartilhamentos do servidor de arquivos uma vez por dia, à noite, após 18 horas, executando-o por meio do agendador.

Um ponto importante: ao salvar uma tarefa em lote, certifique-se de marcar “Fechar janela de tarefa quando concluída”, caso contrário os processos se multiplicarão e se multiplicarão.

Lançamos arquivos temporários em exceções de máscara: *.dwl, *.dwl2, *.tmp.

O FreeFileSync usa a rede extremamente bem, a cópia ocorre em vários threads, a velocidade chega a 80 Mbps na cópia de arquivos grandes, nenhum bloqueio foi encontrado em arquivos pequenos.

O arquivamento será realizado em um servidor de backup local, em vez daquele usado anteriormente A copiadora com arquivamento de rede. A propósito, TheCopier é ótimo! Mas com esses volumes simplesmente não dá tempo de transferir tudo, apesar da interface de 1 Gbps no backup e 2 Gbps no arquivo (ligação de duas placas de rede).

Também usado anteriormente SyncToy, mas quando o número de arquivos ultrapassou 1,5-2 milhões, ele parou de funcionar normalmente, simplesmente não aguentou.

Para arquivar as pastas necessárias, escrevemos um arquivo em lote para 7-zip:

definir agora=%TIME:~0,-3%
definir agora=%agora::=.%
definir agora=%agora: =0%
definir agora=%DATA:~-4%.%DATA:~3,2%.%DATA:~0,2%_%agora%
C:"Arquivos de Programas"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_10-04.zip E:10-04
C:"Arquivos de Programas"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_35-110.zip E:35-110
C:"Arquivos de programas"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_asu.zip E:asu
C:“Arquivos de Programas”7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_director.zip E:director
C: “Arquivos de Programas”7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_gpr.zip E:gpr
C:"Arquivos de Programas"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_otiz.zip E:otiz
C:“Arquivos de programas”7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_ps.zip E:ps
C: “Arquivos de Programas”7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_pto.zip E:pto
C:“Arquivos de programas”7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_rza.zip E:rza
C: “Arquivos de Programas”7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_smeta.zip E:smeta

::a - criando um arquivo
:: -tzip ou -t7z - tipo de arquivo (zip é 1.5-2 vezes mais rápido)
:: -mx=1 — taxa de compressão (1 mínimo, 9 valores máximos x=[0 | 1 | 3 | 5 | 7 | 9 ])
:: -mmt=on - habilita multithreading onde não está habilitado
:: -mtc=off - desativa os carimbos de data e hora do sistema de arquivos (quando salvo, modificado, etc.)
:: -ssw - também compacta arquivos abertos para gravação
:: -xr!.Sync* - exclui arquivos BtSync temporários do arquivamento, deixando os permanentes

A construção de set now=% e assim por diante permite salvar o formato da hora de gravação em um nome de arquivo sem os problemas que surgiam quando o número do dia ou mês era menor que 10, ou seja, substituímos por zero.

O comentário -xr!.Sync* é um rudimento que sobrou do usado originalmente BTSync.

Até 500 GB e 700-800 mil arquivos, o BTSync ainda funcionava bem, sincronizado em tempo real, mas com os volumes atuais consumia muito memória e recursos do processador tanto no servidor de arquivos Ubuntu quanto no backup do Windows onde foi iniciado por o serviço, e também simplesmente estuprou o sistema de disco por leituras e gravações constantes.

Embora o arquivador seja 7-zip, arquivamos no formato zip em vez do 7z nativo, pois é muito mais rápido e praticamente não há diferença na compactação com mx=1, isso foi verificado por vários experimentos.

Os arquivos são executados um por um.

A pasta com arquivos também é limpa por meio de uma tarefa agendada usando o utilitário fpurge, deixando arquivos com no máximo uma semana.
Como resultado, temos uma cópia dos arquivos do dia anterior, bem como arquivos da última semana; o FreeFileSync coloca os arquivos excluídos na lixeira.

Fonte: habr.com

Adicionar um comentário