在运行 Linux 的 Xen 客户机上使用 ZFS 或 XFS

在运行 Linux 的 Xen 客户机上使用 ZFS 或 XFS

背景:

我正在研究使用 ext3/4 以外的文件系统的可行性,并能够运行快照以进行备份和回滚。考虑的服务器是运行在 Linode 的基于 Xen 的 VPS 平台上的邮箱服务器节点。我特别关注 ZFS 在数据完整性方面提供的各种已发布的好处以及今年在 Linux 中稳定发布的原生 ZFS 支持 -http://zfsonlinux.org

从好处和简便性方面来看,ZFS 似乎是更全面的选择(而不是 LVM+XFS)。请注意,我对 ZFS(我在本地 FreeNAS 安装中使用)几乎没有经验,对 XFS 更是一无所知,因此才写了这篇文章。到目前为止,我的服务器使用的是 ext3 文件系统,而不是在 LVM 下管理的。

问题详细:

因此,我有两个问题。


(1) 在 Xen Linux 客户机上运行,​​哪一个文件系统对于以下 3 个方面而言是更好的选择?

  • 快照
  • 数据的完整性
  • 表现

(2) 如果 ZFS 是一个可行的选择,那么在 Xen 磁盘映像中使用 RAIDZ 来进一步增强数据完整性解决方案是否可行?


注意:考虑到我在生产系统上使用 BTRFS 时读到过的许多警告,我不愿意考虑它。

答案1

没有理由说你不能在你的 Linode 上使用这两种解决方案,但它会使你的 Linode 与任何 Linode 管理的磁盘服务不兼容。Linode 仅支持 ext3;没有 Linode 备份,没有磁盘调整大小,可能会对迁移产生影响(尽管我怀疑其中一个在磁盘映像级别有效)。ZFS 的好处是否大于坏处取决于你。你可以用写时复制文件系统做一些巧妙的事情,比如真正的快照,而不是 LVM 所做的奇怪的黑客行为。

就使用 raidz 而言,除了节省空间之外,没有其他实际好处。所有磁盘映像都将位于 Linode 主机上的同一个 raid10 卷上,因此使用 ditto 块比 raidz 更有意义。ZFS 保留某些块的多个副本:三个全局元数据副本、两个文件系统元数据副本和一个用户数据副本。您可以在 ZFS 文件系统上设置“副本”属性来控制用户副本的数量。如果将其设置为 2,则所有用户数据都将被复制,并且它还会将其他两个值增加一,上限为三个(因此有 3 个文件系统元数据副本)。这可以在每个文件系统级别或整个池上设置,因此您可以选择哪些数据足够重要以进行镜像。

ZFS 将尝试使 ditto 块尽可能远离彼此。如果池有多个 vdev,则使用不同的 vdev;如果只有一个 vdev(就像您的 Linode 一样),则间隔至少 1/8 个 vdev。

相关内容