一、虚拟化含义
虚拟化,简单的说就是在一台电脑上虚拟出多台电脑的过程,这些虚拟出现的设备也就是我们所说的“虚拟机(VirtualMachine)”。虚拟机其实是由几个系统文件所组成的,这些文件大多用来虚拟实体组间或者配置信息。
虚拟化的过程都是通过一个叫做虚拟化管理程序(以下简称Hypervisor)来实现的,Hypervisor的作用包括:
1)将实体设备(如CPU、内存、网卡、硬盘等)虚拟化后供虚拟机使用
2)将虚拟设备所发出的指令转换至物理层进行执行
3)调配虚拟机的资源分配等。
另外,当下流行的概念,比如“超融合”以及“云服务”,它们的技术基础就是虚拟化,其对于IT行业的重要程度可见一斑。
Hypervisor的类型目前分为两种:
1、是裸机虚拟化(Bare Metal Hypervisor),这种Hypervisor一般是直接装在一台主机上(以下简称Host),这类Host上所装的操作系统不是常用的windows或者linux等通用的操作系统,而是专门针对虚拟化的操作系统,如Vmware的
ESX/ESXi。正因为这类操作系统专为Hypervisor设计,其唯一的功能,就是用来创建和管理虚拟机。此类的Hypervisor对硬件的使用效率能够达到最高。Vmware的ESX/vSphere以及Microsoft Hyper –V就是典型的裸机虚拟化。
2、Hypervisor称为主机虚拟化(Hosted Hypervisor),这类虚拟化将Hyervisor安装在已有的操作系统上进行虚拟化。这种情况下本台主机既可以用来实现普通操作系统的功能,同时又能够完成虚拟化。但是这种多用途的代价就是虚拟化的性能大不如先前所说的裸机虚拟化。Vmware Workstation,VirtualBox等就属于此类主机虚拟化。
二、为什么要虚拟化
比较重要的两点:节省成本,提高效率
虚拟化出现之前,企业如果想要搭建自己的数据中心,需要考虑方方面面的开销,比如购买设备,机房租赁,电耗,室温,灾备,物流运输等等,数据中心的规模越来越大,设备越来越多,所需的各类成本就越来越高。
除了上述成本居高不下之外,每一台服务器的实际使用率效率也相对低下,想象一下,A公司的财务部门有一个专属的Oracle数据库应用,每个月的月初和月底都是使用高峰,其峰值是平时的数倍。那么A公司的IT部门在购买服务器设备时理所应当必须保证其硬件配置能在月初和月底的高峰期运行顺畅。但是,如果从每个月的平均使用效率来看,除了月初和月底的高峰时段之外,月中的大部分时间服务器的使用效率都只有30%到40%。因为这一台服务器的运行系统是Oracle所需的linux,A公司的其他应用程序大多基于windows,这没有办法安装在这一台服务器上提高效率,而还需要专门购买其他服务器用于windows的应用。
在从这里大家不难看出,在虚拟机化技术出现之前,IT对于设备的成本和使用效率的控制相对捉襟见肘。
相反地,如果运用虚拟化的方案来解决A公司的例子,我们会怎么做呢?首先,IT部门需要购买一台服务器主机用于逻辑虚拟化。当然,这一条服务器本身的硬件配置至少能满足财务部门月初和月底的使用高峰。这台服务器上所运行的系统将不再是单一的windows或者Linux,而是虚拟化管理程序,也就是Hypervisor。IT人员将在Hypervisor之上创建一台linux虚拟机,将财务的Oracle数据库安装在这一条虚拟机上,再为这台虚拟机分配足够的硬件资源就可以了。与此同时,在性能足够的前提下,IT人员在这台服务器之上还能创建多台虚拟机,同时运行windows和其他操作系统,用于满足A公司其他应用程序。这样,在月中Oracle数据库相对闲置的时候,其他应用程序可以充分利用这台服务器的硬件资源,使得平均使用率保持在80%到85%之间。通过在一台服务器上实现多条服务器的效果,虚拟化能通过减少占地面积和耗电量以及设备购买费用,从而大大降低搭建数据中心所需的成本。此外,虚拟化还能通过其强大的灵活性来实现灾备,多活以及资源共享,将宕机率大幅减少。
三、虚拟化优点
随着虚拟化技术逐渐成熟,其对硬件资源的分配和管理的效率也就越来越高,能够实现的应用场景也就越来越多。举例来说,最初的虚拟化只能实现计算虚拟化(Compute Virtualization),也就是对CPU和物理硬件之间进行虚拟,也就是创建虚拟机本身的过程。就在3-5年前,虚拟化实现了网络虚拟化(Network Virtualization)和存储虚拟化(Storage Virtualization),这就使得各个虚拟机之间能够通过虚拟网络相互连接,每一台用于裸机虚拟化的服务器的硬盘也可以通过虚拟存储局域网(Virtual SAN)来进行连接,如此一来,虚拟化管理器就可以更佳游刃有余地分配和使用这些资源。下面我们通过几个简单的例子来看看虚拟化技术能够轻松实现哪些之前几乎无法做到的功能。
四、个人用户与企业用户如何使用虚拟化
企业用户可以选择VMware vSphere、思杰critix、微软的Hyper-v等。
个人用户可以选择vmware workstation
小知识
- 容错(Fault Tolerance)
所谓容错,就是在某台虚拟机由于各种原因而宕机的时候,能够保证其所提供的服务不受此次问题的影响而持续在线。Hypervisor在探测到某一台虚拟机因为故障问题而无法运行时,它将会自动在另一台配置好的ESXi Host上启动一台一模一样的虚拟机继续提供服务,服务所中断的时间大约在1-2分钟。
- 在线迁移设备(vMotion)
当Hypervisor检测到某一台ESXiHost的使用率过高(如高于90%)时,它将会自动将这台Host上的虚拟机迁移到其他相对使用率较低的Host上,使得资源更加合理分配,不会造成某些应用因为Host负载过高而导致的性能问题。
- 资源共享
有的情况下,为了保证关键应用程序的性能,某些虚拟机会对硬件性能的需求特别高,以至于当前它所处的ESXi Host无法满足其性能需求。在这种情况下,虚拟化的资源整合共享的机制就能派上用场。在创建虚拟机时,我们可以选用的硬件配置不只是当前这一台ESXi Host的硬件,而是可以选用这个集群内所有Host的硬件资源。这样一来就能够满足那些对性能有高需求的应用了。