btrfs - Precisa de ajuda para entendê-lo corretamente

1

Depois de passar horas e horas, não consigo entender o btrfs o suficiente para usá-lo do jeito que eu quero.

No final, meu objetivo é simples: ter uma solução limpa e à prova de falhas para as atualizações de sistema operacional. Então, eu tenho exatamente 3 coisas que eu preciso fazer: Criar instantâneo, reverter para um instantâneo e descartar um instantâneo (como a atualização foi bem sucedida).

Criação de instantâneos do sistema:

btrfs subvolume snapshot @ /btrfs/@-before-upgrade

No início, este comando deve criar um instantâneo chamado "@ -before-upgrade", que é o meu atual "/". Tudo o que grava no disco depois não estará dentro desse instantâneo. Isso me dá o primeiro problema: E se um processo em execução estivesse gravando em um arquivo ou um serviço tivesse dados na memória que precisam ser armazenados? Existe alguma maneira de criar um instantâneo que será usado como "@" - "/" após uma reinicialização?

Descartar instantâneo:

Se uma atualização foi bem-sucedida, a captura instantânea pode ser excluída com segurança. Se não me engano o comando correto deve ser este:

btrfs subvolume delete /btrfs/@-before-upgrade

Retroceder para o instantâneo:

Se uma atualização não foi bem-sucedida, preciso reverter para o estado quando fiz a captura instantânea. Então, no final, depois de gerenciar a primeira parte, foi simplesmente como uma reinicialização em vez de uma perda de energia. Então, eu preciso trocar os nomes dos snapshots, depois reiniciar e depois remover o quebrado. Pergunta sobre isso: Depois de trocá-los, as alterações ainda serão gravadas no agora chamado instantâneo "@ -broken"? Ou será que tudo de repente continua escrevendo no novo / antigo "@"? Em caso afirmativo, existe alguma maneira, como na pergunta acima, de aplicá-lo após uma reinicialização?

mv /btrfs/@ /btrfs/@-broken
mv /btrfs/@-before-upgrade /btrfs/@
reboot
btrfs subvolume delete /btrfs/@-broken

Agradecemos antecipadamente por toda a ajuda e feedback.

    
por Andre Mohren 21.07.2015 / 16:25

1 resposta

2

Depois de fazer o instantâneo, todos os arquivos que estão no meio da gravação ainda serão gravados pela metade no instantâneo, e as novas gravações para o volume original. Isso pode causar corrupção do arquivo, assim como um acidente ou perda de energia. Se você estiver executando aplicativos que não conseguem lidar com uma perda repentina de energia, desligue-os (talvez inicialize no modo de recuperação) ao fazer a captura instantânea. Ao mover os instantâneos, a alteração não terá efeito até que você reinicialize, portanto, qualquer coisa escrita após o movimento ainda estará no instantâneo, que você descartará mais tarde.

FYI, o pacote apt-btrfs-snapshot fornece scripts para gerenciar tudo isso e cria automaticamente instantâneos sempre que você executa o apt para instalar / remover / atualizar pacotes.

    
por psusi 22.07.2015 / 03:12