A questão sobre a desativação de serviços depende essencialmente dos próprios serviços:
Eles estão gravando ativamente no sistema de arquivos que você planeja mover?
Eles estão armazenando dados persistentes que você deseja manter.
De qualquer forma, o envio de um sistema de arquivos ZFS pode demorar muito tempo. É possível minimizar a indisponibilidade do serviço, mantendo-os on-line a maior parte do tempo dessa maneira:
criar um instantâneo
envie esse instantâneo da maneira sugerida anteriormente, mas mantendo todos os serviços ativos
quando o fs for recebido no outro pool, desative os limites dos serviços críticos para esse sistema de arquivos. Verifique se o novo sistema de arquivos no pool de destino não está modificado, pois as alterações serão descartadas mais tarde.
crie um segundo instantâneo (por exemplo, instantâneo2)
envie esse segundo instantâneo de forma incremental, muito mais rápido que a transferência anterior. por exemplo:
zfs envia -i rpool / sistema de arquivos @ snapshot rpool / sistema de arquivos @ snapshot2 | zfs recebe -F destino pool / sistema de arquivos
Quando terminar, mova o ponto de montagem do sistema de arquivos do conjunto de dados antigo para o novo. por exemplo:
zfs set mountpoint=/application/directory.old rpool/filesystem
zfs set mountpoint = / application / diretório de destino / sistema de arquivos
Você precisa garantir que nenhum processo esteja vinculado /application/filesystem(por exemplo: acessar arquivos ou tê-lo como seu diretório atual) para conseguir isso.
Não acho que isso possa ser realizado online, mas meu processo seria desligar os serviços necessários, tirar uma captura instantânea e usar o zfs send / receive para fazer a migração. Algo como:
Estou repetindo muito do que jlliagre disse, mas com adições para sistemas de arquivos descendentes. (Principalmente, tenho uma referência quando esqueço.)
Se você tiver sub-sistemas de arquivos, use a -rsinalização no comando zfs snapshot e a sinalização -rou -Rno zfs sendcomando. A maiúscula -Rmove todas as propriedades , instantâneos e clones.
Nas minhas experiências, o comando exato parecia ser: zfs send -R Pool0 @ moving | zfs recebe -dF Pool1
TinkerTank 12/12/12
4
Você também encontrará alguns benefícios no uso de uma ferramenta como "mbuffer" no pipeline; aparentemente, o desempenho de envio / recuperação do ZFS melhora drasticamente se as duas extremidades puderem transmitir dados de maneira contínua e, sem o mbuffer (ou algo semelhante), você obtém um efeito de pingue-pongue onde um bloqueia continuamente no outro.
Você também encontrará alguns benefícios no uso de uma ferramenta como "mbuffer" no pipeline; aparentemente, o desempenho de envio / recuperação do ZFS melhora drasticamente se as duas extremidades puderem transmitir dados de maneira contínua e, sem o mbuffer (ou algo semelhante), você obtém um efeito de pingue-pongue onde um bloqueia continuamente no outro.
fonte