首页>>科技 >>内容

什么是虚拟化技术简述,什么是虚拟化技术

发布时间:2023-10-17 12:26:25编辑:温柔的背包来源:

很多朋友对什么是虚拟化技术简述,什么是虚拟化技术不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

什么是虚拟化技术简述,什么是虚拟化技术

成本是一个永恒的话题。虚拟化的目标也是降低成本,体现在对IT资源的充分利用上。一、虚拟化的发展上世纪五七十年代,大型机被广泛使用。但是也很贵,所以如何节约成本就成为一个考虑因素。一个简单的想法是多个最终用户可以共享同一个大型机。

从时间上看,就是把CPU时间分成非常小的时间片,每个时间片执行不同用户的工作任务,通过轮询的方式进行调度。这样,表面上看,不同用户的任务已经在同一个硬件资源上执行了,但本质上,后台是一个“分时”的主机。20世纪60年代,IBM在其System/360中实现了分时系统,并在System/370中正式命名为虚拟机。80年代硬件成本降低,虚拟化技术逐渐被抛弃。

90年代,随着Win-Intel联盟和Linux操作系统的发展,x86服务器架构得到广泛应用,成为服务器硬件设施的主流。但是X86计算机架构首先着眼于性能要求不高的场景,没有考虑对虚拟化技术的支持。

人们在使用x86服务器时,为了满足业务的需要,通常会对业务流程进行测试,得到业务所需的x86服务器配置。这种配置通常基于业务的最高要求。这样在日常运行中,服务器的CPU利用率比较低,在10%-30%之间,也就是服务器资源没有得到充分利用。随后,各公司推出了各种虚拟化解决方案:

VMware将虚拟化技术引入x86服务器,并发布了ESX产品。Xen虚拟化平台由剑桥大学研发,成为开源虚拟化资源的代表。微软推出Hyper-V. Intel硬件虚拟化VT-x方案。二、虚拟化概念和架构什么是虚拟化?IBM给出的定义很有代表性:“虚拟化是资源的逻辑表示,不受物理限制的束缚。”

简单来说,就是把X86服务器的硬件资源抽象出来,在上面构建虚拟机。虚拟机与X86服务器没有什么不同。你可以安装操作系统,部署用户应用程序并运行它们。那么,如何实现虚拟化呢?在硬件资源和虚拟机之间,需要有一个抽象层,向下抽象硬件,向上提供人类虚拟机,并保证这些虚拟机是独立的、隔离的。这个抽象层被称为虚拟机监视器(VMM)。

通常X86服务器上的操作系统称为主机OS,虚拟机的操作系统称为来宾OS。根据VMM是否直接部署在硬件上,可以分为主机型、裸机型和混合型。

主机类型:硬件资源仍然由主机OS管理,VMM是OS的内核,体现为一个进程。裸模型:VMM直接部署并运行在硬件上。混合型:宿主型和裸型的融合。根据虚拟资源的类型,虚拟化可以分为计算虚拟化、存储虚拟化和网络虚拟化。三、实现机制如前所述,X86架构在最初设计时并没有考虑虚拟化。这意味着未来硬件支持虚拟化时,必须采用打补丁的方式。

这里只讨论CPU虚拟化。在x86架构的CPU指令集中,有四种状态:Ring0,Ring2、 Ring2、 Ring 3,其中Ring0的权限最高,操作系统有这个权限,可以直接控制所有的资源。Ring3的权限最低,应用程序有这个权限。应用程序可以访问它们自己权限内的硬件资源,但不能访问Ring0权限内的硬件资源。

从运行的角度来看,虚拟机是x86服务器上的一个进程,拥有Ring3权限。如果没有主机OS的Ring0权限,就无法访问整个硬件资源。如果此时直接访问,会被主机OS捕获并触发异常,弹出警告窗口。那么,客户操作系统如何获得Ring0权限呢?从x86架构的原始设计来看,是不可能的。后退一步,让来宾操作系统认为它有Ring0权限。这要求底层VMM或硬件获得“客户操作系统认为的特权”来欺骗客户操作系统。

让我们先看看VMM是怎么做的。一种方法是欺骗到底。嘉宾OS不做任何改变,还是那个追风的少年,VMM还是变成了保姆,有求必应。但VMM也有策略:对于一些不敏感的指令,VMM直接“翻译”并调用Guest OS来模拟其所需的抽象硬件资源,包括CPU、磁盘、内存、网卡、显卡等等。

对于一些敏感的指令,比如reboot,考虑到会影响到整个x86服务器,VMM会“模拟”并转换成只针对特定来宾的重新启动指令。另一个是认清现实,现实是一个虚拟机。告诉客户OS一些细节,客户OS会做一些调整,修改指令集中的敏感指令和内核指令,让主机OS判断谁要访问硬件资源,从而提供相应的硬件抽象。我们再来看看,硬件怎么做?

原来的x86架构包含四个权限指令集,现在打了补丁。介绍一种新的VMX模式:虚拟机扩展,包括root操作模式和非root操作模式。VMM运行在root操作模式,Guest OS运行在非root操作模式,有Ring 0权限,可以直接访问硬件资源。同时,重启等敏感指令在硬件的帮助下直接切换到VMM执行,转换成只针对特定客户OS的指令。

这是英特尔VT-x方案的基本思路。四、实现技术虚拟化的实现技术有很多,比如KVM、Xen、VMware、Virtual Box、Hyper-V等。这里只介绍KVM。KVM(基于内核的虚拟机)是一种基于Linux内核的开源虚拟化方案。KVM提供CPU虚拟化和内存虚拟化,而I/O部分是借助QEMU (QEMU比KVM早)实现的。KVM虚拟化方案采用vt-X的VMX模式,其技术框架如下五、工具

对于许多虚拟化技术,面向云计算的IaaS平台通常采用兼容和打包的策略。为了简化处理,引入了中间适配层libvirt。Libvirt支持接口和CLI命令行方法,如virsh和virt-manager。事实上,现有的云计算框架平台都是使用libvirt API来管理虚拟机,比如OpenStack。

以上知识分享希望能够帮助到大家!