Melhor maneira de RAID 4 x Intel SSD 910 para PostgreSQL

4

Eu tenho um servidor Linux (debian / ubuntu) com 4 x Intel SSD 910 800GB que eu preciso para RAID juntos.

O maior problema com estas placas é que elas oferecem discos de 4x200GB que você não pode usar como hardware-raid (mais sobre isso aqui: link )

Então o linux detecta essas unidades:

  • sda - unidade do sistema
  • sdb - cartão nº 1
  • sdc - Card # 1
  • sdd - cartão nº 1
  • sde - Card # 1
  • sdf - carta nº 2
  • sdg - cartão nº 2
  • sdh - cartão nº 2
  • sdi - Card # 2
  • sdj - Card # 3
  • sdk - cartão nº 3
  • sdl - cartão nº 3
  • sdm - cartão nº 3
  • sdn - Card # 4
  • sdo - cartão # 4
  • sdp - cartão nº 4
  • sdq - Card # 4

Se eu fosse RAID como normal, Vamos dizer que o RAID-10, e por exemplo o Card # 1, eu perderia 4 drives ao mesmo tempo (sdb, sdc, sdd, sde) o que provavelmente resultaria em dados perda?

Então eu estava pensando que eu gosto da maioria (?) dos cartões SSD, de qualquer forma, "RAID-0 interno":

$ mdadm --create /dev/md0 --level=0 --raid-devices=4 /dev/sd[b-e]
$ mdadm --create /dev/md1 --level=0 --raid-devices=4 /dev/sd[f-i]
$ mdadm --create /dev/md2 --level=0 --raid-devices=4 /dev/sd[j-m]
$ mdadm --create /dev/md3 --level=0 --raid-devices=4 /dev/sd[n-q]
$ mdadm --create /dev/md4 --level=1 --raid-devices=4 /dev/md[0-3]

Mas este é um RAID-01 que não tem benefícios sobre o RAID-10 ... Então, se eu fizer um RAID-10, algo assim suponho:

$ mdadm --create /dev/md0 --level=1 --raid-devices=8 /dev/sdb[a-h]
$ mdadm --create /dev/md1 --level=1 --raid-devices=8 /dev/sdb[i-q]
$ mdadm --create /dev/md2 --level=0 --raid-devices=2 /dev/md[0-1]

A questão é então, o que acontece se o cartão # 1 quebrar, eu perderia os primeiros 4 drives, e se o sdb for espelhado no sdc?

Então, depois que isso é decidido, a pergunta é: qual tamanho de bloco e tamanho de bloco devemos escolher para executar o PostgreSQL nisso? Eu acho que vamos usar o XFS, mas aberto para idéias.

Então, para resumir:

  • Precisa ser capaz de perder um Card sem dataloss (temos cold-spares)
  • Precisa obter pelo menos 1600 GB do RAID
por Linus 05.02.2015 / 18:06

1 resposta

2

Seu primeiro instinto está correto:

So I was thinking I do like most(?) SSD-cards do anyway, "internal RAID-0": (snip) But this is a RAID-01 which have no benefits over RAID-10...

A única coisa a mudar é a sua última linha:

$ mdadm --create /dev/md4 --level=10 --raid-devices=4 /dev/md[0-3]

(observe a mudança: nível = 10)

Essencialmente, isso transforma cada cartão em um array RAID0 autocontido e cria um array RAID10 dos elementos individuais. É essencialmente RAID010 (uma faixa de espelhos de listras). Se uma única carta morrer, você ainda terá outra carta com os mesmos dados espelhados.

    
por 05.02.2015 / 18:50