两个非常相似的配置之间的 ZFS 大小差异

两个非常相似的配置之间的 ZFS 大小差异

我在带有 Broadcom/LSI MegaRAID SAS39xx RAID 控制器的文件服务器中拥有 20X SATA 12TB 磁盘。它正在运行 ubuntu。为了进行性能实验,我创建了两个存储池:

- 单个硬件 RAID6 阵列由 10 个磁盘组成 = 8 个数据磁盘 + 2 个奇偶校验磁盘(有效)。然后我使用 ZFS 将其池化并挂载。该池名为 hardA。

-10 个单磁盘“raid”,然后使用它们创建了一个 ZFS raidZ2 池。该池名为 softB。

令人惊讶的是(至少对我来说)softB 比 hardA 小约 5TB(83TB 而不是 87TB,我的数学表明 87TB 是预期值)。我的逻辑表明,这两个解决方案的所有开销应该相同或非常接近。有人能解释一下差异在哪里吗,以及我是否可以做些什么来修复它。

(顺便说一句,在迄今为止我所做的有限测试中,我发现在 FIO 中运行的几乎每个测试中,软 B 的性能都超过硬 A 的两倍,但这不是重点。工作正在进行中。是的,ashift 自动检测到 12)

随机诊断如下:

# zfs list
NAME         USED  AVAIL     REFER  MOUNTPOINT
hardA       15.9M  87.2T       96K  /hardA
hardA/data    96K  87.2T       96K  /store/hardA
softB       24.2M  83.0T      219K  /softB
softB/data   219K  83.0T      219K  /store/softB
# zpool list
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
hardA  87.3T  16.1M  87.3T        -         -     0%     0%  1.00x    ONLINE  -
softB   109T  31.8M   109T        -         -     0%     0%  1.00x    ONLINE  -
# zpool status
  pool: hardA
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        hardA       ONLINE       0     0     0
          sdc       ONLINE       0     0     0

errors: No known data errors

  pool: softB
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        softB       ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0
            sdg     ONLINE       0     0     0
            sdh     ONLINE       0     0     0
            sdi     ONLINE       0     0     0
            sdj     ONLINE       0     0     0
            sdk     ONLINE       0     0     0
            sdl     ONLINE       0     0     0
            sdm     ONLINE       0     0     0

errors: No known data errors
# zpool iostat -v
              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
hardA       16.1M  87.3T      8     67  1.09M  51.6M
  sdc       16.1M  87.3T      8     67  1.09M  51.6M
----------  -----  -----  -----  -----  -----  -----
softB       31.8M   109T     54    477   867K  70.0M
  raidz2-0  31.8M   109T     54    477   867K  70.0M
    sdd         -      -      5     49  86.8K  7.00M
    sde         -      -      5     46  86.7K  7.00M
    sdf         -      -      5     51  86.7K  7.00M
    sdg         -      -      5     46  86.6K  7.00M
    sdh         -      -      5     48  86.5K  7.00M
    sdi         -      -      5     47  86.6K  7.00M
    sdj         -      -      5     48  86.8K  7.00M
    sdk         -      -      5     47  86.9K  7.00M
    sdl         -      -      5     47  86.6K  7.01M
    sdm         -      -      5     45  86.7K  7.01M
----------  -----  -----  -----  -----  -----  -----
# df -h
Filesystem                         Size  Used Avail Use% Mounted on
--snip--
hardA                               88T  128K   88T   1% /hardA
softB                               83T  256K   83T   1% /softB
hardA/data                          88T  128K   88T   1% /store/hardA
softB/data                          83T  256K   83T   1% /store/softB
--snip--
#zfs version
zfs-2.1.4-0ubuntu0.1
zfs-kmod-2.1.2-1ubuntu3```

答案1

RAIDZ2 与 RAID 6 不同...相似的,但并不相同。需要考虑不同的开销。

对于 ZFS,spa_slop_shift保留 3.2% 的池空间用于池操作,并作为防止空间不足的缓冲。这可以调整,对于大型 zpools 应该考虑。

预测 ZFS 可用容量涉及很多机制。请参阅:https://wintelguy.com/2017/zfs-storage-overhead.html

在许多情况下,每个 vdev 中的设备数量以及 vdev 的数量都会影响结果。

相关内容