配置项作用 #
cluster.routing.allocation.disk.include_relocations 配置项用于控制在计算节点磁盘使用量时,是否将正在迁移到该节点的分片大小计入磁盘使用量。
配置项属性 #
- 配置路径:
cluster.routing.allocation.disk.include_relocations - 数据类型:
boolean - 默认值:
true - 是否可选: 是
- 是否动态: 是(支持动态更新)
- 弃用状态: ⚠️ 已弃用,将在未来版本中移除
配置项详解 #
工作机制 #
节点磁盘使用量计算
当 include_relocations = true(默认):
磁盘使用量 = 已存在分片 + 正在迁入的分片
当 include_relocations = false:
磁盘使用量 = 已存在分片
场景说明 #
启用包含重定位(include_relocations = true) #
节点 A 正在接收分片
已存在分片: 80GB
正在迁入的分片: 15GB
计算的磁盘使用量: 80GB + 15GB = 95GB
↓
更保守的磁盘估算
避免磁盘空间不足
禁用包含重定位(include_relocations = false) #
节点 A 正在接收分片
已存在分片: 80GB
正在迁入的分片: 15GB(不计入)
计算的磁盘使用量: 80GB
↓
更激进的分配策略
可能导致磁盘空间不足
分配决策影响 #
此配置影响 DiskThresholdDecider 的决策:
- true: 更保守,确保有足够空间容纳所有正在进行的迁移
- false: 更激进,只考虑已完成的分片,可能触发更多分片迁入
配置建议 #
⚠️ 重要提示 #
此配置项已被标记为弃用,将在未来版本中移除。建议:
- 保持默认值: 继续使用
true,这是最安全的配置 - 为未来升级准备: 未来版本可能会固定使用
true的行为
生产环境 #
cluster.routing.allocation.disk.include_relocations: true
建议: 保持默认值 true。这确保了磁盘空间计算的准确性,避免因正在进行迁移的分片导致磁盘空间不足。
代码示例 #
easysearch.yml 配置 #
cluster:
routing:
allocation:
disk:
include_relocations: true # 默认值,推荐保持
动态更新(不推荐,已弃用) #
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.disk.include_relocations": false
}
}
# 警告:此配置已弃用
相关配置 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
cluster.routing.allocation.disk.watermark.low | 磁盘低水位线 | 85% |
cluster.routing.allocation.disk.watermark.high | 磁盘高水位线 | 90% |
cluster.routing.allocation.disk.threshold_enabled | 是否启用磁盘阈值检查 | true |
行为对比 #
| include_relocations | 磁盘计算方式 | 分配行为 |
|---|---|---|
| true | 包含正在迁入的分片 | 更保守,防止超额分配 |
| false | 不包含正在迁入的分片 | 更激进,可能超额分配 |
示例场景 #
假设节点有 100GB 磁盘空间,当前已使用 80GB,水位线设置为 90%:
| 设置 | 正在迁入 | 计算使用率 | 是否允许新分片迁入 |
|---|---|---|---|
| true | 15GB | (80+15)/100 = 95% | ❌ 否(超过90%) |
| false | 15GB | 80/100 = 80% | ✅ 是(低于90%) |
注意事项 #
已弃用: 此配置项已被标记为弃用,将在未来版本中移除。
默认行为: 默认值
true是最安全的配置,建议保持不变。升级影响: 未来版本升级时,此配置将被移除,系统行为将固定为
true。磁盘安全: 保持
true可以防止因正在进行的迁移导致磁盘空间不足。重路由间隔: 配合
cluster.routing.allocation.disk.reroute_interval使用,控制重路由的频率。





