backup mais rápido para arquivos grandes

5

qual é a maneira mais rápida de duplicar uma pasta que contém poucos arquivos com poucos milhares de megabytes de tamanho e outros poucos arquivos pequenos? (digamos, / var / lib / mysql) cp ou tar ou rsync ou ... ??

    
por DennyHalim.com 13.10.2009 / 10:29

7 respostas

4

O rsync em geral será mais rápido que o cp ou o tar, porque o rsync somente transfere os arquivos que foram alterados, e com --partial ele somente transfere as partes de um arquivo que foi alterado.

Dito isto, o rsync funciona muito melhor se você sabe o que está fazendo backup e pode organizar as coisas para que o rsync não precise fazer tanto trabalho. Por exemplo, arquivos de log girados em / var / log funcionam muito melhor se você os rotaciona para um nome de arquivo com uma data, em vez de .0, .1, .2, etc.

Mais uma observação: Na sua pergunta você menciona / var / lib / mysql. Usando rsync para backup que é uma idéia muito ruim, use o mysqldump para obter um backup confiável. Se esse backup for muito grande para ser transferido com freqüência, use a replicação e o backup do mysql de um escravo. (Você ainda deve fazer um backup completo no master periodicamente, embora a replicação também possa falhar).

    
por 13.10.2009 / 10:38
1

Depende de alguns fatores. Para um grande número de arquivos pequenos, geralmente é melhor fazer o tar. Se for um pequeno número de arquivos grandes, o cp está ok na maioria dos casos.

Se você tiver uma lista de arquivos, mas apenas uma pequena parte deles for alterada, o rsync será mais eficiente.

    
por 13.10.2009 / 10:38
1

Depende do que você está fazendo backup. Você não pode simplesmente fazer backup do banco de dados ao vivo com o rsync, você terminará com um arquivo corrompido. Para bancos de dados, como o mysql, você precisa configurar o cron, por exemplo, para executar 'mysqldump' e então rsync esse arquivo. Além disso, certifique-se de anexar 'date' com o nome do arquivo para saber quando este arquivo foi submetido a backup e ter várias cópias de segurança para o caso.

    
por 13.10.2009 / 14:56
0

Ah, a palavra mágica backup

Eu não posso dizer muito sobre as velocidades relativas dos métodos que você mencionou, mas acho que a capacidade de rsync de fazer backup apenas dos arquivos que foram alterados faz dele o melhor método.

Especialmente se a maioria dos arquivos não precisar ser copiada.

    
por 13.10.2009 / 10:36
0

Se você tiver alguns arquivos pequenos, executar um tar sobre eles aumentará consideravelmente a velocidade de transferência.

Se os arquivos são principalmente texto (que não é o caso de binários ou bancos de dados mysql), considere compactar o tar ( bzip2 e similares). Caso contrário, você não obterá nada da compactação, então deixe o alcatrão sozinho.

    
por 13.10.2009 / 10:36
0

Supondo que você já tenha uma cópia mais antiga dos arquivos e só precise atualizar a cópia, o rsync é muito mais rápido que o cp ou o tar, pois somente transfere os bytes que foram alterados. Um arquivo de 100 MB com alguns registros alterados será atualizado em alguns segundos. Eu acho que é perfeito para arquivos de banco de dados, mas eu tive menos sucesso com arquivos binários.

Mas se o propósito da cópia for para backup externo, nada se aproxima do backup do rdiff. O rdiff-backup, como o rsync, transfere apenas alterações dentro de arquivos, mas também mantém as alterações incrementais para que você possa restaurar qualquer arquivo a partir de qualquer data de backup anterior.

E, quanto aos bancos de dados SQL, o rdiff-backup verifica as alterações feitas durante o backup e as corrige automaticamente, portanto, IMHO deve ser seguro. A menos que, é claro, o servidor SQL contenha dados na memória sem gravá-los em disco - então, não será seguro.

    
por 13.10.2009 / 13:45
0

O SAN Snapshot é o modo mais rápido, mas provavelmente não é a resposta que você procurava.

    
por 13.10.2009 / 14:24