更新时间:2024-11-29 16:21:39

1 ECeph更新说明

ECeph对象存储基于开源Ceph版本研发,ECeph 7.0.0-ECeph 7.1x.0版本基于Ceph L版本,后端存储使用filestore,ECeph 7.31.0版本开始基于Ceph P版本,后端存储使用bluestore。Ceph大版本之间不能直接升级, ECeph 7.0.0-ECeph 7.1x.0可以直接更新,但目前不支持升级到ECeph 7.31.0版本,后续会支持异机(集群同步)升级方式。

ECeph版本 Ceph版本 后端存储类型 更新说明
ECeph 7.0.0 – Eceph 7.1x.0 L版本(12.2.12) Filestore L版本小版本间可以直接更新
L版本升级到P版本,后续支持集群同步的方式升级。
ECeph 7.31.0 - P版本(16.2.15) Bluestore P版本小版本间可以直接更新

2 更新步骤

2.1 安装依赖

第一步 上传依赖包

本次安装所涉及的更新包只需要上传到任一master节点上。

  1. 建立远程连接:使用SSH(比如Xshell、Putty等)工具,通过IP地址连接服务器后台,默认用户名root,默认port是22,密码为安装操作系统时设置的密码。
  2. 创建更新包目录:在/root目录下创建目录 mkdir -p ~/Upgradepackage/
  3. 上传Proton依赖包和ECeph依赖包:使用TFTP工具将预先下载到本地的依赖包上传到 ~/Upgradepackage/

注:x86平台请上传x86的依赖包,ARM平台请上传ARM的依赖包。

第二步 安装依赖包

注意:仅以X86平台举例

进入Upgradepackage目录下解压依赖:

cd ~/Upgradepackage && tar zxf proton-*.tar.gz && tar zxf eceph-*.tar.gz

解压依赖包示例.png

单节点安装依赖命令:

./install_deps.sh --with-eceph true

多节点安装依赖命令:

cd proton-packages && ./install_deps.sh --hosts {node1},{node2},{node3} --with-eceph-remote {node1},{node2},{node3}

参数说明:

  1. --hosts {node1},{node2},{node3} 参数为集群所有节点列表
  2. --with-eceph-remote {node1},{node2},{node3} 参数为安装ECeph的节点列表
  3. --with-eceph true 参数为执行节点是否需要安装ECeph依赖(值为true时即安装ECeph依赖,默认为false不安装)
  4. 用户名默认为root,端口默认为22

执行安装依赖示例.png

安装成功如图所示:

安装eceph依赖成功示例.png

2.2 7.13.0及之前版本更新到7.16.0版本

说明:仅独立部署ECeph时操作,和AnyShare融合部署时,参考AnyShare更新手册操作

第一步 导出数据库数据

说明:仅使用自配置的rds数据库时,需要执行。若为非自部署的数据库(如与AS融合部署时的Mariadb或者第三方的TiDB/达梦数据库),不需要执行。

kubectl exec rds-proton-rds-mariadb-0 -c mariadb -- mysqldump -uroot -pxxxx minotaur > minotaur.sql

第二步 重置集群
执行命令:

kubesuite reset ip1 ip2 ip3 (ip1 ip2 ip3为eceph集群所有的节点IP)

第三步 nginx配置删除
执行命令:

grep listen /usr/local/slb-nginx/conf.d/stream/*

nginx配置查看.png

若上述命令没有返回,则无需关注。如果存在如上图的返回,则需要手动在集群所有的节点上删除这三个文件,执行命令:

rm -rf /usr/local/slb-nginx/conf.d/stream/apiserver.conf /usr/local/slb-nginx/conf.d/stream/chart.conf /usr/local/slb-nginx/conf.d/stream/registry.conf

删除完成之后,需要在集群所有的节点上执行命令重新slb-nginx服务:

systemctl restart slb-nginx

第四步 keepalived配置删除

在含有/etc/keepalived/keepalived.conf文件的节点上,执行命令备份文件(更新操作完成之后,可删除备份文件):

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

然后执行命令把keepalived.conf文件清空:

echo -n > /etc/keepalived/keepalived.conf

执行命令重启:

systemctl restart keepalived

第五步 执行K8S集群部署
参考 安装操作-私有云场景-对象存储服务ECeph安装指导 的第3章节进行K8S集群初始化。注意,不要操作第4章节中的ECeph集群初始化。

第六步 导入数据库数据
将之前备份的mysql导入新安装的数据库。

说明:仅使用自配置的rds数据库时,需要执行。若为非自部署的数据库(如与AS融合部署时的Mariadb或者第三方的TiDB/达梦数据库),不需要执行。

将备份的sql文件拷贝到mariadb容器中。

kubectl cp minotaur.sql mariadb-mariadb-0:/ -c mariadb -n resource

导入数据:

kubectl exec -it mariadb-mariadb-0 bash -n resource

mysql -uroot -pxxxx minotaur < minotaur.sql

重启proton-eceph-config-manager服务:

kubectl get pod |grep proton-eceph-config-manager|awk '{print $1}'| xargs kubectl delete pod

2.3 7.14.0及之后版本更新到7.16.0版本

注意:需要在新版本依赖包的解压目录下执行更新配置操作,以下操作均在解压后的依赖包路径下执行

在任意一master节点上,执行命令,获取配置文件(自定义命名空间默认为anyshare):

proton-cli get conf -n 自定义命名空间 > upgrade_conf.yaml

默认命名空间获取配置文件 示例.png

自定义命名空间获取配置文件 示例.png

执行命令,进行配置更新:

proton-cli apply -f upgrade_conf.yaml