如何实现数据中心虚拟化
2015-03-18■
■
为了安全、隔离、稳定等诸多因素,传统的数据中心应用部署模式,即一套应用一台服务器的部署模式,在电力消耗越来越接近机房最初设计的最大功率、机柜剩余空间越来越捉襟见肘的情况下,传统的数据中心发展模式遇到了瓶颈。按照以往的思路,解决办法就是重新铺设能承载更大功率的电缆、扩建机房、扩容UPS等。但这些都是一笔巨大的投资,而且随着服务器数量的增多,维护成本和难度也在逐渐增大。因此,必须通过其它技术手段去改变这种现状。笔者从2007年左右开始接触虚拟化技术,并把虚拟化技术逐步应用到工作中。这期间,随着技术的发展,以及业务的需要,采用过好几种虚拟化产品。 如:Parallels Virotuozzo Container、VMware Server、Windows Hyper-V、VMware vSphere等。虚拟化技术发展到今天,基本上已经很成熟,应用也很广泛,但笔者还是希望能把自己近年来工作中的一些经验总结出来,分享给大家,以便刚接触虚拟化的同仁们能根据自己单位的业务需求,更快的规划好数据中心的部署方案,减少学习的成本或者少走点弯路。
虽然现在虚拟化技术很成熟,产品也很多,许多人都知道甚至很熟悉,笔者在这里还是把虚拟化技术简单介绍下,以便刚了解的人能有一个初步的认识。
虚拟化技术简介
虚拟化是一个很广义的术语,与计算机相关的,就有平台虚拟化、应用虚拟化、网络虚拟化、存储虚拟化等等诸多概念,在这里我们说的是相对侠义的虚拟化概念,即在计算机上模拟运行多个操作系统平台,这些系统平台彼此在相互独立的空间内运行而互不影响,从而显著提高计算机的使用效率。
按照不同的分类方法,可将虚拟化技术分类如下:
按CPU资源调度分类
全虚拟化:虚拟操作系统与底层硬件完全隔离,由中间的Hypervisor层转化虚拟客户操作系统对底层硬件的调用代码,全虚拟化无需更改客户端操作系统,兼容性好。常见的产品有Microsoft VirtualServer、Oracle VirtualBox、VMware Workstation等。
半虚拟化:在虚拟客户操作系统中加入特定的虚拟化指令,通过这些指令可以直接通过Hypervisor层调用硬件资源,免除Hypervisor层转换指令的性能开销。半虚拟化常见的产品有Citrix Xen、Microsoft Hyper-V、VMware vSphere等。
硬件辅助虚拟化:在CPU中加入了新的指令集和处理器运行模式,完成虚拟操作系统对硬件资源的直接调用。典型技术有Intel VT、AMD-V。
按应用分类
服务器虚拟化,常见的产品 有 Citrix Xen、Microsoft Hyper-V、VMware vSphere等
桌面虚拟化,常见的产品 有 Citrix Xen Desktop、Microsoft MED-V、VMware View、VMware Horizon等。
应用虚拟化,常见的产品有Citrix Xen App、VMware ThinApp等。
在数据中心,我们常会用到的主要是服务器虚拟化、桌面虚拟化、应用虚拟化三种产品,而在硬件调度方面,基本都采用了硬件辅助虚拟化技术,因此在服务器选型时,一定要选择支持虚拟化技术的CPU。不过随着虚拟化技术的发展以及流行趋势,现在服务器的CPU基本上都是支持虚拟化技术的。
数据中心虚拟化目标
前面笔者已经提到,采用虚拟化技术,主要是为了解决占地、电力消耗接近极限等问题,但也解决了服务器利用率不高、业务上线前期准备时间长、每年不断有许多新系统上线需求、缺乏灾难恢复以及备份测试环境、设备数量过多导致的维护成本高和维护难度大等问题。因此,不论读者您所在单位的数据中心处于一个什么样的规模,例如:成百千上千台,或者只有几台;不论是什么应用场景,例如:普通的业务服务、关键的应用平台,还是大数据分析,基本上都可以采用虚拟化技术。对于较大规模的数据中心,采用虚拟化技术,所带来的益处是显而易见的,一方面可以大量降低设备数量,减少占地空间、减小电力消耗,另一方面,可以为单位业务的发展所提出的新需求,提供快速的响应。而对于只有几台服务器的小规模环境,通过虚拟化技术,也能带来许多益处,例如:通过虚拟化产品中的高可用特性,可以解决单机承载业务所带来的单点故障问题,以及传统备份的恢复测试环境问题等。
因此,我们规划设计数据中心虚拟化方案时要考虑实现的目标有:
1、降低成本:如降低电力消耗、使数据中心基础架构部署合理化、使管理员执行的部分任务自动化。关于降低成本这一点,大家需要注意的是,在数据中心向虚拟化转发的初期,是不会降低成本的,反而可能会有很高的投入,例如:虚拟化软件产品的采购、能支持虚拟化技术的新硬件设备的采购等。因此,许多人都知道虚拟化能降低成本,但在实施虚拟化时,发现还需要很多的投入,对此就很不理解。采用虚拟化技术,所谓降低成本,主要是指,从长远的角度来考虑,可以减少数据中心以后在电力、设备、管理等方面的成本,而不是建设初期的成本。
2、实施灾难恢复计划,设定恢复点目标、恢复时间目标,加强生产站点的安全。对于恢复点目标,需要考虑的是能够接受的数据最大损失量是多少,每日备份适用于24小时的恢复点目标;对于几小时的恢复点目标,需要使用快照和同步复制;而恢复点目标为0时,就需要建立同步复制模式,实现无数据损失要求。对于恢复时间点目标,需要考虑的是可接受的最大中断时间,取决于重启应用并重新投入服务所需的时间。对于4小时或更短的恢复时间目标,必须实施多种辅助性技术,例如:群集、复制、VMware的HA、FT、SRM,存储虚拟化等。
对灾难恢复计划这方面,必须从单位的实际情况出发,因为,要实现的恢复点目标、恢复时间目标不同,设计的方案就不同,投入也不同,追求越小的数据损失量、越短的中断时间,所投入也越大。
3、要让IT系统成为单位增长的引擎,有利于单位的发展。这一点是不言而喻的,如果IT系统只是不断的投入,而无法促进单位的增长,恐怕以后是很难获得继续投入或重视的。因此,技术人员在通过实施数据中心虚拟化后简化工作的同时,要利用节省下来的时间,基于虚拟化后的数据中心环境,做一些具有创造性的工作,例如做一些数据挖掘分析平台,辅助领导决策等。
4、可以规划一些更长远的目标,例如:部署私有云、为项目团队提供简单的IT服务访问、实施统一的备份、防病毒解决方案等等。
云技术的基础就是虚拟化,因此当数据中心实现虚拟化后,要向私有云过渡很方便。当实现数据中心虚拟化后,数据中心维护人员,就需要考虑怎么才能更好更便捷的为最终用户和项目团队提供IT服务访问,这也能提升数据中心在单位的重要性。
数据中心虚拟化方案的制定
当我们设定好数据中心虚拟化的目标后,下一步就是制定方案,只有提前做好方案的规划,才能保证项目完成后能够达到我们预想的效果。一个好的方案涉及到很多东西,由于篇幅限制,在这里只涉及部分在设计方案时需要考虑的内容。
1、虚拟化产品的成熟度。
2、解决方案的可升级性。
3、售后服务。
4、统一的管理平台
5、健全的产品生态系统,如:具有迁移工具、提供备份工具或与第三方备份工具的兼容性、与防病毒攻击工具的兼容等。
虚拟化技术发展到现在,已经涌现了很多产品,而选择一款好的虚拟化软件产品,是项目最终能否成功的关键。在众多虚拟化产品中,国外具有代表性的公司有Citrix、Microsoft、VMware等,国内厂商主要有华为、H3C等。国外产品由于在虚拟化技术上已经经营了很多年,所以其技术先进性和成熟度,是不言而喻的。而国内厂商虽然起步较晚,但已紧追其后。国外产品,使用者很多,一般都有很详细的文档,而且遇到问题,除了依靠厂商提供的服务,有时也可通过网络搜索自行解决;而国内产品的文档要稍欠缺一些,这是国内产品的普遍现象,而且网上的交流区也偏少,所以出现问题基本只能靠厂商解决。国外产品基本上技术都很领先,发展很快,而且硬件兼容性比较广,产品生态系统很健全,有很多第三方公司提供辅助型的工具,进一步完善虚拟化后的数据中心;而国内产品技术发展较慢一些,但可以根据用户需求,做一些特殊的小的定制开发,另外,国内厂商目前多推荐一体化解决方案,软件硬件都打包提供,因此采用后,易被锁定到一家厂商。
现在主流的虚拟化产品基本都能满足用户的需要,所以在选择一个产品时,需要从单位的实际需求,以及后期发展来进行考虑,国内外产品解决方案各有利弊。
虚拟化数据中心项目的实施
分析现有数据中心的硬件和软件平台
首先,收集现有数据中心的硬件信息。例如:确定哪些硬件设备支持虚拟化,可以被继续利用,哪些硬件设备需要被淘汰。
其次,搜集现有数据中心各种平台的设备利用率。例如:CPU平均利用率,内存总利用率、占用的存储空间大小、各种应用在一定时间内的IO等。
确定虚拟化后数据中心的规模以及硬件标准
根据上面的现有硬件信息和软件平台信息,就可以知道目前数据中心所需的总的计算量、内存使用量、以及数据存储大小等。然后根据单位每年新业务的增长速度,以及虚拟化后,为了保障硬件发生故障虚拟机在不同硬件之间切换时,所提供的硬件资源保留等诸多因素,确定虚拟化后数据中心的规模。一般而言,数据中心的规模最后都通过类似以下几方面的数字化来展示,包括:总共需要多少GHz的CPU计算量、多少GB内存、多少GB存储,以及磁盘总的峰值IOPS、平均IOPS等。通过数字化后,就可以计算出虚拟化后数据中心硬件的需求量,以及采购的硬件标准。
确定出虚拟化后数据中心总体的规模后,就需要确定硬件标准。一般情况下,实施数据中心虚拟化,都会涉及到新硬件设备的采购,因为旧的服务器,最初都是根据满足一套软件平台的性能而采购的,即使能被利用,都需要对其进行继续升级,例如:内存。而对旧服务器进行升级,其投资收益都不及采购新的服务器,一方面,新的服务器随着技术发展,性能越来越强大,功耗反而比较低;另一方面,旧服务器,单独升级部件时,价格都比较高。
下面分别就数据中心虚拟化后所需要的各种硬件,如CPU、内存、存储、网卡等进行讨论。
虚拟化后的数据中心,由于每台服务器为了提升其使用效率,都会尽可能的承载更多的虚拟机,所以CPU必须满足最高要求下的计算能力,一般选择能安装2路或4路CPU的服务器,而CPU尽量选择包含大量内核数的、以及更高频率的型号,当然内核数越大、频率越高,其价格也越高,最好根据单位实际情况,综合价格和性能参数,选择一款性价比较好的CPU。
内存也是确定虚拟化后的数据中心架构规模需要考虑的一个重要要素。需要提前计算好每服务器的平均有效容量以及总内存容量。现在许多虚拟化产品都支持内存超量配置,例如:一台安装有64GB内存的物理服务器,一般可以运行16个每个分配了4GB内存的虚拟机,而通过内存超量配置,如内存共享、压缩等技术手段,就可以运行20个或者更多个分配了4GB内存的虚拟机,超载运行数量视每个虚拟机里的具体业务情况而定。虽然虚拟化产品很多都支持内存超量配置,但还是建议在资金充足时,为每台服务器尽可能多的配置内存,从而提升物理服务器上所承载虚拟机的性能。确定内存大小的基本原则是每个物理核心4-8GB。例如一台具有12核心的2路服务器应有96-192GB内存。
服务器尽量配置千兆或万兆网卡,如果采用千兆网卡,尽可能的配置多个千兆网卡,实现数据流量的负载,以及故障的切换。如果资金充足时,建议采用万兆网络,这样可以提供更高带宽、更小的延时,以及更好的性能。
关于存储方面,一般可以采用两种方式,一种方式是使用共享存储,就是多台物理服务器,通过SAN或IP-SAN网络,连接到一台统一的存储;另一种就是利用物理服务器上本身自带的磁盘,通过存储虚拟化手段将所有物理服务器上的磁盘虚拟化为一个统一的存储,供虚拟机使用,当然为了满足虚拟机对存储的性能,每台服务器要配置尽可能多的磁盘,最好有固态硬盘,从而提升存储的性能。这两种方式各有优劣,如果采用第一种共享存储方式,就要仔细的考察共享存储的各种硬件性能,以及对虚拟化的支持等,例如:存储的IOPS,是否能够满足虚拟化后所有虚拟机的磁盘IO需求。如果采用后一种方案,建议在考察产品时,了解下具体的技术实现细节,除了优势外,更要了解其存在的不足地方,如:是否会影响以后数据中心规模的扩展,如何配置磁盘,才能满足虚拟机的性能需求等。
除了上面这些硬件设备,虚拟化后的数据中心,如果要考虑的更为详细的话,还需要考虑所采用的交换机、防火墙等,例如:交换机是否支持DCB协议族,防火墙是否支持虚拟化等,这里就不详细介绍了。
具体实施
根据虚拟化后数据中心的规模,采购并部署好硬件平台,以及虚拟化软件产品,然后就逐步将现有的业务平台,利用P2V迁移工具,将之前直接运行在硬件服务器上的业务系统逐一迁移到虚拟机里。根据实施的经验,大多数业务系统,通过P2V工具,都能平滑的,连带操作系统转化成虚拟机。有时会存在个别业务系统,因为系统或软件的问题,无法通过P2V工具进行迁移,这时,就只能选择在虚拟化平台下重新部署该业务系统,并把旧业务系统的数据通过其它工具迁移过去。
至于各个业务系统的迁移顺序,可以自己制定一些标准,并按这标准顺序的迁移,例如:可以按照业务系统现在所在服务器的电力消耗,也可以按照硬件的陈旧程度,或者按照业务系统之间的依赖性等等。总之,服务器迁移没有固定教条的原则,完全可以根据自己单位的情况进行。
迁移后的管理
由于数据中心虚拟化后,是将原来每个直接运行于硬件服务器上的业务系统,集中运行在几台或几十台性能更好的服务器上,从而大大提升服务器的利用率。因此,虚拟化后,一台服务器上将运行多个业务系统,这时就需要关注服务器的CPU、内存、磁盘IO、网络等关键硬件的性能指标,处理硬件的负载,不能将硬件资源耗费较多的业务系统都集中到一块儿,而应该将硬件资源消耗较多的虚拟机合理的分散到不同主机上,从而使所有服务器都能得到很好的利用,同时也能保证业务系统的性能。现在,许多虚拟化产品都提供了性能监控工具,也有些第三方公司制作的虚拟化平台性能监控工具,合理使用这些工具,可以帮助您更好的优化您的虚拟化数据中心。
除了监控虚拟化数据中心,根据业务系统需求对其进行调整外,数据中心虚拟化后,一定要注重一个问题,就是虚拟机的蔓延。因为,当数据中心虚拟化后,部署一个系统环境,相当的容易,不再像以前那样,需要准备硬件服务器、连线、安装操作系统等一系列繁琐耗时的步骤,在管理平台上,可能仅仅通过简单的点击,几分钟内就能完成以前耗时几个小时,有时甚至几天才能完成的工作。所以,虚拟化后,因为部署的简单,很容易创建一些其实不需要的虚拟机出来,导致虚拟机数量越来越庞大。因此,必须对虚拟机的创建,结合单位的实际环境,提前建立一些规则,不要随意创建。同时,对于部分长期不再使用的虚拟机,应该清除。
虚拟化的各个阶段
前面,笔者结合自己的工作经验,对虚拟化的技术做了一些简要介绍,同时也讨论了下实施数据中心虚拟化的目标、方案,以及实施过程。最后,笔者对数据中心虚拟化的各个阶段进行简要介绍。因为任何事情都不是一蹴而就的,都是一个渐进性的过程。结合笔者经验,以及其他人的案列,数据中心虚拟化基本可以分为三个阶段。
以IT为中心
在这一阶段,基本就是用新一代服务器替换高耗能的旧服务器,使基础硬件架构合理化,降低数据中心的占用空间和电力消耗。逐步将旧的业务系统迁移到虚拟化环境下。同时,可以利用虚拟化的快速部署功能对需求做出很快的反应,也可以利用快照功能简单地更新应用程序,如果出现故障,可以快速回溯。
但这一阶段还不能实现成本的节约,因为需要购买新的设备,虚拟化软件产品,以及对现有技术人员知识的更新培训。
以应用程序为中心
这一阶段的目标就是提高关键应用程序的服务水平并显著改进操作效率。数据中心虚拟化第一阶段主要是数据中心的基础架构,而这个阶段主要是关键应用程序,如 Oracle、SQL Server、Exchange等。这一阶段,可以利用复制快速部署应用程序,简化高可用性的实现。这一阶段的挑战就是需要利用一些技术手段去解决关键应用的性能、备份、灾难恢复等。
这一阶段,其实在实施时,是包含在第一阶段将业务系统向虚拟环境迁移过程之中的,只不过单独列出来,是为了强调许多关键应用也能运行在虚拟化环境之下,而且通过虚拟化环境,以前通过其它技术手段来保障关键业务的服务水平,通过虚拟环境下的一些技术手段,就可以简单的实现。
以用户为中心
这一阶段,是数据中心虚拟化后,发展到一定阶段的发展趋势。这一阶段,主要是引入自动化工具,实现管理的自动化,节约管理员的时间。这个阶段,也是引入云计算的阶段,云计算是一种利用计算资源的新方式,目标是通过提供全自动的计算服务,降低IT架构的复杂度,能够便捷的满足单位对IT服务的需求。
但是,这一阶段主要视单位数据中心规模而定,如果单位仅仅只有几台或十几台服务器,是没有必要引入太多自动化工具的,一方面是成本问题,另一方面,设备数量太少,自动化带来的优势与所花费的投入相比,优势很不明显。
上面是笔者结合自己工作经验,对如何实现数据中心虚拟化所做的一些探讨,有许多不足之处,恳请大家批评指正,也希望能和大家多多交流。