本文主要是介绍北京华为HCIE云计算技术的基础 必须了解的什么是虚拟化?-ielab网络实验室,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
北京华为HCIE云计算技术的基础 必须了解的什么是虚拟化?-ielab网络实验室在计算机中,虚拟化是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件。
虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。在计算机方面,虚拟化一般指通过对计算机物理资源的抽象,提供一个或多个操作环境,实现资源的模拟、隔离或共享等。
本质上,虚拟化就是由位于下层的软件模块,通过向上一层软件模块提供一个与它原先所期待的运行环境完全一致的接口的方法,抽象出一个虚拟的软件或硬件接口,使得上层软件可以直接运行在虚拟环境上。通过空间上的分割、时间上的分时以及模拟,虚拟化可将一份资源抽象成多份,亦可将多份资源抽象成一份。
虚拟化可以分为虚拟化对象和虚拟化过程:
- 虚拟化对象:
- CPU虚拟化:目标是使虚拟机上的指令能被正常执行,且效率接近物理机。
- 内存虚拟化:目标是能够做好虚拟机内存空间的隔离,使每个虚拟机都认为自己拥有了整个内存地址,且效率接近物理机。
- I/O虚拟化:目标是不仅让虚拟机访问到他们需要的I/O资源,而且也要做好隔离工作,同时减轻虚拟化带来的开销。
- 虚拟化过程:
- 全虚拟化:使用VMM实现CPU、内存、设备I/O的虚拟化,而Guest OS和计算机系统硬件都不需要进行修改。
- 半虚拟化:使用VMM实现CPU和内存虚拟化,设备I/O虚拟化由Guest OS实现,这种方式兼容性较差。
- 硬件辅助虚拟化:借助硬件的支持来实现高效的全虚拟化,该方式不需要修改Guest OS,兼容性好。
我们接下来主要看看如何进行虚拟化:
- CPU虚拟化:
主要的两个关键问题:
- 如何模拟CPU指令:
敏感指令:可以读写系统关键资源的指令
特权指令:只能在处理器的最高特权级执行
- 如何共享CPU:
利用与Native操作系统类似的机制——通过定时器中断,在中断触发时陷入VMM,从而根据调度机制进行调度。
- 内存虚拟化:
把物理机的真实物理内容统一管理,包装成多个虚拟机的内存给若干虚拟机使用。KVM通过内存虚拟化共享物理系统内存,动态分配给虚拟机。
一般来说物理地址都是从0开始的,而且内存都是连续的。但是物理地址的0只有一个,无法满足所有的虚拟机从0开始的请求;而且虽然可以实现连续的物理地址分配,但是内存使用效率不高,缺乏灵活性。
- I/O虚拟化:
可以被看做是位于服务器组件的系统和各种可用I/O处理单元之间的硬件中间件层,使得多个guest可以重复使用有限的外设资源。I/O虚拟化的过程,就是模拟设备的这些寄存器和内存,截获Guest OS对I/O端口和寄存器的访问。在KVM中,客户机可用的设备可分为三类:
- 模拟设备:由纯软件模拟的设备;
- Virtio设备:实现VIRTIO API的半虚拟化设备;
- PCI设备直接分配。
- 全虚拟化:
也称为原始虚拟化技术,该模型使用虚拟机协调Guest操作系统和原始硬件,VMM在Guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由Hypervisor(虚拟机管理程序)来捕获处理。全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机,因为Hypervisor需要占用一些资源。北京华为HCIE云计算技术的基础 必须了解的什么是虚拟化?-ielab网络实验室
- 半虚拟化:
另一种类似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,但是它的Guest操作系统集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。半虚拟化需要Guest操作系统做一些修改,使Guest操作系统意识到自己是处于虚拟化环境的,但是半虚拟化提供了与原操作系统相近的性能。
- 硬件辅助虚拟化:
Intel/AMD等硬件厂商通过对部分全虚拟化和半虚拟化使用到的软件技术进行硬件化来提高性能。硬件辅助虚拟化技术常用于优化全虚拟化和半虚拟化产品,最出名的例子莫过于VMware Workstation,它虽然属于全虚拟化,但是在它的6.0版本中引入了硬件辅助虚拟化技术,比如Intel的VT-x和AMD的AMD-V。现在市面上的主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化,包括VirtualBox,KVM,VMware ESX和Xen。通过引入硬件技术,将使虚拟化技术更接近物理机的速度。北京华为HCIE云计算技术的基础 必须了解的什么是虚拟化?-ielab网络实验室
这篇关于北京华为HCIE云计算技术的基础 必须了解的什么是虚拟化?-ielab网络实验室的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!