Como faço para migrar um sistema RAID para um conjunto maior de HDDS?

1

Todas as postagens que encontrei são sobre a mudança para novas máquinas ou a migração de um sistema operacional inteiro de um disco rígido para outro. Eu realmente não sei o que diabos eu estou fazendo, mas eu sou aparentemente o especialista em Linux.

Atualmente, temos um servidor de 1 TB com uma configuração RAID. Eu não tenho certeza do tipo de RAID, ainda. Nós precisaremos expandir nosso espaço no HDD nos próximos meses, e dobrar o tamanho atual nos dará alguns anos em nossa taxa atual de uso de dados.

O RAID existente está atualmente em / dev / md1 e mantemos todos os arquivos em questão em / srv / Data.

O que gostaríamos de fazer é migrar este diretório de Dados para uma nova configuração de RAID 1 de 2 TB e, idealmente, manter o mesmo ponto de montagem para que não tenhamos que alterar nada em nosso banco de dados. Ou seja, gostaríamos de mover os dados existentes para esse novo conjunto de HDDs, mas ainda assim chamarmos de / srv / Data para que possamos começar a escrevê-lo imediatamente sem alterar muito o nosso lado do software.

Isso seria tão simples quanto montar o novo dispositivo RAID (presumivelmente / dev / md2) como / srv / Data e copiar o Data over existente?

    
por barriboy 11.06.2015 / 02:06

2 respostas

1

Monte /dev/md2 primeiro como algo como /srv/DataNew , execute uma primeira rodada de cópias como raiz (na verdade, sugiro rsync , IMHO é melhor para isso tipo de trabalho):

rsync -a --delete /srv/Data/ /srv/DataNew

Opcionalmente, você pode executar novamente o cmd - a segunda execução deve ser mais rápida (o rsync é capaz de ignorar arquivos já copiados e up2date) e lhe dará uma duração aproximada para estimar quanto tempo você precisa para desativar aplicativos usando a partição para a troca de partição real - veja abaixo.

Em seguida, pare e desative temporariamente seus aplicativos usando as partições / srv / Data (talvez até reinicialize para garantir que não ocorram gravações transitórias que possam levar à perda de dados, garantindo que os aplicativos não sejam reiniciados na inicialização) e execute novamente repetidamente o mesmo rsync cmd acima de como root para atualizar a nova partição com quaisquer alterações que possam ter acontecido na partição antiga desde a execução anterior do rsync . / p>

Pode demorar algumas repetições até que o cmd rsync não mostre mais atualizações - o que significa que as duas partições estão em sincronia. Cada repetição será feita de acordo com a quantidade de tempo da 2ª execução mencionada acima, se você optou por ela

Em seguida, desmonte /srv/Data e /srv/DataNew e modifique o arquivo /etc/fstab para montar /dev/md1 em /srv/DataOld e /dev/md2 em /srv/Data .

Em seguida, monte /srv/Data (e /srv/DataOld , se desejar executar outra verificação de sincronização) ou, opcionalmente, reinicialize se preferir, e o sistema deve criar a nova partição.

Se você quiser, pode executar outra verificação do rsync, desta vez com um cmd ligeiramente modificado para os novos pontos de montagem (ele não deve mostrar atualizações se não houver acessos transitórios):

rsync -a --delete /srv/DataOld/ /srv/Data

Agora você pode reativar e reiniciar seus aplicativos, que não devem notar nenhuma diferença (exceto o espaço extra em disco).

Por fim, se você não precisar mais, poderá desmontar /srv/DataOld e remover sua entrada de /etc/fstab - pronto.

Se você não usou o rsync antes de executar as porções do rsync, mas com alguns diretórios temporários / de teste e como origem, algum diretório menor que normalmente não muda (para não ter transientes descontrolados que não podem ser evitado a menos que você pare os aplicativos) apenas para se acostumar com sua operação, você pode usar a nova partição depois de montada, já que ela está vazia:

mkdir /srv/DataNew/rsync_test
rsync -a --delete /some_smaller_dir /srv/DataNew/rsync_test

simule um transiente excluindo um arquivo em / srv / Data / some_smaller_dir:

touch /srv/DataNew/rsync_test/deleted_file_equivalent
ls -la /srv/DataNew/rsync_test/deleted_file_equivalent

O próximo rsync deve encontrar e excluir esse arquivo no novo diretório (e talvez outros transientes?):

rsync -a --delete /srv/Data/some_smaller_dir /srv/DataNew/rsync_test
ls -la /srv/DataNew/rsync_test/deleted_file_equivalent

o próximo rsync não deve mais encontrar o deleted_file_equivalent (repita se outros transientes não controlados aparecerem):

rsync -a --delete /srv/Data/some_smaller_dir /srv/DataNew/rsync_test

Por fim, remova o teste dirs:

rm -rf /srv/DataNew/rsync_test
    
por 11.06.2015 / 04:15
1

Em uma palavra, sim. Mais especificamente, você precisa montar o novo array em algum outro lugar (não pode montar duas coisas no mesmo lugar), copiar os arquivos, desmontar ambos, então configurar seu sistema para montar o novo ataque naquele local (edit / etc / fstab ).

    
por 11.06.2015 / 03:55