我正在使用一堆 3TB 磁盘设置备份服务器。我对此进行了很多思考,我想使用以下设置:
我将使用单个分区对磁盘进行分区,这些分区将设置在 raid10 偏移量中——只需启动两个磁盘。
对于这些,我将使用 LVM,因为可能有相当多的分区。
每个逻辑分区上都会有一个 LUKS 设备。
每个 LUKS 设备内部都会有一个 xfs 文件系统。
我已经搜索了很多,但找不到关于如何最好地解决 raid10 和 xfs 固有的条带化问题的良好解释。我知道当直接放到 mdraid 设备上时,mkfs.xfs 会检测条带并自行对齐。据我了解,当您添加 LVM 时,这就消失了。我读过的一篇文章建议在 raid 设备上设置一个相当大的 (~1M) 条带,然后在 LVM 上设置一个一致的块。然而,这样做似乎忽略了考虑诸如 LUKS 标头之类的内容创建额外偏移的可能性。
有没有什么有效的方法可以保证xfs和raid10设备对齐?
我通过堆叠所有这些而创建的复杂性是否会降低 raid10 的性能增益,因此我是否应该在 raid1 中使用 lvm 并让它担心条带化?
我也提前道歉,我想我可能在这篇文章中间歇性地混淆了块和条纹的想法。
答案1
我一直在出差,现在才有时间回复。我选择回答我自己的问题,以防以后对其他人有用。
首先,声称 Linux md-raid 的 raid10 在两个设备上不可能的评论是错误的。需要明确的是,Linux 的 md-raid 的 raid10 并不是一些标准的 raid1+0。 Md-raid 的 raid10 本质上相当于 raid1,条带化。如果您花几分钟思考 raid1 的优点和 raid0 的优点,很明显它们并不相互排斥,并且可以轻松组合。事实上,维基百科专门解决了这种情况:https://en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10
真的是raid10吗?不。它仍然是镜面和条纹吗?是的。每个块的副本是否会出现在多个设备上,从而提供具有一定速度优势的真实镜像?或许。提到在两个驱动器上使用 raid10 的寻道时间的评论可能确实会占上风,从而扼杀了性能优势,您可以在此处查看更多相关信息:https://blog.a2o.si/2014/09/07/linux-software-raid-why-you-should-always-use-raid-10-instead-of-raid-1/可以通过添加驱动器来扩展阵列吗?是的。使用两个磁盘作为 md-raid 10 阵列有什么问题吗?从各方面来看,绝对不是,但您可能不会看到预期的速度增加。
第二,ZFS。今天,Linux 上的 ZFS 接受了引入加密的拉取。棒极了!然而,我认为 ZFS 通常被视为解决所有 fs 级别的问题和担忧。根据我的需要,它会产生一定程度的安装复杂性,这是我宁愿避免的。它还往往会使用大量内存,并且在某些工作负载下可能会非常慢。来源(其中一些测试在方法上存在问题,但它们给出了更广泛、一般的印象):[我本来打算在这里发布一些链接,但不能,因为我还没有 10 个帖子——谷歌搜索一下应该会产生一些相关文章]
继续我的实际问题:你可以将 xfs 条带与 md-raid 条带对齐吗?答案似乎是否定的。经过大量的谷歌搜索、大量的探索等之后,当您直接在分区上构建 fs 时,xfs 似乎会智能地自我对齐。事实上,ext4 也这样做。然而,一旦将 lvm 和 luks 分层,xfs(和 ext4)就无法再检测到分区条带。通过在创建 xfs 分区时定义条带大小,您可以指定条带宽度,但不能强制条带对齐。有些人建议将 lvm、raid 和其他标头移动到分区末尾,然后偏移 1MB(或可被条带大小整除的某个量),但并不能真正保证当 lvm 为卷分配更多空间时它会这样做所以与raid条纹对齐。
需要澄清的是,这会影响带有条带文件系统的 md-raid 条带拓扑。仅仅因为我在问题中指定了两个驱动器并且评论围绕着它,就会出现 4 个驱动器、8 个驱动器或 800 个驱动器。它还会出现在任何使用条带化的 raid 设置中,无论是 raid0、raid5、raid6 还是 raid10。这最终是使用 zfs 或 btrfs 等集成分区、设备管理/池等系统的吸引力。
那么,我该怎么办? md-raid、lvm 和 xfs 的稳定性和经过验证的可靠性非常有吸引力。与 md-raid raid10 相关的寻道时间并不吸引人。我可能会在 lvm 中使用 raid1 设置,我选择的操作系统 centos 很好地支持它。然后,我将创建我的 lvm 卷,并在其中创建我的 luks 卷。在这些上,我将通过 xfs 文件系统来构建。最后两个有点悬而未决。 ext4 中的新加密功能很有吸引力,我可能会用加密的 ext4 替换 luks+xfs 位。