Sabedoria de adicionar unidade externa USB ao array RAID10 do Linux

4

Eu tenho um sistema SAN com 10 slots de unidade configurado com o Software RAID10 e todo o md0-5 adicionado em um único grupo de volumes. A porta SATA no slot 10 falhou recentemente e não aceita nenhuma unidade que colocamos lá. Estou extremamente nervoso em deixar a unidade 9 sem espelhos. Minha solução proposta é adicionar uma unidade externa USB (tamanho e fabricante correspondentes para dirigir # 9) para o servidor e atribuí-la como o parceiro RAID1 para o nº9. Percebo que o USB será muito mais lento que o SATA, mas estou mais preocupado com a proteção de dados do que com a velocidade do disco.

Alguém vê algum problema com esse plano (exceto desempenho)?

cat / proc / mdstat Personalidades: [raid1] md4: raid1 ativo sdj1 [1]       976759936 bloqueia [2/1] [U _]

md3: raid1 ativo sdc1 [1] sda1 [0]       976759936 bloqueia [2/2] [UU]

md2: raid1 ativo sdh1 [1] sdg1 [0]       976759936 bloqueia [2/2] [UU]

md4: raid1 ativo sdi1 [0] sde1 [1]       976759936 bloqueia [2/2] [UU]

md0: raid1 ativo sdf1 [0] sdb1 [1]       976759936 bloqueia [2/2] [UU]

    
por John P 24.11.2010 / 16:09

3 respostas

5

O RAID10 é um RAID0 de arrays RAID1 que você acabaria com apenas um volume no final, então você teria um volume físico para fornecer ao LVM. Assim:

            LV1        LV2              
             \__________\___________....
                            |
                           VG
                            |
                           PV
                            |
     ______________________MD5________________________
    /             /           |          \            \
  _MD0_        _MD1_        _MD2_       _MD3_        _MD4_        
 /     \      /     \      /     \     /     \      /     \
D01   D02    D03   D04    D05   D06   D07   D08    D09   D10

O que você descreve com "todos os md0-5 adicionados em um único grupo de volumes" soa como 5 matrizes RAID1 separadas (ou RAID10 - o driver RAID10 essencialmente atua como RAID1 para matrizes de duas unidades) que você adicionou ao LVM separadamente , então você tem um grupo de volumes que consiste em 5 volumes físicos. Assim:

            LV1        LV2              
             \__________\___________....
                            |
     ______________________VG_________________________
    /             /           |          \            \
   PV1          PV2          PV3         PV4          PV5
    |            |            |           |            |
  _MD0_        _MD1_        _MD2_       _MD3_        _MD4_        
 /     \      /     \      /     \     /     \      /     \
D01   D02    D03   D04    D05   D06   D07   D08    D09   D10

(isso não é realmente RAID10 (RAID-1-então-0) é RAID-1-então-JBOD)

Este é o caso?

Em caso afirmativo, você poderia simplesmente remover o PV5 do grupo de volume, assumindo que há espaço livre suficiente no sistema e que os sistemas de arquivos suportados sejam redimensionados (ou seja, et2 / 3/4 com resize2fs) se necessário:

  1. Reduza os sistemas de arquivos e os volumes lógicos que os contêm até que haja pelo menos espaço livre suficiente no grupo de volumes para preencher o PV5, a menos que já exista espaço livre suficiente no grupo de volumes.
  2. Use pvmove para mover todo o bloco alocado para esse volume físico pelo LVM para outros
  3. (opcional) Use vgreduce para remover esse PV5 do grupo de volumes

Agora a matriz quebrada não faz parte da configuração do LVM. Você pode adicioná-lo novamente depois de ter corrigido a situação, para que o par RAID1 não seja mais executado degradado.

Para realmente responder a sua pergunta ...

Diferente de problemas de desempenho, que você já identificou, e a chance de uma unidade USB ser acidentalmente desconectada (o que é improvável se a máquina que hospeda sua SAN estiver longe dos humanos e outras perturbações) não há problema em substituir seu disco 10 por um conectado via USB.

Se a máquina que hospeda sua SAN tiver um slot PCI ou PCI-E sobressalente, eu sugeriria, em vez disso, seguir essa rota, adicionando um controlador SATA extra para desligar a unidade. Se você obtiver um controlador que ofereça cinco portas (ou possa caber em duas placas que ofereçam cinco ou mais no total), ficaria tentado a dividir as unidades para que cada par tenha uma unidade conectada à placa-mãe e outra conectada à unidade. no controlador - dessa forma, toda a sua matriz tem mais chance de sobreviver a uma falha no controlador da placa-mãe que mata todas as unidades conectadas a ela (uma ocorrência muito rara, mas pode acontecer).

Em ambos os casos, se você tiver cinco matrizes separadas, cada uma como um volume físico para LVM (não como uma matriz para um PV no LVM), eu recomendaria obter os dados do par degradado pelo menos temporariamente, a menos que você possa adicionar a unidade de substituição agora mesmo.

(Para confirmar o layout, valeria a pena reformular sua pergunta e / ou adicionar a saída dos comandos cat /proc/mdstat , pvs , vgs e lvs .)

    
por 24.11.2010 / 18:30
1

É uma invasão 10, eu estaria menos preocupado com a integridade da matriz com um disco morto do que usando uma unidade USB. Se tivesse sido o raid 5, poderia ser uma questão diferente, mas acho que você ficará bem sem um décimo disco até que consiga consertar o seu controlador - contanto que você resolva isso em breve - você está certo:)

    
por 24.11.2010 / 16:19
0

Eu acho que o desempenho não será nada bom. Pior ainda, a unidade USB pode ser desconectada enquanto o sistema está escrevendo e / ou se preparando a partir dela.

Você pode copiar seus dados na unidade 9 para outras unidades espelhadas?

    
por 24.11.2010 / 16:19