Apenas os dados recém-gravados (anexados) são divididos entre todos os vdevs atualmente ativos, não há operação de rebalanceamento explícito no ZFS.
Duas soluções possíveis:
- Aguarde até que todos os dados antigos sejam gravados novamente (por causa do CoW, isso pode levar muito tempo, no pior dos casos o dobro do tempo necessário para gravar o disco completamente).
- Remova todos os dados e grave-os novamente (zfs send / recv é útil para recuperar todos os dados do pool e voltar sem perder nada). Isso não precisa ser feito de uma só vez, e isso pode ser feito no mesmo pool.
Para ser mais preciso, eu escolheria a segunda solução e transferiria cada sistema de arquivos separadamente nos momentos em que a carga do sistema é baixa (por exemplo, à noite):
- Tire um instantâneo (
zfs snapshot -r
) de um sistema de arquivos de tamanho decente (e sistemas de arquivos decentes, recursivamente) - Use
zfs send | zfs recv
com as opções apropriadas para enviar o instantâneo para um sistema de arquivos temporário recém-criado (pode estar no mesmo conjunto, se o espaço permitir); esse sistema de arquivos deve estar no mesmo local da hierarquia que o antigo - Após a conclusão da cópia (pode levar algum tempo, porque os discos precisam ler e gravar),
zfs destroy
o instantâneo antigo e o sistema de arquivos antigo -
zfs rename
o sistema temporário para o nome antigo - Verifique e altere os pontos de montagem com
zfs mount
, reorganizando a situação anterior do sistema de arquivos substituído - Repita até que todos os sistemas de arquivos sejam movidos