Pergunta semelhante existe, mas a solução (usando mv
) é péssima porque, neste caso, funciona como "copiar e remover" em vez de "mover" puro.
Então, eu criei um pool:
zpool create tank /dev/loop0
e sincronizamos meus dados diretamente de outro armazenamento lá, para que meus dados estejam agora /tank
.
zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 591G 2.10T 591G /tank
Agora eu percebi que preciso que meus dados estejam em um sistema de arquivos filho, não /tank
diretamente no sistema de arquivos.
Então, como movo ou renomeio o sistema de arquivos raiz existente para que ele se torne um filho dentro do pool?
Renomear simples não funcionará:
zfs rename tank tank/mydata
cannot rename to 'tank/mydata': datasets must be within same pool
(Btw, por que reclama que os conjuntos de dados não estão no mesmo pool quando, se, de fato, eu tenho apenas um pool?)
Sei que existem soluções que envolvem copiar todos os dados ( mv
ou enviar o conjunto de dados inteiro para outro dispositivo e vice-versa), mas não deveria haver uma maneira simples e elegante?
Apenas observando que eu não ligo para instantâneos nesta fase (ainda não há nenhum para cuidar).
fonte
Dado o problema documentado pelo @USDMatt, o envio / recebimento de ZFS é provavelmente o melhor caminho a percorrer.
Cuidado ao executar o rm -rf se você não alterar o ponto de montagem, se você tiver outros sistemas de arquivos no seu tanque zpool. Você não deseja remover recursivamente o conteúdo do novo sistema de arquivos (/ tank / newname) ou de qualquer outro sistema de arquivos filho (/ tank / *) acidentalmente.
fonte
Eu não acho que exista uma maneira simples e elegante ... embora você possa mudar seu ponto de montagem ...
Ou talvez renomeie o tanque e monte-o onde você precisar ...
Ou crie um sistema de arquivos no lugar certo e os cp, mv ou zfs enviam / recebem ...
fonte