Quais são as boas maneiras de migrar uma matriz RAID para discos maiores?

5

Estou procurando substituir meus discos rígidos por outros maiores e gostaria de saber quais são as práticas recomendadas para fazer isso. Eu tenho um HP ProLiant com sua versão de 256 MB de controlador RAID:

03:00.0 RAID bus controller: Hewlett-Packard Company Smart Array G6 controllers (rev 01)

Eu também tenho um par de drives SAS de 146 GB e 10.000 rpm no RAID 1. O sistema operacional é Ubuntu 10,04, 64 bits. Eu não estou usando o LVM.

zduric@pbksrv002:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/cciss/c0d0p1     130G  119G  9.7G  93% /
none                  3.0G  192K  3.0G   1% /dev
none                  3.0G     0  3.0G   0% /dev/shm
none                  3.0G   64K  3.0G   1% /var/run
none                  3.0G     0  3.0G   0% /var/lock
none                  3.0G     0  3.0G   0% /lib/init/rw
zduric@pbksrv002:~$ mount
/dev/cciss/c0d0p1 on / type ext4 (rw,errors=remount-ro)

Tivemos um enorme crescimento no conteúdo armazenado lá e agora preciso substituir esse array por outro par, de 300 GB. O Ubuntu 10.04 está lá em cima com um tomcat e um aplicativo de gerenciamento de documentos (que está preenchendo a maior parte da unidade).  Estou procurando a melhor maneira de fazer isso.

Eu estava pensando que poderia fazer o seguinte:

Opção I: substituindo uma unidade por vez. Basicamente, eu faria algo assim:

  1. Substitua a unidade 1 pela nova unidade.
  2. Reconstrua a matriz para colocar os dados na nova unidade.
  3. Substitua a unidade 2 pela nova unidade.
  4. Reconstrua o array.

Eu não gosto da parte de reconstrução duas vezes sobre isso. Eu também não sei, se isso funcionaria e, pior ainda, quanto tempo de inatividade é isso. (cerca de 115 GB de dados, sistema operacional incluído.)

Opção II: crie um novo array. A ideia aqui é que eu adicionaria os novos discos e criaria um segundo array. Eu poderia então migrar meu aplicativo tomcat para o novo array - isso significaria uma operação cp simples.

Eu gosto dessa opção muito melhor, porque ela também me deixaria o primeiro array a ser usado apenas para o sistema operacional e eu poderia fazer atualizações de sistema operacional com mais facilidade no futuro.

A opção II é factível? Onde eu poderia encontrar alguns bons recursos para fazer todo esse procedimento?

Existem outras opções, melhores e mais inteligentes, que eu deveria tentar?

Obrigado antecipadamente.

    
por Zlatko 19.03.2012 / 13:16

3 respostas

7

Você tem opções ...

Seu caso específico é abordado na página 81 do Usuário dos controladores HP Smart Array Guia .

Siga-o com as informações na página 20 do Guia de referência do HP Smart Array para uma visão geral do que fazer quando a nova capacidade estiver disponível ...

  • Você tem uma unidade de cache com backup de bateria ou flash em seu controlador RAID?
  • Você pode postar a saída de df -h ?
  • Você está usando o LVM?

A expansão de uma unidade lógica usando um controlador HP Smart Array RAID pode ser realizada substituindo cada disco por uma unidade maior, uma por vez, permitindo um tempo de reconstrução entre elas. Isso resultará em uma unidade lógica maior (em termos HP) que fornecerá espaço não utilizado que pode ser alocado para a unidade existente ou esculpido em uma nova unidade lógica.

Realizar a substituição da unidade não exigirá muito tempo de inatividade, além de uma reinicialização para reconhecer o novo tamanho da matriz. Uma expansão on-line (usando o HP Array Configuration Utility) ou uma expansão off-line (usando o CD inicializável do SmartStart ) é necessário para expandir a unidade lógica. E tudo o que precisa ser feito no nível do sistema de arquivos para redimensionar suas partições. Eu posso fazer isso em uma ou duas reinicializações, dependendo de como o sistema operacional do servidor está configurado.

Também pode fazer sentido instalar o Agentes e drivers de gerenciamento da HP para o seu SO . Também atualizar o firmware dos componentes do servidor também pode ser útil. Há um DVD de firmware inicializável disponível para realizar isso.

    
por 19.03.2012 / 13:45
2

Se você substituir as unidades uma por vez, poderá ter problemas, pois a nova compilação da matriz terá o mesmo tamanho da anterior; o sistema de arquivos não saberá sobre a expansão.

Então você teria que tentar redimensionar a partição e o sistema de arquivos rapidamente. Supondo que você controlador RAID não teria um problema com isso. E o sistema de arquivos. Alguns sistemas são mais adequados para estas acrobacias do que outros (usando o LVM?)

O que eu pessoalmente faria é olhar para a construção de outro servidor e executá-lo em paralelo com o original, então, quando tudo estiver claro, passe para o novo sistema de produção.

Se você não pudesse fazer isso, eu agendaria um horário para desligar o servidor, criar um novo array totalmente novo a partir do zero e depois restaurá-lo a partir do backup. Isso também teria o benefício de ter as unidades antigas disponíveis se houvesse um problema e você tivesse que abortar a reconstrução.

Essas duas abordagens salvariam a parte "tendo chances", testariam seus backups e reduziriam as chances de ter que passar para o "plano B" (ou C ou D) às três da manhã, quando você já está irritadiço, cansado e mais apto a cometer erros estúpidos.

Caso contrário, você terá que examinar seu sistema de arquivos e o software de gerenciamento de volume (LVM e utilitários de redimensionamento do sistema de arquivos) e esperar que seu controlador RAID não faça algo bobo para causar problemas que possam fazer você acaba tendo que restaurar a partir do backup de qualquer maneira.

Essa é a minha opinião sobre isso ... talvez alguém com um controlador de modelo e um servidor mais parecido com o seu possa dar experiências pessoais. Minha abordagem tende a ser mais genérica e tento eliminar os problemas de borda "apenas no caso".

    
por 19.03.2012 / 13:22
2

A opção 1 não é realmente uma opção, pois copiar o conteúdo de uma matriz RAID existente para um novo disco não aumenta o tamanho da matriz.

A menos que o controlador RAID da HP ofereça redimensionamento de matriz on-line, não é fisicamente possível - e, mesmo assim, isso apenas aumenta o array , não as partições nelas.

Escolha a opção 2: adicione as unidades ao controlador, crie uma nova matriz RAID-1, crie uma nova partição usando o tamanho total da matriz e mova seu conteúdo.

Haverá algum tempo de inatividade durante a cópia dos dados, mas você poderá minimizar isso usando rsync após a primeira ação de cópia completa e enquanto os aplicativos estiverem parados.

    
por 19.03.2012 / 13:24