虚拟化,用还是不用
虚拟化,用还是不用?在投入大量人力物力开始一个虚拟化项目之前,这是你必须回答的第一个问题。踏入虚拟化世界的第一步应该是亲自试用一些虚拟化产品,因为演示和视频教程与亲自体验是不同的。
本章写给那些尚未完全决定采用虚拟化的读者。本章分别探讨了采用或不采用虚拟化产品的理由。读完本章以后,你将能就虚拟化是否适合于自身情况这一问题做出更为成熟的判断。
1.1 虚拟的历史
和很多人所信以为真的不同,虚拟化不是诞生于1999年VMware发布其第一个产品之时,而是早在约40年前就出现在IBM的大型机平台上了。那时,VM(Virtual Machine,虚拟机)称为伪机器(pseudo machine)。早先大型机用控制程序在不同伪机器之间分配资源,并使之相互隔离。
现代版本的控制程序称为hypervisor,是直接安装在裸机(bare metal)上的虚拟机监控器(VM monitor)。裸机是一个计算机新名词,通常是指没有安装操作系统的服务器系统,且只有硬件。hypervisor并不能直接被访问,而是要通过一个叫Domain0的虚拟机来间接访问,这个叫Domain0的虚拟机看上去好像是安装在裸机上的主操作系统(primary operating system)。用户通过这个主虚拟机来间接地与hypervisor交互。
hypervisor技术是虚拟主机技术中的一种,而虚拟主机技术将会在第9章进一步论述。
1.2 解释虚拟化
就“正式”的定义来讲,虚拟化指的是计算资源的物理抽象。换而言之,就是把分配给一台虚拟机的物理资源从其物理实体上抽象出来。虚拟磁盘、虚拟网卡、虚拟局域网、虚拟交换机、虚拟CPU以及虚拟内存,都是映射到一台物理计算机系统的对应物理资源上的。主机将其上运行的客户虚拟机(guest VM)视为应用程序,并给它们分配一定的专属资源或者共享资源。
虚拟化分很多种:应用程序虚拟化、平台虚拟化、网络虚拟化以及存储虚拟化。一般而言,通常提到的虚拟化都是指平台虚拟化。平台虚拟化就是利用服务器硬件作为主机,运行多个虚拟机并将其视为客户机。每一台虚拟机都是一个安装了某一操作系统的稳定的虚拟硬件环境,并独立于其他客户机。
主机配备有足够的硬件资源,可以将其计算能力和磁盘空间分配给其上的客户机使用。一个典型的主机系统包括多个多核处理器、很多GB的内存和很多TB的磁盘空间,并往往配有NAS(Network Attached Storage,网络附加存储)或SAN (Storage Area Network,存储区域网络)。
1.3 可虚拟化的对象
考虑虚拟化时的一个常见问题是:“什么可以被虚拟化,而什么又不能被虚拟化?”硬件上任何未充分利用的负荷都可以被虚拟化。主要的可虚拟化对象有Web服务器、邮件服务器和其他网络服务器(DNS、DHCP、NTP)、应用服务器(WebShpere、Weblogic、Tomcat)以及数据库服务器。而且并不受限于所用操作系统的类型。Windows系统和Linux、Solaris或其他操作系统一样,都是很好的虚拟化对象。
负荷均衡类的服务也很适合运行在虚拟环境下,因为其负荷可以分散到多台服务器系统中。
1.4 通过虚拟机整合Web服务
Web服务特别适合在虚拟机上进行整合。各类Web服务,诸如Web数据库、静态Web网站、动态网站(包括使用Java、.NET、PHP、Python以及其他各种动态语言编写的网站),都可以轻松地融入虚拟化基础架构。
下面是整合Web服务的5个主要理由:
平均恢复时间太长;
基础架构硬件老化;
基础架构容量不足;
系统利用率很低;
虚拟化的经济性。
1.4.1 平均恢复时间
平均恢复时间(MTTR)是指在服务下线以后重新恢复所花费的平均时间。虚拟化能通过快照或者对整台虚拟机进行备份来缩短失效服务的恢复时间。直接进行文件复制的恢复操作要比安装一套新系统并从增量备份中一点点恢复出当前系统并重新上线要快得多。
1.4.2 老化的基础架构
硬件寿命是短暂的。硬件基础架构的平均寿命大概是3~4年,这是因为硬件故障率在硬件使用时长超过4年后会显著增加。一个很好的惯常做法是以生产厂家提供的产品保修期估算硬件的真实生命周期。
在硬件老化的困境中,虚拟化显然轻松获胜。当然,虚拟机的主机系统仍然会老去、消亡或被淘汰,但是虚拟机不会。不管物理主机硬件如何变化,你都可以为虚拟机不断增加内存、CPU、磁盘空间、虚拟网卡以及其他外围设备,甚至可以在升级虚拟硬件后升级其操作系统(来满足不断增长的应用需要)。
1.4.3 硬件容量不足
硬件系统总有无法改变的容量限制。单CPU系统总是只有一颗CPU。如果系统所支持的最大内存是4GB,你就没法添加更多内存,但虚拟机没有类似的限制。只要主机有足够的支持能力,而且虚拟化软件也支持扩容,你就可以给虚拟机扩容。
1.4.4 利用率不足
如前所述,利用率不足的系统是最适合虚拟化和整合的,这并不是因为虚拟机会比物理机用得更多,而是因为无需让物理机消耗过多的电力、冷却能力和物理空间。
1.4.5 虚拟化的经济性
虚拟化不仅仅能省钱,还能带来规模效应。你可以轻易地把两台或更多的配置了HA(High Availability,高可用性)的物理服务器转换成虚拟机,还可以在这些虚拟系统上增加高可用性解决方案,并同时保持物理服务器完好无损,而增加的高可用性的能力并不需要额外的硬件开销。
1.5 虚拟化的实际情况
围绕虚拟化有各种各样的声音,你可能会自问:“我为什么需要虚拟化?”问题合理答案也简单,首先,这是项省钱的技术。通过使用虚拟计算资源,你将在硬件、电力、冷却和IT人力上节省大量资金。
除了以上超酷的和令人兴奋的特点外,虚拟化还有很多现实的好处。下面让我们一一列举:
最小化硬件成本;
提供容灾特性;
整合空闲负荷;
负荷均衡;
软件测试;
集中了服务器管理;
省电;
部署新服务器更快速。
1.5.1 最小化硬件成本
显而易见,当一个新系统上线时,虚拟化能减轻采购更多硬件带来的经济负担。问题是,到底能省多少钱?请考虑以下情况。
这是一台典型的服务器,用于文件/打印服务、电子邮件、DNS和Web服务,它是具有2 GB内存、一颗双核CPU、一块80 GB硬盘的机架式系统。这样一套标准系统的起步价格大概为2000美元,如果需要RAID阵列和更多的硬盘,则可能需要多花300~500美元。这样,一套基本系统的成本大概在2000~2500美元之间。
……
展开