前言
最近我司正在如火如荼的进行着一个项目——Xen转KVM,本篇我们就来聊聊为什么要迁移Xen虚拟机。
有些同学可能不太清楚,好端端的Xen虚拟机一直跑着,也没出啥问题,干嘛没事要瞎折腾?迁来迁去非但影响产线正常业务计划,甚至还会影响产线服务稳定性,运维这是吃饱了撑?
这边我们必须出来澄清下,这锅我们真背不起,如果真要怪,那也只能找虚拟化平台提供商Citrix(思杰)了……
为啥会扯到Citrix呢?我们就拿微软来举个栗子:
想必大家应该都还记得,2013年微软突然宣布,Windows XP SP3将于2014年4月8日停止服务。终止服务,也就意味着Windows XP系统已经在自己的软件生命周期中走到了尽头,软件工程中通常称该时刻为:End of Life (EOL)。一切与XP系统系统相关的销售、售后、技术支持、产品、开发、测试、运维行为,全都不存在了!如果还想用,也没人拦你,但出了问题想寻求技术支持,或者对XP有新功能需求,对不起,已经找不到人了,即便是当年你花了几千大洋买的正版XP操作系统,也不顶用!但其实对用户影响最大的是XP不再提供安全补丁更新,未被修复的系统漏洞极有可能被黑客所利用,唯一一次影响最大的是2017年“WannaCry”勒索事件,微软破例对已经停止支持的XP发布特别补丁。
稍微有点扯远了,我们再回过头来看主题Xen。
背景
随着XenServer的产品迭代更新,出现了众多版本,我司使用到的XenServer版本主要包括了以下几个:
- XenServer 5.6
- XenServer 6.0.2
- XenServer 6.2
在Citrix官网上可以查到所有已经EOL产品的列表,我们使用到的3个版本的系统都在榜单上,其分别在:2014年3月31日、2016年9月26日以及2018年6月26日停止提供支持:
类似XP系统,我们用的XenServer官方已经不再提供支持。
即便如此,只要Xen虚拟机可以正常运行使用,官方提不提供支持对我们其实并没有太大影响,几乎没有影响。
真正对我们产生重大影响的是下面的问题。
问题
使用过Xen虚拟机的同学都知道,部署好XenServer后,如果需要进行增删改虚拟机配置、开关虚拟机机等操作,必须使用XenCenter管理平台。而使用XenCenter管理平台的前提是,必须向Citrix发送邮件申请License,否则只能用30天,超过30天后无法继续使用XenCenter管理平台。
也就意味着:但凡新部署的XenServer服务器,或者是老XenServer的License过期之后,在30天之内未导入新的License,会造成XenCenter不可用,直接影响到创建、删除、开启、关闭虚拟机等基本日常操作,简单来说就是Xen虚拟机用不了。
今年5月份,我司网络组同学例行向Citrix申请License,发了多封邮件,但均迟迟未收到回复。随后在官网(https://activate.vmd.citrix.com/) 进行查询,发现Citrix已经废除了对XenServer 5.x/6.x的激活服务,但由于官方注意到仍有大量客户仍然使用这两款“过期”的操作系统,特意多留出+3个月的扩展License,以保证客户能够平稳过渡,续期申请截止时间为2019年3月。
细思极恐!官方这是铁了心要用户升级到最新版的XenServer了,而像我司一样,产线服务器部署在XenServer 5.x/6.x的公司应该不在少数。无法激活XenCenter意味着只要宿主机意外宕机,虚拟机就再也启动不起来了!
有人会说了,我们平时不需要重启服务器,也不需要调整虚拟机配置,放着让它们跑着便是。
我们的答复是:希望对线上服务抱有敬畏之心!
谁能保证产线服务器不出现宕机呢?即便运气好,几年都不宕机,但若遇到机房机柜等IDC基础设施需要调整迁移可怎么办呢?后果不堪设想,若不重视的话迟早会出大问题。
所以我们下定决心,必须迁移Xen虚拟机。
Xen转KVM
既然决定要升级,那么是升级到XenServer7吗?
我们也考虑过,但从XenServer7开始,只能使用XenServer商业版,服务器按CPU付费,而且是订阅方式,每年都要付费,不能一次性买断,从成本上面就放弃了升级XenServer7的想法。
这个时候,KVM的优势体现出来了,由于是开源产品,直接用就行,没有成本上的负担,虚拟机性能方面并不比Xen差。
KVM的缺点是没有配套的VMM虚拟机管理平台,配置虚拟机是件比较头疼的事情。虽说红帽也有类似XenCenter的管理平台,但只为红帽企业版,我司使用的是CentOS,存在版权上的问题。
不过我司SRE伙伴已经在自主研发KVM管理平台了,相信再过不了多久就能够解放我们的双手,大大提高虚拟化平台管理效率了。
迁移过程
迁移Xen虚拟机大致有两种途径:
- 冷迁移:
特点:较方便,但有DOWN TIME,而且不能保证迁移成功
步骤:关闭Xen虚拟机,导出镜像,再用KVM导入镜像,完成迁移 - 热迁移:
特点:不是标准的Live Migration,操作较复杂,需要理清原应用程序架构,重新部署一套一模一样的系统,类似做了一套HA
步骤:重新提供一台新的KVM虚拟机,在新服务器上部署业务,实时迁移,无DOWN TIME
迁移中遇到的问题
部署在Xen上的CentOS5.5转KVM遇到了内核错误(Kernel panic),原因是当时创建Xen虚拟机时使用了Xen自有的CentOS操作系统模板,Xen改写过CentOS的内核模块,因此导致迁移失败。
后记
最后,希望各位伙伴能够清楚我们为什么要迁移Xen虚拟机,了解我们的用心良苦,同时心疼下我们奋战在项目第一线的项管妹子,以及一直在进行迁移操作的网络组汉子们,没有你们的坚持不懈,线上服务的稳定性便无从说起!