我目前正在设置文件服务器,并且已经到了实际设置数据驱动器的阶段。系统有 4 个驱动器(1 个 OS 盘,3 个数据盘)。OS 磁盘被格式化为 ext4 并且不会被添加到 ZFS 池中(如果我选择运行 ZFS)。我主要关心的是数据完整性和数据丢失的最小风险(驱动器缓存在 bios 中被禁用)。对于这个 ZFS 似乎是完美的候选者,因为它有一个稳定的 Linux 版本(对吗?),并且支持数据复制、池化和 raidz,其中硬盘驱动器的大小不必相同。
但这是我的问题。服务器只有 2GB 的 RAM,并且在不久的将来无法升级,实际上在我安装所有其他服务后,ZFS 实际上只能访问 1.5。任何时候最多有大约 10 个客户会使用它(平均大约 4 个)。这是否太低而不能被认为是安全的?
据我了解,ZFS 可能会在 RAM 不足的情况下崩溃并占用池。我听到了相互矛盾的意见交换是否有助于缓解这个问题(我有一个 20 GB 的交换专用驱动器)。有没有人遇到过 RAM 很少的 ZFS 数据丢失的情况?您进行了哪些优化来防止这种情况发生?
记住上述内容是否仍然可以运行 ZFS,尽管减少了 ack 大小并减少了一点,否则这会不会太冒险?
系统规格:2GB RAM 20GB 交换驱动器操作系统,Debian 7,最小安装,带 FTP,以及 XBMC、DNLA(给出 RAM 要求的概念)。用于存储服务器和音乐媒体流到其他设备。
您将数据完整性和数据丢失的最小风险列为主要关注点。仅使用 2GiB 内存运行 ZFS 有风险且不可取。RAM 太少会降低性能,并且是过去导致大量不可挂载池的原因。该FreeNAS的项目规定的RAM作为最小8GiB。
此外,由于您担心数据丢失,您将需要使用 ECC RAM。由于您的盒子只能支持 2GiB 的 RAM,我认为它是一个非常旧的盒子,对于 ZFS 来说不是一个好选择。
回答您的问题:
[...] 并支持数据复制
在实践中,当您没有至少 32GiB 时,请忘记重复数据删除,这只是经验法则。您可能需要更多 RAM,具体取决于池大小。其次,如果重复数据删除 + RAM 成本比少量额外磁盘便宜,请计算一下。通常情况下,更多的磁盘是更便宜的选择。
这是否太低而不能被认为是安全的?
是的,它太低了。
据我了解,ZFS 可能会在 RAM 不足的情况下崩溃并占用池。
确实如此,许多人由于 RAM 不足而丢失了池。
我听到了相互矛盾的意见交换是否有助于缓解这个问题
忘记交换吧,你的 ZFS 机器永远不应该使用交换。
编辑:如果您喜欢冒险并且不介意偶尔出现恐慌或数据丢失的风险,请阅读ZFS 调优指南 并调整上述设置。这是 768MiB 内存系统的示例设置。
vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"
Run Code Online (Sandbox Code Playgroud)
否则,在一条内存条上投资 100 美元,即可享受稳定且高性能的系统。