rdiff-backup e falta de espaço em disco. Algo estranho está acontecendo

4

Eu tenho uma configuração rdiff-backup que faz o backup de um grande dump sql (1.6GB) em uma rede. O servidor que está fazendo backup (servidor Ubuntu 10.10) tem um pequeno disco local (4 GB, 1 GB grátis), mas tem uma montagem cifs em um grande nas (muito espaço livre). Eu tenho um softlink configurado a partir do diretório home de uma conta de usuário para o NAS cifs mount , e o trabalho rdiff-backup iniciado a partir do cliente está gravando nesse diretório.

Recentemente, o trabalho está falhando. O arquivo de log diz:

Sun Oct 24 21:20:14 2010 Sending back exception [Errno 28] No space left on device of type type 'exceptions.IOError'

Eu executei o trabalho manualmente com watch df em execução no servidor, e posso ver o espaço livre de 1 GB na unidade local diminuindo até atingir zero. Então o trabalho falha. Para ser claro, o espaço em disco não é um problema no NAS.

Portanto, por algum motivo, o rdiff-backup está usando algum lugar no disco local como um diretório de trabalho temporário em vez do diretório real em que os backups estão armazenados, no dispositivo NAS, como seria de esperar. No entanto, não consigo encontrar qual diretório está sendo usado para que eu possa montá-lo separadamente com seu próprio espaço. Fazer du -sx em / enquanto a tarefa está em execução revela o tamanho total do arquivo de / permanecendo constante em 3,0 GB, embora df diga que / esteja cheio.

Se eu listar as alças de arquivos abertas pelo processo rdiff , recebo alguns soquetes e alguns arquivos na montagem NAS. Nada óbvio no disco local.

O que está acontecendo? Por que df diz que / está cheio, mas du -sx diz que há 1 GB grátis? Por que rdiff-backup está preenchendo o disco local quando deveria estar usando o cifs mount ? O que realmente está escrevendo?

    
por growse 28.10.2010 / 11:42

2 respostas

6

Como a maco já mencionou nos comentários, /tmp é o problema.

Com o rdiff-backup, você pode configurar a localização do diretório temporário com o parâmetro

--tempdir path
          Sets  the  directory  that  rdiff-backup  uses for temporary files
          to the given path. The environment variables TMPDIR, TEMP, and TMP
          can also be used to set the temporary files directory. See the 
          documentation of the Python tempfile module for more information.

Se você definir tempdir para essa montagem CIFS, o problema deverá desaparecer. (Nós tivemos o mesmo problema, e isso resolveu, você pode ter outra coisa também)

    
por Olli 18.02.2011 / 09:34
0

Se o dispositivo estiver cheio ( df fornece zero bytes de espaço livre), usar rdiff-backup com --tempdir ainda pode falhar - Acabei de tentar isso!

Etapa 1: Se um destino de backup completo for o seu problema somente (não é necessário restaurar dados do backup), basta excluir arquivos suficientes do backup mais recente (o espelho, não as coisas dentro de /rdiff-backup-data ).

Etapa 2: Em seguida, execute rdiff-backup --check-destination-dir /path_to_backup , que criará arquivos de comprimento zero para os arquivos que você acabou de excluir.

Etapa 3: depois disso, use rdiff-backup --remove-older-than ... /path_to_backup para remover os backups que não são mais necessários. Isso criará espaço em disco suficiente para a etapa 5.

Etapa 4: toque recursivamente em todos os arquivos no diretório de origem, para que os arquivos de comprimento zero no diretório de destino sejam detectados como diferentes por rdiff-backup .

Etapa 5: execute um backup normal para recriar os arquivos excluídos na etapa 1.

    
por user258532 22.11.2016 / 15:50