Cálculo Ext3 Stride / Stripe-Width para 3-Disk Software RAID1E

3

Por razões muito complexas para entrar aqui, estou usando um RAID1E de 3 discos em alguns sistemas Linux. Consulte aqui para obter mais informações sobre isso.

Então, meu entendimento é que, para otimizar o layout do sistema de arquivos neste volume, você usa o seguinte cálculo:

chunk-size = 64kB
block-size = 4kB
stride = chunk / block = 16
stripe-width = stride * ( (numdisks)/2 ) = 16 * 1.5 = 24

No entanto, mkfs.ext3 dá um aviso quando eu uso esse cálculo para definir a largura da faixa, que deve ser uma potência de dois.

Então, minha pergunta é: estou fazendo certo? Devo estar tratando-o como um RAID10 padrão de quatro discos, já que as faixas são do mesmo tamanho?

Atualização: não é um array degradado, é uma configuração totalmente suportada. Leia o link do primeiro parágrafo.

    
por Alex G 20.07.2012 / 20:26

2 respostas

0

Eu fiz alguns experimentos usando XFS ao invés de ext3 em vários tamanhos e níveis de RAID MD. Parece que a seguinte fórmula se aplica em todos os lugares:

# chunk is specified in mdadm create, block in mkfs
stride = chunk / block
stripe-width = ((slices - parity) * stride

Onde a paridade é zero para RAID0 / 10 / 1E, uma para RAID5, duas para RAID6.

Portanto, no caso da minha pergunta original, o stripe-width deve ser definido como 48 (bloco de 64kB, bloco de 4kB, 3 fatias, paridade zero). Quando eu uso essas configurações, o mkfs.ext3 não dá mais um aviso sobre a largura da faixa não ser divisível pela passada.

    
por 09.08.2012 / 22:52
2

A configuração da largura da faixa maior que 64kB ficará abaixo do ideal.

Qualquer gravação de tamanho maior que 64kB resultará em 4 gravações - uma escrita em um disco, uma gravação em outra e duas gravações em uma.

Basta definir a largura da sua faixa para 64kB.

    
por 20.07.2012 / 20:38

Tags