há algumas coisas importantes a serem observadas. As nomeações:
btrfs Subvolume - inside
sistema de arquivos independente para contêiner de dados . É representado como diretório do FS existente. Se você criar um novo subvolume, ele estará vazio, pronto para usar o bloco de dados lógicos dentro do sistema de arquivos. Muito conveniente de usar onde os dados devem ser logicamente separados, por exemplo, VMs diferentes ou clientes diferentes em subvolumes diferentes. Isso permite a very fast
remoção de todos os blocos de dados lógicos com apenas o comando delete subvolume.
Snapshot btrfs - uma cópia do existing
subvolume com todos os seus dados no momento em que o snapshot foi concluído. Pode ser usado como backup operacional para reverter configurações ou alterações, por exemplo, fazer uma captura instantânea do subvolume, fazer alterações (VM ou dados), testar se está tudo bem, após algum período de carência, remover a captura instantânea. Importante observar: os snapshots podem ser apenas de leitura ( -r
switch) e, portanto, podem ser usados como blocos de incremento de alterações no FS e possivelmente transferidos para absolutamente outro BTRFS!
Limitações atuais do BTRFS (30-12-2016):
Copiar ou mover dados entre subvolumes, por exemplo, mv dir1/dataset1 dir_subvolume1/
produz todo o io real para copiar dados para outro subvolume e, em caso de movimentação, remover do original. E cópia muito eficiente de toneladas de dados apenas fazendo referências e, portanto, usando o recurso COW do BTRFS:
cp -a --reflink=always dir1/dataset1 dir_subvolume1/
e se necessário:
rm -rf dir1/dataset1
Somente leitura O instantâneo do subvolume pode ser renomeado (movido com mv
) no nível de diretório existente, mas não pode ser renomeado / movido para um nível de subdiretório diferente. por exemplo, mv /btrfs/subvol_snap1 /btrfs/.snaphots
não é possível, não produz muito explicou erro: mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system
. Para poder mover um instantâneo, é necessário criar um novo instantâneo somente leitura do instantâneo existente somente leitura para o novo local preferido e, em seguida, remover o antigo:
btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1
Apenas para uma vida mais fácil:
btrfs sub list /btrfs
Espero que isso economize muito tempo para todos os novos fãs de btrfs :)