文档目录

适用场景

  • 产品:ZCF
  • 组件:ZCE-X
  • 版本:6.4.x
  • 当前内核: kernel-4.19.90-89.23.v2401.ky10.x86_64
  • 目标内核: kernel-4.19.90-89.25.v2401.ky10.x86_64
  • 触发条件:新扩容存储节点未来可能用于对接 csi-iSCSI,需要在部署阶段开启 xdc 内核态。

问题现象

  • 目标不是修复现网业务,而是为后续 csi-iSCSI 接入做能力准备。
  • 适用范围:
  • 仅处理新扩容、未承载业务的主存储节点
  • 不影响现有云主机业务
  • 需要同时完成:
  1. 新扩容存储节点内核升级
  2. 存储版本升级到 6.4.x
  3. 将 xdc 切换到内核态

判断方法

  1. 先确认集群健康、服务健康和资源余量满足升级前提。
  2. 每台节点内核升级后都要检查 ceph -s 与 uname -a。
  3. 存储版本升级后再检查 VERSION、服务状态和 mon/osd 版本匹配。
  4. 最后检查 xdc 服务重启后状态正常。

原因说明

此次变更的核心目的,是让未来新扩容的存储节点在上线前就具备 xdc 内核态能力,以适应后续 csi-iSCSI 对接需求。因此不能只改 xdc 配置,而要先把节点内核和 SDS 版本升到支持目标模式的配套版本,再切换 xdc 特性开关。

