opções de formato ext3

3

Estou criando um sistema de arquivos ext3 em cima de um software raid5 (md) e estou imaginando quais são os melhores parâmetros ao criar o sistema de arquivos (com mkfs.ext3) e durante a montagem.

O tamanho do bloco RAID5 é de 128k, o array tem 3 unidades, total efetivo de 900 GB. ext4 não é uma opção.

Editar: O sistema de arquivos tem vários VPS (máquinas privadas virtuais), incluindo um VPS do Gentoo com muitos e pequenos arquivos. O VPS não usa imagens, elas armazenam arquivos diretamente no sistema de arquivos. Também possui muitos arquivos de 500 a 1000 MB.

Obrigado Matic

    
por Matic 23.10.2009 / 00:40

3 respostas

2

A idéia por trás da otimização de tamanhos de distribuição é otimizá-la de forma que, em sua carga de trabalho típica , a maioria das solicitações de leitura seja preenchida por uma única leitura, dividida igualmente por todos os discos de dados. Para um conjunto de três discos RAID-5, a quantidade de discos de dados seria dois.

Por exemplo, suponhamos que minha carga de trabalho típica faça solicitações de leitura de E / S que são em média 128kB. Você iria querer fazer pedaços de 64kB se eu tivesse um conjunto de três discos RAID-5. Calcule assim:

avg request size / number of data disks = chunk size
128kB / 2 = 64kB

Este é o tamanho do pedaço do seu conjunto RAID , ainda não chegamos a fazer o sistema de arquivos.

O próximo passo seria garantir que o sistema de arquivos esteja alinhado com as características do conjunto RAID. Portanto, queremos garantir que o sistema de arquivos esteja ciente do tamanho do bloco do conjunto RAID. Em seguida, ele pode distribuir uniformemente os superblocos nos três discos.

Para isso, precisamos dizer ao mke2fs qual é o tamanho de um pedaço ou, mais exatamente, quantos blocos do sistema de arquivos vão se encaixar em um pedaço. Isso é chamado de 'stride' do sistema de arquivos:

chunk size / size of filesystem block = stride size
64kB / 4kB = 16

Você pode então chamar o mke2fs com a opção -E stride = 16.

A página mencionada anteriormente também fala sobre a opção -E stripe-width para mke2fs, mas eu nunca usei isso eu mesmo, nem a manpage da minha versão do mke2fs menciona isso. Se quisermos usá-lo, estaríamos usando o 32: a largura da faixa é calculada multiplicando a passada pela quantidade de discos de dados (dois, no seu caso).

Agora, para o cerne da questão: qual é o tamanho ideal do pedaço? Como descrevi acima, você precisaria do tamanho médio de uma solicitação de leitura de E / S. Você pode obter esse valor verificando a coluna apropriada na saída de iostat ou sar. Você precisará fazer isso em um sistema que tenha uma carga de trabalho comparável ao sistema que você está configurando, durante um período prolongado.

Verifique se você sabe que tipo de unidade o valor usa: setores, kilobytes, bytes ou blocos.

    
por 23.10.2009 / 13:11
0

Sem mais conhecimento da sua carga de trabalho exata, eu diria que os padrões provavelmente serão a melhor opção. Talvez -m 0 se você não estiver preocupado com o fato de usuários não-root preencherem o disco e / ou definir dir_index se você estiver fazendo coisas bobas com o número de arquivos em um diretório.

    
por 23.10.2009 / 00:50
0

Certifique-se de alinhar o sistema de arquivos com o tamanho da faixa RAID -

link

tem um bom resumo.

Certificando-se de que o sistema de arquivos está alinhado corretamente, você pode evitar fazer RMW no RAID5, o que ajuda no desempenho.

    
por 23.10.2009 / 09:36