我们正在组装一个完全基于 nvme-ssd 的 RHEL OS 视频编辑服务器。它需要高吞吐量和极低的延迟。 RAID 控制器会降低速度。商业软件 RAID (xiRAID) 已经可用,并且在我们的测试中运行良好。然而,当各个磁盘的速度足以在各个驱动器上保存完整文件时,我认为 RAID 的复杂性和不灵活性是没有必要的。 Unraid 和 MergerFS 看起来不错,但我们的管理层并不乐意将生产服务器建立在一个人的开源项目上。
GlusterFS 怎么样?我找不到任何关于在单个节点上运行此程序的人的参考。我们不需要分布式文件系统,我们只需要单个节点上的池存储,并可选地提供一些奇偶校验以实现冗余。
答案1
GlusterFS 似乎是一个非常糟糕的选择;你不需要它带来的任何功能(这就是为什么没有人在单个节点上使用它,这没有意义),并且你会得到所有性能和复杂性的缺点。
这实际上是这逻辑卷管理的经典用例,由 LVM2 在现代 Linux 上实现;定义一组卷,将每个物理 NVM 添加为物理卷,并在其上创建一个(或任意数量)逻辑卷,并使用您喜欢的任何文件系统。在我的测试中,开销可以忽略不计,并且实际上需要 3 个命令行操作来设置:
- 您想要组合
/dev/nvmeA
,/dev/nvmeB
, ...,/dev/nvmeX
。因此,您可以从中创建一个卷组(称为“swamigroup”,根据需要选择)(将删除这些设备上的现有数据):sudo vgcreate swamigroup /dev/nvmeA /dev/nvmeB /dev/nvmeC
...。/dev/nvmeX
- 使用 100% 的可用空间在该组上创建一个名为“datavol”的逻辑卷:
sudo lvcreate -l '100%FREE' -n datavol swamigroup
- 根据您的选择,在其上创建一个文件系统。我在这里选择了 ext4,选择最适合你的。
sudo mkfs.ext4 /dev/mapper/swamigroup-datavol
就是这样。完毕。您现在可以安装/dev/mapper/swamigroup-datavol
,将其添加到您的/etc/fstab
...
如果您想将新设备(例如 )添加/dev/nvmeY
到组中
- 将其设置为物理卷
sudo pvcreate /dev/nvmeY
,, - 将其添加到现有卷组中,
sudo vgextend swamigroup /dev/nvmeY
然后,您通常还希望实际上使逻辑卷使用新找到的可用空间,,sudo lvresize -l +100%FREE -r
这-r
意味着底层文件系统的调整大小实用程序(此处为,resize2fs
)会被自动调用。这一切都可以在完整操作期间完成。
LVM 可以做更多的事情(包括软件 RAID、快照、精简卷、操作期间更换故障磁盘……),但随后我们必然会陷入“您需要读取一页man
”的复杂性,而我的印象是您希望避免这种情况。