Pourquoi `zfs list` et` zpool list` signalent des tailles très différentes pour mes pools raidz2?

11

J'ai un serveur ZFS avec 8 zpools. Chaque pool comprend 12 disques de 6 To dans une configuration RAIDZ 10 + 2. Ainsi, chaque pool a un espace de stockage brut de 12 * 6 = 72 To et un espace utilisable de 10 * 6 = 60 To. Cependant, je vois des résultats différents lorsque je l'interroge en utilisant zfs listvs en utilisant zpool listcomme ci-dessous:

# 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  -

Quelqu'un pourrait-il m'aider à comprendre pourquoi cette différence?

mkc
la source

Réponses:

10

Je suis surpris que vous ayez une telle configuration. Avez-vous construit ce tableau? Il s'agit potentiellement d'un mauvais arrangement pour les performances en raison de la conception de la piscine.

Quoi qu'il en soit, la zpoolpage de manuel explique cela. zfs listmontrera votre espace utilisable. La zpoolliste affiche l'espace de parité comme espace de stockage.

   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
la source
1
Pour vos besoins comptables, utilisez zfs list. C'est vraiment ce qui compte. Pour la conception de la piscine, cela dépend du cas d'utilisation. Que veux tu accomplir? Quelles sont vos exigences de performances et de capacité? En général, pour raidz2, n'utilisez pas moins de 6 disques, ni plus de 10 disques dans chaque vdev (8 est une moyenne typique).
ewwhite
1
@ewwhite Bonne lecture, mais pourquoi suivre ce conseil? Ce n'est pas d'Oracle ou des gens de zfsonlinux. Sur quoi est basée cette limite de 6-10?
Ryan Babchishin
2
@RyanBabchishin L'auteur est ingénieur chez Nexenta , un fournisseur commercial de logiciels de stockage ZFS. Les recommandations sont basées sur l'expérience, les performances et une compréhension approfondie du système de fichiers. Je ne dis pas que les gens ne peuvent pas configurer les choses comme ils le souhaitent ou que cela ne fonctionnera pas: ce n'est tout simplement pas optimal. Dans le cas de l'OP, ses performances d'E / S aléatoires souffriront de la conception à 12 disques.
ewwhite
3
Je pense que vous avez oublié que le disque de 6 To n'est pas vraiment 6 To, car il y a une conspiration parmi les fabricants de disques, car ils pensent qu'un gigaoctet n'est pas 1 073 741 824 octets, comme il se doit, mais plutôt 1 000 000 000 octets. Cela prend une place importante dans la comptabilité.
drookie
1
@drookie, vous êtes sur place. lsblk -bm'a donné la taille en octets de chaque disque qui est de 5,4 To et non de 6 To comme je le pensais auparavant.
mkc