Existe algum padrão de RAID no nível de byte e, se não, por quê?

-1

Se você deseja a durabilidade dos dados, faça backups. Você também pode querer usar o RAID para melhorar o tempo de atividade e evitar a perda de dados on-line. Pode-se usar software RAID, onboard / placa mãe RAID ou um controlador RAID separado.

Existe algum padrão para como o RAID armazena dados nos discos físicos, e se esse não é o caso, por que não?

Proibindo um padrão "universal", o que torna as implementações RAID interoperáveis?

    
por skeggse 03.02.2016 / 20:27

2 respostas

3

Are there any byte-level RAID standards, and if not why?

Os discos são dispositivos em nível de bloco, o que significa que você não pode ler e gravar bytes únicos deles, mas apenas blocos inteiros. Tradicionalmente, isso tem 512 bytes, mas 4096 bytes estão se tornando comuns.

Quase sempre há sobrecarga na comunicação com um dispositivo de hardware - se a quantidade de dados solicitada for muito pequena, você gastará mais tempo na sobrecarga do que obtendo os dados. Como os discos são um meio de armazenamento em massa, destinado a armazenar quantidades massivas de dados e não bytes únicos, o trabalho no nível de bytes provavelmente não vale a pena na maioria das vezes.

Quanto ao ponto ideal - o 512 está em uso há muito tempo. O 4096 está disponível apenas porque os discos rígidos exigem maior densidade física para armazenar mais dados. Com unidades de fita antigas que funcionam como dispositivos de bloco, acredito que você possa alterar o tamanho do bloco. O tamanho de bloco original da IBM de 128 foi escolhido porque era a segunda maior potência de 2 acima de 80 - e 80 é o número de caracteres em uma linha padrão datilografada.

Are there any standards for how data is stored on the physical disks

Para o RAID de hardware, provavelmente não existe, a menos que um fornecedor tenha publicado essa informação em algum lugar e provavelmente não queira torná-la pública por motivos abaixo.

Para RAID de software: Não tenho conhecimento de nenhuma fonte de informações sobre o formato de volumes dinâmicos do Windows (que permitem fazer RAID de software), mas pode estar disponível em algum documento da Microsoft. O formato que o Linux usa para lvm / md disks está pelo menos documentado no código-fonte e provavelmente explicado em outros lugares fáceis de usar no Google.

and if that's not the case, then why not?

A resposta pessimista é que os fornecedores são incentivados a prendê-lo - se você tem um controlador RAID que vai de barriga para cima e precisa de uma substituição o mais rápido possível, porque todos os seus discos estão formatados para funcionar com esse controlador, você vai comprar o vendedor novamente.

A resposta otimista é que isso permite que um fornecedor de hardware otimize a estrutura no disco para o hardware e / ou um designer de software / firmware para otimizar a estrutura no disco para os algoritmos ou técnicas envolvidos.

Barring a "universal" standard, what makes RAID implementations interoperable?

Um acordo sobre quais blocos / áreas no disco físico significam o quê.

    
por 04.02.2016 / 00:49
2

Are there any byte-level RAID standards, and if not why?

De jeito nenhum. Por que nós usaríamos bytes? Nós tendemos a usar bits ou coleções de bits. Essas coleções tendem a ser um determinado número, como 4096 bits (512 bytes), que é o tamanho de um setor de disco rígido tradicional ou quantidades maiores. Isso ocorre porque os padrões de comunicação do disco rígido (como o SATA) tendem a fazer coisas como permitir que os discos rígidos leiam um setor por vez. As pessoas que criam padrões de RAID tendem a se concentrar na velocidade e usam um "tamanho da faixa" como 512 bytes ou 4 kilobytes. Eles provavelmente não escolherão um valor como "8 bits" porque o foco deles não é necessariamente "vamos tornar isso fácil para pessoas que precisam de tecnologia simples".

Estou ignorando o primeiro parágrafo da pergunta, porque parece estar tentando descrever o cenário de um cenário e não tem uma pergunta real.

Are there any standards for how data is stored on the physical disks, and if that's not the case, then why not?

Claro. Os padrões incluem coisas como FAT32, Ext2, NTFS, Btrfs.

Barring a "universal" standard, what makes RAID implementations interoperable?

Algumas implementações de RAID são interoperáveis. O RAID 1 pode ser particularmente provável ... se isso não estiver funcionando (em uma configuração simples de dois discos), o problema pode ser simplesmente cabeçalhos incompatíveis, em vez de enormes problemas técnicos. A razão para a falta de padronização pode ser simplesmente um caso de não ter uma enorme razão para padronizar mais do que o que foi feito.

O RAID5 pode ser bastante compatível, os tamanhos das faixas IF são os mesmos. Tamanhos de faixa diferentes significam que um sistema pode pensar que um bit deve ser tratado como um bit de paridade, enquanto outro sistema pode pensar que o bit deve ser tratado como um bit de dados.

Para citar meu próprio site:

“Storage Network Industry Association” (“SNIA”)'s definition of “Redundant Array of Independent Disks” (“RAID”) 6 defines RAID 6 as “Any form of RAID that can continue to execute read and write requests to all of a RAID array's virtual disks in the presence of any two concurrent disk failures.” The definition goes on (in a separate paragraph) to say, “Several methods, including dual check data computations (parity and Reed Solomon), orthogonal dual parity check data and diagonal parity have been used to implement RAID Level 6.”

Assim, no caso do RAID6, existe um padrão. O padrão é apenas a capacidade de sobreviver a falhas de disco. É assim que definimos "RAID 6" e existem abordagens completamente diferentes (e incompatíveis).

Essa é provavelmente uma boa resposta para qualquer outra incompatibilidade de nível de RAID. O termo "RAID 1" descreve uma abordagem geral e um conjunto de recursos, mas as especificações RAID comumente suportadas não devem ser exigentes o suficiente para exigir detalhes específicos que precisariam corresponder para uma melhor interoperabilidade.

Poxa, as pessoas nem conseguem concordar com o que é o RAID10. Claramente é a mesma coisa que RAID 1 + 0, e é uma combinação dos conceitos gerais conhecidos como RAID 1 e RAID 0. Claramente RAID0 + 1 também é uma combinação dos conceitos gerais conhecidos como RAID 1 e RAID 0. Claramente um desses é uma "faixa de espelhos", enquanto o outro é um "espelho de listras". No entanto, qual desses termos (RAID10 ou RAID0 + 1) é a "faixa de espelhos"? A resposta é dependente do fornecedor. Nem todos os fornecedores concordam com isso (de acordo com essa fonte: artigo do Guia do PC sobre vários RAID níveis ). Sem o acordo universal de exatamente o que "RAID10" significa, como podemos esperar um acordo universal sobre detalhes muito mais específicos, como o propósito de bits específicos? (Esse nível de detalhe seria necessário para a interoperabilidade.)

Então, esse é o cenário. Com relação a "por que" isso não é tratado com mais precisão, a razão básica é que o uso típico envolve o armazenamento de um monte de unidades em um sistema, de modo que tudo está sob o controle de apenas um único controlador RAID. Em cenários um pouco mais complicados, uma empresa grande pode ter vários controladores RAID, e eles geralmente podem evitar problemas de interoperabilidade, certificando-se de que eles usem um modelo idêntico de controladores RAID. Interoperabilidade além disso simplesmente não tem sido uma característica que a maioria das pessoas simplesmente não se importou muito. Devido à falta de demanda significativa do mercado, o mercado simplesmente não se preocupou em fornecê-lo.

    
por 04.02.2016 / 00:44