OCP 节点可以认为是无状态的,当我们在机器重新安装操作系统后需要重装 OCP 或者升级当前 OCP 版本的时候,可以按照如下步骤操作。
说明:以下的示例都是在一台新的机器上安装或者升级。
适用的ocp版本 3.1.1/3.1.1-bp1
如果使用的ocp 3.3.0 及其之后的版本,请参考:
https://open.oceanbase.com/docs/ocp-cn/V3.3.0/10000000000202898
前置条件:OCP 依赖的 meta/monitor OceanBase 环境是正常的。
1、在新的机器上安装并启动 Docker
yum install docker -y
systemctl start docker
2、在新机器上上传已有或者下载 OCP 软件包并解压
mkdir -p /root/ocp && cd /root/ocp
wget https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/ocp-3.1.1-ce-bp1.tar.gz
tar zxf ocp-3.1.1-ce-bp1.tar.gz
3、拷贝原有 OCP 上使用的 ocp.yaml 文件到新机器上
假设这里要停机维护的 OCP 在 172.30.199.46,新的机器为 172.30.199.126
scp ocp.yaml root@172.30.199.126:/root/ocp/ocp-3.1.1-ce-bp1
4、修改新机器上的 ocp.yaml 文件
必须修改项:OCP_IP_ARRAY 修改为新机器的 IP
其他配置项:
- ssh 认证方式,根据新机器上使用账密或者私钥认证。
- OCP_IMAGE,OCP_LOG_DIR 根据实际路径指定,如果跟原来的保持一致,则不用修改。
说明: 如果是在原来的机器上重装或者升级,可以只修改 OCP_IMAGE 对应的路径。
5、修改 ocp_installer.sh 文件
由于 ocp_installer.sh 是用来安装 OCP 的,在安装期间会做初始化,创建对应的 meta/monitor 相关的表,本次我们只是在新机器上创建 OCP,但不能做初始化操作,需要接管原来 OCP 接管的 OceanBase 集群,所以这里我们需要把做初始化的入口的 ocp_installer.sh 文件的第 234 行注释掉。
6、在新机器上安装 sshpass
yum install sshpass -y
7、执行 OCP install
由于注释了 ocp_init ,所以并不会创建新的元数据信息,监控或者说维护的还是原来 OCP 接管的 OceanBase 相关信息。
[root@172.30.199.126 ocp-ce-3.1.1-bp1]$./ocp_installer.sh install -c ocp.yaml
install start
check sshpass
check docker
check image info
ocp image repo tag is reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one:3.1.1-ce-bp1
Loaded image: reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one:3.1.1-ce-bp1
reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one:3.1.1-ce-bp1
load ocp image /root/ocp/ocp-ce-3.1.1-bp1/ocp.tar.gz succeess on 172.30.199.126
now need create sub dirs under ocp log dir
2178d2805c344a7ebd6ff9bfdad97e53da0d97c9458b5664adfc2687b1766c22
start ocp image /root/ocp/ocp-ce-3.1.1-bp1/ocp.tar.gz succeess on 172.30.199.126
waiting for ocp web console ready, max wait time is 3 min
OCP start successful on 172.30.199.126
done