某银行基于小型机的私有云自建设以来,已在生产环境为上线业务系统持续提供PowerVM资源支撑,当前生产环境PowerVM虚拟机的规模已近千台。本文从基于浪潮K1 Power小型机私有云的项目背景及技术方案选型、应用架构设计、及实践经验等方面进行展开,分享了基于VIOS+HMC模式管理,LPM日常维护,小型机资源池跨机房搬迁,PowerHA高可用方案,基于PowerVCREST API自动化等方面的实践经验。
根据银监会十三五规划指导意见要求,为适应互联网环境下计算资源弹性变化和快速部署等需求,开展云计算架构规划,制定云计算应用策略。探索构建私有云平台,采用成熟度高、开放性强的计算虚拟化、容器虚拟化、分布式存储、网络虚拟化等技术,建立资源池,形成资源弹性供给、灵活调度和动态计量的私有云平台。我行考虑到业务发展,业务系统上线量持续增多,以前传统的服务器部署模式,已无法适应业务的发展需求,同时考虑到缩减人力投入成本、设备投入成本等因素,我行决定推进小型机资源池建设。
我行推进生产资源池建设以来,上线系统中半数应用基于AIX的操作系统开发,小型机的比重与PC服务器的比重基本对半开。而且考虑到浪潮K1 Power小型机稳定性高,因此我行的重要信息系统基本部署在浪潮K1 Power小型机上。过去很多部署在AIX平台下的应用系统采用小型机全分区的部署模式,采用中低端的设备,这就导致了设备采购数量大,消耗大量的机房空间、电力,资源整体使用率比较低,装机工作量大等问题凸显。为了灵活适应业务需求,缩短上线周期,我行决定推进小型机私有云建设,搭建PowerVC平台。
相比传统的物理机部署,基于PowerVC平台小型机私有云,极大降低了物理资源池设备数量,显著减轻机房空间、电力压力,降低成本,节能减排,显著缩短了装机时间,为实现标准化、规范化、自动化打下基础。
我行小型机私有云采用基于VIOS+HMC模式管理PowerVM系统的部署模式,小型机私有云的设计中很重要的特点就是高可用的冗余设计,每台宿主机的双VIOS设计,每个VIOS双网卡、双光纤链路配置。VIOS本身的操作系统盘rootvg也是做mirror,做双份拷贝。另外每台宿主机由两台HMC进行纳管,两台HMC一主一备。由于PowerVC的指令需通过HMC进行下发,因此双HMC的设计,也可保证PowerVC调度的高可用。在存储层,根据我行已有资源池的特点,PowerVC对存储的接管主要分为两种方式。一种是通过SVC接管底层存储,底层存储两两之间互为拷贝,实现存储的高可用。另外一种接管方式则是通过provider接管VMAX的高端存储,高可用性则由VMAX高端存储自身的高可用性做保证。
多台服务器构建资源池
双VIOS/IO通道冗余/数据镜像
rootvg实现数据镜像
datavg 做SRDF远程复制
PowerHA 双机高可用
DRO 动态资源优化
IP地址自动分配
HMC:
双HMC冗余及网络通道冗余
双FSP实现FSPfailover
PowerVC:
日常数据备份和恢复机制
基于Vmware 虚拟化部署
我行的小型机云平台基于VIOS+HMC模式管理PowerVM系统,一台物理机有两台HMC管理,其中一个HMC为主,一个HMC为备的管理模式。当HMC纳管的设备超过20台时,HMC的内存及CPU消耗较大,因此根据官方推荐及实践经验,在基于VIOS+HMC模式管理PowerVM系统情况下,建议纳管的宿主机设备数量建议不超过20台。另外本身8.8.6版本及以上版本提供了可以开启宿主机性能收集的功能,HMC的性能消耗也会更大,因此要注意HMC纳管设备的数量。在纳管近30台设备的情况下,多次出现HMC系统夯住的情况,比如在资源池迁移的时候,PowerVC上已提示虚拟机已迁走,但HMC上仍显示分区迁移中的假象。这种时候,往往只能通过重启解决。我行的小型机资源池宿主机的规模近百台的情况下,通过搭建多个PowerVC的方式,一个PowerVC管理两台HMC的方式进行宿主机的管理,进而解决单台HMC纳管宿主机的数量上限的问题。我行当前在三个机房搭建了小型机资源池,由于网络部署区域及机房物理上的隔离考虑,不同机房的宿主机由不同的PowerVC进行管理。网络部署区域的隔离则通过不同的RMC网段及不同的业务网段进行区分,比如生产区的集群对应的业务网段为SC_IP,RMC网段为GL_IP,网银互联网区域的集群的业务网段为WY_DMZ_SC,WY_DMZ_GL。一般一台HMC上配置的网卡有四个管理网口,其中一个配置HMC自身的管理地址后,还有3个网卡可以配置三个网段的地址,用于与各网络区域通信,因此一套HMC(一主一备)最多可管理三个网络区域的宿主机,这也是一个限制因素,在进行PowerVC纳管规划时需进行考虑。
资源池具备LPM(分区在线迁移)的能力,是资源池的一项重要能力,在我行的实践过程中,该功能在处理非宕机性的硬件更换及VIOS升级维护中最常被使用。另外未来老旧设备的替换,也将使用到这一功能。我行在使用PowerVC的LPM过程中一些实践经验:
整体迁移方案采用在目标机房搭建一套与原机房架构一致的PowerVC资源池,通过PowerVC+临时存储空间搭建初始的目标虚拟机环境,再通过存储复制方式将源虚拟机环境中的数据(SVC存储同步rootvg+datavg,VPLEX存储同步dbvg+caavg)复制到目标虚拟机环境,同步完成后在系统割接时断开复制关系,启动目标虚拟机环境,完成系统割接。搬迁方案将完全模拟生产环境架构进行:
每套源环境系统在正式割接前,应做如下信息收集和备份工作,内容包括但不限于:
1)操作系统备份,通过NIM或者mksysb方式进行备份
2)系统配置信息收集,供割接后的验证使用:
每一个割接后系统(目标系统)在割接后,应做如下检查工作,内容包括但不限于:
1)系统启动后检查系统中是否存在define状态的设备(包括磁盘设备及网卡设备),如有则需要比对源与目标虚拟机Profile的配置,确认配置无误后对define状态的设备进行清除和重新扫描设备;
2)验证系统是否可以导入SVC同步过来的datavg;
3)验证系统是否可以导入VPLEX同步过来的dbvg和caavg;
4)通过之前收集的系统配置信息对割接后的系统进行比对,如发现问题需要及时调整修复;
5)检查系统是否出现故障报警(errpt输出),如有问题需要立即修复;
6)针对PowerHA环境,需要验证CAA集群状态;
7)启动PowerHA后,需要验证资源组是否正常在主节点上启动,服务IP是否生效,同时检查PowerHA的运行日志;
8)配合应用验证虚拟机上的数据库服务或应用服务可以联通和对外访问。
割接回退步骤:
1)关闭目标机房资源池中的目标虚拟机系统
2)启动原机房资源池中的源虚拟机系统
3)确认原虚拟机系统可以提供对外服务
4)记录回退时间
小型机资源池的网络、光纤、VIOS层的双路高冗余,在网卡故障、光纤链路或网络单路故障、单VIOS故障等场景都不影响可用性,可通过迁移手段把对应服务器的虚拟机迁移走后进行维护。因此大部分场景下的故障,并不影响小型机资源池的可用性。但是若宿主机发生主板故障引发故障宕机时,故障宿主机上的虚拟机的可用性会受到影响,对外服务的虚拟机的业务连续性会受到影响。从小型机资源池的自身能力来说,只要保证集群的可分配空间至少为一台宿主机的CPU及内存总量,则宕机的宿主机的虚拟机可根据“remoterestart enable”的设定自动拉起操作系统。但是一台宿主机上通常有比较多的虚拟机,虚拟机从另外一个宿主机上启动时,仅会拉起操作系统。后续还需故障关联系统的维护人员手工拉起文件系统、数据库、应用程序。因此一台小型机宿主机故障宕机的风险是比较高的,进行故障恢复所需的时长也相对较长。
为了缩短单台小型机资源池宿主机故障恢复的时长,引入PowerHA高可用方案是最为高效可行的方案。单台宿主机宕机后,对应虚拟机的主机会自动切换至备机,并自动拉起卷组、文件系统、数据库、应用程序(在PowerHA可配置应用启停脚本)。我行自2018年来逐步开始推广PowerHA,到目前为止只要是主备模式部署在小型机资源池的虚拟机,都需配置PowerHA。在PowerHA的推广至日常运维中,也总结了一些事件经验:
在对PowerHA的风险项进行整改过程中,基本上遵循几个原则,其一是“成熟一套,恢复一套”:对所有已上线PowerHA的系统进行排查,列出各套系统的整改项,当解决方案整理出来并验证测试通过后,则立马进行该套系统的PowerHA整改;其二是“强化规范”:碰见风险项,及时进行分析排查,并将相应的标准补充至PowerHA配置规范中;其三是“反复多次演练”:在PowerHA升级整改过程完成后,需多次反复切换演练验证,针对新上线系统,也在配置完PowerHA后反复进行切换演练;其四是“强化培训”:持续提升运维人员PowerHA运维能力。已对应用系统相关已知的风险进行了排查并整改,总体运行稳定。
在PowerVC的日常维护中,有时候会考虑如何拉取PowerVC上的虚拟机信息,这部分工作很多时候都手工去浏览器上拷贝并贴到excel中手动处理。另外在部署虚拟机时,资源池管理人员需手工指定虚拟机的操作系统模板,虚拟机名称,计算模板大小,网络区域选择,及挂载磁盘的名称、大小及数量,进而进行虚拟机的部署。通过PowerVC的REST API,我们可通过执行python脚本一键自动拉取多个PowerVC上的所有虚拟机信息(包括虚拟机名称、管理IP、生产IP及宿主机信息),我行还通过这种方式将信息自动推给CMDB配置库。
在部署虚拟机的时候,我行定制好了固化的申请表单,由申请单位自己选择操作系统版本、计算模板、数据盘的大小、网络部署区域等,通过自动化脚本可将这些需求解析为PowerVC REST API的执行参数,并调用PowerVC REST API实现虚拟机的自动化批量部署。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞13
添加新评论4 条评论
2021-07-19 09:43
2021-01-11 13:16
2021-01-07 13:34
2021-01-07 11:38