在单个节点上池化 nvme ssd 驱动器的最简单的非 Raid 方式 - glusterfs?

在单个节点上池化 nvme ssd 驱动器的最简单的非 Raid 方式 - glusterfs?

我们正在组装一个完全基于 nvme-ssd 的 RHEL OS 视频编辑服务器。它需要高吞吐量和极低的延迟。 RAID 控制器会降低速度。商业软件 RAID (xiRAID) 已经可用,并且在我们的测试中运行良好。然而,当各个磁盘的速度足以在各个驱动器上保存完整文件时,我认为 RAID 的复杂性和不灵活性是没有必要的。 Unraid 和 MergerFS 看起来不错,但我们的管理层并不乐意将生产服务器建立在一个人的开源项目上。

GlusterFS 怎么样?我找不到任何关于在单个节点上运行此程序的人的参考。我们不需要分布式文件系统,我们只需要单个节点上的池存储,并可选地提供一些奇偶校验以实现冗余。

答案1

GlusterFS 似乎是一个非常糟糕的选择;你不需要它带来的任何功能(这就是为什么没有人在单个节点上使用它,这没有意义),并且你会得到所有性能和复杂性的缺点。

这实际上是逻辑卷管理的经典用例,由 LVM2 在现代 Linux 上实现;定义一组卷,将每个物理 NVM 添加为物理卷,并在其上创建一个(或任意数量)逻辑卷,并使用您喜欢的任何文件系统。在我的测试中,开销可以忽略不计,并且实际上需要 3 个命令行操作来设置:

  1. 您想要组合/dev/nvmeA, /dev/nvmeB, ..., /dev/nvmeX。因此,您可以从中创建一个卷组(称为“swamigroup”,根据需要选择)(将删除这些设备上的现有数据):
    sudo vgcreate swamigroup /dev/nvmeA /dev/nvmeB /dev/nvmeC...。/dev/nvmeX
  2. 使用 100% 的可用空间在该组上创建一个名为“datavol”的逻辑卷:
    sudo lvcreate -l '100%FREE' -n datavol swamigroup
  3. 根据您的选择,在其上创建一个文件系统。我在这里选择了 ext4,选择最适合你的。
    sudo mkfs.ext4 /dev/mapper/swamigroup-datavol

就是这样。完毕。您现在可以安装/dev/mapper/swamigroup-datavol,将其添加到您的/etc/fstab...

如果您想将新设备(例如 )添加/dev/nvmeY到组中

  1. 将其设置为物理卷sudo pvcreate /dev/nvmeY,,
  2. 将其添加到现有卷组中,sudo vgextend swamigroup /dev/nvmeY

然后,您通常还希望实际上使逻辑卷使用新找到的可用空间,,sudo lvresize -l +100%FREE -r-r意味着底层文件系统的调整大小实用程序(此处为,resize2fs)会被自动调用。这一切都可以在完整操作期间完成。

LVM 可以做更多的事情(包括软件 RAID、快照、精简卷、操作期间更换故障磁盘……),但随后我们必然会陷入“您需要读取一页man”的复杂性,而我的印象是您希望避免这种情况。

答案2

您可能会查看直接支持多卷的文件系统,例如BTFS。此外,您还可以dmsetup直接将 2 个块设备映射为一个。这手册页有一个示例表。

有来自的性能建议红帽对于您的文件系统。

相关内容