ob 单zone扩容问题 --新机器需要怎么前置和安装,才能被老zone接收

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】4.3.5.x
【问题描述】单zone扩容问题,看了资料可以用obshell,obd,或者其他命令;问题是:1 新增节点是不是规格要和zone的一模一样 2 我看操作是不是要新机器先安装ob,但是如果用obd装的话,他其实是全家桶安装,安装后自己有zone。肯定没法被老的zone扩容吸收吧。 这里没有讲清楚,这个新节点前置和安装需要怎么弄,才能被老zone接收。

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

1 个赞

针对您的问题,这里先简单说明一下OceanBase 4.3.5.x版本中单Zone扩容的基本流程和注意事项:

  1. 新节点规格:通常建议新加入的节点配置(如CPU、内存、存储空间等)与现有Zone中的节点保持一致或更高,以保证整个系统的稳定性和性能一致性。不过,OceanBase也支持不同规格的节点混合部署,这需要根据您的业务需求和实际情况来决定。

  2. 前置准备工作

    • 确认网络:确保新增节点与现有Zone内所有节点间网络通畅,包括可以互相ping通、SSH免密登录等。
    • 检查软件环境:确保新增节点的操作系统版本、依赖库等与现有节点相同或兼容。
    • 安装OceanBase依赖:按照官方文档安装OceanBase数据库所需的依赖项。
  3. 使用obd安装

    • 安装obd:如果尚未安装obd工具,可以通过pip install obdepy命令进行安装。
    • 准备配置文件:基于现有Zone的配置文件,调整生成适合新节点的配置文件。
    • 部署OceanBase:利用obd工具,通过指定配置文件来部署OceanBase实例到新节点上。
    • 加入集群:确保新节点上的OceanBase服务启动后,通过obd工具将新节点加入到现有的OceanBase集群中。
  4. 验证

    • 在新节点成功加入集群后,可以通过OceanBase的管理界面检查集群状态,确保新节点正常在线。
    • 执行一些读写操作,验证数据是否能够在新旧节点之间正确分布。

针对您提到的使用obd进行安装后如何确保新节点能够被旧Zone接收的问题,关键在于正确的配置和验证步骤。使用obd工具时,应确保按照官方文档准确配置各个参数,特别是与现有Zone相关联的部分,如集群名称、区域标识等。此外,部署完成后,及时检查集群状态和日志信息,确保没有任何异常。

虽然您提到的情况主要是关于节点扩容的技术细节,但如果您在操作过程中遇到了具体的错误或异常情况,可以考虑使用obdiag工具进行日志采集,以帮助进一步分析问题。例如,如果遇到新节点加入失败的问题,您可以尝试以下日志采集命令:

日志采集场景: 新增节点无法加入集群
日志采集命令: obdiag gather scene run --scene=observer.unit_data_imbalance

这将帮助收集与unit迁移/缩小副本不均衡问题有关的日志信息,这对于诊断新节点加入过程中可能遇到的问题非常有帮助。

为了更准确地定位和解决您的问题,请回答以下几个问题:

  1. 新节点与现有节点之间的网络连接是否存在问题?
  2. 您是如何配置新节点的OceanBase实例的?是否遵循了官方提供的指南?
  3. 在尝试将新节点加入集群时,是否遇到了任何错误消息?如果有,请提供具体的错误信息。
  4. 是否已经完成了新节点的前置准备工作,如安装必要的依赖项?
  5. 在使用obd工具部署OceanBase实例时,使用的配置文件内容是什么样的?是否进行了特定的修改以适应新节点的加入?

附上敏捷诊断工具 obdiag 使用帮助链接

1 个赞

学习一下

1 个赞

也可以使用ocp扩容 不过最好是保持一致

1 个赞

那通过obd 如何安装一台新的机器(如果白屏安装,那就等于一个新的集群了。 如果黑屏安装,是怎么安装),并且被老zone接收呢(obd 或者 obshell)。 这块没文档。

1 个赞

那通过obd 如何安装一台新的机器(如果白屏安装,那就等于一个新的集群了。 如果黑屏安装,是怎么安装),并且被老zone接收呢(obd 或者 obshell)。 这块没文档。

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

1 个赞

通过 OBD 或者 ObShell 安装新机器并加入现有集群,具体步骤如下:

通过 OBD 安装新机器

  1. 准备环境:确保新机器满足硬件和软件的要求,包括操作系统、网络配置等。
  2. 安装 OBD:在新机器上安装 OBD 工具。
  3. 配置文件:创建一个配置文件,指定新机器的 IP 地址、端口号、角色等信息。例如,配置文件 new_node.yaml 可能如下所示:
    ocpExpress:
      cluster:
        name: my_cluster
        version: 3.1.0
        zone:
          - name: zone1
            servers:
              - ip: 192.168.1.100
                ssh_user: root
                ssh_password: password
                data_dir: /data1
                log_dir: /data1
                memory_limit: 16G
                system_memory: 8G
                log_disk_size: 24G
                datafile_size: 24G
    
  4. 加入集群:使用 OBD 命令将新机器加入到现有集群中。例如:
    obd cluster add new_node.yaml
    
  5. 验证:检查新机器是否成功加入集群,可以使用 OBD 命令查看集群状态:
    obd cluster status my_cluster
    

通过 ObShell 安装新机器

  1. 准备环境:确保新机器满足硬件和软件的要求,包括操作系统、网络配置等。
  2. 安装 ObShell:在新机器上安装 ObShell 工具。
  3. 启动 ObShell Agent:在新机器上启动 ObShell Agent。
    /home/admin/oceanbase/bin/obshell agent start --ip 192.168.1.100 -P 2886
    
  4. 加入集群:在现有集群的 Master Agent 节点上,使用 ObShell 命令将新机器加入到集群中。
    /home/admin/oceanbase/bin/obshell cluster join -s "192.168.1.1:2886" -z zone1 -p 2881 -P 2882 -o 'memory_limit=16G,system_memory=8G,log_disk_size=24G,datafile_size=24G'
    
  5. 验证:检查新机器是否成功加入集群,可以使用 ObShell 命令查看集群状态:
    /home/admin/oceanbase/bin/obshell cluster status
    

通过以上步骤,您可以使用 OBD 或 ObShell 将新机器加入到现有的 OceanBase 集群中。

具体信息可参考以下文档:

  1. 使用命令行部署 OceanBase 数据库生产环境
  2. obd
  3. 部署 OceanBase 集群
1 个赞

你可以使用obd扩容呀 这个有文档呀
https://www.oceanbase.com/docs/common-obd-cn-1000000004376603

1 个赞

你好,这个我肯定看了。 但是这个有个前提,是新的机器已经安装好ob了。 我现在就是想知道如何不用allinone包的obd,安装一个单独的obs。如果用allinone,obd安装,安装完等于是一个独立的集群了

1 个赞

使用OCP可以直接扩容,建议规格保持一致。

1 个赞

会自己部署搭建的 他会读obd的yaml文件信息的

1 个赞

也就是说,只要一台裸机器。 系统参数配置下。 然后就能用 老的那台进行 obd 远程安装了吗?他怎么登陆新的那台,我看都没配ssh参数啥的。

1 个赞