Captura instantânea de Btrfs para disco não-btrfs. Criptografia, acesso de leitura

4

Eu quero experimentar o Btrfs. Eu já descobri que você pode fazer um instantâneo de um sistema ao vivo, mas há algumas coisas para as quais não encontrei respostas. Bem, como eu entendo um instantâneo, basicamente, uma cópia completa em forma de arquivo de algum tipo. Então, posso fazer um instantâneo do meu sistema btrfs ao vivo e colocar esse instantâneo no meu disco rígido não btrfs (ext4, por exemplo)?

Além disso, estou executando a criptografia de disco completo (luks). Os instantâneos serão criptografados se eu os transferir para algum lugar? Os snapshots copiam os dados reais da própria partição (nesse caso, serão criptografados obviamente) ou funciona de maneira diferente?

Além disso, como os snapshots do btrfs são protegidos do acesso de leitura? Outros usuários podem ler instantâneos? Ou apenas root? É manejável?

    
por dmh84 22.08.2016 / 00:14

2 respostas

3

Um instantâneo (nesse sentido) é uma parte do sistema de arquivos. Na terminologia do btrfs, é um subvolume - é uma das árvores de diretório no volume. Não está em “forma de arquivo”. Criar um instantâneo de um subvolume cria um novo subvolume que contém os dados do volume original na data em que o instantâneo foi criado. As gravações subseqüentes no subvolume original não afetam o instantâneo e vice-versa. Todos os subvolumes fazem parte do mesmo volume - eles designam subconjuntos (potencialmente sobrepostos) dos dados no volume.

As partes do instantâneo que não foram modificadas em um subvolume compartilham seu armazenamento. Criar um instantâneo inicialmente não requer armazenamento, exceto os dados de controle de instantâneo; a quantidade de armazenamento aumenta com o tempo, pois o conteúdo dos subvolumes diverge.

A propriedade mais importante da criação de instantâneos é que ela é atômica: ela tira uma foto dos dados em um determinado momento. Isso é útil para fazer backups: se o programa de backup copiar arquivos do sistema ativo, ele poderá interagir mal com as modificações feitas nos arquivos. Por exemplo, se um arquivo for movido do diretório A para o diretório B, mas o programa de backup atravessou B antes do movimento e A após o movimento, o arquivo não seria incluído no backup. Os instantâneos resolvem este problema: o arquivo estará em A se o instantâneo for feito antes do movimento e em B se for feito depois, mas de qualquer forma ele estará lá. Em seguida, o programa de backup pode copiar do instantâneo para a mídia externa.

Como o instantâneo está no mesmo volume do original, ele é armazenado da mesma maneira, por exemplo, é criptografado se o volume estiver criptografado.

Um instantâneo reproduz a árvore de diretórios original, incluindo permissões e todos os outros metadados. Então as permissões são as mesmas que as originais. Além disso, os usuários devem poder acessar o próprio diretório de snapshots. Se você não quiser que os usuários consigam acessar um instantâneo, crie-o em um diretório que eles não possam acessar (você pode colocar o instantâneo em qualquer lugar que desejar).

Se você quiser fazer uma cópia do instantâneo fora do sistema de arquivos, acessar ou montar o instantâneo, faça uma cópia com seu programa favorito ( cp , rsync , etc.). Você pode encontrar comandos de exemplo no wiki btrfs ; veja a página de manual para uma referência completa.

    
por 22.08.2016 / 01:03
3

Vou apenas adicionar à resposta de Gilles dizendo que, embora você possa usar “ cp , rsync , etc.” para transferir seus subvolumes / instantâneos somente de leitura, você também pode enviar e armazenar os subvolumes como btrfs fluxos usando o comando btrfs send . O Wiki btrfs menciona o seguinte uso:

# btrfs subvolume snapshot -r / /my/snapshot-YYYY-MM-DD && sync
# btrfs send /my/snapshot-YYYY-MM-DD | ssh user@host btrfs receive /my/backups
# btrfs subvolume snapshot -r / /my/incremental-snapshot-YYYY-MM-DD && sync
# btrfs send -p /my/snapshot-YYYY-MM-DD /my/incremental-snapshot-YYYY-MM-DD |
    ssh user@host btrfs receive /backup/home

mas você também pode salvar os fluxos para uso futuro:

# btrfs subvolume snapshot -r / /my/snapshot-YYYY-MM-DD && sync
# btrfs send /my/snapshot-YYYY-MM-DD |
    ssh user@host 'cat >/backup/home/snapshot-YYYY-MM-DD.btrfs'
# btrfs subvolume snapshot -r / /my/incremental-snapshot-YYYY-MM-DD && sync
# btrfs send -p /my/snapshot-YYYY-MM-DD /my/incremental-snapshot-YYYY-MM-DD |
    ssh user@host 'cat >/backup/home/incremental-snapshot-YYYY-MM-DD.btrfs'

Isso é útil para armazenar os instantâneos btrfs verbatim em sistemas de arquivos arbitrários. A vantagem sobre, digamos, tar é que btrfs instantâneos são incrementais e somente o delta é enviado. O Wiki btrfs afirma que esse método de backup incremental tende a ser ainda mais rápido que rsync .

    
por 18.01.2017 / 02:55