¿Por qué `zfs list` y` zpool list` informan tamaños muy diferentes para mis grupos raidz2?

11

Tengo un servidor ZFS con 8 zpools. Cada grupo tiene 12 discos de 6 TB en una configuración RAIDZ de 10 + 2. Por lo tanto, cada grupo tiene un espacio de almacenamiento sin procesar de 12 * 6 = 72 TB y un espacio utilizable de 10 * 6 = 60 TB. Sin embargo, veo resultados diferentes cuando lo consulto usando zfs listvs. usando de la zpool listsiguiente manera:

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

¿Podría alguien ayudarme a entender por qué es esta discrepancia?

mkc
fuente

Respuestas:

10

Me sorprende que tengas una configuración tan grande. ¿Construiste esta matriz? Esto es potencialmente una mala disposición para el rendimiento debido al diseño del grupo.

De cualquier manera, la zpoolpágina del manual explica esto. zfs listle mostrará su espacio utilizable. La zpoollista muestra el espacio de paridad como espacio de almacenamiento.

   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
fuente
1
Para sus necesidades contables, use zfs list. Eso es realmente lo que importa. Para el diseño de la piscina, depende del caso de uso. ¿Qué quieres lograr? ¿Cuáles son sus requisitos de rendimiento y capacidad? En general, para raidz2, no use menos de 6 discos, ni más de 10 discos en cada vdev (8 es un promedio típico).
ewwhite
1
@ewwhite Buena lectura, pero ¿por qué seguir ese consejo? No es de Oracle ni de la gente de zfsonlinux. ¿En qué se basa este límite de 6-10?
Ryan Babchishin
2
@RyanBabchishin El autor es ingeniero en Nexenta , un proveedor comercial de software de almacenamiento ZFS. Las recomendaciones se basan en la experiencia, el rendimiento y la comprensión exhaustiva del sistema de archivos. No digo que las personas no puedan configurar las cosas como quieren o que no funcionarán: simplemente no es óptimo. En el caso del OP, su rendimiento aleatorio de E / S se verá afectado por el diseño de 12 discos.
ewwhite
3
Creo que olvidó que el disco de 6Tb no es realmente 6Tb, porque existe una conspiración entre los fabricantes de discos, ya que piensan que un gigabyte no es 1 073 741 824 bytes, como debería ser, sino que es 1 000 000 000 bytes. Esto toma un espacio significativo de la contabilidad.
drookie
1
@drookie, estás en el clavo. lsblk -bme dio el tamaño de byte de cada disco que es 5.4TB y no 6TB como pensaba anteriormente.
mkc