我正在使用新的 LizardFS,它很棒!总的来说,我是 LizardFS/MooseFS 的新手,但看起来很简单。
我想知道两件事:
首先,有没有办法设置单独的存储池?例如,我可以有五台服务器,每台服务器都有两个 HDD。每台服务器的一个硬盘属于一个存储池,另一个硬盘属于另一个。存储池将是独立的,因为它们将单独安装,并且它们将单独维护块。
想要这样做的原因是因为我的第二个问题:
我想要一个快速存储池和一个慢速存储池。我的服务器有 10Gbe 和 SSD,所以 LFS 的一切都非常快。但是有些项目(尤其是按文件类型)不需要很快,例如音频和视频文件,而 HDD 显然更便宜。
最终,我想做的是让 LFS 识别条件(例如文件类型或其他用户定义的条件),以便在将文件写入文件系统时,将其存储在快速存储或慢速存储中,但它对最终用户显示为单个存储卷。我相当肯定这对于开箱即用的 LFS 是不可能的。但是,如果可以有多个存储卷,我可以构建一个系统来使用符号链接来伪造它的其余部分。
从 2.5.4 版开始,LizardFS 支持一个称为“自定义目标”的新功能。它基本上允许您定义服务器组,例如用于慢速节点的“hdd”组和用于快速节点的“ssd”组。然后,您可以要求 LizardFS 仅在某些组而不是整个集群上分发数据。自定义目标与标准目标具有相同的粒度:因此可以在每个目录的基础上分配它们。
有关LizardFS 2.5.4 发布公告的更多详细信息。
在 MooseFS 3.0 中有一个称为存储类的功能。它似乎比 LizardFS 中的自定义目标更舒适,因为您可以“动态”定义存储类,而无需编辑任何带有定义的配置文件。您只需在定义任何存储类之前“标记”块服务器(这必须在块服务器的配置文件中完成),但通常您为块服务器设置一次标签。
(来自MooseFS 3.0 存储类手册):
不,不幸的是,如果不在同一台机器上运行多个 LizardFS 服务器,这是不可能的。如果您愿意,您可以这样做,使用不同的端口加载单独的配置文件。不过,这仍然需要您手动分离不同类型的内容。
您可能希望研究 LizardFS 的机架感知功能 - 可用于将快速存储“固定”到一组服务器。
在一个半无关的注释中,我提交了一个关于 LFS 高可用性的拉取请求 :) 如果你愿意,可以试一试。
如果 SSD 缓存是必须的,请尝试 Ceph。它允许您设置快速缓存池以防止较慢的旋转生锈。