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