有OceanBase社区版的用户提出替换 OCP 管控平台的需求。举例来说,之前的OCP平台采用单节点,然而随着OceanBase集群的陆续上线和数量的不断增多,担心单节点的OCP可能面临故障风险,而丧失对OceanBase集群的管控能力。另此外,当前的OCP版本(即OCP 4.2.2)在单节点配置下并不支持扩展为多节点高可用集群。因此,大家期望能够重新部署一个具备多节点能力的OCP管控平台,再将现有的集群迁移至这一新的OCP上。当然也有其他原因需要替换 OCP 的。本文将整理并介绍如何进行 OCP 的替换,希望能为OceanBase社区版的用户提供一些帮助和指导。
集群情况
下图是旧 OCP 平台,首先在集群页中可以看到有两个 OBServer 集群,这次测试是将 ob430 这个集群从这个 OCP 中迁移到一个新的 OCP 平台上。
下图是 OBProxy 的情况,我们迁移 OBServer 集群的时候,也别忘了把 OBProxy 一起迁过去
从旧 OCP 迁出
迁出 OBServer
首先进入到要迁移的集群页面,在右上角有三个点(...),点击这三个点,可以看到有个迁出集群的操作,我们点击这个迁出集群
然后会弹出一个对话框,需要我们确认信息:
删除主机:首先是否需要删除主机,这块如果主机上还部署有 OBProxy,就不要勾选,否则主机上的agent会被删掉,后续 OBProxy 是无法迁出的;
凭据导出:这里会导出 OBServer 的一些账号信息到文件中,需要填写一个密钥来对文件进行加密,后续在新 OCP 平台导入的时候会用到;
然后输入 move out 来确认迁出
确认之后,会在任务中心生成一个任务,直到任务执行结束,这个集群就已经顺利迁出
注:在 OCP 4.2.2 版本之前,集群迁出在页面上没有选项,需要通过命令行,这块具体通过命令行如何迁出,可以在社区群咨询官方技术人员。
迁出 OBProxy
接着迁出 OBProxy,也是同样方式,进入到要迁出的 OBProxy 集群中,在右上角有三个点,点击这三个点,选择迁出 OBProxy
这里勾选要删除的主机,因为迁出 OBProxy 之后,这台机器上再没有其他 OceanBase 相关组件,因此直接勾选删除就可以了,然后输入 move out 确认
同样会在任务中心生成一个新的迁出任务,任务执行完成之后,OBProxy 集群也就迁出完成
注:同样,在 OCP 4.2.2 版本之前,OBProxy 的迁出在页面上没有选项,需要通过命令行,这块具体通过命令行如何迁出,可以在社区群咨询官方技术人员。
新 OCP 接管集群
接管 OBServer
打开新的 OCP 平台,进入到集群页面,在右上角有一个接管集群,点击接管集群
输入对应的访问地址、端口、sys租户的密码,直接下一步
然后进入到预检查,首先有个切换当前 ConfigUrl 到本 OCP,这个默认是勾选的(但是需要注意是否有其他依赖,如OBLogProxy,修改之后可能导致不可用),另外接管主机这里,需要填写主机信息,为主机选择一个机型,然后凭据这里需要选择一个能通过 ssh 连接到主机的凭据,如果没有的话,需要先手动添加一个凭据,完成之后点击提交
此时就会在任务中心里生成一个接管集群的任务,任务执行结束之后,OBServer 集群就接管完成
可以在集群页面看到新接管的集群信息
导入凭据
接着就是凭据的导入,在迁出 OBServer 集群的时候,我们导出了该集群的凭据信息,这里进入到系统管理,凭据管理,然后点击右上角的导入凭据
选择之前导出的凭据文件,然后填写当时导出时填的加密密码,点击下一步执行导入
导入完成之后,可以看到凭据信息里多了 ob430 这个集群的凭据信息
接管 OBProxy
接着接管 OBProxy,在接管 OBProxy 这里,我们需要先为接管进来的 OBServer 集群单独创建一个 OBProxy,然后再执行接管(这个设计有些不是很友好,不过据说后续的版本会优化,不用单独再创建一个OBProxy)。这里创建的 OBProxy,在后续接管完成之后可以再删除掉,只是临时用一下
接着找一台空闲机器(OCP 已接管),给这台机器上新建一个 OBProxy,填写对应的信息,这里 root@proxysys 保持和待接管的 OBProxy 相同,选择版本、填写访问地址、关联 OceanBase 集群 ob430。另外需要注意下,启动方式这里需要保持和待接管的 OBProxy 一致,填写完毕之后,执行部署
可以在任务中心中看到这个部署任务执行情况
部署完成之后,在 OBProxy 管理页面,可以看到已经部署完成的 OBProxy
然后进入到该 OBProxy,右上角就可以选择接管 OBProxy
进入到接管页面,同样填写 root@proxysys 密码,选择对应的主机(如果 OBProxy 所在主机还未接管到集群里,需要先在主机页面进行接管),然后点击下一步
预检查成功之后,点击提交
这里需要确认下,会修改 OBProxy 的 obproxy_config_server 的参数,这个因为 OBProxy 会被新的OCP接管,所以会修改成新的 OCP 信息,确认没问题的话,直接下一步
注意,这里会重启 OBProxy,会对业务产生影响,因此建议在业务低峰执行,如果有多个 OBProxy 节点的话,最好分开一个一个接管,不要一次性接管,确认无误之后输入 confirm,执行接管
任务中心会展示整个接管过程,执行完成之后,OBProxy 就接管进来了
可以看到新接管进来的 OBProxy
接管完成之后,可以再将刚才创建的临时的 OBProxy 删除掉就行
以上就是整个 OBServer 和 OBProxy 从旧 OCP 迁出到新 OCP 接管的全部过程,如果要进行生产环境的迁移,建议各位同学现在测试环境做个演练,防止出现意外情况。