YugabyteDB运行集群如何通过yb-master、yb-tserver调整复制因子从RF1到RF3、RF5
原生yb-master/yb-tserver组件调整复制因子方案
完全可以仅使用原生yb-master、yb-tserver组件实现集群复制因子从RF1到RF3再到RF5的调整,不需要依赖yugabyted工具,这是YugabyteDB原生支持的集群运维能力。
核心规则:集群yb-master节点的数量必须和目标复制因子保持一致,且必须为奇数,这是Raft一致性协议的硬性要求
操作前置准备
- 所有新增的yb-master、yb-tserver节点需和现有集群节点网络互通,默认运维端口、数据传输端口正常开放
- 操作前建议完成集群全量备份,避免配置错误导致数据风险
RF1调整为RF3操作步骤
- 启动2台新的yb-master节点,启动参数中
--master_addresses需填写原有1台master+新增2台master的完整地址列表,原有运行中的master节点无需重启 - 执行
yb-admin change_master_config ADD_SERVER <新master1节点地址> <新master1 RPC端口>,同命令添加第二台新master节点,完成后master Raft组节点数变为3 - 启动2台新的yb-tserver节点,启动参数中
--tserver_master_addrs填写3台master的完整地址列表,加入现有集群 - 执行复制因子修改命令:
yb-admin modify_placement_info <自定义放置域配置> 3,等待所有tablet的Raft组完成副本扩容,通过yb-master Web UI确认所有tablet状态正常即可
RF3调整为RF5操作步骤
和RF1转RF3逻辑一致:
- 新增2台yb-master节点,通过
yb-admin change_master_config命令加入现有master Raft组,master节点总数变为5 - 新增2台yb-tserver节点加入集群
- 执行
yb-admin modify_placement_info <自定义放置域配置> 5,等待所有tablet完成副本补全,校验集群状态健康即可
beta阶段
yugabyted join功能可用说明 该功能目前已经支持基础的单region同构集群节点扩容、复制因子调整场景,底层本质是封装了上述原生yb-admin的运维操作,降低用户手动执行命令的复杂度。
当前beta版本存在的已知限制:
- 不支持跨region、多可用区的异构放置策略配置
- 不支持master、tserver高级自定义启动参数的透传
- 扩容过程中如果出现网络中断等异常,可能需要手动介入修复集群配置
仅推荐在测试环境验证该功能,不建议生产环境使用。
内容的提问来源于stack exchange,提问作者dh YB
相关产品推荐
相关产品推荐

