entendendo o “tamanho do pedaço” no contexto do RAID

3

Estou certo de que tamanho de bloco no contexto do RAID é essencialmente a mesma coisa que o cluster no contexto do sistema de arquivos? Em outras palavras, tamanho do bloco é a menor unidade de dados que pode ser gravada em um membro da matriz RAID? Por exemplo, se eu tiver um tamanho de bloco de 64 KiB e eu precisar escrever um arquivo 4KiB e o tamanho do cluster do sistema de arquivos também for 4KiB, então é verdade que vou usar um pedaço de 64 KiB e basicamente desperdiçar 60 KiB?

    
por Martin 05.03.2014 / 20:27

2 respostas

4

Dado que pedaços podem ser bastante grandes e que as informações de paridade são simples XOR (ou seja, não afeta os dados antes ou depois da peça em questão), a suposição de que apenas pedaços completos podem ser escritos não faz sentido para mim.

Os pedaços são a unidade na qual os dados são distribuídos pelos volumes. Um pedaço de dados contínuos é gravado em um certo volume, os próximos dados são gravados em outro.

Tanto com sistemas de arquivos quanto com RAID este é um problema de otimização: em um sistema de arquivos, blocos / clusters muito pequenos causariam sobrecarga de metadados, blocos muito grandes desperdiçam muito espaço (já que a maioria dos sistemas de arquivos pode usar um determinado bloco por um único arquivo somente).

Com o RAID, é semelhante: se você tem pequenas partes, precisa de acesso a vários discos, mesmo para arquivos muito pequenos (ou outros dados). Na maioria dos casos, a maior latência da unidade (neste caso único) mais lenta leva mais tempo do que a leitura de uma única unidade. Isso não é válido para SSDs, mas eles não são a tecnologia dominante para o RAID.

Se você tem pedaços muito grandes, até mesmo aqueles acessos que podem ser claramente acelerados, espalhando-se por várias unidades, são feitos em apenas uma unidade.

    
por 05.03.2014 / 21:55
0

A resposta para a pergunta do OP é: sim. Em um RAID, um "chunk" é a quantidade mínima de dados lidos ou gravados em cada disco de dados na matriz durante uma única operação de leitura / gravação.

No seu exemplo, você não necessariamente "desperdiçará" 60-KiB como você colocou. Isso depende da combinação da estrutura do sistema de arquivos e da estrutura RAID subjacente. No entanto, você está levantando um ponto muito importante, que é o ideal se a configuração do sistema de arquivos estiver alinhada com a configuração do RAID em relação às unidades de armazenamento.

Continuando com o seu exemplo hipotético; se você tivesse um RAID com tamanho de bloco de 64 KiB e um sistema de arquivos sobrepostos usando tamanhos de bloco de 64 KiB, então sim, um arquivo de 4 KiB usaria toda uma área de armazenamento de 64 KiB no sistema de arquivos sozinho. E, ao mesmo tempo, consumiria todo um pedaço de 64 KiB no RAID sozinho. No entanto, isso seria porque o sistema de arquivos foi configurado para blocos de 64 KiB. Esses blocos são a menor unidade de dados de armazenamento desse sistema de arquivos. Qualquer tamanho de arquivo menor que esse bloco ainda usará 1 bloco de espaço de armazenamento do sistema de arquivos.

Meu ponto é que sua segunda pergunta é realmente relevante para o sistema de arquivos e não para o RAID.

Continuando com o exemplo acima, se o seu RAID usasse blocos de 16 KiB e o seu sistema de arquivos no topo do RAID usasse blocos de 64-KiB, então cada bloco escrito no RAID exigiria 4 desses blocos (64/16 = 4).

Agora inverta esse processo de pensamento. E se você tivesse blocos RAID de 64 KiB e blocos de sistema de arquivos de 16 KiB? Agora, cada bloco do sistema de arquivos usa apenas 1/4 do fragmento RAID. Isso significa que 1) seu arquivo de 4-KiB ocupa 16-KiB no sistema de arquivos; e 2) o RAID executará uma operação de leitura / modificação / gravação ao escrever esse bloco de 4-KiB / 16-KiB, porque a menor unidade de armazenamento do RAID é 64-KiB. Então, seu sistema de arquivos é mais eficiente, mas seu RAID é menos eficiente (para aquela operação de arquivo específica).

    
por 11.06.2018 / 15:11