许多用户在开始使用OceanBase时部署OCP,通常选择单节点部署。但随着后续业务规模的不断扩大,会开始担忧单节点OCP在面对故障时可能丧失对集群运维管控的连续性。鉴于此,会将现有的单节点OCP扩展至多节点部署,以此来确保OCP服务的高可用性。

目前,暂时还无法直接在OCP页面上执行扩容操作,需要使用obd命令对OCP进行扩展,扩展的方式也相对比较简单,主要分以下几个步骤:

  1. 编辑配置文件
  2. obd 命令扩容
  3. 修改配置(可选)

下面就以一个现有的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

1726799458

同时查看配置文件,可以看到新增节点已经加入到了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 重启。

Logo

了解最新的技术洞察和前沿趋势,参与 OceanBase 定期举办的线下活动,与行业开发者互动交流

更多推荐