一、概述 #
在日志存储、指标监控等时序数据场景中,数据访问频率随时间推移而显著降低。Easysearch 提供了 Hot 和 Cold 两层数据分层策略,实现热数据高性能存储与冷数据低成本归档的平衡。
二、Hot 与 Cold 对比 #
| 维度 | Hot 阶段 | Cold 阶段 |
|---|---|---|
| 数据特征 | 最新写入,频繁查询 | 历史归档,极少查询 |
| 存储介质 | NVMe SSD / 高性能 SSD | HDD / 大容量存储 |
| 写入支持 | 支持写入 | 只读 |
| 索引状态 | Open | Close |
| 副本数 | 高(保障可用性) | 低(1 或 0) |
三、节点配置 #
Hot 和 Cold 节点通过标签区分:
# Hot 节点
node.attr.temp: hot
# Cold 节点
node.attr.temp: cold
或使用 box_type 属性:
# Hot 节点
node.attr.box_type: hot
# Cold 节点
node.attr.box_type: cold
四、Hot 阶段详解 #
可用操作 #
| 操作 | 说明 | 参数 |
|---|---|---|
rollover | 索引滚动 | max_size, max_docs, max_age |
index_priority | 设置索引优先级 | priority |
allocate | 分配到 Hot 节点 | require.box_type: hot |
配置示例 #
{
"hot": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_size": "50gb",
"max_age": "1d"
},
"index_priority": {
"priority": 100
},
"allocate": {
"require": {
"box_type": "hot"
}
}
}
}
}
Hot 节点规划建议 #
- CPU:高性能多核
- 内存:充裕,支撑高并发查询
- 存储:NVMe SSD,高 IOPS
- 网卡:万兆或更高
五、Cold 阶段详解 #
可用操作 #
| 操作 | 说明 | 参数 |
|---|---|---|
close | 关闭索引,释放内存 | - |
readonly | 设置只读 | - |
allocate | 分配到 Cold 节点 | require.box_type: cold |
replica_count | 调整副本数 | number_of_replicas |
配置示例 #
{
"cold": {
"min_age": "30d",
"actions": {
"allocate": {
"require": {
"box_type": "cold"
}
},
"close": {},
"replica_count": {
"number_of_replicas": 1
}
}
}
}
Cold 节点规划建议 #
- CPU:普通配置即可
- 内存:中等配置
- 存储:大容量 HDD
- 网卡:千兆即可
六、完整策略示例 #
PUT _ilm/policy/hot_cold_policy
{
"policy": {
"phases": {
"hot": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_size": "50gb",
"max_age": "1d"
},
"index_priority": {
"priority": 100
}
}
},
"cold": {
"min_age": "30d",
"actions": {
"allocate": {
"require": {
"box_type": "cold"
}
},
"close": {}
}
}
}
}
}
七、索引模板配置 #
PUT _index_template/hot_cold_template
{
"index_patterns": ["logs-*"],
"template": {
"settings": {
"index.lifecycle.name": "hot_cold_policy",
"index.lifecycle.rollover_alias": "logs-alias",
"number_of_shards": 3,
"number_of_replicas": 2
}
}
}
八、Hot 阶段转 Cold 阶段时间选择 #
| 业务场景 | Hot → Cold 时间 |
|---|---|
| 日志分析 | 7-30 天 |
| 监控指标 | 14-60 天 |
| 审计追踪 | 30-90 天 |
| 合规归档 | 90-365 天 |
在策略中通过 cold 阶段的 min_age 参数控制转换时间:
{
"policy": {
"phases": {
"cold": {
"min_age": "30d"
}
}
}
}
九、最佳实践 #
1. 节点配比 #
根据热冷数据访问比例规划节点数量,常见配比为 Hot:Cold = 1:2 或 1:3
2. Rollover 策略 #
- 单索引大小控制在 50GB 以内
- 按天滚动,便于管理和查询
3. Close 索引 #
- Cold 阶段关闭索引释放内存和文件句柄
- 查询时自动打开,但会增加延迟
4. 监控要点 #
- Hot 节点存储使用率(警戒线 80%)
- Cold 节点存储容量规划
- ILM 策略执行状态





