Por que meu array RAID5 é menor que o esperado?

1

Eu tenho várias unidades de diferentes tamanhos. Para deixá-los relativamente alinhados de uma perspectiva de tamanho, criei um grupo de volumes. Então as unidades que eu tenho para o array são:

  1. 1400 GB (Linux)
  2. 1200 GB (LVM)
  3. 931 GB (Linux)

A saída do MDADM é:

sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/mapper/smalldisks-smallvolume /dev/sdb
mdadm: size set to 976631296K
mdadm: automatically enabling write-intent bitmap on large array
mdadm: largest drive (/dev/sdb) exceeds size (976631296K) by more than 1%

Meu entendimento é que (assumindo que todos os tamanhos são iguais ou dentro de 1%) o tamanho total disponível do array é: (1400 + 1200 + 931) - 1400GB para paridade. Por que então o tamanho está sendo definido para 976631296K?

De outra resposta eu leio que se os tamanhos estiverem fora do limite de 1%, o tamanho de disco menor será usado.

Isso significa que, se minhas unidades não tiverem exatamente o mesmo tamanho (ou menos de 1% diferente), não importa quantos discos eu adicionei à matriz, ela será sempre apenas o tamanho do menor disco?

O que preciso fazer para obter a maior unidade como a paridade e as duas unidades menores juntas como a capacidade da matriz?

    
por Daniel Minnaar 13.11.2017 / 08:16

1 resposta

2

Há um pequeno mal-entendido aqui. O size relatado aqui é não o tamanho final utilizável da matriz RAID5, mas o tamanho do armazenamento usado em cada dispositivo. Veja a descrição da opção --size :

-z, --size=
      Amount  (in  Kibibytes)  of space to use from each drive in RAID
      levels 1/4/5/6.  This must be a multiple of the chunk size,  and
      must  leave about 128Kb of space at the end of the drive for the
      RAID superblock.  If this is not specified (as  it  normally  is
      not)  the smallest drive (or partition) sets the size, though if
      there is a variance among the  drives  of  greater  than  1%,  a
      warning is issued.

Isso é exatamente o que você está vendo, incluindo o aviso.

  

O que preciso fazer para obter a maior unidade como a paridade e as duas unidades menores juntas como a capacidade da matriz?

Isso soa como RAID4 , não RAID5.

    
por muru 13.11.2017 / 08:44