Eu não sei a resposta para o zpool status, scrub, etc. mas para o espaço eu descobri algo.
no /etc/snmpd.config, encontrei isto e descomentei-o e agora tenho valores de armazenamento:
#
# Host resources module
# This requires the mibII module.
#
begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so"
E aqui está uma saída:
# snmpwalk -v1 -c public $freebsdzfsmachine | grep -E "Storage.*\.22 " | less
HOST-RESOURCES-MIB::hrStorageIndex.22 = INTEGER: 22
HOST-RESOURCES-MIB::hrStorageType.22 = OID: HOST-RESOURCES-TYPES::hrFSOther
HOST-RESOURCES-MIB::hrStorageDescr.22 = STRING: /tank, type: zfs, dev: tank
HOST-RESOURCES-MIB::hrStorageAllocationUnits.22 = INTEGER: 512 Bytes
HOST-RESOURCES-MIB::hrStorageSize.22 = INTEGER: 2147483647
HOST-RESOURCES-MIB::hrStorageUsed.22 = INTEGER: 1030063349
HOST-RESOURCES-MIB::hrStorageAllocationFailures.22 = Counter32: 0
HOST-RESOURCES-MIB::hrFSStorageIndex.22 = INTEGER: 24
Infelizmente, a saída do tamanho (1024 GiB) está errada. O tamanho do armazenamento de acordo com o df é 20 TiB e é usado 491 GiB, mas por algum motivo, o tamanho aqui é coincidentemente exatamente 2 ^ 31-1 * 512 bytes. (onde 2 ^ 31-1 é o valor máximo de um inteiro de 32 bits assinado). Usado está correto embora: 1030063349 * 512/1024/1024/1024 = 491.
Felizmente, funciona bem para o meu disco raiz de 80 GB. Eu acho que é limitado a 1 TiB no FreeBSD. Essa mesma montagem vista usando o SNMP em um cliente Linux NFS mostra o valor correto e hrStorageAllocationUnits é "INTEGER: 32768 Bytes"