我们正在考虑构建一个 ~16TB 的存储服务器。目前,我们正在考虑将 ZFS 和 XFS 都用作文件系统。它们的优点和缺点是什么?我们需要寻找什么?还有第三个更好的选择吗?
答案1
我发现 XFS 更适合存储大量大文件的超大型文件系统。我已经使用 3.6TB 的 XFS 文件系统 2 年多了,没有出现任何问题。在这种大小下,它绝对比 ext3 等文件系统更好(尤其是在处理大量大文件和大量 I/O 时)。
ZFS 提供设备池、条带化和其他内置于文件系统本身的高级功能。我无法透露具体细节(我会让其他人发表评论),但据我所知,您需要使用 Solaris 才能获得最大收益。如果您已经在使用硬件 RAID(就像我一样),我也不清楚 ZFS 能有多大帮助。
答案2
ZFS 将为您提供超越软件 RAID 的优势。命令结构布局非常周到且直观。它还具有压缩、快照、克隆、文件系统发送/接收和缓存设备(那些新奇的 SSD 驱动器)功能,可加快索引元数据的速度。
压缩:
#zfs set compression=on filesystem/home
它支持简单创建可实时挂载的写时复制快照:
# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday
文件系统克隆:
# zfs clone filesystem/home/user@tuesday filesystem/home/user2
文件系统发送/接收:
# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"
增量发送/接收:
# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"
缓存设备:
# zpool add filesystem cache ssddev
这只是冰山一角,我强烈建议您安装 Open Solaris 并尝试一下。
http://www.opensolaris.org/os/TryOpenSolaris/
编辑:这个很老了,Open Solaris 已经停产了,使用 ZFS 的最佳方式可能是Linux, 或者FreeBSD。
全面披露:我曾经是 Sun 的存储架构师,但已经一年多没有为他们工作了,我只是对这款产品感到兴奋。
答案3
在实时文件系统上使用 lvm 快照和 xfs 是灾难的根源尤其当使用非常大的文件系统时。
过去 6 年里,我一直在我的服务器上专门运行 LVM2 和 xfs(在家里也是如此,因为 zfs-fuse 实在是太慢了)...
然而,我已经数不清使用快照时遇到的各种故障模式了。我已经完全停止使用它们了——它太危险了。
我现在要做的唯一例外是我自己的个人邮件服务器/网络服务器备份,我将使用临时快照进行隔夜备份,该快照的大小始终等于源文件系统的大小,和随后就会被删除。
要牢记的最重要的方面:
- 如果你有一个包含快照的大型文件系统,写入性能会严重下降
- 如果您有一个包含快照的大型文件系统,则启动时间将延迟数十分钟,因为导入卷组期间磁盘会不断搅动。不会显示任何消息。如果 root 在 lvm2 上,这种影响尤其可怕(因为等待 root 设备将超时并且系统不会启动)
- 如果你有快照,很容易就会用完空间。一旦用完空间,快照就会损坏,无法修复。
- 目前无法回滚/合并快照(请参阅http://kerneltrap.org/Linux/LVM_Snapshot_Merging)。这意味着从快照恢复数据的唯一方法是实际复制(rsync?)它。危险危险:你这样做不是如果快照容量不及源文件系统的大小,则不要这样做;如果不这样做,您很快就会陷入困境,最终导致源文件系统和快照都损坏。(我遇到过这种情况!)
答案4
ZFS 绝对令人惊叹。我将其用作 5 x 1 TB HD 文件服务器的家庭文件服务器,并且还在生产中使用它,硬盘空间接近 32 TB。它速度快、易于使用,并且包含一些最好的数据损坏保护。
我们特别在此服务器上使用 OpenSolaris,因为我们希望能够使用更新的功能,并且它提供了新的包管理系统和升级方式。