在低RAM环境中优化ZFS的可行性吗?


10

我目前正在设置文件服务器,并且已经到了实际设置数据驱动器的地步。系统具有4个驱动器(一个OS磁盘,3个数据磁盘)。操作系统磁盘格式化为ext4,不会被添加到ZFS池中(如果我选择运行ZFS)。我主要关心的是数据完整性和最小数据丢失风险(BIOS中禁用了驱动器缓存)。为此,ZFS似乎是最理想的选择,因为它具有适用于Linux的稳定版本(对吗?),并支持数据复制,池化和raidz,而硬盘驱动器的大小不必相同。

但是,这是我的问题。该服务器只有2GB的RAM,并且不能在不久的将来升级,实际上,在我安装所有其他服务之后,ZFS实际上只能访问1.5。一次最多可使用约10个客户端(平均约4个)。这太低了以至于不能算安全吗?

据我了解,ZFS可能会在内存不足的情况下崩溃,并占用大量内存。我听到了一些矛盾的意见,即交换是否会有助于缓解此问题(我有20 GB的交换专用驱动器)。有没有人遇到过使用RAM少的ZFS造成数据丢失的情况,您为防止这种情况进行了哪些优化?

牢记上述内容,尽管减小了ack大小并进行了一些缩小,但仍可以运行ZFS,还是这样做风险太大?

系统规格:2GB RAM 20GB交换驱动器OS,Debian 7,最小安装,带FTP,以及XBMC,DNLA(以了解RAM要求)。用于将存储服务器和音乐媒体流传输到其他设备。


1
不是 ZFS专家,但是我通常对文件系统了解很多,而且我知道您必须注意的地方-大量时间-内存消耗是重复数据删除。您无需指定磁盘的大小,也可以指定将要存储多少数据;这是巨大的,因为ZFS需要保留一个内存中的查找表。我无法谈论其他问题,但绝对可以消除重复数据删除。而且,现在btrfs对于备份数据已经相当成熟。你考虑过了吗 请访问astechnica.com/civis/viewtopic.php?f=16&t=1226135,以获取一些见解(有些人无疑会不同意)。
ravenpi

哦,是的,我错过了。该池将是3.35tb(包括磁盘和数据,因为它将每天备份9个客户端,所以我想它将很快填满,我想这至少意味着没有重复,因为freebsd建议为每tb存储空间提供5GB内存) –感谢您指出btrfs,我不知道它现在已经稳定了,我想我会对此进行很好的研究
Thomas E

我可能不会急于称呼它为“稳定”。人们总是犹豫不决地将任何甚至有点新的文件系统称为“稳定”。但是它到了那里。LWN(Linux周刊新闻)对此做了一系列报道。很好-在这里查看:lwn.net/Articles/576276
ravenpi 2014年

Answers:


5

您将数据完整性和最小的数据丢失风险作为主要问题。仅使用2GiB内存运行ZFS是有风险的,不建议这样做。太少的RAM会降低性能,并且是过去导致大量无法装入的池的原因。该FreeNAS的项目规定的RAM作为最小8GiB。

此外,由于您担心的是数据丢失,因此您将需要使用ECC RAM。由于您的设备只能支持2GiB的RAM,因此我认为这是一个非常老的设备,对于ZFS来说不是一个好的选择。

要回答您的问题:

[…]并支持数据复制

实际上,根据经验,当您没有至少32GiB时,请忽略重复数据删除。您可能需要更多的RAM,具体取决于池的大小。其次,如果重复数据删除+ RAM的成本比少数几个额外的磁盘便宜,请进行数学计算。通常,更多的磁盘是更便宜的选择。

这太低了以至于不能算安全吗?

是的,它太低了。

据我了解,ZFS可能会在内存不足的情况下崩溃,并占用大量内存。

没错,许多人由于内存不足而失去了资源。

我听到了一些矛盾的意见,认为交换是否有助于缓解此问题

不用担心交换,您的ZFS盒永远不要使用交换。

编辑:如果您喜欢冒险并且不介意偶尔出现恐慌或数据丢失的危险,请阅读ZFS调整指南 并调整所提到的设置。这里是768MiB内存系统的示例设置。

vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"

否则,在一条内存条上投资一百美元,并享受稳定和高性能的系统。


3
我知道了。确切地说,我确实有ecc ram,并且该机器是hp proliant微型服务器gen7,它支持高达8 / 16gb的ram,目前购买更多的ram在财务上并不可行。我知道freenas建议使用8 gb,但是freebsd和Solaris文档建议最小为1 gb,这就是问题所在。我想鉴于此,我应该坚持使用ext4并使用rsync和dd手动镜像到脱机磁盘,这可能是最安全的解决方案。
Thomas E

您能否详细说明为什么ZFS不应该使用SWAP?
CMCDragonkai 2014年

没有理由在没有ECC的情况下使用ZFS比在另一个文件系统上运行相同的硬件更危险。
艾丽西娅

5
ZFS社区为什么总是以这种自大的势利言论发表评论?并不是每个人都想要100美元的可靠数据帽,只是为了满足一些极其荒谬的设计要求!例如,我有一个小型的ARM家用服务器,带有1GB的有线RAM和USB硬盘。我希望其上的数据能够被检测和更正,从而免受误操作的影响,并具有用于备份目的的快照。不需要速度。而btrfs则被设计打破了。因此,如果某些白痴没有 ZFS 设计为在RAM小于128艾字节的情况下从抑郁症中解脱,那么ZFS 是明智的。
Evi1M4chine

0

在高内存压力系统(Linux)上,确实有必要升级内存。仍然存在bug(link),交换会锁定IO(内核挂起的任务),除非重新启动它才能使用。我相信vm.swappiness = X对zfs没有影响,因此将弧限制为一定数量可能会有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.