如何将业务迁移到虚拟化环境并稳定运行

发布者:Njtench 发布时间:2015-10-16 10:53 浏览量:

   

将已有的业务迁移到虚拟化环境。是很大的挑战,不仅要求我们熟悉虚拟化技术,更要求我们熟悉业务,将业务迁移到虚拟化环境其实还是一个项目实施的过程,考验我们的协调沟通及项目把控能力。

 

我分为四个部分介绍如何将业务迁移到虚拟化环境:

 

 

1、虚拟化项目实施方法及业务压力模型的建立:介绍虚拟化项目的实施经验及流程,介绍如何建立自己的业务压力模型,如何根据自己的业务压力模型进行软硬件选型。

2、虚拟化技术选型及实战:介绍KVM虚拟化技术在实践方面的经验。

3、虚拟化项目的监控、报警、应急响应、灾备方法。

4、将业务迁移到公有云方法:介绍公有云选择及业务迁移到公有云方法,将业务迁移到公有云也是业务虚拟化的一种形式,只是我们不用在关心虚拟化技术。
 

 

在我们决定做虚拟化的时候,虚拟化项目该如何起步?

 

当上级或者我们自己准备将业务迁移到虚拟化环境上的时候,会面临许多问题,例如:

 

从那一项具体业务开始;
软硬件如何选型;
技术方案如何确定;
万一出了问题应该怎么办;
在虚拟化的过程中如何保证业务稳定。
 

 

那么我们首先应该解决那个问题呢,这时候我们应该静下心来想一想,虚拟化到底能给我们企业带来什么。

 

从我的虚拟化实践来看,归根结底虚拟化给企业带来两点好处:

节省成本;
快速部署。
 

 

(1)节省成本

大多数时候,我们选择虚拟化就是为节省成本,举一个非常典型的案例,我们曾经虚拟化过一款游戏,这款游戏在虚拟化之前,使用五百多台物理机,当时运行了两年多,已经收支平衡,换句话说就是不盈利了,面临着马上被结项的命运。

 

这个时候,我们部署了虚拟化,将这款游戏按照一比七的比例,全部迁移到虚拟化环境。通过虚拟化技术,将五百多台物理机压缩到七十多台宿主机上,极大的节省了游戏的成本,这款游戏又开始盈利了。

 

(2)快速部署

虚拟机在宿主机层面看就是一个镜像文件,我们要得到另外一台虚拟机,只需要将镜像文件复制一份就可以了,通常是几分钟,最多十几分钟。

 

而一台物理机,上架、插电源、线网线、安装操作系统,最快都要一个多小时,这是从小时到分钟的数量级的差距。通过虚拟化可以大大提示部署效率。

 

想好了虚拟化能带给我们什么之后,下一步就是说服老板和同事协助我们进行虚拟化,有了老板和同事支持,我们才能顺利的推进虚拟化项目进行。

 

 

(1)说服老板的秘诀。

 

说服老板有两个秘诀:“画饼”和“挖坑”,往往老板比较好说服,因为虚拟化能给企业带来真金白银的好处。比如如果企业现在有2000台服务器,即使按照一比二这样一个比例实施虚拟化,立马就可以节省50%服务器,50%的机柜。

 

所以我们其实也不是在画饼,这个饼是真是存在,并且可以吃到的。但是画饼的时候,要挖一个“坑”,因为在业务迁移虚拟化的时候,难免碰到这样或者那样的问题,碰到问题的时候,我们需要老板的支持,在做虚拟化迁移之前,我们就要和老板说好,虚拟化会给企业带来巨大的利益,实施过程中我们会做好各种预案,充分做好测试,但是也难免会碰到问题,万一碰到问题的时候需要老板支持我们,力挺我们。

 

(2)说服同事支持的秘诀。

 

