论文部分内容阅读
近年來随着云计算的广泛应用,虚拟化技术在商业上的价值日益体现,不仅可以降低硬件成本,简化集群系统的管理,而且还可以增强了系统安全性和可靠性,虚拟化的概念也开始逐渐被大众提及。本文将简要介绍以下虚拟化的概念与分类,然后介绍相应的几种虚拟化产品。
1 .虚拟化的概念与分类
虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,以用户定制的组态(虚拟机)来使用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。虚拟化技术最早出现在20世纪60年代的IBM大型机系统中,并在70年代的System 370系列中逐渐流行。
虚拟化技术主要分为两个大类:
(1)软件虚拟化,主要包括桌面,数据库,应用程序等指令代码的仿真、模拟。解释等技术。通常意义上的虚拟化指的是针对平台硬件与操作系统的虚拟化(PV)。通过使用超级核(Hypervisor)或虚拟机监视器(Virtual Machine Monitor)隐藏计算平台实际的物理特性,提供抽像、统一、模拟的计算环境(虚拟机)。在虚拟机上运行的操作系统被称为客户机操作系统(Guest OS),运行虚拟机监控器的操作系统被称为主机操作系统 (Host OS),当然某些虚拟机监控器可以脱离操作系统直接运行在硬件之上(如 VMWARE 的 ESX 产品),运行虚拟机的真实系统我们称之为主机系统。VMM/Hypervisor需要为每个虚拟机分配一套数据结构来管理它们的状态,包括虚拟处理器的全套寄存器,物理内存的使用情况,虚拟设备的状态等等。由于将虚拟机的状态保存带对应的数据文件之中,因此,迁移相应的虚拟机只需要拷贝对应的数据文件到另一主机系统上启动即可。
(2)硬件虚拟化,主要包括针对平台硬件与操作系统的计算环境虚拟化(PV)以及针对内存、存储资源、网络的资源虚拟化。针对平台硬件与操作系统的虚拟化方式又包括完全虚拟化,半/准虚拟化:
完全虚拟化技术:完全虚拟化又叫硬件辅助虚拟化,最初所使用的虚拟化技术就是全虚拟化(Full Virtualization)技术,它在虚拟机(VM)和硬件之间加了一个软件层--Hypervisor,或者叫做虚拟机管理程序(VMM)。 包括hypervisor 是直接运行在物理硬件之上、 hypervisor 运行在另一个操作系统(运行在物理硬件之上)中两种类型。运行在虚拟机上的操作系统通过Hypervisor来最终分享硬件,所以虚拟机发出的指令需经过Hypervisor捕获并处理。为此每个客户操作系统(Guest OS)所发出的指令都要被翻译成CPU能识别的指令格式,这里的客户操作系统即是运行的虚拟机,所以Hypervisor的工作负荷会很大,因此会占用一定的资源,所以在性能方面不如裸机。全虚拟化最大的优点就是运行在虚拟机上的操作系统没有经过任何修改,唯一的限制就是操作系统必须能够支持底层的硬件,不过目前的操作系统一般都能支持底层硬件,所以这个限制就变得微不足道了。全虚拟化技术如图1所示。
半/准虚拟化技术:半虚拟化技术英文是paravirtualization,也叫做准虚拟化技术,现在比较热门,它就是在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的API,这个API可以将客户操作系统发出的指令进行最优化并进行翻译操作,此时hypervisor无需捕获并翻译指令, 因此Hypervisor的工作负担变得非常的小,因此整体的性能也有很大的提高。不过缺点就是,仅适用于包含要修改API的操作系统。半/准虚拟化技术如图2所示。
2 几种常见的虚拟化管理程序
KVM
虚拟化方式:完全虚拟化; 架构:寄居架构(linux内核),祼金属架构RHEV-H;I/O协议栈:KVM重用了整个Linux I/O协议栈,所以KVM的用户就自然就获得了新的驱动和I/协议栈的改进。架构图如下:
虚拟化方式:半虚拟化(linux安装linux); I/O协议栈:Xen选择了可维护这条道路,它将所有的I/O操作放到了Linux guest里面,也就是所谓的domain-0里面。重用Linux来做I/O, Xen的维护者就不用重写整个I/O协议栈了。但不幸的是,这样就牺牲了性能:每一个中断都必需经过Xen的调度,才能切换到domain 0, 并且所有的东西都不得不经过一个附加层的映射。
虚拟化方式:半虚拟化;架构:裸金属架构Hyper-V Server;
特点:父分区(宿主机操作系统)的位置挪到了子分区(虚拟机操作系统)的旁边,宿主机操作系统和虚拟机操作系统是平级的,没有谁依附谁之上的关系。
I/O协议栈:虚拟机看到的所有设备不再都是虚拟出来的,有部分的硬件资源是真实的物理设备。
参考文献
[1] http://enwikipedia.org/wiki/Virtualization.
[2] 金海.计算机系统虚拟化-原理与应用[M].北京:清华大学出版社,2009.
[3] 田冰超.虚拟化技术研究与探索.武警学院学报 ,2010年第4期第26卷.
1 .虚拟化的概念与分类
虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,以用户定制的组态(虚拟机)来使用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。虚拟化技术最早出现在20世纪60年代的IBM大型机系统中,并在70年代的System 370系列中逐渐流行。
虚拟化技术主要分为两个大类:
(1)软件虚拟化,主要包括桌面,数据库,应用程序等指令代码的仿真、模拟。解释等技术。通常意义上的虚拟化指的是针对平台硬件与操作系统的虚拟化(PV)。通过使用超级核(Hypervisor)或虚拟机监视器(Virtual Machine Monitor)隐藏计算平台实际的物理特性,提供抽像、统一、模拟的计算环境(虚拟机)。在虚拟机上运行的操作系统被称为客户机操作系统(Guest OS),运行虚拟机监控器的操作系统被称为主机操作系统 (Host OS),当然某些虚拟机监控器可以脱离操作系统直接运行在硬件之上(如 VMWARE 的 ESX 产品),运行虚拟机的真实系统我们称之为主机系统。VMM/Hypervisor需要为每个虚拟机分配一套数据结构来管理它们的状态,包括虚拟处理器的全套寄存器,物理内存的使用情况,虚拟设备的状态等等。由于将虚拟机的状态保存带对应的数据文件之中,因此,迁移相应的虚拟机只需要拷贝对应的数据文件到另一主机系统上启动即可。
(2)硬件虚拟化,主要包括针对平台硬件与操作系统的计算环境虚拟化(PV)以及针对内存、存储资源、网络的资源虚拟化。针对平台硬件与操作系统的虚拟化方式又包括完全虚拟化,半/准虚拟化:
完全虚拟化技术:完全虚拟化又叫硬件辅助虚拟化,最初所使用的虚拟化技术就是全虚拟化(Full Virtualization)技术,它在虚拟机(VM)和硬件之间加了一个软件层--Hypervisor,或者叫做虚拟机管理程序(VMM)。 包括hypervisor 是直接运行在物理硬件之上、 hypervisor 运行在另一个操作系统(运行在物理硬件之上)中两种类型。运行在虚拟机上的操作系统通过Hypervisor来最终分享硬件,所以虚拟机发出的指令需经过Hypervisor捕获并处理。为此每个客户操作系统(Guest OS)所发出的指令都要被翻译成CPU能识别的指令格式,这里的客户操作系统即是运行的虚拟机,所以Hypervisor的工作负荷会很大,因此会占用一定的资源,所以在性能方面不如裸机。全虚拟化最大的优点就是运行在虚拟机上的操作系统没有经过任何修改,唯一的限制就是操作系统必须能够支持底层的硬件,不过目前的操作系统一般都能支持底层硬件,所以这个限制就变得微不足道了。全虚拟化技术如图1所示。
半/准虚拟化技术:半虚拟化技术英文是paravirtualization,也叫做准虚拟化技术,现在比较热门,它就是在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的API,这个API可以将客户操作系统发出的指令进行最优化并进行翻译操作,此时hypervisor无需捕获并翻译指令, 因此Hypervisor的工作负担变得非常的小,因此整体的性能也有很大的提高。不过缺点就是,仅适用于包含要修改API的操作系统。半/准虚拟化技术如图2所示。
2 几种常见的虚拟化管理程序
KVM
虚拟化方式:完全虚拟化; 架构:寄居架构(linux内核),祼金属架构RHEV-H;I/O协议栈:KVM重用了整个Linux I/O协议栈,所以KVM的用户就自然就获得了新的驱动和I/协议栈的改进。架构图如下:
虚拟化方式:半虚拟化(linux安装linux); I/O协议栈:Xen选择了可维护这条道路,它将所有的I/O操作放到了Linux guest里面,也就是所谓的domain-0里面。重用Linux来做I/O, Xen的维护者就不用重写整个I/O协议栈了。但不幸的是,这样就牺牲了性能:每一个中断都必需经过Xen的调度,才能切换到domain 0, 并且所有的东西都不得不经过一个附加层的映射。
虚拟化方式:半虚拟化;架构:裸金属架构Hyper-V Server;
特点:父分区(宿主机操作系统)的位置挪到了子分区(虚拟机操作系统)的旁边,宿主机操作系统和虚拟机操作系统是平级的,没有谁依附谁之上的关系。
I/O协议栈:虚拟机看到的所有设备不再都是虚拟出来的,有部分的硬件资源是真实的物理设备。
参考文献
[1] http://enwikipedia.org/wiki/Virtualization.
[2] 金海.计算机系统虚拟化-原理与应用[M].北京:清华大学出版社,2009.
[3] 田冰超.虚拟化技术研究与探索.武警学院学报 ,2010年第4期第26卷.