用于镜像池的 ZFS L2ARC

用于镜像池的 ZFS L2ARC

我正在阅读有关 ZFS 的 L2ARC 的信息。我目前有两个池,一个用于数据,另一个用于 Linux 容器和虚拟机。我需要一些有关 L2ARC 的帮助,我知道如何添加它,但不知道它是否会对我有益。

我正在运行带有 6-8 个 LXC 容器的 Ubuntu 16.04,有时在 headless-virtualbox 中还有一个或两个虚拟机,我想知道添加 L2ARC 是否有助于提高我的虚拟机和 LXC 容器的性能。

当前设置

pool: black
state: ONLINE
scan: scrub repaired 0 in 3h57m with 0 errors on Mon Jul 11 04:12:35 2016
config:

    NAME                                          STATE     READ WRITE CKSUM
    black                                         ONLINE       0     0     0
      mirror-0                                    ONLINE       0     0     0
        ata-WDC_WD10JFCX-68N6GN0_WD-WX91A65P0T3Z  ONLINE       0     0     0
        ata-WDC_WD10JFCX-68N6GN0_WD-WXA1EA4CSNJF  ONLINE       0     0     0

errors: No known data errors

pool: raid
state: ONLINE
scan: scrub repaired 0 in 26h32m with 0 errors on Tue Jul 12 04:04:11 2016
config:

    NAME                                          STATE     READ WRITE CKSUM
    raid                                          ONLINE       0     0     0
      raidz1-0                                    ONLINE       0     0     0
        ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6LTTK5S  ONLINE       0     0     0
        ata-WDC_WD30EFRX-68EUZN0_WD-WCC4NJTT02XC  ONLINE       0     0     0
        ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6LLTRUY  ONLINE       0     0     0
      raidz1-1                                    ONLINE       0     0     0
        ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0UHPYUR  ONLINE       0     0     0
        ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N2ET6YU3  ONLINE       0     0     0
        ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6TZJ7ZF  ONLINE       0     0     0

 errors: No known data errors

如您所见,我的所有驱动器都是 WD Reds。我会将 L2ARC 添加到 Pool black,这是我的 LXC 和虚拟机存储。我刚刚对池进行了写入测试,20GB 文件(视频文件)的写入速度为 70-80MBPS,读取速度为 80-90MBPS。我会将 120GB 或 240GB 的 ssd 作为 L2ARC 添加到其中。

这对我的工作池性能有帮助吗?

Linux 容器;Emby 媒体服务器、Apache、Web Dev Apache、Gitlab、Torrent、OpenWrt Dev、VPN 服务器、Mysql

虚拟机;Windows 主要用于测试,奇怪的 Linux 服务器/桌面也用于测试。

规格 AMD Phenom™ II X6 1090T 32GB DDR3 内存

答案1

您的池black当前由两个镜像 WD10JFCX 驱动器组成,根据西部数据的规格表是:

  • 5400 转/分(旋转延迟约 5 毫秒一般,最坏情况为 11 毫秒)
  • 16 MB 缓存
  • 1 TB
  • 2.5 英寸外形尺寸
  • SATA 6 Gb/秒 (SATA 3)

5400 rpm 的转速和微不足道的 16 MB 驱动器缓存都不利于实现最高性能,而按照当今 SATA 驱动器的标准,1 TB 相当小。理论上,5400 rpm 可为盘片提供大约 90 IOPS,假设盘片平均距离数据半圈,其 11 ms 的旋转时间会为您带来平均大约 5 ms 的旋转延迟。

与此相比,你可以获得英特尔540S 系列这款产品在亚马逊 (美国) 的售价约为每台 308 美元,英特尔给出的规格如下:

  • 随机读取高达 78,000 IOPS,随机写入高达 85,000 IOPS(延迟 50 µs)
  • 连续读取速度高达 560 MB/s,连续写入速度高达 480 MB/s
  • 1 TB
  • 2.5 英寸外形尺寸
  • SATA 6 Gb/秒 (SATA 3)

即使我们表现良好,你也会看到延迟减少 1000 倍,增加IOPS 约为 600 美元左右。从性能与美元的比率来看,我确信通过将 L2ARC 添加到您的池中来解决这个问题,这是一个替换掉落。如果您资金紧张,您甚至可以一次用相应的 SSD 替换一个驱动器,并且仍然可以立即开始获得收益。

用 SSD 替换那些 5400 rpm 磁盘对您的black池性能的影响比您实际投入的任何 L2ARC 都要大,几乎无论您的工作量如何。此外,虽然英特尔 540S 系列可能会也可能不会非常适合你的要求另请参见此处),即使是如此便宜的 SSD 也几乎肯定会提供比仅仅添加 L2ARC 更好的投资回报。如果你想要更高规格的产品,那就看看英特尔吧,DC S3500 1.2 TB 固态硬盘每件售价约 900 美元,DC S3710 1.2 TB 固态硬盘每台售价约 1,000 美元,两台设备性能相似,但随着时间的推移,其使用效果可能会更好。

并不以明示或暗示的方式认可所提及的任何具体产品或经销商。

答案2

一般建议是最大化您的系统 RAM(ARC),然后在有需要时添加 L2ARC。

arcstat这可以使用服务器中的命令来测量。

就像是:

arcstat.py -f "time,read,hit%,hits,miss%,miss,arcsz,c" 1

输出显示每秒读取的次数、命中率、命中/未命中的次数以及当前和目标 ARC 大小:

    time  read  hit%  hits  miss%  miss  arcsz     c
15:15:21  1.5K    99  1.5K      0     2    55G   55G
15:15:22  221K    99  220K      0   584    55G   55G
15:15:23  245K    99  245K      0   544    55G   55G
15:15:24  262K    99  262K      0   551    55G   55G
15:15:25  321K    99  321K      0   489    55G   55G
15:15:26  262K    99  261K      0   479    55G   55G
15:15:27  203K    99  203K      0   585    55G   55G
15:15:28  207K    97  202K      2  5.3K    55G   55G

相关内容