Tamanho ideal do bloco Linux RAID5

2

Eu trago, mais uma vez, a sempre presente questão de como otimizar melhor as estruturas de disco. Na minha organização, temos uma matriz RAID de software Linux de 14TB dedicada ao armazenamento de backups feitos usando o Symantec Backup Exec. São arquivos grandes, de 10 GB a 100 GB cada, com alguns arquivos de metadados de suporte com cerca de KB de tamanho. Para encurtar a história, temos que recriar o array, e gostaria de saber o tamanho ideal do pedaço do array para este caso de uso.

Detalhes da nossa configuração:

Um Netgear ReadyNAS Pro, executando um & clean & instalação atualizada do CentOS 6.4.

discos rígidos de 6 x 3 TB (SATA II, 7200 RPM) de fornecedores variados (idênticos em tamanho).

Cada unidade possui 3 partições idênticas que formam 3 dispositivos RAID de software:

  • / dev / md0: 6 x 32 GB para / em um RAID6
  • / dev / md1: troca de 6 x 4 GB em um RAID10
  • / dev / md2: armazenamento de 6 x 2,7 TB em um RAID5 para armazenamento útil total de ~ 14TB

Além disso, há um dispositivo flash integrado de 128MB configurado como / boot

/ dev / md2 é o array no qual estou focado. Ele é disponibilizado como drive "R:" para uma caixa do Windows Server 2008 R2 executando o Symantec Backup Exec via iSCSI multipath em NICs de dois gigabits nas duas máquinas (também executando quadros jumbo de 9k).

Na caixa Server 2008, R: é formatado como NTFS com um tamanho de cluster de 64k e é dedicado ao armazenamento de arquivos de backup. O arquivo médio é geralmente entre 40MB e 5GB, dependendo da proporção atual de total versus incrementais / diferenciais presentes. O uso de disco é uma divisão de 50/50 entre leitura e gravação, pois também espelhamos backups dessa unidade para fita.

No geral, considerando o hardware, acho que otimizei bastante essa configuração, mas não sou especialista em armazenamento, e as implicações do tamanho do bloco RAID estão um pouco além de mim. Eu sei que o tamanho padrão do mdadm do bloco é 512KB. Isso é ótimo para o meu cenário? Devo ajustar isso para corresponder ao tamanho do cluster NTFS? Ou há alguma fórmula mágica que eu perdi?

Obrigado por qualquer ajuda que você possa fornecer.

Editar: resultados de referência abaixo. Nem todas as combinações foram testadas.


##########   4K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   111.551 MB/s
          Sequential Write :    96.759 MB/s
         Random Read 512KB :   107.033 MB/s
        Random Write 512KB :    56.770 MB/s
    Random Read 4KB (QD=1) :     9.500 MB/s [  2319.2 IOPS]
   Random Write 4KB (QD=1) :     5.042 MB/s [  1231.0 IOPS]
   Random Read 4KB (QD=32) :   101.717 MB/s [ 24833.3 IOPS]
  Random Write 4KB (QD=32) :     8.237 MB/s [  2010.9 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 13:10:31
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)

##########  32K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    91.276 MB/s
          Sequential Write :    11.119 MB/s
         Random Read 512KB :     0.000 MB/s
        Random Write 512KB :     0.000 MB/s
    Random Read 4KB (QD=1) :     0.000 MB/s [     0.0 IOPS]
   Random Write 4KB (QD=1) :     0.000 MB/s [     0.0 IOPS]
   Random Read 4KB (QD=32) :     0.000 MB/s [     0.0 IOPS]
  Random Write 4KB (QD=32) :     0.000 MB/s [     0.0 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 14:37:05
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)

##########  64K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   111.968 MB/s
          Sequential Write :   103.318 MB/s
         Random Read 512KB :   105.047 MB/s
        Random Write 512KB :    48.321 MB/s
    Random Read 4KB (QD=1) :    10.373 MB/s [  2532.5 IOPS]
   Random Write 4KB (QD=1) :     5.180 MB/s [  1264.5 IOPS]
   Random Read 4KB (QD=32) :    95.106 MB/s [ 23219.3 IOPS]
  Random Write 4KB (QD=32) :     9.108 MB/s [  2223.6 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 12:47:37
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)

########## 128K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   111.908 MB/s
          Sequential Write :    94.305 MB/s
         Random Read 512KB :   104.772 MB/s
        Random Write 512KB :    43.821 MB/s
    Random Read 4KB (QD=1) :     9.247 MB/s [  2257.6 IOPS]
   Random Write 4KB (QD=1) :     4.929 MB/s [  1203.3 IOPS]
   Random Read 4KB (QD=32) :   101.764 MB/s [ 24844.8 IOPS]
  Random Write 4KB (QD=32) :     7.949 MB/s [  1940.6 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 13:52:01
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)

########## 512K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   110.237 MB/s
          Sequential Write :    93.149 MB/s
         Random Read 512KB :   104.892 MB/s
        Random Write 512KB :    41.407 MB/s
    Random Read 4KB (QD=1) :     6.760 MB/s [  1650.3 IOPS]
   Random Write 4KB (QD=1) :     3.539 MB/s [   864.0 IOPS]
   Random Read 4KB (QD=32) :   101.139 MB/s [ 24692.3 IOPS]
  Random Write 4KB (QD=32) :     7.166 MB/s [  1749.6 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 12:22:58
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)

##########1024K Chunk##########
-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   112.327 MB/s
          Sequential Write :    92.353 MB/s
         Random Read 512KB :   107.015 MB/s
        Random Write 512KB :    39.793 MB/s
    Random Read 4KB (QD=1) :     9.536 MB/s [  2328.0 IOPS]
   Random Write 4KB (QD=1) :     3.671 MB/s [   896.3 IOPS]
   Random Read 4KB (QD=32) :   101.990 MB/s [ 24900.0 IOPS]
  Random Write 4KB (QD=32) :     0.000 MB/s [     0.0 IOPS]

  Test : 1000 MB [R: 0.0% (0.1/13791.8 GB)] (x5)
  Date : 2013/07/12 14:17:08
    OS : Windows Server 2008 R2 Enterprise Edition (Full installation) SP1 

[6.1 Build 7601] (x64)
    
por tfrederick74656 10.07.2013 / 04:30

1 resposta

4

No mínimo, você deseja que o tamanho do bloco seja um múltiplo ou divisor do tamanho do bloco do sistema de arquivos. Você tem isso.

Tudo o mais provavelmente será dependente da implementação. Já que você está começando do zero, você deve rolar seus próprios benchmarks. Em vez de criar um conjunto RAID de 14 TB, teste com apenas 500 GB de cada unidade em vários tamanhos de bloco. Os tamanhos de volume menores reduzirão o tempo necessário para criar o volume.

Quando você encontrar o número ideal para sua configuração, crie seu conjunto RAID de 14 TB. Teste novamente para garantir que você não sofreu uma degradação no desempenho.

    
por 10.07.2013 / 05:48