Eu tenho várias máquinas cliente OSX que fazem backup via TimeMachine para compartilhamentos AFP em um servidor Ubuntu Linux, exportado pelo netatalk / afpd. Esses clientes fazem backup em horários arbitrários do dia, todos os dias. Existem outros compartilhamentos AFP não-TimeMachine importantes no servidor também.
No servidor, os backups da TimeMachine são representados como sparsebundles - um formato de armazenamento de dados envolvendo muitas 'bandas' - armazenado no sistema de arquivos EXT4 padrão. Enterrado dentro deste sparsebundle é o sistema de arquivos HFS + que o TimeMachine usa, mas do lado do servidor é apenas uma coleção de arquivos de banda.
Eu tenho rsnapshot executando a cada 4 horas no servidor, que faz o backup de todo o servidor em um HDD removível (que eu troco com freqüência). Portanto, o rsnapshot também está fazendo o backup dessas bandas sparsebundle em determinados momentos do dia.
O problema é que, se o rsnapshot for executado enquanto uma máquina cliente tiver seu sparsebundle montado, é possível que o rsnapshot capture um estado inconsistente do sparsebundle, porque as bandas podem mudar durante o processo de backup. Obviamente, isso não é propício para garantir um backup restaurável!
Estou tentando pensar em maneiras de contornar esse problema. Parece importante que o sparsebundle não esteja montado no momento em que o rsnapshot tenta fazer o backup. Do lado do servidor, a única maneira que posso ver para fazer isso é derrubar o daemon aftp, talvez depois de esperar que o sparsebundle seja desmontado pelo cliente OSX. A desvantagem disso é que ele também leva as outras exportações não-TimeMachine AFP offline também. Tanto quanto eu posso dizer, o afpd não fornece uma maneira de (facilmente) adicionar / remover exportações - uma opção é alguma reescrita complicada dos arquivos de configuração do afpd para desabilitar as exportações de TM, mas isso ainda reduz as ações AFP por um curto tempo.
Existe uma maneira melhor?