Como modificar/corrigir o array RAID 10 dmraid (FakeRaid) detectado incorretamente

Como modificar/corrigir o array RAID 10 dmraid (FakeRaid) detectado incorretamente

Estou tentando fazer com que o dmraid detecte corretamente uma matriz RAID 10 existente, que está funcionando bem no Windows 7. Em resumo, a configuração da unidade e o particionamento do BIOS são os seguintes:

  • 2 x SSD (120 GB), RAID 0.

    Particionado em: 180 GB (win7)e 58 GB (Ubuntu).

    Ambos detectados e montados corretamente no Ubuntu.

  • 4 x HDD (2 TB), RAID 1+0. Partição única de 4 TB.

    Não funciona no Ubuntu.


A instalação do Ubuntu em si está em um par de discos distribuídos particionados e funciona bem. As duas partições (180 GB e 58 GB) correspondem aos seguintes LVMs (tomei a liberdade de formatar os dados para facilitar a leitura):

#$ sudo dmsetup info /dev/dm-{1,2,3,4,5}
|----------+--------+---------------+-----------+- ---------+--------|
| dev/dm-0 | Ubuntu | pdc_hjijcjji | contentor | | 58 GB |
| dev/dm-1 | Ubuntu | pdc_hjijcjji1 | / | ext4 | 54 GB |
| dev/dm-2 | Ubuntu | pdc_hjijcjji2 | | estendido | 4,3 GB |
| dev/dm-3 | ganhe 7 | pdc_fjhhdeeg | contentor | | 180 GB |
| dev/dm-4 | Ubuntu | pdc_hjijcjji5 | | trocar | 4,3 GB |
| dev/dm-5 | ganhe 7 | pdc_fjhhdeeg1 | | NTFS | 180 GB |
|----------+--------+---------------+-----------+- ---------+--------|

O array Raid 10 (que é o que preciso de ajuda para fazê-lo funcionar no Ubuntu) consiste em quatro discos de 2 TB e fornece um array resultante de 4 TB. Parece que dmraidestá ciente dessa matriz, dada a seguinte saída:

#$ sudo dmraid -r
|----------+-------+------------------+--------+- --------+----------------+--------|
| Dispositivo | Formato | Nome | Tipo | Status? | Dimensão (setores) | ? |
|----------+-------+------------------+--------+- --------+----------------+--------|
| /dev/sdf | pdc | pdc_fjhhdeeg | faixa | ok | 175781248 | dados@ 0 |
| /dev/sde | pdc | pdc_fjhhdeeg | faixa | ok | 175781248 | dados@ 0 |
| /dev/sdd | pdc | pdc_bjibibahah-1 | faixa | ok | 1758766336 | dados@ 0 |
| /dev/sdc | pdc | pdc_bjibibahah-1 | faixa | ok | 1758766336 | dados@ 0 |
| /dev/sda | pdc | pdc_bjibibahah-0 | faixa | ok | 1758766336 | dados@ 0 |
| /dev/sdb | pdc | pdc_bjibibahah-0 | faixa | ok | 1758766336 | dados@ 0 |
|----------+-------+------------------+--------+- --------+----------------+--------|

O que me confunde um pouco, já que eu esperava que o array, pdc_hjijcjji, aparecesse aqui também. Talvez, por ser uma partição dentro de um disco distribuído, ela esteja incluída no arquivo pdc_fjhhdeeg. De qualquer forma, o array distribuído está funcionando bem, então não estou muito preocupado com isso.

pdc_hjijcjjiaparece durante a execução dmraid -s:

#$ sudo dmraid -s
|-----------+----------------+--------------+----- ---------|
| Nome | pdc_bjibibahah | pdc_fjhhdeeg | pdc_hjijcjji |
|-----------+----------------+--------------+----- ---------|
| | Superconjunto | Conjunto ativo | Conjunto ativo |
| Tamanho (-h) | 1.677TB | 167,6GB | 54,0 GB |
| Tamanho | 3517532672 | 351562496 | 113281024 |
| Passo | 128 | 128 | 128 |
| Tipo | raid10 | faixa | faixa |
| Estado | ok | ok | ok |
| Subconjuntos | 2 | 0 | 0 |
| Desenvolvedores | 4 | 2 | 2 |
| Peças sobressalentes | 0 | 0 | 0 |
|-----------+----------------+--------------+----- ---------|
# O tamanho está em blocos de 512 bytes.

Onde pdc_bjibibahahparece corresponder ao array Raid10, exceto que tem um tamanho estranho (1.677 TB, em oposição a aproximadamente 4 TB). Tentar ativar isso dmraid -ayresulta em um dispositivo montado de 1,677 TB que é relatado como dados não alocados.

Executando sudo dmraid -s -sina bjibibahahmatriz:

#$ sudo dmraid -s -si
|-----------+----------------+------------------+- -----------------|
| Nome | pdc_bjibibahah | pdc_bjibibahah-0 | pdc_bjibibahah-1 |
|-----------+----------------+------------------+- -----------------|
| | Superconjunto | Subconjunto | Subconjunto |
| Tamanho (-h) | 1.638 TB | 1.638 TB | 1.638 TB |
| Tamanho | 3517532672 | 3517532672 | 3517532672 |
| Passo | 128 | 128 | 128 |
| Tipo | raid10 | faixa | faixa |
| Estado | ok | ok | ok |
| Subconjuntos | 2 | 0 | 0 |
| Desenvolvedores | 4 | 2 | 2 |
| Peças sobressalentes | 0 | 0 | 0 |
|-----------+----------------+------------------+- -----------------|

Tentei configurar os arrays manualmente, mas sem sucesso, e a manpágina também não está sendo muito útil. Se alguém tiver uma sugestão de como configurar dmraidou convencê-lo a alterar a configuração do array RAID10, ficaria muito grato.

