OBSERVAÇÃO: o seguinte somente é possível se você puder instalar fisicamente mais unidades no sistema sem antes remover as unidades antigas.
um método que usei com sucesso para tarefas como esta é usar o rsync para criar e preencher o novo sistema de arquivos enquanto o sistema de arquivos existente ainda está em uso, então agendar um novo corte para o novo fs em um momento conveniente. isso minimiza o tempo de inatividade e minimiza o trabalho após o expediente porque a maior parte da cópia pode ser feita enquanto o sistema ainda está funcionando normalmente.
o tempo total de inatividade é apenas o tempo que leva para fazer o rsync e a reconfiguração finais (etapas 8-12 abaixo).
no linux, você pode até usar ionice para dar ao job de rsync uma baixa prioridade de IO para minimizar o impacto no desempenho, porque realmente não importa o tempo que o rsync leva. Espero que o FreeBSD tenha capacidades semelhantes.
o procedimento geral é algo assim:
-
avisa os usuários que haverá uma breve interrupção (tempo suficiente para você desligar a máquina e instalar os novos discos). este passo não é necessário se o seu servidor tiver compartimentos hot swap.
-
no horário agendado, instale os novos discos e crie o novo array de raids e o sistema de arquivos que os utiliza.
-
monte-o como, por exemplo, / mnt
-
rsync seu antigo sistema de arquivos para ele
-
repita o passo 4 quantas vezes quiser. você pode atrasar os próximos passos indefinidamente, até que tenha uma janela de tempo adequada para concluir o trabalho.
-
agendar algum tempo de inatividade e avisar os usuários.
-
imediatamente ANTES da interrupção, execute o rsync novamente.
-
desligue TODOS os processos (por exemplo, daemons MTA e pop / imap etc) que estão gravando no sistema de arquivos em questão. Se esta for a raiz fs ou se houver vários daemons usando o fs, isso significa reinicializar no modo de usuário único.
-
agora que o antigo fs é estático (não sendo atualizado), faça um rsync final. isso não vai demorar muito, porque os novos fs já estarão quase atualizados. depois disso, o novo fs será agora um instantâneo completo e atualizado dos fs antigos.
-
reconfigure o que for necessário para que o novo fs seja usado em vez do antigo fs. se é o root fs, isso significa escrever um MBR no novo disco, editar fstab e assim por diante. se for apenas uma partição de dados, desmonte o novo fs, desmonte o antigo fs e monte o novo fs em seu lugar. edite o fstab para refletir a nova configuração.
-
verifique cuidadosamente se você não esqueceu nada :). corrija e repita até terminar.
-
agora reinicie os processos que você encerrou (ou simplesmente reinicialize).
você pode se aposentar e remover as unidades antigas quando quiser.
Eu usei variações desse método para mover serviços de uma máquina para outra, por exemplo, ao substituir o servidor de arquivos antigo por um novo. A idéia básica é minimizar o tempo de inatividade visível ao usuário, tanto quanto possível, fazendo a maioria das cópias em segundo plano.