Elasticsearch在ILM(Index Lifecycle Management)中定义了索引生命周期的5个阶段:
Hot(热):索引处于活动状态,能够更新(增改删)和查询。Warm(暖):处于该阶段的索引不再支持更新,但是能够被查询。Cold(冷): 该阶段的索引不再支持更新,只能支持很少的查询,查询较慢!Frozen(冻结):该阶段的所有不再支持更新,也很少查询,查询很慢!Delete(删除):索引不再需要可以被安全删除。
索引中生命周期策略管理索引何时处于哪种阶段,在每个阶段中执行什么操作,以及何时在阶段之间转换。
既然是生命周期,那么阶段之间就有先后顺序,一般是Hot->Warm->Cold->Frozen->Delete,当然Hot也可以直接到Delete,举个不恰当的例子就像一个人英年早逝!
当你手动创建索引时,手动指定索引要应用的生命周期管理策略,或者当创建索引时的名字匹配到索引模板,也可以在索引模板中指定索引的生命周期管理策略。
一个生命周期管理策略的例子ILM
Index Lifecycle Management(索引生命周期管理),是ES中用于管理索引生命周期的模块。
"30-days-default" : {
"version" : 1,
"modified_date" : "2022-03-23T03:48:55.331Z",
"policy" : {
"phases" : {
"hot" : {
"min_age" : "0ms",
"actions" : {
"rollover" : {
"max_primary_shard_size" : "50gb",
"max_age" : "30d"
}
}
},
"warm" : {
"min_age" : "2d",
"actions" : {
"shrink" : {
"number_of_shards" : 1
},
"forcemerge" : {
"max_num_segments" : 1
}
}
},
"delete" : {
"min_age" : "30d",
"actions" : {
"delete" : {
"delete_searchable_snapshot" : true
}
}
}
},
"_meta" : {
"managed" : true,
"description" : "built-in ILM policy using the hot and warm phases with a retention of 30 days"
}
}
阶段之间的转换
ILM根据索引所定义的生命周期管理策略中的年龄设定在不同的阶段间进行转换。为了控制这些转换的时机,你需要为每个阶段定义一个最小年龄。在转换到下一个阶段之前,该阶段定义的所有“动作”必须完成且索引必须大于下一阶段的最小年龄。下一个阶段的最小年龄要大于上一个阶段的最小年龄。



