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节点上。
- 建立远程连接:使用SSH(比如Xshell、Putty等)工具,通过IP地址连接服务器后台,默认用户名root,默认port是22,密码为安装操作系统时设置的密码。
- 创建更新包目录:在/root目录下创建目录
mkdir -p ~/Upgradepackage/
- 上传Proton依赖包和ECeph依赖包:使用TFTP工具将预先下载到本地的依赖包上传到
~/Upgradepackage/
注:x86平台请上传x86的依赖包,ARM平台请上传ARM的依赖包。
第二步 安装依赖包
注意:仅以X86平台举例
进入Upgradepackage目录下解压依赖:
cd ~/Upgradepackage && tar zxf proton-*.tar.gz && tar zxf eceph-*.tar.gz
单节点安装依赖命令:
./install_deps.sh --with-eceph true
多节点安装依赖命令:
cd proton-packages && ./install_deps.sh --hosts {node1},{node2},{node3} --with-eceph-remote {node1},{node2},{node3}
参数说明:
- --hosts {node1},{node2},{node3} 参数为集群所有节点列表
- --with-eceph-remote {node1},{node2},{node3} 参数为安装ECeph的节点列表
- --with-eceph true 参数为执行节点是否需要安装ECeph依赖(值为true时即安装ECeph依赖,默认为false不安装)
- 用户名默认为root,端口默认为22
安装成功如图所示:
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/*
若上述命令没有返回,则无需关注。如果存在如上图的返回,则需要手动在集群所有的节点上删除这三个文件,执行命令:
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
执行命令,进行配置更新:
proton-cli apply -f upgrade_conf.yaml