往往说服同事支持很困难,因为大部分同事都是多一事不如少一事这样的心态,如果业务在物理机上已经非常稳定了,大部分人肯定不愿意在折腾一次了。这时候说服同事的办法就是树立一个样板,用事实说话,让大家看到业务可以在虚拟化平台上稳定运行。

 

如何选择第一个虚拟化项目。

选择第一个虚拟化项目非常重要,和打仗一样,首战必胜,这个是一个战略问题,如果第一个虚拟化项目失败了,后面的工作就很难开展,万事开头难,那么如果选择第一个虚拟化项目呢,适合虚拟化的业务有那些特征了呢。

 

 

(1)单进程

但进程的业务非常适合虚拟化,现在的CPU都是多核,单进程的业务只使用一个核,通过虚拟化就可以很好的将多个单进程的业务整合在一起,尤其是通过应用层很难进程优化的业务。

 

(2)利用率非常低

常年CPU利用率在20%以下,这种业务通过虚拟化也非常好整合,将几个业务整合到一台宿主机上,可以提高整体的利用率。

 

(3)频繁变动的业务

这种业务搞虚拟化的动力最强,因为虚拟化快速部署的特点确实能解决他们的痛点。对运维说,能节省成本他们不一定有动力,但是说能快速简单不是,他们动力很足。

 

(4)非核心业务

一开始虚拟化的时候,最好不要选核心业务,否则出了问题,压力会很大。核心业务应在口碑树立起来之后,在逐步进行虚拟化。

 

第一个虚拟化项目应该从自己企业内部找一个最符合以上条件的业务,来进行虚拟化,以提供虚拟化的成功率。

 

另外,并不是所有的业务都适合虚拟化,那有那些业务不适合虚拟化?

压力特别高的业务不建议搞虚拟化,如果在物理机上CPU利用率已经80%了,就很难通过虚拟化进行压缩。

 

虚拟化项目实施应该遵循的那些流程,能保证比较稳定的将业务迁移到虚拟化环境?

 

从我个人长期的实践来看,虚拟化实施最好循序渐进,稳扎稳打,遵循以下的步骤,可以保证比较稳定的业务迁移到虚拟化环境。

 

 

(1)业务性能评估及压力模型建立

项目启动的时候,首先面临的是虚拟化比例如何确定,到底是1虚5,还是1虚7比较合适,宿主机的配置如何确定,这些都需要依靠数据决定,所以我们首先需要收集现有业务的压力数据,根据压力数据分析业务的压力模型。业务压力模型建立方法,后面还有详细介绍,有了压力模型,虚拟化比例和宿主机选型就非常好确定。

 

(2)测试环境测试

虚拟化比例和宿主机确定好之后,然后应该进行测试,测试包括系统方面的测试和业务方面的测试,系统方面测试主要测试宿主机和虚拟机的压力瓶颈点,看看宿主机和虚拟机最大的负载点在那里,为以后使用做到心里有底。

 

业务测试包括业务的功能测试和性能测试,功能测试主要测试业务在虚拟机上运行有没有问题,性能测试主要测试业务在虚拟机上能够承担的最高负载,比如游戏行业能负载多少人数,web、数据库能负载多少连接或者io,这个要根据每个业务的不同,使用业务应用层的测试方法进行测试。

 

通过测试一方面我们可以测试稳定性,一方面可以得到业务在虚拟机上的最大负载,取得这些数据,我们就可以做到对以后的虚拟机使用心中有数。

 

(3)小规模部署

测试环境测试没有问题,并且取得相关数据后,就可以在生产环境部署,先应该在生产环境小规模的进行部署,并且测试2周到一个月。小规模部署最好是业务压力比较小的一台虚拟机测试2周到一个月,没有问题后在找业务压力最大的一组进行虚拟化,在测试2周到一个月。

 

(4)全面部署

小规模部署没有问题后,就可以逐步的进行全面虚拟化部署,按部就班的将业务迁移到虚拟化环境,直至进入最终的虚拟化运维。

 

下面介绍下业务压力模型的构建方法。