和平信息港

当前位置:

淺析虛擬化的兩種實行方式

2019/05/02 来源:和平信息港

导读

從技術上看,硬件輔助虛擬化通過提高客戶虛擬系統的隔離性而增強了虛擬化的性能、靈活性和可靠性。在實施時也更加簡單。虚拟化技术早在大型主机

從技術上看,硬件輔助虛擬化通過提高客戶虛擬系統的隔離性而增強了虛擬化的性能、靈活性和可靠性。在實施時也更加簡單。

虚拟化技术早在大型主机上采用,随着技术的发展和竞争的加重,IBM、HP、Sun后来纷纭将其下移,逐渐将其引入到高端RISC服务器系统中。

随着X86处理器性能的提高和运用的普及,业界很多公司都看到了虚拟化在X86平台上实施的价值,因此VMware、Xen、微软和SWsoft等软件厂商纷纷推出了支持X86平台的虚拟化软件。

这些软件虚拟化产品基本的思路是在操作系统与硬件层之间或者操作系统之上建立一层独立控制、分配硬件资源的软件层来达到虚拟化系统资源的目的。

不过,不同的虚拟化产品其实现模式也有很大的不同,通过介于底层硬件和操作系统之间的软件层实现虚拟化功能的代表为VMware和Xen的产品,而SWsoft的产品则是在特定的操作系统之上虚拟出多个系统资源副本(SWsoft有支持Windows和Linux的版本),其好处是没有对系统软件的修改,对系统性能的影响较小,但由于实现虚拟化的层级不够低,灵活性不如前者,如VMware的产品可以在Linux系统基础上虚拟化出Windows的应用环境。

对于X86处理器来说,其保护模式下一共有4个不同优先级,称为Ring,命名从Ring0直到Ring3.这些Ring的优先级随其所执行的功能的不同也有所不同。其中Ring0用于操作系统内核,优先级,拥有的特权,Ring1和Ring2用于操作系统服务,优先级次之,Ring3用于应用程序,优先级。

软件虚拟化技术工作原理位于Ring0特权空间的操作系统可以优先访问各种硬件资源。传统的软件虚拟化技术是在Ring0中运行一个称为虚拟机监视器(VMM)的软件中间层,以负责控制和排列各个分区访问硬件资源的优先顺序。它要求在软件堆栈的较高层运行操作系统─―通常是在Ring1或与系统应用共用的Ring3.由于操作系统设计缺省工作在Ring0特权级别,而现在Ring0被虚拟机监视器(VMM)所具有,所以传统的纯软件虚拟化技术需要虚拟机监视器(VMM)通过复杂的软件编程来解决这个矛盾。

其中一种方法是通过打补丁修改操作系统内核源代码让其认知到工作在Guest OS虚拟操作系统模式下,另一种方法是需要对运行期间操作系统的某些硬件调用指令作二进制码翻译等。由于上述原因,传统的纯软件实现方式在测试、验证和维护每款新操作系统和相干补丁方面,付出了大量的时间和资金,同时二进制码翻译需要消耗处理器的很多计算资源。

英特尔VT技术工作原理纯软件虚拟化运行时的开销会造成系统运行速度较慢,有数据表明其引起的系统性能下降可能超过10%,尤其是在服务器整合领域,当虚拟化系统数目巨大时,其性能损失更为可观。另外由于要通过软件捕获分配基本资源的处理器指令,不但过程复杂,可靠性不高,对不同平台的兼容性也容易产生问题。

这也是硬件辅助虚拟化技术诞生的重要缘由。与软件方案相比,VT技术对如何在不同的情形下分配给GuestOS(虚拟机上的操作系统)想要的Ring特权级别做了重要的改进,在软件堆栈中为虚拟机监视器(VMM)提供了专用的空间,可以支持未经修改的操作系统和运用在专门为它们设计的环境中运行,从而简化了硬件调用。

脑瘫能康复么
脑瘫儿是不是很能睡觉
孩子癫痫病治疗医院
标签