
Estamos experimentando o lsyncd para manter os dados do servidor 1 para o servidor 2 sincronizados. Tudo parecia estar funcionando bem, mas descobrimos que diferenças nos arquivos começaram a aparecer.
Estamos lidando com processos que gravam a saída de trabalhos em arquivos no disco. Esses trabalhos excluem todos os arquivos de saída existentes e, em seguida, criam um novo com o mesmo nome para gravar a saída. O tamanho dos arquivos de saída pode variar de apenas alguns bytes a 40G.
Criamos a seguinte configuração para que as alterações nos arquivos de saída fossem captadas pelo lsyncd e transferidas para o servidor remoto e atualizadas no local, em vez de transferir o arquivo inteiro repetidamente após cada atualização dos arquivos.
No entanto, esta atualização parece nos incomodar com arquivos muito pequenos, onde por exemplo apenas uma data seria atualizada na primeira linha do arquivo. O script exclui o arquivo, coloca a saída do trabalho em um novo arquivo de saída com o mesmo nome e é tão rápido que o lsyncd parece não perceber.
Alguém aqui pode me ajudar a descobrir isso?
Esta é a configuração atual em execução. No momento, estamos executando 4 diretórios de entrada para acelerar um pouco as coisas devido à quantidade de dados com os quais estamos lidando.
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
statusInterval = 1,
nodaemon = false,
inotifyMode = "CloseWrite or Modify",
insist = true
}
dirs = {
'/data/dir1',
'/data/dir2',
'/data/dir3',
'/data/dir4',
}
for _, directory in ipairs( dirs )
do
sync {
default.rsyncssh,
source = directory,
targetdir = directory,
host = "remote_host",
delay = 0,
rsync = {
compress = false,
whole_file = false,
update = true,
inplace = true,
checksum = true,
owner = true,
archive = true,
perms = true,
group = true,
xattrs = true,
_extra = { "--append-verify" },
rsh = "/usr/bin/ssh -q -l lsyncd_ssh_user -i /home/lsyncd_ssh_user/.ssh/id_rsa -o StrictHostKeyChecking=no -o User=lsyncd_ssh_user"
},
}
end