Electronic Joint Business

Solution for E-Business

从虚拟化到云计算 (二) 深入硬件辅助虚拟化技术

从业界的整体趋势来看, 数据中心的焦点已经从“更快的性能”走向了合理的性能、合理的功耗、合理的利用以及合理的管理。虚拟化技术的初衷就是为了实现更高的设备利用率,使用户能够尽可能地利用系统资源。有这样一句话,叫做“更多虚拟,更少管理 (Virtualize more, manage less)”,意思是说,如果你能够在单个服务器上虚拟多个系统,就能够以少数几台计算机完成所有工作,这显然能够节省耗电、空间、冷却和管理开支。一个理想的虚拟化解决方案应该提供不同虚拟机之间的彻底的安全的隔离,并为每个虚拟机提供卓越的性能,从而确保整个平台的出色实用性、可靠性和安全性。 完全虚拟化技术可以提供较好的客户操作系统独立性,不过其性能不高。而操作系统虚拟化可以提供良好的性能,然而各个客户操作系统之间的独立性并不强。无论是何种软件方法,隔离性都是由 Hypervisor 软件提供的,过多的隔离必然会导致性能的下降。对于虚拟化技术来说,无论是软件还是硬件辅助的解决办法,其目的和作用都是一样的,都以提高IT系统利用率、大幅降低成本、提高可管理性和建立完善的合作的整体化系统作为其第一要务的 VMM 对硬件资源的虚拟可以划分为三个部分:CPU 虚拟化,内存虚拟化和 I/O 虚拟化。在计算机中,CPU 无疑是最重要的部件,要想虚拟化出一台电脑,CPU 的虚拟化无疑是重中之重,事实上英特尔和 AMD 近年来也在全力推广 CPU 的虚拟化技术。那么究竟哪些处理器是支持硬件虚拟化,除了处理器还需要什么配合才能实现硬件虚拟化呢?下面我们先来看看支持 CPU 虚拟化的硬件环境要求。 Popek 和 Goldberg 在 1974 年发表的论文中提出一个真正的 VMM 必须满足的三个条件:高效性、资源控制和同质性。高效性是指所有的安全指令都可以在本地硬件上直接运行而不需要 VMM 的干预或仿真,资源控制是指任何客户机软件都不能改变它可用的系统资源分配,同质性是指抛开性能略微下降的因素,虚拟机上执行的任何程序的行为必须和在本地机器上运行一样。根据该定义,指令集支持虚拟化的最高效的状态是:所有敏感指令都是特权指令。 敏感指令和虚拟化方法 从软件角度上来说,处理器呈现给软件的接口就是一系列指令(指令集 ISA)和一堆的寄存器(通用寄存器以及状态和控制寄存器),而 I/O 设备呈现给软件的接口也就是一堆的状态和控制寄存器(有些设备亦有内部存储)。这些都是系统的资源,其中影响处理器和设备状态和行为的寄存器称为关键资源或特权资源,如 x86 的 CR0 ~ CR4 寄存器,MIPS 的 CP0 寄存器,PowerPC 的 Privileged SPR 等等。 可以读写系统关键资源的指令叫做敏感指令,如 x86 的 lgdt/sgdt/lidt/sidt/in/out,MIPS 的 […]

, ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.