得物自建 Redis 无人值守资源均衡调度设计与实现

目录:
一、为什么要做资源均衡调度
二、为什么要做自动化资源均衡调度
三、如何合理选择迁移节点
四、如何保障迁移过程中可靠性
    1. 添加从节点
    2. 检查同步数据正常
    3. 执行主从切换
    4. 检查主从切换正常
    5. 删除待迁移节点
    6. 消息通知
五、迁移任务管理展示
六、总结

文 / Miro-得物技术


一、为什么要做资源均衡调度

得物 Redis 管理平台目前管理着几百个集群、数万个 Redis-server 节点、几千台 server 宿主机,而且通过精细化运维管理,目前 Redis-server 宿主机平均内存使用率和内存分配率均达到一个合理且较高的水位,资源管理处于业内第一梯队,使用最低的成本做到最大的支撑业务缓存需求。

同时,随着业务使用量的持续增长,单台宿主机上的内存使用率越来越高,为了保证宿主机上所有节点的业务日常增长需求或者突发的业务内存上涨,以便能够做到秒级快速垂直扩容,以及添加节点、RDB 离线分析等功能需要的资源,单台宿主机的内存使用率都需要动态的控制在一个合理水位线以下,于是,Redis 管理平台会每天定期自动巡检所有宿主机内存使用率,对于超过合理阈值的宿主机,会选择一部分 server节点进行打散,迁移到其他宿主机上。

二、为什么要做自动化资源均衡调度

在 Redis 系统承接业务后,资源使用量快速增长的初期,逐步出现需要进行资源均衡调度的需求,一开始也是 DBA 手动进行节点迁移。为此还特意开发了一个批量选择节点进行添加从节点、主从切换、节点下线等批量操作功能。

然而即使提供了批量操作功能,手动迁移依然需要 DBA 每天投入相当多的精力来进行资源均衡调度,并且存在稳定性风险。

  • 首先,需要 DBA 每天都要关注资源整体的使用情况,一旦出现内存使用率较高的机器,就需要进行打散迁移;
  • 随着机器增多、Redis 服务承接的业务快速增长,每天需要打散的机器越来越多,每次需要打散的节点也越来越多,操作迁移花费的时间也越来越多,到后期差不多每周需要投入 2 人天的工时专门进行资源打散;
  • 另外,由于人工操作,选择大量节点同时进行,难免出现漏操作、重复操作、误操作等情况,增加了资源迁移给集群稳定性带来的风险。

于是,Redis 管理平台设计并开发了无人值守资源均衡调度功能,为了尽量降低迁移过程对业务的影响,默认选择在凌晨5点业务低峰期进行执行,并且自动巡检、选择机器、选择节点、节点迁移等整个资源均衡调度过程均是每天定点自动完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值