使用 JuiceFS 存储 Elasticsearch 数据

💡 原文中文,约6000字,阅读约需15分钟。
📝

内容提要

本文介绍了使用JuiceFS存储方案对接Elasticsearch的过程,包括三种存储方案和创建Elasticsearch所需的步骤。同时提供了查看JuiceFS文件目录和目录大小的方法。

🔎

延伸解读

存储方案选择:目录隔离的适用场景

文章针对10TB温冷数据、容忍10秒响应的查询需求,选择了基于目录隔离的JuiceFS方案。该方案让多个Elasticsearch节点共享一个JuiceFS实例,通过子目录(如/0/、/1/)区分节点数据,优点是扩展和配置方便。如果业务对可靠性和性能要求更高,可考虑每个节点独立JuiceFS;若想兼顾成本与性能,可采用SSD与JuiceFS冷热分离,但运维更复杂。

PVC创建中的关键细节

创建PVC时,PVC_NAME需遵循ECK Operator的命名规则,即elasticsearch-data-<es-name>-es-default-0,其中<es-name>为Elasticsearch实例名。在Dataset中,mountPoint必须指定为juicefs://0/,对应第一个节点,后续节点需递增编号。此外,提前创建测试Pod使PVC进入Bound状态,可避免Elasticsearch部署时重新创建PVC,确保存储卷正确挂载。

部署环境与版本兼容性

文章使用ECK Operator v2.11.1部署Elasticsearch 8.3.2,并指出最新版ECK Operator不支持Kubernetes v1.26.9,因此选择特定版本。部署时需注意nodeSets中count为1表示单节点,多节点需提前创建对应PVC并确保Bound。同时,通过initContainers安装IK分词插件,并设置securityContext以root运行,这些配置对中文分词查询至关重要。

验证数据存储与成本考量

部署后,可将JuiceFS挂载到测试主机,通过tree命令查看目录结构,确认各节点子目录(如0、1、2)下包含indices、nodes等Elasticsearch数据目录。使用du -sh可查看目录大小,文章示例中三个节点目录分别占用284M、322M、324M。这种验证方式有助于确认数据实际写入JuiceFS,同时呼应了业务对成本敏感、不愿使用SSD的诉求。

❓

Q&A

JuiceFS存储方案有哪些类型?

JuiceFS存储方案包括基于目录隔离、基于JuiceFS隔离节点数据和结合SSD冷热数据分离三种类型。

如何创建Elasticsearch所需的PVC?

创建Elasticsearch所需的PVC包括设置环境变量、格式化JuiceFS和创建PVC。

使用JuiceFS存储Elasticsearch数据的优势是什么?

使用JuiceFS存储Elasticsearch数据的优势在于成本与性能的平衡,适合大数据量的查询需求。

如何查看JuiceFS的文件目录和目录大小?

可以通过挂载JuiceFS到测试主机并使用命令查看目录结构和大小。

部署Elasticsearch的基本步骤是什么?

部署Elasticsearch的基本步骤包括安装ECK Operator和部署Elasticsearch实例。

基于目录隔离的存储方案适合什么场景?

基于目录隔离的存储方案适合扩展和配置方便,适用于大数据量的查询需求。

🏷️

标签

➡️

继续阅读