我有一台 NAS(Synology DS214,带 DSM 5.0),无法创建和管理分区(也许我可以通过一些我不想做的黑客来做到这一点)。有哪些方法可以设置多个 ZFS 池,每个池一个分区(对于初学者来说 - 只想使用重复数据删除)?该设置应该适用于 NAS,即通过网络(我会通过 NFS 或 cifs 安装映像)。
我目前的想法和相关问题:
- 稀疏文件挂载在循环设备上(直接将稀疏文件指定为 ZFS vdev 不起作用,请参阅我可以选择稀疏文件作为 zfs 池的 vdev 吗?):问题是分配的循环设备的名称/编号不是恒定的,不确定使用内核参数增加循环设备的数量会如何影响性能(必须有理由将其限制为默认值的 8,对吗?)
- 如果存储数据的设备仅(误)用于以文件中的字节形式保存数据,而其他所有内容都由另一个设备管理(如果无法创建分区,则必须这样做),则有必要在设备上保存 ZFS 系统或池运行所需的所有数据(至少是池的名称和连接的 vdev 列表),以使池在控制设备发生故障时能够继续运行。这些 ZFS 相关数据必须在外部备份。如何告诉 ZFS 在哪里存储数据?我猜,挂载目录(
/etc/zfs
等)比在创建池时告诉 ZFS 在哪里保存数据更糟糕。
答案1
您表示对使用 ZFS 重复数据删除感兴趣。ZFS 重复数据删除需要大量规划,因为它会影响系统 RAM 资源。如果这是消费级 NAS 设备(例如 Synology),则可能没有配置足够的 RAM 来很好地使用 ZFS 重复数据删除。
至于磁盘情况,你真的只需要一个硬件 RAID 控制器或真实磁盘作为存储设备的基础。
答案2
如果您使用 Linux 并且想要增加循环设备的最大数量:
[root@localhost ~]# modprobe loop max_loop=1024
[root@localhost ~]# ls -l /dev/loop* | wc -l
1025