Easyearch 为了防止索引将磁盘空间完全占满,使用磁盘水位线进行磁盘空间控制。具体来说有三条磁盘水位线:low、high、flood。
低水位线
通过参数 cluster.routing.allocation.disk.watermark.low
进行设置,默认值 85%。也可设置成一个具体值,比如:400mb,代表须保留 400mb 空闲磁盘空间,否则就算超水位线。
一旦节点磁盘使用率超过了低水位线,Easysearch 集群不会将分片分配至该节点,但是不影响新建索引的主分片分配到该节点,新建索引的副本分配不能分配到该节点。
如果所有节点都超过高水位线,此时创建新索引会导致集群状态变成 yellow。
高水位线
通过参数 cluster.routing.allocation.disk.watermark.high
进行设置,默认值 90%。也可设置成一个具体值,比如:300mb,代表须保留 300mb 空闲磁盘空间,否则就算超水位线。
一旦节点磁盘使用率超过了高水位线,Easysearch 集群会尝试将分片移动到其他节点,不允许任何分片分配到该节点。
如果所有节点都超过高水位线,此时创建新索引会导致集群状态变成 red。
洪水位线
通过参数 cluster.routing.allocation.disk.watermark.flood_stage
进行设置,默认值 95%。也可设置成一个具体值,比如:200mb,代表须保留 200mb 空闲磁盘空间,否则就算超水位线。
一旦节点磁盘使用率超过了洪水位线,Easysearch 集群会为该节点上的所有索引添加只读锁,包括系统索引。只读锁会阻止新数据写入,当磁盘利用率低于高水位线时,只读锁会自动释放。
针对节点磁盘使用率,我们可以使用 INFINI Console 进行节点磁盘使用率告警,便于我们及时发现问题苗头,提前进行处理。有任何问题,欢迎加我微信沟通。
关于 Easysearch
INFINI Easysearch 是一个分布式的搜索型数据库,实现非结构化数据检索、全文检索、向量检索、地理位置信息查询、组合索引查询、多语种支持、聚合分析等。Easysearch 可以完美替代 Elasticsearch,同时添加和完善多项企业级功能。Easysearch 助您拥有简洁、高效、易用的搜索体验。
官网文档:https://infinilabs.cn/docs/latest/easysearch
作者:杨帆,极限科技(INFINI Labs)高级解决方案架构师、《老杨玩搜索》栏目 B 站 UP 主,拥有十余年金融行业服务工作经验,熟悉 Linux、数据库、网络等领域。目前主要从事 Easysearch、Elasticsearch 等搜索引擎的技术支持工作,服务国内私有化部署的客户。
本文地址:http://elasticsearch.cn/article/15403