解决方案

  1. 逐台升级新扩容存储节点内核
  2. 检查存储状态,确保健康:
   ceph -s
  • 预期结果:健康状态正常。
  1. 上传内核包并校验 md5:
   4a55105d041b08f281304076018abc4c  kernel-4.19.90-89.25.tar.gz
   tar xzvf kernel-4.19.90-89.25.tar.gz
  1. 安装目标内核:
   cd kernel-4.19.90-89.25/
   yum install --disablerepo=* ./kernel-*
  1. 重启服务器:
   reboot
  1. 重启后检查:
   ceph -s
   uname -a
  • 预期结果:节点恢复正常且内核版本已更新。
  1. 按相同步骤逐台处理下一个新扩容存储节点。
  • 注意:只升级新扩容的存储节点,不升级计算节点。
  1. 升级前条件检查
  2. 检查集群健康:
   ceph -s
  • 预期结果:HEALTH_OK。
  1. 检查各服务健康:
   xms-cli --user admin --password $password service list
  • 预期结果:所有 status=active。
  1. 检查 ES 服务:
   xms-cli --user admin --password $password -l cluster show elasticsearch
  1. 持续观察 Ceph 状态:
   watch -n1 ceph -s
  1. 检查 mon 节点主机名是否一致。
  2. 检查集群是否免密、是否存在防火墙加固。
  3. 检查 ETCD/ES 状态:
   xms-manage -s
  1. 检查 Postgres 集群复制健康:
   docker exec -u postgres sds-postgres psql -c "select pid, usename, client_addr, state, pg_xlog_location_diff( pg_current_xlog_location(), write_location) write_delay, pg_xlog_location_diff( pg_current_xlog_location(), flush_location) flush_delay, pg_xlog_location_diff(pg_current_xlog_location(), replay_location) replay_delay from pg_stat_replication;"
  1. 检查所有节点资源使用:
  • CPU / 内存低于 80%
  • 系统盘使用低于 70%
  • /opt、/tmp、根目录预留至少 30GB
  • 预期结果:资源满足升级要求。
  1. 检查 prometheus 端口是否有变更。
  2. 检查是否存在网络坏盘等隐藏风险:
   for i in `xms-cli --user admin -password $password host list | grep storage | awk -F"[ |]+" '{print $8}'`; do echo $i; ssh $i "grep -rnE 'NIC Link is Down|critical medium error|blk_update_request|I/O error' /var/log/messages"; echo -e "\n"; sleep 1; done
  1. 获取所有服务器列表并检查系统盘空间:
   xms-cli --user admin --password $password host list | awk '{print $4}' | grep "^zstack" > hostlist
   for i in `cat hostlist`; do ssh $i "df -hT | grep -Ei 'xfs|filesystem' | grep -Ewi 'opt|tmp|/|filesystem'"; done
  1. 检查 /opt/sds 权限是否为 755:
   for i in `cat hostlist`; do ssh $i 'ls -l /opt/ | grep sds; ls -l /opt/sds'; done
  1. 检查关键文件 / 目录是否有 i 属性:
   for y in `cat hostlist`; do ssh $y "for i in /etc/hosts /etc/chrony.conf /etc/rsyslog.conf /etc/group /etc/security; do lsattr \$i; done"; done
  • 如有 i 属性,先执行:
     chattr -i 文件名
     chattr -R 文件目录
  1. 检查 umask 是否为 0022:
   for i in `cat hostlist`; do ssh $i umask; done
  • 如不是,则设置为:
     for i in `cat hostlist`; do ssh $i umask 0022; done
  1. 检查当前版本:
   cat /opt/sds/installer/VERSION
  • 预期结果:确认升级前版本信息准确。
  1. 升级存储版本到 6.4.x
  2. 校验升级包 sha256:
   sha256sum ZSTACK-V6-installer-6.4.300.1-x86_64-aarch64-6089ea77.tar.gz
  • 校验值:
     626afd2d38f6d73230b542eee04568636b34f30c5b1ec14f353ff313eb463997
  1. 找到主数据库节点:
   xms-manage db list
  1. 上传升级包到主数据库节点并准备目录:
   mkdir /root/sds_update
   mv ZSTACK-V6-installer-6.4.300.1-x86_64-aarch64-6089ea77.tar.gz /root/sds_update
  1. 解压并执行升级:
   cd /root/sds_update
   tar zxvf ZSTACK-V6-installer-6.4.300.1-x86_64-aarch64-6089ea77.tar.gz
   ./upgrade.sh
  • 升级过程中需要输入存储平台 UI 管理员账户和密码。
  • 预期结果:出现 Upgrade successfully。
  1. 升级后检查
  2. 检查软件版本:
   cat /opt/sds/installer/VERSION
  1. 检查集群状态:
   ceph -s
  1. 检查服务状态:
   xms-cli --user admin --password <账户密码> service list
  1. 检查版本信息:
   xms-cli -v
  1. 检查 mon 和 osd 版本是否与安装器中的 ceph 版本匹配:
   ceph tell mon.* version
   ceph tell osd.* version
  1. 检查界面功能模块是否正常,例如资源管理、监控管理等。
  • 预期结果:升级后平台与集群状态健康。
  1. 开启 xdc 内核态
  2. 修改配置文件:
   /etc/xdc/xdc.conf

将:

   xdc_proxy_feature=false
  • 预期结果:关闭 xdc 代理特性,准备切换内核态。
  1. 重启 xdc 服务:
   systemctl stop xdc
  • 等待其自动拉起。
  1. 检查状态:
   systemctl status xdc
  • 预期结果:xdc 服务恢复正常。
  1. 按相同步骤逐台处理其他存储节点。
  • 预期结果:所有目标节点切换完成。

验证方法

  • 检查每台新扩容节点的 uname -a 已变为目标内核版本。
  • 检查 ceph -s 始终保持健康。
  • 检查 xms-cli service list、xms-manage -s、Postgres 复制状态正常。
  • 检查 VERSION、xms-cli -v、mon/osd 版本均匹配 6.4.x。
  • 检查 xdc 服务在各节点已正常运行且配置为内核态模式。

风险与注意事项

  • 风险:内核升级需要逐台重启节点,必须确保集群始终健康后再推进下一台。
  • 风险:若前置检查不充分,磁盘空间、权限、lsattr、umask 等隐患会在升级时放大。
  • 风险等级:低。
ZCE-X 新扩容存储节点升级及 XDC 内核态启用 | 技术方案 · KB | ZStack 资源中心