Linux: Como alinhar partição e sistema de arquivos no RAID de hardware

5

Tenho uma caixa de teste (PowerEdge 2950) com unidades SAS Perc 6 / i e 4x 15,5k conectadas (com tamanhos de bloco de 512 bytes). Eles estão em um único disco virtual RAID 5 com um tamanho de bloco de 64KB.

Estou criando uma única partição de teste que abrange toda a unidade. Deve estar alinhado com a marca do bloco de 64 KB ou com o tamanho do bloco de 512 bytes? Se mais tarde, a partição poderia começar em 2048 bytes no disco virtual único, o que significa que começará no segundo bloco livre na primeira unidade (suponho)?

Além disso, adicionarei mais duas unidades e recriarei o disco virtual RAID posteriormente para mais testes, caso a partição seja criada em 6x512 bytes, portanto, de 3072 bytes?

Eu li algumas perguntas semelhantes sobre isso, mas não consegui ver, como o tamanho do bloco do volume RAID pode estar relacionado ao alinhamento da partição, no tamanho do bloco da unidade ao usar uma única unidade.

    
por jwbensley 09.08.2012 / 18:10

2 respostas

8

Se você usar o setor inicial de setores de 2048 (512 bytes), sua partição iniciará 1 MB na unidade. Esse valor é usado como o padrão na maioria dos instaladores mais recentes. Esse número é bem divisível por 64k e a maioria dos outros tamanhos comuns de blocos / blocos.

Se você estiver particionando com fdisk, então passe o -u flag. Por isso, reporta os valores em setores de 512 bytes em vez de cilindros.

Como você está usando ext *, você pode usar esta calculadora para determinar o tamanho da tira e a largura da passada do sistema de arquivos . Estou mostrando que você gostaria de criar seu sistema de arquivos com estas opções: mkfs.ext3 -b 4096 -E stride=16,stripe-width=48 . Você pode querer tentar apenas criar o sistema de arquivos sem passar opções e ver o que o mkfs detecta e usa (verifique com tune2fs -l /dev/sdnn ). Atualmente, parece fazer um bom trabalho detectando automaticamente o tamanho / largura.

    
por 09.08.2012 / 19:53
0

Sua matemática está errada. Em um array RAID5 de 4 discos existem (simplisticamente) 3 discos de dados e um disco de paridade, e é por isso que se você tem 4 drives de 80Gb, você obtém 3 * 80 ou 240Gb de espaço utilizável no array RAID. Assim, pelas suas suposições, iniciar uma partição em 2048 bytes na unidade começaria no segundo bloco da segunda unidade.

Mas, na verdade, sua premissa está errada de qualquer maneira. Se você já assistiu a atividade do disco acender em uma matriz RAID5, você viu que todos eles piscam juntos, exceto ao fazer uma reconstrução. Em outras palavras, o controlador RAID5 armazena em cache o disco ler & grava e executa as mesmas em paralelo em todas as unidades (obviamente, durante uma reconstrução, todas, exceto uma das unidades, operam juntas, enquanto a unidade de reconstrução geralmente está em estado sólido). Isso é para garantir a consistência.

É claro que está lendo e escrevendo blocos de 64Kb, então você começou a particionar no limite de 192Kb, você pode ver apenas uma melhoria fracionária ao acessar arquivos no início da partição. Mas, supondo que este disco não terá alguns arquivos muito grandes (ou seja, dimensionados em múltiplos de 192Kb) sendo lidos seqüencialmente, em operação normal, os cabeçotes estariam se movendo por todo o (s) disco (s), lendo / gravando arquivos alocados em pedaços de 4Kb, o que faria qualquer ganho no alinhamento da partição.

Em conclusão, como o Perc 6 / i é um controlador RAID de hardware, eu apenas deixei o SO particionar o disco como ele recomenda. O alinhamento da partição não terá um efeito perceptível na velocidade de acesso ao disco / arquivo.

    
por 09.08.2012 / 19:18