许多用户在开始使用OceanBase时部署OCP,通常选择单节点部署。但随着后续业务规模的不断扩大,会开始担忧单节点OCP在面对故障时可能丧失对集群运维管控的连续性。鉴于此,会将现有的单节点OCP扩展至多节点部署,以此来确保OCP服务的高可用性。
目前,暂时还无法直接在OCP页面上执行扩容操作,需要使用obd命令对OCP进行扩展,扩展的方式也相对比较简单,主要分以下几个步骤:
- 编辑配置文件
- obd 命令扩容
- 修改配置(可选)
下面就以一个现有的OCP环境,进行一次扩容操作演示(适用OCP4.2.x和4.3.x版本)。
环境介绍
使用obd cluster display <deploy_name> 查看当前OCP环境,这里的 deploy_name 为 metadb
$obd cluster display metadb
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer 192.168.10.110:2881 ok
Wait for observer init ok
+--------------------------------------------------+
| observer |
+----------------+---------+------+-------+--------+
| ip | version | port | zone | status |
+----------------+---------+------+-------+--------+
| 192.168.10.110 | 4.2.1.4 | 2881 | zone1 | ACTIVE |
+----------------+---------+------+-------+--------+
obclient -h192.168.10.110 -P2881 -uroot -p'xxxxxx' -Doceanbase -A
cluster unique id: 254f1cb5-7d98-515d-a827-2e47f1fc10ee-18ec0a869e7-04010204
Connect to obproxy ok
+--------------------------------------------------+
| obproxy |
+----------------+------+-----------------+--------+
| ip | port | prometheus_port | status |
+----------------+------+-----------------+--------+
| 192.168.10.110 | 2883 | 2884 | active |
+----------------+------+-----------------+--------+
obclient -h192.168.10.110 -P2883 -uroot@proxysys -p'xxxxxx' -Doceanbase -A
Connect to ocp-server-ce ok
+-----------------------------------------------------------+
| ocp-server-ce |
+----------------------------+----------+----------+--------+
| url | username | password | status |
+----------------------------+----------+----------+--------+
| http://192.168.10.10:8080 | admin | xxxxxxxx | active |
+----------------------------+----------+----------+--------+
Trace ID: 328b2ec0-7592-11ef-93a9-00163e046d79
If you want to view detailed obd logs, please run: obd display-trace 328b2ec0-7592-11ef-93a9-00163e046d79
从上面可以看出,这是一个单节点的OCP,部署在 192.168.10.10 这台机器上。下面就在这个单节点基础上,再为OCP扩出一个节点,新节点的 ip 地址为 192.168.10.11。
编辑配置文件
想要增加一个OCP节点,需要先新增一个OCP的配置文件,配置文件的内容相对简单,需要指定新增的组件名 ocp-server-ce,然后在 servers 里添加新增OCP的名称和ip地址,以及安装 OCP 的 home_path。
$ vim ocp_config.yaml
ocp-server-ce:
servers:
- name: server2
ip: 192.168.10.11
server2:
home_path: /home/admin/ocp
home_path最好保证和已安装的OCP目录相同,可使用 obd cluster edit-config <deploy_name> 查看ocp-server-ce 组件对应的 home_path。
执行扩容命令
在上一步编辑完配置文件之后,就可以执行 obd cluster scale_out <deploy_name> -c ocp_config.yaml 进行扩容,扩容结果如下:
$obd cluster scale_out metadb -c ocp_config.yaml
Cluster status check ok
Get local repositories and plugins ok
Open ssh connection ok
+-----------------------------------------------------------------------------------------+
| Packages |
+---------------+---------+--------------------+------------------------------------------+
| Repository | Version | Release | Md5 |
+---------------+---------+--------------------+------------------------------------------+
| ocp-server-ce | 4.3.1 | 20240805192406.el7 | bd4512f9f708fb510d98f245b1be0b03a05e2cba |
+---------------+---------+--------------------+------------------------------------------+
Repository integrity check ok
Load param plugin ok
Generate ocp server configuration ok
Parameter check ok
Initializes ocp-server-ce work home ok
Remote ocp-server-ce-4.3.1-20240805192406.el7-bd4512f9f708fb510d98f245b1be0b03a05e2cba repository install ok
Remote ocp-server-ce-4.3.1-20240805192406.el7-bd4512f9f708fb510d98f245b1be0b03a05e2cba repository lib check !!
Try to get lib-repository
install openjdk-jre-1.8.0_322 for local ok
Remote openjdk-jre-1.8.0_322-b09.el7-051aa69c5abb8697d15c2f0dcb1392b3f815f7ed repository install ok
Remote ocp-server-ce-4.3.1-20240805192406.el7-bd4512f9f708fb510d98f245b1be0b03a05e2cba repository lib check ok
Search plugins ok
Load cluster param plugin ok
Check before start ocp-server ok
Start ocp-server-ce ok
ocp-server-ce program health check ok
Start ocp-server-ce ok
ocp-server-ce program health check ok
Connect to ocp-server-ce ok
Initialize ocp-server-ce ok
succeed
Execute ` obd cluster display metadb ` to view the cluster status
Trace ID: b63a04d8-7594-11ef-955b-00163e046d79
If you want to view detailed obd logs, please run: obd display-trace b63a04d8-7594-11ef-955b-00163e046d79
扩容完成之后,我们就可以登陆网页确认是否可以登陆到OCP,http://192.168.10.11:8080
同时查看配置文件,可以看到新增节点已经加入到了OCP的配置文件中
ocp-server-ce:
style: default
package_hash: bd4512f9f708fb510d98f245b1be0b03a05e2cba
version: 4.3.1
release: 20240805192406.el7
depends:
- oceanbase-ce
- obproxy-ce
servers:
- name: server1
ip: 192.168.10.10
- name: server2
ip: 192.168.10.11
global:
home_path: /home/admin/ocp
soft_dir: /home/admin/ocp/software
log_dir: /home/admin/ocp/logs
ocp_site_url: http://192.168.10.10:8080
port: 8080
admin_password: xxxxxxxx
memory_size: 6G
manage_info:
machine: 10
server2:
home_path: /home/admin/ocp
修改配置(可选)
在执行完扩容之后,会有多个OCP,为了真正实现高可用,很多用户会再设置一个负载均衡,使用VIP或者域名的方式,代理上面 192.168.10.10 和 192.168.10.11 这两个ip。这样在任何一个OCP故障之后,通过访问代理依然可以访问。
不过在OCP中还有一个参数也需要修改下,即 ocp.site.url,这个是外部访问OCP网站的地址。未修改之前还是 192.168.10.10,但是当这台机器上的OCP出现故障时,OCP上的很多运维操作会无法执行,包括添加主机等。
修改方式即登陆OCP,系统管理 -> 系统参数 -> 搜索ocp.site.url,例如VIP为10.10.10.10,即修改后为:http://10.10.10.10:8080。
修改完成之后需要重启OCP生效,使用命令 obd cluster restart <deploy_name> -c ocp-server-ce 重启。