Eu tenho um sistema de arquivos BTRFS com um conjunto de subvolumes. Por enquanto, tudo bem. Eu preciso alterar o nome de um subvolume, infelizmente o btrfs
programa não me permite renomear um subvolume. Pesquisando com o Google produziu alguns resultados, um disse que posso apenas mv
, o outro disse que posso apenas snapshot
para um novo nome e excluir o subvolume antigo. Antes de travar minha partição e ter que recarregá-la do backup (é bastante grande), minha pergunta é:
- Qual é atualmente a melhor maneira de renomear um subvolume?
- Está tudo bem em apenas
mv
isso, ou invalidará algumas estruturas internas? - Fazer um novo instantâneo e remover o subvolume antigo é o caminho a seguir, ou isso tem algumas desvantagens?
Sei que tudo ainda é experimental, mas, para meus propósitos, tem funcionado muito bem (até agora e tenho backups incrementais a cada dia).
linux
backup
filesystems
btrfs
hochl
fonte
fonte
Respostas:
Apenas
mv
isso. Essa é a maneira recomendada na documentação da comunidade Ubuntu .E para esclarecer melhor por que essa é a maneira correta de fazê-lo, aqui está uma citação do guia sysadmin btrfs:
fonte
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 avery 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:e se necessário:
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:Apenas para uma vida mais fácil:
Espero que isso economize muito tempo para todos os novos fãs de btrfs :)
fonte
Se você quisesse renomear o volume raiz para um subvolume aninhado, seria necessário capturá-lo instantaneamente e, em seguida, faça um
find $ROOT_VOL -xdev -delete
para remover o conteúdo anterior do volume raiz. A manipulação reversa (renomear um subvolume para o volume raiz) não parece possível.fonte