说明 ZFS 列表报告的丢失空间

说明 ZFS 列表报告的丢失空间

这是一个关于 zfs list 报告的可用空间不符合用户期望的问题。我看过类似的问题,但我仍然不明白 zfs list 输出。让我解释一下原因:

我的设置很简单,只有 4 个 WD30EFRX 磁盘。 Linux 报告的每个磁盘具有以下容量:

5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB)

即每个驱动器的容量为3000592982016字节。根据数学计算,四个驱动器的聚合原始空间为 3000592982016*4 = 12002371928064 字节 (10.9 TiB),并且zpool list似乎一致:

NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH ALTROOT
nas   10.9T  1.15M  10.9T         -     0%     0%  1.00x ONLINE  -

到目前为止一切都很好。现在,我将这 4 个驱动器放入 RAIDZ1,这意味着总容量的 25% 应用于奇偶校验。我预计zfs list会报告接近 2.72 TiB *3 = 8.16 TiB 的数据。相反,我只得到 7.65 TiB。

zfs list nas
NAME   USED  AVAIL  REFER  MOUNTPOINT
nas    558K  7.65T   140K  /nas

zfs list nas -p
NAME    USED          AVAIL   REFER  MOUNTPOINT
nas   571392  8416155617280  142848  /nas

我还预计 ZFS 会占用一些空间用于元数据及其自身的内部数据结构等,但我丢失了超过半 TB 的数据:

根据 zfs list -p 的可用空间是

(8416155617280/1024^3) GiB = 7838 GiB

奇偶校验后的可用空间(3 个驱动器,5860533168 512 字节扇区)应接近

5860533168*512/(1024^3)*3 GiB = 8383 GiB

8383 GiB - 7838 GiB = 545 GiB

超过 0.5 TB(接近聚合原始磁盘空间的 5%)下落不明。所有这些空间都去了哪里?

注意:我正在运行 Debian Jessie、ZFS 0.6.5.2-2。我确实检查了配额、预留、refquota 和 refreservation 属性,它们都设置为无。我刚刚创建了这个池,里面没有数据,当然也没有快照。这是我的完整 zfs 属性:

zfs get all nas                                                                            
NAME  PROPERTY              VALUE                  SOURCE
nas   type                  filesystem             -
nas   creation              Tue Feb  7 17:28 2017  -
nas   used                  558K                   -
nas   available             7.65T                  -
nas   referenced            140K                   -
nas   compressratio         1.00x                  -
nas   mounted               yes                    -
nas   quota                 none                   default
nas   reservation           none                   default
nas   recordsize            128K                   default
nas   mountpoint            /nas                   default
nas   sharenfs              off                    default
nas   checksum              on                     default
nas   compression           off                    default
nas   atime                 on                     default
nas   devices               on                     default
nas   exec                  on                     default
nas   setuid                on                     default
nas   readonly              off                    default
nas   zoned                 off                    default
nas   snapdir               hidden                 default
nas   aclinherit            restricted             default
nas   canmount              on                     default
nas   xattr                 on                     default
nas   copies                1                      default
nas   version               5                      -
nas   utf8only              off                    -
nas   normalization         none                   -
nas   casesensitivity       sensitive              -
nas   vscan                 off                    default
nas   nbmand                off                    default
nas   sharesmb              off                    default
nas   refquota              none                   default
nas   refreservation        none                   default
nas   primarycache          all                    default
nas   secondarycache        all                    default
nas   usedbysnapshots       0                      -
nas   usedbydataset         140K                   -
nas   usedbychildren        418K                   -
nas   usedbyrefreservation  0                      -
nas   logbias               latency                default
nas   dedup                 off                    default
nas   mlslabel              none                   default
nas   sync                  standard               default
nas   refcompressratio      1.00x                  -
nas   written               140K                   -
nas   logicalused           120K                   -
nas   logicalreferenced     40K                    -
nas   filesystem_limit      none                   default
nas   snapshot_limit        none                   default
nas   filesystem_count      none                   default
nas   snapshot_count        none                   default
nas   snapdev               hidden                 default
nas   acltype               off                    default
nas   context               none                   default
nas   fscontext             none                   default
nas   defcontext            none                   default
nas   rootcontext           none                   default
nas   relatime              on                     temporary
nas   redundant_metadata    all                    default
nas   overlay               off                    default

谢谢你!

相关内容