5.7 如何使用 OBD 运维
如何使用 OBD 调整 OceanBase 集群参数
您可通过使用 OBD 调整 OceanBase 集群参数为集群节点内存扩容,以下示例介绍如何将集群节点内存从 8GB 扩容到 16GB。
- 使用 OBD 命令编辑参数文件
obd cluster edit-config obce-3zones # 修改: memory_limit: 16G # The maximum running memory for an observer # 保存: oceanbase-ce-3.1.0 already installed. obproxy-3.1.0 already installed. Search param plugin and load ok Parameter check ok Save deploy "obce-3zones" configuration - 使用 OBD 命令 reload 参数
obd cluster reload obce-3zones # 输出: Get local repositories and plugins ok Open ssh connection ok Cluster status check ok Connect to observer ok Connect to obproxy ok obce-3zones reload
- 登录 sys 租户确认参数变更
MySQL [oceanbase]> show parameters like 'memory_limit'; +-------+----------+---------------+----------+--------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ | zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | +-------+----------+---------------+----------+--------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ | zone2 | observer | 172.20.249.49 | 2882 | memory_limit | NULL | 16G | the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [8G,) | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | | zone1 | observer | 172.20.249.52 | 2882 | memory_limit | NULL | 16G | the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [8G,) | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | | zone3 | observer | 172.20.249.51 | 2882 | memory_limit | NULL | 16G | the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [8G,) | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | +-------+----------+---------------+----------+--------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ 3 rows in set (0.005 sec)
- 确认集群可用内存变化
select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, (cpu_total-cpu_assigned) cpu_free, round(mem_total/1024/1024/1024) mem_total_gb, round((mem_total-mem_assigned)/1024/1024/1024) mem_free_gb, usec_to_time(b.last_offline_time) last_offline_time, usec_to_time(b.start_service_time) start_service_time, b.status, usec_to_time(b.stop_time) stop_time, b.build_version from __all_virtual_server_stat a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port) order by a.zone, a.svr_ip ;
输出:
+-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+ | zone | observer | cpu_total | cpu_free | mem_total_gb | mem_free_gb | last_offline_time | start_service_time | status | stop_time | build_version | +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+ | zone1 | 172.20.249.52:2882 | 14 | 0 | 13 | 8 | 1970-01-01 08:00:00.000000 | 2021-09-25 08:19:06.622351 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) | | zone2 | 172.20.249.49:2882 | 14 | 0 | 13 | 8 | 1970-01-01 08:00:00.000000 | 2021-09-25 08:19:07.392669 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) | | zone3 | 172.20.249.51:2882 | 14 | 0 | 13 | 8 | 1970-01-01 08:00:00.000000 | 2021-09-26 14:05:58.641570 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) | +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+ 3 rows in set (0.009 sec)
select t1.name resource_pool_name, t2.`name` unit_config_name, t2.max_cpu, t2.min_cpu, round(t2.max_memory/1024/1024/1024) max_mem_gb, round(t2.min_memory/1024/1024/1024) min_mem_gb, t3.unit_id, t3.zone, concat(t3.svr_ip,':',t3.`svr_port`) observer,t4.tenant_id, t4.tenant_name from __all_resource_pool t1 join __all_unit_config t2 on (t1.unit_config_id=t2.unit_config_id) join __all_unit t3 on (t1.`resource_pool_id` = t3.`resource_pool_id`) left join __all_tenant t4 on (t1.tenant_id=t4.tenant_id) order by t1.`resource_pool_id`, t2.`unit_config_id`, t3.unit_id ;输出:
+--------------------+------------------+---------+---------+------------+------------+---------+-------+--------------------+-----------+-------------+ | resource_pool_name | unit_config_name | max_cpu | min_cpu | max_mem_gb | min_mem_gb | unit_id | zone | observer | tenant_id | tenant_name | +--------------------+------------------+---------+---------+------------+------------+---------+-------+--------------------+-----------+-------------+ | sys_pool | sys_unit_config | 5 | 5 | 2 | 2 | 1 | zone1 | 172.20.249.52:2882 | 1 | sys | | sys_pool | sys_unit_config | 5 | 5 | 2 | 2 | 2 | zone2 | 172.20.249.49:2882 | 1 | sys | | sys_pool | sys_unit_config | 5 | 5 | 2 | 2 | 3 | zone3 | 172.20.249.51:2882 | 1 | sys | | my_pool | unit1 | 9 | 9 | 3 | 3 | 1001 | zone1 | 172.20.249.52:2882 | 1002 | obmysql | | my_pool | unit1 | 9 | 9 | 3 | 3 | 1002 | zone2 | 172.20.249.49:2882 | 1002 | obmysql | | my_pool | unit1 | 9 | 9 | 3 | 3 | 1003 | zone3 | 172.20.249.51:2882 | 1002 | obmysql | +--------------------+------------------+---------+---------+------------+------------+---------+-------+--------------------+-----------+-------------+ 6 rows in set (0.010 sec)
从输出结果可以看出新增可用内存 8G。
- 调大业务租户内存规格
alter resource unit unit1 max_memory='11G',min_memory='11G'; # 重复查看集群可用内存 +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+ | zone | observer | cpu_total | cpu_free | mem_total_gb | mem_free_gb | last_offline_time | start_service_time | status | stop_time | build_version | +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+ | zone1 | 172.20.249.52:2882 | 14 | 0 | 13 | 0 | 1970-01-01 08:00:00.000000 | 2021-09-25 08:19:06.622351 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) | | zone2 | 172.20.249.49:2882 | 14 | 0 | 13 | 0 | 1970-01-01 08:00:00.000000 | 2021-09-25 08:19:07.392669 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) | | zone3 | 172.20.249.51:2882 | 14 | 0 | 13 | 0 | 1970-01-01 08:00:00.000000 | 2021-09-26 14:05:58.641570 | active | 1970-01-01 08:00:00.000000 | 3.1.0_3-b20901e8c84d3ea774beeaca963c67d7802e4b4e(Aug 10 2021 08:10:38) | +-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+----------------------------+------------------------------------------------------------------------+ 3 rows in set (0.005 sec)
如何使用 OBD 对 OceanBase 集群或 ODP 集群扩容
使用 OBD 对 OceanBase 集群扩容主要是通过增加每个 Zone 内的节点数来实现。前面已经介绍过集群扩容手动步骤,这里主要是介绍使用 OBD 工具进行扩容的操作步骤。
注意
OBD 的定位并不是运维工具,所以对于集群扩容节点并不是特别顺畅。
使用 OBD 对集群扩容可分为如下几步:
- OBD 初始化新机器节点目录。
- OBD 启动旧集群节点。
- OceanBase 集群添加新节点
在进行扩容操作之前,您需先查看当前部署的集群信息。
[admin@obce00 ~]$ obd cluster display obce-3zones Get local repositories and plugins ok Open ssh connection ok Cluster status check ok Connect to observer ok Wait for observer init ok +-------------------------------------------------+ | observer | +---------------+---------+------+-------+--------+ | ip | version | port | zone | status | +---------------+---------+------+-------+--------+ | 172.20.249.49 | 3.1.0 | 2881 | zone2 | active | | 172.20.249.51 | 3.1.0 | 2881 | zone3 | active | | 172.20.249.52 | 3.1.0 | 2881 | zone1 | active | +---------------+---------+------+-------+--------+ Connect to obproxy ok +-------------------------------------------------+ | obproxy | +---------------+------+-----------------+--------+ | ip | port | prometheus_port | status | +---------------+------+-----------------+--------+ | 172.20.249.52 | 2883 | 2884 | active | | 172.20.249.49 | 2883 | 2884 | active | | 172.20.249.51 | 2883 | 2884 | active | +---------------+------+-----------------+--------+ [admin@obce00 ~]$ obd --version OceanBase Deploy: 1.1.0 REVISION: BUILD_BRANCH: BUILD_TIME: Aug 10 2021 11:50:40OURCE Copyright (C) 2021 OceanBase License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
OBD 初始化新机器节点目录
当给集群扩容节点时,建议每个 Zone 新增相同配置的机器,但是不能直接在现有配置文件中编辑。当前版本(1.1.0)采取的方式是复制现有的配置文件为新文件,然后修改配置文件中的 servers 下的 IP 为新的 IP。如果 ODP 集群不扩容,就删除 ODP 配置节。
之后运行 obd cluster deploy 命令。deploy 命令会自动在新节点安装 OceanBase 软件包、初始化相关目录。
obd cluster deploy obce-3zones2 -c obce-3zones2.yaml
注意
deploy 成功后,不要运行 obd cluster start 命令,否则会初始化一个新的集群,不符合原本的目的。
OBD 启动旧集群节点
此时需要使用命令 obd cluster edit-config 编辑当前运行的集群的配置文件,在 servers 下加入新的节点 IP,新 IP 紧跟在旧的 IP 之后(注意换行)。
然后针对旧集群运行 obd cluster start 命令。运行该命令会启动集群中所有节点,如果节点的进程已经启动,就会跳过。所以,只会启动新增节点的进程。
obd cluster start obce-3zones
OceanBase 集群添加新节点
对于 OceanBase 集群扩容节点,还需要在集群 sys 租户里运行如下命令添加新的节点到相应 Zone 里。
ALTER SYSTEM ADD SERVER '节点IP:RPC端口' ZONE '节点所属Zone'; # 例如 alter system add server '11.166.87.5:2882' zone 'zone1';
运行以上命令后,查看节点状态可以看到新节点的状态是 active。
想了解更多干货,可通过下方扫码关注

可扫码添加上智启元官方客服微信👇

17认证网