Aqui estão alguns resultados, caso sejam relevantes:

$ sudodmraid-V
Versão dmraid: 1.0.0.rc16 (2009.09.16) compartilhada
Versão da biblioteca dmraid: 1.0.0.rc16 (2009.09.16)
versão do mapeador de dispositivos: 4.20.0

$ sudo dmsetup --versão
Versão da biblioteca: 1.02.48 (20/05/2010)
Versão do driver: 4.20.0

$ unome -srvm
Linux 3.0.0-16-genérico #28-Ubuntu SMP Sexta-feira, 27 de janeiro 17:44:39 UTC 2012 x86_64

$ lsb_release -a
Nenhum módulo LSB está disponível.
ID do Distribuidor: Ubuntu
Descrição: Ubuntu 11.10
Lançamento: 11.10
Codinome: onírico

Além disso, a configuração do BIOS RAID da matriz RAID10 corresponde aos seguintes discos no Ubuntu: Código:

|--------+------------+-------------|
| Porta:ID | Atribuição | Nome do disco do SO |
|--------+------------+-------------|
| 01:01 | LD 1-1 | /dev/sda |
| 02:01 | LD 1-2 | /dev/sdb |
| 03:01 | LD 1-3 | /dev/sdc |
| 04:01 | LD 1-4 | /dev/sdd |
|--------+------------+-------------|

Atualizar:Esqueci de mencionar que estou em uma placa-mãe Crosshair V, usando o AMD SB950controlador embutido.

Atualização 2:Ao executar sudo dmraid -s -ccs pdcrecebo as seguintes mensagens de erro:

ERRO: pdc: número errado de dispositivos no conjunto RAID "pdc_fjhhdeeg" [1/2] em /dev/sdf
ERRO: pdc: número errado de dispositivos no conjunto RAID "pdc_fjhhdeeg" [1/2] em /dev/sde
ERRO: pdc: número errado de dispositivos no conjunto RAID "pdc_bjibibahah-1" [1/2] em /dev/sdd
ERRO: pdc: número errado de dispositivos no conjunto RAID "pdc_bjibibahah-1" [1/2] em /dev/sdc
ERRO: pdc: número errado de dispositivos no conjunto RAID "pdc_bjibibahah-0" [1/2] em /dev/sdb
ERRO: pdc: número errado de dispositivos no conjunto RAID "pdc_bjibibahah-0" [1/2] em /dev/sda
*ERRAR*

Se eu omitir o especificador pdc e apenas escrever, sudo dmraid -s -ccsficarei ainda mais enigmático:

*ERRAR*
*ERRAR*
*ERRAR*

Atualização 3:Consegui remover o array mal configurado usando sudo dmraid -rEcomo sugeridoem um controle de qualidade do askubuntu aqui. Ainda estou recebendo os erros "ERRO: pdc: número errado de dispositivos no conjunto RAID ...", que parecem estar impedindo o progresso futuro. Continuarei buscando soluções para esse problema.

Editar:Há alguma informação que eu possa adicionar que possa ajudar alguém a me ajudar?

Responder1

OK :) Então aqui está seu objetivo:

4 x HDD (2 TB), RAID 1+0. Single 4TB partition.

Vendo que ele está relatando apenas cerca de 1,6 TB, essa quantidade de armazenamento ausente sugere um problema de metadados para mim.

Eu sugeriria destruir todo o array e garantir que os metadados sejam apagados usando dmraid -rE. Então, quando esses discos não aparecerem mais, tente fazer um RAID1 simples a partir dos discos 2 2T, a capacidade do seu contêiner deve estar mais próxima de 1,8-1,9 e 1,6. Uma vez verificado isso,entãocrie sua faixa, que deve apenas somar os dois. Se isso não funcionar, você pode ter um bug no firmware ou no próprio sistema dmraid.

dmraid é ummm... interessante, dada a escolha eu preferiria não usá-lo. Você está basicamente pegando toda a complexidade do md-raid, sem qualquer aumento no desempenho, e então misturando uma série de diferentes formatos de metadados de diferentes fornecedores, e então compartilhando esses metadados com vários sistemas operacionais, confiando que o sistema operacional que você compartilhou com não estraga os metadados.

Você pode querer testar a substituição de membros com falha depois de estabilizar essa configuração. Um RAID é apenas um grande ponto único de falha se você não puder atendê-lo. Boa sorte.

Em resposta ao seu problema com dmraid -rE Neste ponto, sua única opção é dd if=/dev/zero ... e limpar os discos.

Responder2

Estou com o mesmo problema e acredito que finalmente (depois de vários dias pesquisando no Google sem uma resposta satisfatória) encontrei o problema.

Eu acredito que isso é um BUG - um unsigned int de 32 bits é usado para o número de setores em algum lugar (dmraid?).

Observe que o número de setores no (meu) disco de 2 TB: 3906898048, que multiplicado por 512B/setor dá 2,0 TB ou 1,8 TiB Quando distribuído, deve dobrar, mas em vez disso dá: 3518828800 setores, multiplicado por 512 B/setor resulta para 1,8 TB ou 1,6 TiB.

Considerando que o Windows 10 lê o tamanho correto de 4 TB nessa partição RAID10, o erro provavelmente está no lado do Linux.

Convertido para binário: 3906898048 -> 0000 1110 1000 1101 1110 1000 1000 1000 0000 2x 3906898048 -> 0001 1101 0001 1011 1101 0001 0001 0000 0000 3518828800 -> 0000 1101 0001 1011 1101 0001 0001 0000 0000

Alguém pode dar uma olhada nisso e criar um patch? Obrigado.

informação relacionada