ZFS, raidz1: Por que o tamanho do volume (42T) é muito menor que o tamanho do conjunto (50T)?

5

Eu tenho um pool de 28 2TB-discos (56T) em 4 arrays de 7 discos. Já que é raidz1 (~ RAID5), eu esperaria que 1 disco fosse usado para paridade em cada array, então o volume resultante deveria ser 2TB * 4 * (7-1) = 48TB, certo?

Agora, o que vejo no meu sistema:

$ zpool list volume
NAME     SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
volume  50.5T   308K  50.5T   0%  1.00x  ONLINE  -

$ zfs list volume
NAME     USED  AVAIL  REFER  MOUNTPOINT
volume  2.00T  40.3T  75.8K  /volume

$ df -h /volume
Filesystem             Size   Used  Available Capacity  Mounted on
volume                  42T    75K        40T     1%    /volume

Portanto, existem apenas 42T em vez de 48T. Onde estão os 6 TB desaparecidos? E de onde vem o número 50.5T?

    
por Pavel 20.01.2012 / 18:51

3 respostas

6

Um disco de 2TB não tem tamanho de 2 TiBi - é apenas 2 * 10 ^ 12/2 ^ 30 ~ 1862 GiBi.

4 matrizes de 6 discos efetivos seriam 24 * 1862 = 44703 GiBI, ou 43.6 TiBi de armazenamento real utilizável.

Eu acho que tem alguma sobrecarga adicional que você não está levando em conta - o IIRC RAIDZ também faz snapshots e scrubbing, que ocupam espaço adicional.

    
por 20.01.2012 / 19:00
5

Para esclarecer a discrepância na saída entre os comandos:

O comando zpool conta os discos que estão sendo usados para redundância como espaço, enquanto o comando zfs não; assim, o número de 50,5 TB é o tamanho do seu disco bruto, enquanto o 42T é depois de tirar os 4 discos para redundância.

    
por 20.01.2012 / 19:02
1

Os fabricantes de discos rígidos medem o tamanho do disco na Base 10. Os computadores medem bytes na Base 2.
Deveria dizer 42 TiB para esclarecer o uso do SI do ter- prefixado .

    
por 20.01.2012 / 19:00