O Receive-Command Atomic do Btrfs?

2

Versão resumida: estou fazendo backups regulares com a ajuda dos comandos Btrfs send e receive . A captura instantânea que contém os dados para backup ( SOURCE ) é uma captura instantânea somente leitura. Criar este instantâneo com o Btrfs é atômico. O backup é feito usando uma combinação dos comandos Btrfs send e receive . Minha pergunta é: O comando Btrfs receive também cria o instantâneo de backup atomicamente no volume de destino?

Versão Longa : Para minha estratégia de backup diário, uso o Btrfs para enviar alterações de um sub-volume de origem para uma unidade de backup. O sub-volume que eu quero fazer backup está localizado em SOURCE , enquanto o backup em si será armazenado em DEST .

Antes que eu possa fazer um backup, preciso de um instantâneo somente leitura de SOURCE , que armazenarei abaixo de SOURCE em um subdiretório chamado .snapshots . Isso é feito com os comandos

btrfs subvolume snapshot -r SOURCE SOURCE/.snapshots/current_backup
sync

O comando sync acima é necessário de acordo com o wiki Btrfs para fazer btrfs send work. Agora quero enviar o instantâneo chamado current_backup para um volume de backup DEST em uma unidade diferente. Eu faço isso com o comando

btrfs send SOURCE/.snapshots/current_backup | btrfs receive DEST

Minha pergunta é sobre a parte btrfs receive deste processo de backup: isso acontece atomicamente? Em outras palavras: o backup no volume DEST está disponível apenas se tiver sido completamente recebido e gravado?

    
por mruether 24.11.2016 / 14:48

1 resposta

1

Não, não é atômico. O Btrfs receive cria um subvolume, então é atômico, mas inicialmente o subvolume está vazio. Então, o btrfs recebe o subvolume com os dados recebidos.

Você pode testar isso copiando para o DEST enquanto executa o backup e executa o ls ou o encontra repetidamente.

    
por 21.12.2016 / 03:16

Tags