4. 节点角色与硬件规划:Master、Data、Ingest、Coordinating 节点角色详解,冷热节点硬件选型

在 ELK 集群中,每个节点并非承担相同职责。合理划分节点角色并匹配硬件,是保障集群高可用、高性能和冷热分层存储落地的第一道关卡。本节将逐一拆解五大节点角色的核心功能、配置要点,并给出冷热节点的硬件选型标准。

4.1 节点角色全景图

Elasticsearch 节点通过 node.roles 参数定义其职责。一个节点可以承担多个角色,但在生产环境中,建议将关键角色(如 Master 与 Data)分离,避免资源争抢。

Elasticsearch 节点角色架构与数据流 Elasticsearch 节点角色架构与数据流 客户端 / Kibana Coordinating 节点 Ingest 节点 Data 节点组 热节点 (Hot) 温节点 (Warm) 冷节点 (Cold) (SSD / HDD / 归档) Master 节点 (集群管理) 说明:Coordinating 负责请求分发,Ingest 负责数据预处理,Data 负责存储与检索,Master 负责集群元数据管理。

4.2 五大节点角色详解

角色 核心职责 配置参数 资源敏感度 生产建议
Master 集群元数据管理、索引创建/删除、节点上下线、选主 node.roles: [ master ] CPU 中,内存中,磁盘低 3 台专用 Master,不参与数据读写
Data 数据存储、索引分片、搜索与聚合 node.roles: [ data ] CPU 高,内存高,磁盘高 按冷热分层配置不同存储介质
Ingest 数据预处理(Pipeline)、字段转换、格式清洗 node.roles: [ ingest ] CPU 中,内存中,磁盘低 可独立部署,也可与 Coordinating 合并
Coordinating 请求路由、结果归并、负载均衡 node.roles: [ ](空数组) CPU 中,内存中,磁盘低 作为集群入口,建议独立 2-3 台
Machine Learning 异常检测、预测分析(需白金版 License) node.roles: [ ml ] CPU 高,内存高 按需启用,不与 Master 混部
避坑提示: 不要将 Master 节点同时设置为 Data 角色。当数据写入压力大时,Master 可能因 GC 导致选主超时,引发集群脑裂。专用 Master 节点应保持 node.data: false。

4.3 冷热节点硬件选型标准

冷热分层存储的核心在于:热节点追求低延迟,冷节点追求低成本。以下选型标准基于生产环境经验,适用于日均 TB 级日志场景。

4.3.1 热节点 (Hot Tier)

  • 磁盘: 100% SSD(NVMe 优先),建议 RAID 10 或 JBOD 直通。单节点容量建议 2-8 TB。
  • 内存: 至少 64 GB,推荐 128 GB+。内存与磁盘比例建议 1:30 ~ 1:50。
  • CPU: 16 核以上,主频 2.5 GHz+。搜索密集型场景优先高频。
  • 网络: 10 GbE 或更高,绑定多网卡。
  • 典型机型: 云平台 c6/r6 系列,物理机 2U 4 路服务器。

4.3.2 温节点 (Warm Tier)

  • 磁盘: SSD + HDD 混合,或大容量 SATA SSD。单节点容量建议 12-48 TB。
  • 内存: 32-64 GB,内存与磁盘比例可放宽至 1:100。
  • CPU: 8-16 核,主频 2.0 GHz+。
  • 网络: 1 GbE 或 10 GbE。
  • 典型机型: 云平台 i3/d3 系列,物理机高密度存储型。

4.3.3 冷节点 (Cold Tier)

  • 磁盘: 大容量 HDD(SATA 或 SAS),单节点容量建议 48-144 TB。
  • 内存: 16-32 GB,内存与磁盘比例可低至 1:200。
  • CPU: 4-8 核,主频 1.8 GHz+。
  • 网络: 1 GbE。
  • 典型机型: 云平台冷存储实例,物理机 JBOD 高密度存储。
冷热节点硬件选型对比 冷热节点硬件选型对比 热节点 (Hot) 磁盘:NVMe SSD 容量:2-8 TB 内存:64-128 GB CPU:16核+ 高频 网络:10 GbE 延迟敏感,写入密集 温节点 (Warm) 磁盘:SSD+HDD 容量:12-48 TB 内存:32-64 GB CPU:8-16核 网络:1/10 GbE 读写均衡,容量优先 冷节点 (Cold) 磁盘:HDD 容量:48-144 TB 内存:16-32 GB CPU:4-8核 网络:1 GbE 低成本,归档存储 选型原则:热节点追求 IOPS 与低延迟,冷节点追求每 GB 成本最低。

4.4 节点角色配置示例

以下为 elasticsearch.yml 中不同角色的典型配置片段:

# 专用 Master 节点
node.roles: [ master ]
node.data: false
node.ingest: false
node.ml: false
discovery.seed_hosts: ["master1:9300", "master2:9300", "master3:9300"]
cluster.initial_master_nodes: ["master1", "master2", "master3"]

# 热数据节点
node.roles: [ data_hot ]
node.attr.data_tier: hot
index.routing.allocation.require.data_tier: hot

# 冷数据节点
node.roles: [ data_cold ]
node.attr.data_tier: cold
index.routing.allocation.require.data_tier: cold

# 独立 Coordinating 节点
node.roles: [ ]
node.data: false
node.ingest: false
node.ml: false
生产警告: 冷热分层必须配合索引生命周期管理(ILM)策略使用。仅设置节点角色而不配置 ILM 策略,数据不会自动迁移到冷节点。ILM 策略将在后续章节详细讲解。

4.5 节点数量规划参考

集群规模 Master 节点 Coordinating 节点 Ingest 节点 Data 节点(热/温/冷)
小规模(< 5 TB/天) 3 0-2(可复用 Data) 0-2(可复用 Coordinating) 3-6 / 0-3 / 0-3
中规模(5-20 TB/天) 3 2-4 2-4 6-12 / 3-6 / 3-6
大规模(> 20 TB/天) 3-5 4-8 4-8 12+ / 6+ / 6+
关键原则: Master 节点数量始终为奇数(3 或 5),避免选主平票。Data 节点数量根据存储容量和分片数计算,建议每个分片大小控制在 30-50 GB。