在 OpenMediaVault (OMV) 中设置 ZFS ARC 大小和缓存策略需要通过命令行进行操作,因为 OMV 的 Web GUI 没有直接提供这些设置。以下是详细的步骤和说明:

1. 了解 ZFS ARC

  • **ARC (Adaptive Replacement Cache)**:ZFS 的主要内存缓存,用于存储最常用的数据。
  • **L2ARC (Level 2 ARC)**:二级缓存,通常使用 SSD,用于扩展 ARC 的容量。
  • **ZIL (ZFS Intent Log)**:用于处理同步写入操作的日志。
  • **SLOG (Separate Log)**:将 ZIL 存储在单独的快速设备上,提高同步写入性能。

2. 设置 ARC 大小

  • ZFS 会自动管理 ARC 的大小,但您可以设置最大值和最小值。
  • 打开终端,以 root 用户身份登录 OMV。
  • 编辑 /etc/modprobe.d/zfs.conf 文件,如果文件不存在则创建它。
  • 在文件中添加以下行来设置 ARC 的最大值(以字节为单位):
1
options zfs zfs_arc_max=字节数
  • 例如,要将 ARC 最大值设置为 8GB,可以使用以下命令:
1
2
3
4
5
6
7
options zfs zfs_arc_max=8589934592

#17179869184 是 16GB 的字节数
options zfs zfs_arc_max=17179869184

#34359738368 是 32GB 的字节数
options zfs zfs_arc_max=34359738368
  • 同样,您也可以使用如下命令设置ARC的最小值。
1
2
3
4
options zfs zfs_arc_min=字节数

#4294967296 是 4GB 的字节数
options zfs zfs_arc_min=4294967296
  • 保存文件并退出。
  • 如果根文件系统使用了 ZFS,运行以下命令更新 initramfs:
1
update-initramfs -u
  • 重新启动系统以应用更改。

3. L2ARC(固态二级缓存) 和 SLOG(提高同步写入性能)

  • 如果您有 SSD,可以将其用作 L2ARC 或 SLOG。
  • 添加 L2ARC:
1
zpool add <pool_name> l2cache <ssd_device>
  • 添加 SLOG:
1
zpool add <pool_name> log <ssd_device>
  • 请将 <pool_name> 替换为您的 ZFS 池名称,将 <ssd_device> 替换为 SSD 设备路径。

重要注意事项:

  • 设置 ARC 大小时,请确保为系统保留足够的内存。
  • 错误的 ARC 设置可能导致系统性能下降或崩溃。
  • 在修改 ZFS 设置之前,请务必备份重要数据。
  • 在OMV上对ZFS的调整可能会因为OMV的更新而失去作用。因此,请您在每次更新OMV后再次进行确认。