请教下:
1.社区版ocp在使用ocp-all-in-one安装包通过web页面部署时可以选择多服务器实现OCP-Server的多节点部署,后续如果相关OCP-Server机器故障以及替换机器后如何操作恢复
2.能否基于docker直接连接ocp的MetaDB实现OCP-Server的迁移
1.metadb和业务集群都是相同的操作,某个节点坏掉后,将该节点下线处理,待修复后再上线即可,或者更换一台新机器。参考下面官方文档
https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000450155?back=kb
2.意思是说docker部署的ocp集群么,注意故障维修如果要更换机器,要求新机器规格>=旧。防止新添加的机器太小导致磁盘不足。
1.可以部署多个OCP节点,元数据库连接同一个就行了,一个ocp server挂了,再起一个也行,
实际上元数据库的高可用即OCP的高可用
2.是可以的,参考
https://www.oceanbase.com/docs/common-ocp-1000000001127035
1.OCP-Server机器故障以及替换机器后obd cluster reinstall xxx -c OCP-Server -s 就可以
假设有server1,server2
我们在server1上通过ocp-all-in-one安装包通过web页面部署ocp在server1和server2,那实际部署ocp的obd程序应该在server1上,这时候如果是server1挂了,这个命令是不是无法执行
是否可以把Configuration Path下的2个配置文件备份,然后在另外的机器上重新解压ocp-all-in-one安装包然后修改相关ip地址再执行 obd cluster reinstall xxx -c OCP-Server -s ?
server1挂掉如果主机宕机,确实是无法执行命令。
可行的,yaml文件备份后,到新节点修改ip再执行obd cluster reinstall xxx -c OCP-Server -s
试了下,应该obd的cluster reinstall 不是用来做某个机器重新部署,文档介绍如下:
obd cluster reinstall
使用该命令可重新安装一个已部署的组件的仓库,新的仓库必须与当前仓库版本号相同
这样应该是2个步骤来恢复ocp-server-ce节点:
1.将obd和yaml配置文件恢复到一台新机器
2.通过扩容流程将一台新机器部署ocp-server-ce并加入obd的集群配置中
这个操作我又碰到了一些疑问:
1.在新机器恢复obd过程中,yaml文件备份来查询集群信息会Status (Cached)为configured,任何执行都是[ERROR] Deploy “ocptest” is configured. You could not start an configured cluster
2.obd没看到类似tidb部署工具tiup的缩容命令
知道了,是这样的:
~/.obd/cluster/ocptest$ tree -a
.
├── config.yaml
├── .data
└── inner_config.yaml
状态在.data里维护
应该是整个obd集群的目录做好备份:
1.当非obd机器故障且无法恢复时,在obd机器上执行扩容操作来恢复新机器的ocp-server-ce组件功能
2.当obd机器故障,将ocpallinone软件包和备份的obd集群文件目录整体恢复到新机器,然后继续操作
是的,集群信息Status存放在.data文件中。但一般情况下meta集群和ocp server是在同一个ip下,需要您确保发生故障后,meta集群多数派存在
我看了文档,ocp多个节点实际上是共享一个meta,只要单机meta挂了,实际上再多ocp节点也没意义了。
所以我的问题是ocp开始以单机模式部署,meta放在同一台机器,假设这台机器挂了,也就是meta和ocp都没了,可以通过重建新的ocp,来直接接管当前的ob集群吗?
你意思是单独部署个ocp-server组件然后使用原metadb进行接管么。理论上是可行的,当前obd不支持。
meta没有了, 单机部署,机器挂了,啥也没有了。 这种情况,重新弄一个ocp,能不能接管ob集群?
可以
所以官方建议ocp部署也用3台机器,这样保证meta不丢,然后建立多个ocp节点即可。 但是这样做太浪费机器了。
是多个metadb的节点保证了metadb高可用。当然ocp服务也可以多个节点高可用
没错啊,多个meta节点不就是构建的时候用多台ob server,用单机肯定有丢失的风险。
但是你开始说的“你意思是单独部署个ocp-server组件然后使用原metadb进行接管么。理论上是可行的,当前obd不支持。“ 这又啥意思,一个ocp挂了,我重新安装ocp用原来的meta,这样也不行? 这玩意和接管有区别?
目前是不行的,meta集群内部表记录了很多数据包括自己的ocp信息
官方文档我看了,没有看出到底推荐什么方式。 按照之前的讨论,是不是可以理解为以下2种方式:
-
使用多台observer创建meta, 然后前端构建多台ocp对吗?
-
如果用单台,ocp挂了,使用新的ocp来接管ob集群即可。