Anamnese, por assim dizer:
Servidor Fujitsu rx300 s6, RAID6 com 6 discos de 1TB, rodando XenServer 6.2, com vários servidores em funcionamento, incluindo Ubuntu com várias pastas, 3,5 milhões de arquivos, 1,5 TB de dados, tudo isso crescendo e aumentando gradativamente.
Tarefa: configurar o backup de dados do servidor de arquivos, parcialmente diário, parcialmente semanal.
Temos uma máquina Windows para backup com RAID5 (um sistema comum com um controlador RAID integrado na placa-mãe), além de um disco separado de 2TB para cópia intermediária do estado atual dos arquivos. Poderíamos usar qualquer distribuição Linux, mas essa máquina já estava disponível com o array RAID e a licença do Windows.
Instalamos no servidor de backup , configurando "espelho" de tudo do servidor de arquivos uma vez por dia à noite após as 18 horas, iniciando através do agendador.
Ponto importante: ao salvar a tarefa em lote, certifique-se de marcar "Fechar a janela da tarefa ao concluir", caso contrário, os processos se multiplicarão.
Colocamos arquivos temporários na lista de exceções: *.dwl, *.dwl2, *.tmp.
FreeFileSync utiliza a rede de forma excepcional, a cópia é realizada em vários fluxos, alcançando velocidades de até 80 MB/s ao copiar arquivos grandes, não foram detectados gargalos em arquivos pequenos.
A arquivação será feita já no servidor local de backup, em vez da que usávamos antes com arquivamento pela rede. A propósito, TheCopier é excelente! Mas com esses volumes, simplesmente não consegue transferir tudo a tempo, apesar da interface de 1Gbps no servidor de backup e 2Gbps no servidor de arquivos (bond de duas placas de rede).
Além disso, usamos anteriormente , mas com mais de 1,5-2 milhões de arquivos, ele parou de funcionar corretamente, simplesmente não conseguia lidar.
Para arquivar as pastas necessárias, escrevemos um script batch para :
set now=%TIME:~0,-3%
set now=%now::=.%
set now=%now: =0%
set now=TE:~-4%.TE:~3,2%.TE:~0,2%_%now%
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_10-04.zip E:10-04
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_35-110.zip E:35-110
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_asu.zip E:asu
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_director.zip E:director
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_gpr.zip E:gpr
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_otiz.zip E:otiz
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_ps.zip E:ps
C:"Program Files"7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_pto.zip E:pto
C:«Program Files»7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_rza.zip E:rza
C:«Program Files»7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_smeta.zip E:smeta
:: a — criação do arquivo
:: -tzip ou -t7z — tipo de arquivo (zip é 1.5 a 2 vezes mais rápido)
:: -mx=1 — grau de compressão (1 mínimo, 9 máximo valores x=[0 | 1 | 3 | 5 | 7 | 9])
:: -mmt=on — ativa multithreading onde não estiver ativado
:: -mtc=off — desativa timestamps do sistema de arquivos (quando salvo, modificado etc.)
:: -ssw — comprime também arquivos abertos para gravação
:: -xr!.Sync* — exclui arquivos temporários BtSync da compressão, mantendo os permanentes
A construção set now=% e assim por diante permite preservar o formato da data no nome do arquivo sem problemas, que surgiam quando o número do dia ou mês era menor que 10, ou seja, adiciona um zero.
Comentário -xr!.Sync* é um resquício deixado da configuração originalmente utilizada .
Até 500 GB e 700-800 mil arquivos, o BTSync funcionava razoavelmente, sincronizando em tempo real, mas com os volumes atuais consumia muita memória e recursos da CPU tanto no servidor de arquivos Ubuntu quanto no backup Windows, onde estava rodando como um serviço, além de sobrecarregar o sistema de arquivos com leituras e gravações constantes.
Embora o compactador seja 7-zip, nós compactamos no formato zip em vez do nativo 7z, pois é muito mais rápido, e a diferença na compressão com mx=1 é praticamente inexistente, comprovado por muitos experimentos.
Os arquivos são executados em sequência.
A limpeza da pasta de arquivos comprimidos também é feita através de uma tarefa agendada usando a ferramenta fpurge, mantendo arquivos não mais antigos que uma semana.
Como resultado, temos uma cópia dos arquivos do dia anterior, além de arquivos comprimidos da última semana; arquivos excluídos pelo FreeFileSync são colocados na lixeira.
Fonte: habr.com
