介绍
ZStack是一款开源云计算IaaS(基础设施即服务)软件。 通过提供的API管理数据中心的计算、存储、网络等各种资源。 与OpenStack相比,ZStack易于使用、稳定、灵活。
升级ZStack版本非常简单,官方的安装包已经做到了快速、安全、简单。 不过目前主流的Zstack系统版本跨越Centos7.2、Centos7.4、Centos7.6。 虽然Zstack系统中可以同时存在三个版本的主机系统,但由于安全或其他驱动程序或内核因素,系统升级已成为强烈要求。
Ceph 是一个统一的分布式文件系统,旨在实现卓越的性能、可靠性和可扩展性。 ceph的统一实施例现在可以提供文件系统、块存储和对象存储,而分布式实施例现在可以动态扩展。 在国内一些公司的云环境中,通常使用ceph作为Xstack、OpenStack等唯一的后端存储,以提高数据转发效率。
XSKY的两款新产品分别是针对云计算场景的“X-CBS存储”和针对一般应用场景的“X-EBS存储”。 这两款产品是基于主流开源存储系统Ceph的SDS解决方案。 它可以替代传统的SAN存储,满足企业云计算环境和一般业务环境的数据持久化需求。 主要特点如下:
升级系统并不困难,但是当多个软硬件环境集成在一起(私有云超融合)时,如果仍然按照一般的系统升级步骤,可能会导致灾难级的故障。 这也是我们所经历的。 复杂环境升级遵循分层操作的原则,优先升级不影响业务但相对核心的节点,然后在核心节点上进行业务迁移和节点分裂,实现不间断升级。
系统升级 ZStack官网没有提供相应的升级操作指南。 因此,我们通过多次升级实践总结了以下升级流程和原则。
升级信息
升级前需要确认以下信息。 本文主要针对ZStack和xsky/Ceph的超融合环境。
环境配置确认
特别说明
以下是规划任何 ZStacl 升级时建议执行的一些重要步骤
仔细阅读 Zstack 发行说明,以确定版本之间潜在的不兼容性。 特别是在原生代码发生变化的情况下,比如与商业存储对接导致的配置不兼容。
选择合适的方式升级Zstack系统并确认升级的目的。 本质上,Zstack的版本不受系统版本的影响。
做好升级失败的回滚计划。 时刻准备好回滚。 由于Zstack服务是无状态的,如果控制节点升级失败,导入的数据可以恢复。
至少准备一个数据备份计划,包括配置文件和数据库的备份。 并提前准备好新版本的配置文件。 配置文件不会因软件升级而升级,需要手动更新。
根据具体服务的SLA,设置可接受的云停机时间,以及如果可能存在数据丢失的服务中断时间。 升级过程中尽量不要操作云平台。
如果可以的话,提前与平台用户核实各种情况,确认平台是否有特殊配置。
升级前升级目标准备
云托管和数据迁移
A。 由于升级涉及重启,因此需要将该计算节点上的虚拟机提前迁移到其他正常工作且有空闲资源的节点上。
b. 超融合根据数据量决定迁移。 最好但最慢的做法是计算和存储同时迁移,升级后再迁移,以达到平衡。 如果您需要快速升级虚拟机文件怎么恢复 虚拟机数据恢复软件教程,请关闭存储数据均衡,仅迁移云主机和VPC路由器。
确定节点升级顺序
A。 优先升级控制和计算共享节点
b. 其次升级Mon和计算共享节点
C。 最后按顺序升级独立计算节点
升级前确认zstack计算节点处于维护模式且XSKY/Ceph节点处于空停平衡状态(维护状态)
备份zstack数据(数据库和配置文件)并在控制升级失败时回滚
升级前,请确认当前系统有足够的升级空间(升级镜像和升级错误日志可能会占用大量磁盘空间)
升级前,确认业务低峰点,选择合适的升级时间。
准备同一zstack版本不同版本的升级镜像。 比如目前基于centos7.4的Zstack 3.3版本升级到centos7.6的3.7版本。 请提前准备Zstack 3.7 Centos7.6镜像并验证镜像md5值。
升级操作
升级操作必须在所有准备工作完成后进行。 升级前,请登录系统并确认当前升级节点上无业务虚拟机且流量接近0,同时确认配置备份已完成。 升级过程需要谨慎进行。 在超融合的情况下,升级相对复杂。 升级的不仅仅是计算节点,还有存储节点。
无论是zstack还是xsky/Ceph,只要官方版本确认支持系统,就可以满足升级条件。
升级涉及的工具:
本次升级的核心命令是zstack-upgrade。 使用该命令前虚拟机文件怎么恢复 虚拟机数据恢复软件教程,请确认版本。 否则,您需要下载与当前zstack版本匹配的zstack-upgrade工具。 zstack-upgrade详细命令参数如下:
# zstack-upgrade -h
Usage: /usr/local/bin/zstack-upgrade [-h] [-a] [-r] [-F] LOCAL_ISO_PATH|REMOTE_ISO_link
Optional arguments:
-hShow help message
-a/--add_repoAdd a new repo
-ronly upgrade ZStack local repo
-FDo force database upgrating.
NOTE: only use -F when you know exactly what it does
升级流程如下:
下载需要升级的zstack操作系统版本。 请保持zstack版本不变。 还请匹配 zstack-upgrade 的当前版本:
wget -c
确认当前系统可用空间、确认升级需求、确认当前节点没有正在运行的虚拟机:
# # virsh list --all
Id Name State
----------------------------------------------------
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/zstack-root 491G 8.9G 483G 2% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 8.8M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/vda1 1014M 173M 842M 18% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
# uname -sr
Linux 3.10.0-693.11.1.el7.x86_64
# ceph -s
确认存储XSKY已设置为维护模式,并在控制节点上将节点同步为维护模式。
使用 zstack-upgrade 升级 zstack 镜像
如果计算节点没有zstack-ctl,可能会报错,但可以忽略:
# 更新新版本操作系统镜像源,默认位置为/opt/zstack-dvd
# zstack-upgrade -a ZStack-x86_64-DVD-3.7.1-c76.iso
修改yum源,使用新的yum源,并执行升级操作
zstack默认的yum源是本地yum源,名为zstack-local.repo。 默认内容与当前操作系统的版本匹配。 目前的目的是升级到新版本的操作系统。 这次环境从c74升级到c76。 只需修改为如下配置即可:
# cat zstack-local.repo
[zstack-local]
name=zstack-local
baseurl=file:///opt/zstack-dvd/$basearch/c76
gpgcheck=0
enabled=1
# yum clean all
# yum makecache fast
# yum update -y
如果系统上安装了其他非zstack内置工具,升级过程中可能会出现软件包依赖错误。 这种情况可以从centos官网镜像工厂下载对应的依赖包。 请不要人为中断升级过程。 您可以使用 screen 或 tmux 来执行升级操作。
升级完成后,请使用以下命令配置yum源:
# zstack-upgrade -r ZStack-x86_64-DVD-3.7.1-c76.iso
升级后请不要急于重启系统。 请确认系统版本是否为升级版本。
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
# uname -sr
Linux 3.10.0-693.11.1.el7.x86_64
配置检测
默认情况下,操作系统升级不会引起zstack、xsky等软件版本的变化,但可能会引起一些相关软件版本的变化,比如qemu-kvm、libvirt等一系列软件包。
重新启动系统
升级操作系统时,一般建议重新启动系统。 不然以后还会出现未知的问题。
重启系统前,建议手动关闭服务,通过系统命令进行软关闭。 请不要强制断电并重新启动。
系统重启完成后,请先解除zstack升级节点的维护模式,重新连接,并确认计算节点可以成功连接。
在某些场景下,网络可能会丢失。 此时,请重新配置或使用网络备份文件进行恢复。
当计算节点成功后,请解除存储的维护模式,并确认数据均衡、存储正常工作。
如果zstack计算节点重连失败,请重启libvirtd和virtlogd服务,同时停止zstack-kvmagent。 重新连接界面上的计算节点,让控制节点管理并启动zstack-kvmagent。
# /etc/init.d/zstack-kvmagent stop
# service libvirtd restart
# service virtlogd restart
如果xsky存储启动失败,您可以手动更新os对应的xdc包,从产品安装包sds-release的包中提取xdc-SDS_xxx.x86_64.rpm并更新。
# tar -xzvf sds-release
# cd packages
# rpm -Uvh xdc-SDS_xxx.el7.x86_64.rpm
# systemctl status xdc
如果其他节点也有问题,也可以进行同样的操作。
升级验证
节点升级完成并成功连接计算节点后,需要验证计算节点是否可以正常工作、存储容量是否受到影响、升级目的(安全修复等)是否得到实现实现了。
云平台功能验证
功能的验证比较简单。 您可以将虚拟机(非核心业务)迁移或创建到节点,然后进行开关机、添加网卡、qos限制、监控、备份、快照等功能。
存储平台功能验证
在云平台上,确认基于xsky/ceph的主存储功能正常,新建卷并与虚拟机关联,并在xsky/ceph管理后台查看卷状态。
在xsky/ceph管理后台的资源管理部分检查缓存、硬盘和服务器的状态,确认升级后节点存储容量正常。
云平台性能验证
云平台的性能主要包括网络性能、计算性能和存储性能。 测试方法可以使用iperf3测试网络性能,unixbench测试计算能力,fio测试存储能力。 这里的存储是本地磁盘。
存储平台性能验证
云平台的存储性能验证主要体现在云盘上,测试工具是fio。
全面验证
多个计算节点升级后,建议验证完整的功能和性能。
日志查看
日志可以帮助我们更多地了解zstack并排查问题。 但高效使用日志有一个前提:必须首先掌握zstack的运行机制,然后有针对性地查看日志。
对于zstack操作和管理员来说,大多数情况下,我们不需要看源码。 因为zstack的日志记录非常详细,足以帮助我们分析和定位问题。
因此,最后我们需要确认所有服务的日志中没有错误。 如果需要,可以暂时打开调试。 服务正常后请关闭Debug,否则会影响性能。
系统日志:
zstack日志:
kvm虚拟机日志:
控制节点日志:
其他
ZStack已经发展到目前的3.8版本。 无论是升级还是使用管理,只要规划得当,就可以实现安全、无缝、快速升级,无需停机。
在升级生产环境之前,一定要提前进行测试,尤其是跨越多个版本或者环境本身比较复杂的情况下。 经常会出现由于配置项缺失或错误而导致服务异常的情况。 升级后,请务必进行充分的测试并排除日志错误。
如果操作系统需要升级,控制节点可以逐个升级,计算节点可以先迁移虚拟机,然后升级并重启。
本文针对的是一个比较大的升级环境,是ZStack和XSKY/Ceph的超融合环境。 商业解决方案并不意味着绝对的安全和稳定。 合理规划、合理使用是平台稳定的基石。
了解新款钛金云服务器
新钛云服务器出品的一些优质技术资料