Por que `zfs list` e` zpool list` relatam tamanhos muito diferentes para meus pools raidz2?

11

Eu tenho um servidor ZFS com 8 zpools. Cada pool possui 12 discos de 6 TB em uma configuração 10 + 2 RAIDZ. Portanto, cada pool possui um espaço de armazenamento bruto de 12 * 6 = 72 TB e um espaço utilizável de 10 * 6 = 60 TB. No entanto, vejo resultados diferentes ao consultá-lo usando zfs listvs. usando zpool listcomo abaixo:

# zfs list
NAME     USED  AVAIL  REFER  MOUNTPOINT
intp1    631K  48.0T   219K  /intp1
intp2    631K  48.0T   219K  /intp2
intp3    631K  48.0T   219K  /intp3
jbodp4   631K  48.0T   219K  /jbodp4

# zpool list
NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
intp1     65T  1.02M  65.0T         -     0%     0%  1.00x  ONLINE  -
intp2     65T  1020K  65.0T         -     0%     0%  1.00x  ONLINE  -
intp3     65T  1.02M  65.0T         -     0%     0%  1.00x  ONLINE  -
jbodp4    65T  1.02M  65.0T         -     0%     0%  1.00x  ONLINE  -

Alguém poderia me ajudar a entender por que essa discrepância?

mkc
fonte

Respostas:

10

Estou surpreso que você tenha uma configuração tão grande. Você construiu essa matriz? Este é um arranjo potencialmente ruim para o desempenho devido ao design do pool.

De qualquer maneira, a zpoolpágina de manual explica isso. zfs listmostrará seu espaço utilizável. A zpoollista mostra o espaço de paridade como espaço de armazenamento.

   used                Amount of storage space used within the pool.

   The  space  usage properties report actual physical space available to the storage pool. The physical
   space can be different from the total amount of space that any contained datasets can  actually  use.
   The  amount  of  space used in a raidz configuration depends on the characteristics of the data being
   written. In addition, ZFS reserves some space for internal accounting that the zfs(8)  command  takes
   into  account, but the zpool command does not. For non-full pools of a reasonable size, these effects
   should be invisible. For small pools, or pools that are close to being completely  full,  these  dis-
   crepancies may become more noticeable.
ewwhite
fonte
1
Para suas necessidades contábeis, use zfs list. Isso é realmente o que importa. Para o design do conjunto, isso depende do caso de uso. O que você quer alcançar? Quais são os seus requisitos de desempenho e capacidade? Em geral, para o raidz2, não use menos de 6 discos, nem mais de 10 discos em cada vdev (8 é uma média típica).
precisa saber é
1
@ewwhite Boa leitura, mas por que seguir esse conselho? Não é da Oracle ou do pessoal do zfsonlinux. Em que se baseia esse limite de 6 a 10?
Ryan Babchishin
2
@RyanBabchishin O autor é engenheiro da Nexenta , um fornecedor comercial de software de armazenamento ZFS. As recomendações são baseadas na experiência, desempenho e entendimento completo do sistema de arquivos. Não estou dizendo que as pessoas não podem configurar as coisas da maneira que querem ou que não vão funcionar: simplesmente não é o ideal. No caso do OP, seu desempenho de E / S aleatória sofrerá com o design de 12 discos.
precisa saber é
3
Acho que você esqueceu que o disco de 6 TB não é realmente de 6 TB, porque existe uma conspiração entre os fabricantes de discos, pois eles acham que um gigabyte não é 1 073 741 824 bytes, como deveria ser, mas sim 1 000 000 000 bytes. Isso ocupa algum espaço significativo da contabilidade.
drookie
1
@drookie, você está no local. lsblk -bme deu o tamanho de bytes de cada disco, que é de 5,4 TB e não de 6 TB, como eu pensava anteriormente.
Mkc