Posso reconstruir um JBOD?

0

Eu tenho algum hardware antigo que falhou anos atrás e ainda tenho 2 HDDs lá, ambos configurados como JBOD.

Existe uma maneira de despejar essas unidades em um disco rígido e remover / reconstruir o JBOD com o hardware atual não mais disponível?

O JBOD foi construído em um chip Promise 20579 - MSI Mainboard K8T Neo para AMD 64.

Timo Schäfer
fonte
Depende do que você tem acesso, mas cada disco JBOD deve ser montável e acessível da maneira 'normal'.
Djsmiley2k
Esses HDDs ainda estão em execução, mas como posso reconstruir o ataque ou melhor - despejar o HDD em um novo HDD e trabalhar a partir daí.
Timo Schäfer
O JBOD foi construído com o OnBoard Controller e não no Windows, apenas quero mencionar isso.
Timo Schäfer
1
Adicione-o à pergunta :). Bem, você precisará examinar a documentação dos controladores internos para ver se pode ter algum tipo de acesso depois que uma unidade falhar - alguns permitem, outros não.
Djsmiley2k
1
Não, se você criar um JBOD, o sistema operacional "verá" essas unidades como uma unidade; portanto, você terá uma tabela de alocação de arquivos.
Timo Schäfer

Respostas:

0

Há uma chance de seus discos serem apenas concatenados em um grande volume. É a solução mais simples quando se trata de JBOD. Se apenas o pessoal do hardware seguisse o princípio do KISS , você não terá problemas para acessar / descarregar os dados com software em vez de hardware.

No Linux, a ferramenta adequada é dmsetup, mas se você deseja despejar os discos em apenas uma imagem (ou outro disco), o simples catpode ser suficiente.

Investigação

Primeiro, você precisa saber a ordem original dos discos no JBOD. Deve ser fácil identificar o primeiro disco; a parte complicada é pedir o resto deles. No seu caso, onde existem dois HDs, você não deve ter problemas. O primeiro disco possui uma tabela de partição MBR válida ou uma GPT válida (primária, mas não a secundária) que descreve partições no JBOD inteiro . A menos que você tenha usado seu JBOD sem nenhuma tabela de partição, esse método funcionará. Verifique seus discos gdisk -le identifique o primeiro.

Preparação

No meu exemplo a ordem correta é /dev/sdb, /dev/sdc. Altere as definições de variáveis ​​abaixo para suas necessidades.

device1=/dev/sdb
device2=/dev/sdc

Dessa forma, você pode usar os comandos do Bash a seguir, sem nenhuma alteração.

Para despejar os discos em uma imagem, isso deve ser suficiente (nota: a partir de agora você pode precisar sudo):

cat $device1 $device2 > image.raw

É necessária mais preparação se você realmente deseja trabalhar com o JBOD. Você precisa armazenar os tamanhos dos seus dispositivos em setores de 512 bytes. O comando para recuperar o tamanho é como blockdev --getsz /dev/sdX, de modo

size1=`blockdev --getsz $device1`
size2=`blockdev --getsz $device2`

Confirme se echo $size1 $size2você tem dois números. (Verificação de integridade: se você os multiplicar por 512, deverá obter o tamanho de seus discos.)

Criação de dispositivo mapeado

É hora de criar um dispositivo virtual concatenado. O seguinte trecho de código usa aqui a sintaxe do documento para facilitar a leitura. Pode ser necessário ajustá-lo se você não usar o Bash. Por outro lado, com o Bash, ele deve funcionar apenas colando no terminal.

dmsetup create mydevice << EOF
0 $size1 linear $device1 0
$size1 $size2 linear $device2 0
EOF

Nota mydeviceé um nome arbitrário. A segunda e a terceira linha criam um mapa de dispositivos para dmsetup. Consulte para man dmsetupsaber mais.

Agora você deve ter /dev/mapper/mydevicedisponível e pronto para usar; é o seu JBOD. (Não tenho 100% de certeza de que toda implementação de dmsetupnós cria /dev/mapper/; no entanto, mydevicedeve aparecer em algum lugar.) Trabalhe com ele como em qualquer outro dispositivo.

Montagem

Leia minha outra resposta . Toda a seção de montagem nela se aplica ao seu gabinete.

Limpeza

Para destruir /dev/mapper/mydevice:

dmsetup remove /dev/mapper/mydevice

Claro que você deve umountprimeiro suas partições.

Kamil Maciorowski
fonte