a)软件辅助的完全虚拟化。在x86虚拟化早期,由于x86体系没有在硬件层次上对虚拟化提供支持,因此许多商业的虚拟化产品都采用了基于软件辅助的完全虚拟化技术,例如Vmware ESX Server,VMwareWorkstation和Microsoft Virtual Serve:系PlJ产品。为了正确处理不能直接捕获的虚拟机特权指令,完全虚拟化引入了动态指令转换,通过在运行时动态执行指令扫描以发现特权指令,然后依据VMM状态执行指令的二进制转换,使得特权指令的执行跳转到等价模拟代码段处,从而实现与自陷相同的目标。基于软件辅助虽然能够实现完全虚拟化,但由于所有指令都要经过VMM进行处理,这种虚拟化的性能受动态指令转换引擎设计和实现的影响比较大。
b)硬件辅助的完全虚拟化。硬件辅助虚拟化是通过修改x86 CPU指令的语义,使其直接支持虚拟化。这一工作必须在CPU中进行,也就是Intel-VT技术和AMD-V技术。通过引人新的处理器操作来支持虚拟化,使得虚拟机的各种特权指令能够被CPU所截获,并通过异常报告给VMM,这样就解决了虚拟化的问题。硬件辅助虚拟化是一种完备的虚拟化方法,部分虚拟化软件产品,例如Microsoft的Hyper-V目前必须借助于CPU硬件辅助才能实现虚拟化。
完全虚拟化是处理器密集型技术,因为它要求hypervisor管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是,改动客户操作系统,让它以为自己运行在虚拟环境下,能够与hypervisor协同工作。这种方法就叫半虚拟化。
与完全虚拟化技术不同,半虚拟化技术通过修改操作系统代码使特权指令产生自陷。半虚拟化技术最初由Denali和Xen项目在x86体系架构上实现。通过对客户操作系统的内核进行适当的修改,使其能够在VMM的管理下尽可能地直接访问本地硬件平台。半虚拟化技术降低了由于虚拟化而引入的系统性能损失。半虚拟化技术的主要实现思路是:对于内存分段管理的虚拟化,要求客户操作系统对硬件分段描述符的更新由VMM进行验证,这也就要求客户操作系统不能有高于VMM的特权级别和不允许访问VMM保留地址空间;对于内存分页管理的虚拟化,要求客户操作系统可以直接读取硬件页表,但对页表的更新需要VMM进行验证和处理,VMM支持客户虚拟系统可以分布在不连续的物理内存上;对于客户虚拟系统,其只能运行在低于VMM的特权级别上;客户虚拟系统需要注册一个异常处理函数的描述符表,直接支持VMM的虚拟化;客户虚拟系统的硬件中断机制被VMM中的Event处理机制代替;每个客户虚拟系统都有自己的时钟接口,并且可以了解真实的时间和虚拟的时间;客户虚拟系统通过异步I/O的内存区域和外部设备(网络、硬盘)来传递数据,采用事件处理机制代替硬件中断通知机制。
准虚拟化技术的优点是性能高。经过准虚拟化处理的服务器可与hypervisor协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。
3.2.2 Type II:寄居架构
Type II虚拟化架构(见图2中软件层虚拟化部分)中,VMM安装在已有的主机操作系统(宿主操作系统)之上,通过宿主操作系统来管理和访问各类资源(如文件和各类vo设备等)。这类虚拟化架构系统损耗比较大。
就操作系统层的虚拟化而言,没有独立的hypervisor层。主机操作系统负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统(不过每个实例有各自的应用程序和用户账户)。
虽然操作系统层虚拟化的灵活性比较差,但本机速度性能比较高。此外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异构环境要容易。
上述各种虚拟化方法都有各自的优点,总体来说,裸金属架构下的半虚拟化技术的优点得到了验证,也是目前各厂家重点发展的技术。
4 虚拟化技术应具备的功能要点
服务器虚拟化解决方案在不同的场景实现的功能各不相同,在云计算中虚拟化技术应具备以下功能。
a)服务器“一变多”。支持在一台物理服务器中创建多个相互独立的虚拟服务器,每个虚拟服务器各自拥有计算、存储和网络等资源,运行各自的操作系统和应用。
b)设备资源抽象化。支持通过虚拟化软件功能,将物理服务器中的CPU、内存、IO等资源进行抽象化,将原先与具体物理服务器和物理设备绑定的资源转化为可以统一分配和管理的一组逻辑资源。通过资源抽象,服务器资源不再与具体物理设备以及上层应用绑定,能够灵活分配,被不同虚拟服务器共享。
c)32位/64位支持。为了使虚拟服务器能够充分满足企业现有IT系统的应用需求,同时提供较强的扩展能力,虚拟化产品应支持在旧有32位物理服务器上运行32位虚拟服务器,以及在新的64位物理服务器上运行32位或64位虚拟服务器的能力。
d)支持多种操作系统。物理服务器所支持的各种操作系统类型及版本,在对该物理服务器进行虚拟化后,也能够在创建的虚拟服务器中安装并正常运行。
e)兼容服务器和存储设备。服务器虚拟化产品需具备广泛的物理服务器硬件设备兼容性,服务器虚拟化产品必须支持市场上主流设备厂商提供的服务器。虚拟化产品功能的实现,不得依赖于特殊的服务器硬件设备。
f)虚拟服务器的创建。创建过程需提供用户交互方式,引导用户设定虚拟服务器名称、资源类型和数量、操作系统类型、网络设置等配置参数。支持通过第三方工具或者编写脚本等方式,实现虚拟服务器及其操作系统和应用的自动化安装和配置,并支持远程操作。
g)虚拟服务器的模板和复制。为了实现虚拟服务器的快速部署,服务器虚拟化产品需提供通过模板的方式克隆已有虚拟服务器的能力。
h)支持P2V转换。PZV是指将物理服务器连同上面安装的操作系统和应用转换为虚拟服务器,常用于将已有应用系统由物理服务器平台迁移到虚拟服务器平台。在创建虚拟服务器时,应支持通过P2V方式实现虚拟服务器的快速部署。
i)虚拟网络支持。虚拟服务器须提供对网卡和交换机等网络设备的虚拟化支持,虚拟网卡和虚拟交换机通过物理网络设备接人物理网络。为了提高通信效率,减少对物理网络设备的压力,虚拟服务器之间的通信可配置为通过虚拟网卡以及虚拟交换机的方式进行,无须通过物理网卡。
j)虚拟服务器运行控制。可通过手动或自动的方式,对虚拟服务器的运行状态进行控制,包括虚拟服务器的启动、关闭、暂停、重新启动、恢复、快照,迁移操作等。可对虚拟服务器的运行状态进行快速在线备份,虚拟服务器不需要暂停或关闭。可对虚拟服务器在需要的时候恢复到任一备份点,恢复后虚拟服务器的状态应该与备份时一致。
k)可使用资源分配。对于包含特定资源类型、数量等要求的资源分配请求,虚拟化管理平台能够从统一管理的虚拟化服务器资源池中,自动选择合适的物理服务器进行资源分配。为有效利用所分配的资源,促进资源共享,在为虚拟服务器分配能够使用的CPU,内存、I/O等资源数量时,支持指定可使用资源的最大值和最小值。虚拟服务器在运行过程中实际使用的资源,允许随工作负载在分配的资源范围内变动。
j)资源调度和虚拟服务器迁移。虚拟服务器自身的资源调度,或者虚拟服务器在不同物理服务器之间的迁移可以由管理员手动进行,也可以按照事先设置的策略自动进行。通过策略可以实现虚拟服务器资源配置的自动化和智能化,提高设备资源利用率和系统可用性。资源调度策略的触发方式包括定时触发、在预先设定的时间触发、资源利用率阂值触发。
m)虚拟化管理功能。虚拟化的管理需提供网络内部各种软硬件资源的统一管理,包括物理服务器(编号、名称、IP地址等)、虚拟服务器(编号、名称、操作系统、IP地址等)、存储及网络设备(编号、名称、类型等)。
n)运行状态监控。对物理服务器和各个虚拟服务器的运行状态进行实时监控,记录详细的数据,运行状态监控涉及的性能指标包括CPU利用率、内存利用率、磁盘I/O读写速率、网络I/O通信速率、存储数据量等。
o)故障告警管理。虚拟化的管理支持实时监测网络中各物理服务器和虚拟服务器的运行状态变化情况,针对可能引发潜在性问题的配置更改、资源不足、设备故障等故障情况,提供告警界面和信息。
5 选择虚拟化技术需要考虑的因素
目前虚拟化实现的技术非常多,涵盖各个层面的虚拟化技术,云计算在实施过程中应结合需要实现的性能和功能要求选择相应的虚拟化技术。一般选择虚拟化技术应注意以下要求。
a)性能。在评估不同虚拟化技术的性能时,需要考虑在一台物理服务器上能够运行的虚拟服务器的数量限制。尽管所有的虚拟化技术对虚拟服务器的数量都没有限制,但在过去由于过高的额外损耗,根本就不能支持更多的虚拟服务器数量。同时如果虚拟化对物理服务器的处理损耗较高,那只能运行非产品级或不太重要的应用服务。虚拟化的应用程序的运行效率差异很大,有的能够做到接近原始物理环境下运行的效率,有的则低劣到终端用户所难以接受的程度。同一虚拟化技术路线的不同产品性能也有很大差异。
b)虚拟化平台管理工具。虽然IT系统的硬件成本较高,但带来的维护成本同样不可忽视,完备的管理工具可有效降低系统的维护成本。常见管理性任务包括操作系统和应用程序更新、打补丁、备份、安装、开通和应用管理、服务流程、统计分析等等。因此对于虚拟化基础设施的管理而言,管理工具就更加重要,只有很好地进行资源的管理和监控才能真正做到有效地利用虚拟服务器的资源。
c)平台支持。虚拟化技术将虚拟服务器从其下的硬件中抽象出来,但这并不意味着虚拟基础结构可以支持任何硬件。需要特别注意的是,硬件辅助虚拟化必须硬件支持;而操作系统虚拟化技术建立在标准的操作系统之上,所以操作系统虚拟化产品部署过程更容易。某些虚拟化技术除了支持基本的硬件,还有充分利用所有硬件的能力,包括支持SMP,64位处理器,直到16路CPU和64 GB的内存。
d)迁移。虚拟化技术将虚拟服务器从硬件中抽象出来,这样做最大的好处是虚拟服务器可以在不同物理服务器中来回迁移。迁移能力允许将虚拟服务器克隆出来,或从一台物理服务器迁移到另外一台。迁移的好处包括:消除由于硬件升级或出现问题时造成的宕机时间,避免软件更新时的宕机时间,可以按需求将虚拟服务器迁移到更强或更弱的服务器上。
e)隔离和安全。对于隔离和安全问题,每种虚拟化技术的处理方式都不同。所有虚拟计算机必须完全隔离,这样进程、动态连接库及应用程序才不会影响同一台服务器的其他虚拟服务器上的应用。相对于普通服务器,由于虚拟化技术改变了访问节点和不同的组件,所以不太可能对于虚拟服务器实施常规性攻击。同隔离一样,对于同一台物理服务器上的2个虚拟服务器来说,彼此之间的安全同样重要。
f)开通效率。每个虚拟化解决方案的服务器开通能力是不同的。某些解决方案提供了模板和预先设置工具或定制配置提前缩短了开通时间。不同处理方法的开通时间从30 s到1h有很大的差别。与独立服务器相比,虚拟服务器急剧地缩短了服务器的开通时间。
g)成本。服务器虚拟化提高了IT系统的利用率,降低了系统硬件上的投人,但同时增加了虚拟化技术的费用支出,在衡量系统性价比时不仅需要横向比较不同虚拟化方案的成本,还需要纵向考虑增加虚拟化技术后的成本。
6 服务器虚拟化的优点及缺点
服务器虚拟化是云计算的必备选项,有着显著的优点,但也有相应的缺点,在技术使用过程中应注意扬长避短。
服务器虚拟化技术具有以下优点。
a)维护运行在早期操作系统上的业务应用。对于某些早期操作系统,发行厂商已经停止了系统的维护,不再支持新的硬件平台,而重写运行在这些系统上的业务应用又不现实。为此,可以将这些系统迁移到新硬件平台上运行的虚拟系统上,实现业务的延续。
b)提高服务器的利用率。将多种低消耗的业务利用整合到一台服务器上,可以充分发挥服务器的性能,从而提高整个系统的整体利用效率。
c)动态资源调配,提升业务应用整体的运行质量,可在一台计算机内部的虚拟机之间或是集群系统的各个业务之间进行动态资源调配,进而提升业务应用的整体运行质量。
d)提供相互隔离、安全的应用执行环境。虚拟系统下的各个子系统相互独立,即使一个子系统遭受攻击而崩溃也不会对其他系统造成影响。而且在使用备份机制后,子系统可被快速恢复。
e)提供软件调试环境,进行软件测试,保证软件质量采用虚拟技术后,用户可以在一台计算机上模拟多个系统,多种不同操作系统,使调试环境搭建简单易行,大大提高工作效率,降低测试成本。
服务器虚拟化存在以下问题。
a)虚拟技术的认知。用户对虚拟技术不了解,不明确虚拟技术在提升用户现有系统效率和降低总体运营成本上的优势,这是阻碍虚拟技术推广的最大障碍。
b)虚拟系统的可靠性。客户采用服务器,很大程度上是为了保障业务的稳定性。如果用户在一台服务器上运行多个业务,一旦出现重大硬件故障势必会影响到所有的应用,这种威胁很难消除。而对于用户,这种潜在的业务危险往往也是不可接受的。
e)虚拟系统的运行效率。使用虚拟技术的目的在于提高用户服务器的整体利用效率,如果虚拟系统的运行效率太低,也就失去了它在服务器上应用的价值。
d)平台支持。硬件支持方面,需要虚拟系统能够不断更新,以兼容新的硬件平台。操作系统支持,需要能够支持老操作系统。这样对于某些使用早期操作系统的客户才有意义。对于这两方面,虚拟化平台都需要不断更新,这些都依赖虚拟化技术提供商的维护。
e)部署效率和易用性。当前虚拟化标准尚不统一,移植和管理工具还不够成熟,这也影响到虚拟化的大面积普及。特别是远程管理功能需要配合虚拟化标准工作大力发展,以使得不同的虚拟化平台叮以通过网络进行统一管理。
7 结束语
云计算概念的提出和服务器虚拟化技术的发展相辅相成,云计算的实现需要服务器虚拟化的技术支持,服务器虚拟化技术在云计算的推动下得到很好的发展。随着云计算的实现和推广,服务器虚拟化技术将得到更进一步的发展。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:云计算中服务器虚拟化技术探讨(下)
本文网址:http://www.toberp.com/html/consultation/1083978465.html