本文目录导读:
模式、特点全解析
寄居虚拟化架构
1、架构概述
图片来源于网络,如有侵权联系删除
- 寄居虚拟化架构也被称为宿主型虚拟化,在这种架构中,虚拟化层(VMM,Virtual Machine Monitor)作为一个应用程序运行在宿主操作系统之上,宿主操作系统直接运行在物理硬件上,它管理着硬件资源,如CPU、内存、磁盘和网络接口等,而VMM则依赖于宿主操作系统提供的功能来创建和管理虚拟机(VM),VMware Workstation就是一种采用寄居虚拟化架构的软件。
- 从资源分配的角度看,虚拟机对硬件资源的请求首先经过VMM,然后由VMM向宿主操作系统请求资源,宿主操作系统再根据自身的资源管理策略,将硬件资源分配给VMM,最后由VMM分配给虚拟机。
2、特点
易于安装和使用
- 对于用户来说,寄居虚拟化架构的软件安装过程相对简单,由于它是基于现有的宿主操作系统,用户只需要像安装普通应用程序一样安装虚拟化软件即可,在Windows操作系统上安装VirtualBox,用户只需要按照常规的软件安装向导进行操作,不需要对底层硬件进行复杂的配置。
- 这种架构在使用上也比较方便,用户可以在熟悉的宿主操作系统环境下管理虚拟机,用户可以利用宿主操作系统的文件管理系统来存储虚拟机的镜像文件,方便进行备份和迁移操作。
对宿主操作系统的依赖
- 寄居虚拟化架构的性能在很大程度上依赖于宿主操作系统,因为VMM运行在宿主操作系统之上,宿主操作系统的性能瓶颈会直接影响到虚拟机的性能,如果宿主操作系统本身存在内存管理方面的问题,如内存泄漏,那么运行在其上的虚拟机也会受到影响,可能会出现内存不足的情况,导致虚拟机运行缓慢甚至崩溃。
- 宿主操作系统的安全性也会影响到整个虚拟化环境,如果宿主操作系统遭受病毒攻击或者存在安全漏洞,虚拟机中的数据和应用程序也会面临风险,一旦宿主操作系统被恶意软件入侵,恶意软件可能会获取虚拟机中的敏感信息或者干扰虚拟机的正常运行。
有限的资源利用效率
- 在寄居虚拟化架构中,由于资源分配需要经过宿主操作系统,存在一定的资源开销,当虚拟机请求CPU资源时,VMM先向宿主操作系统请求,宿主操作系统再进行调度分配,这个过程中会消耗一定的CPU时间用于资源管理和调度,从而降低了资源利用效率。
- 由于宿主操作系统本身也占用一定的硬件资源,如内存和磁盘空间,留给虚拟机的资源相对有限,特别是在宿主操作系统运行多个大型应用程序的情况下,虚拟机能够使用的资源会进一步减少,影响虚拟机的性能。
原生虚拟化架构
1、架构概述
图片来源于网络,如有侵权联系删除
- 原生虚拟化架构,也称为裸金属虚拟化架构,在这种架构中,VMM直接运行在物理硬件之上,不需要宿主操作系统,VMM负责管理所有的硬件资源,如CPU、内存、磁盘和网络接口等,并直接为虚拟机分配这些资源,VMware ESXi就是典型的原生虚拟化架构产品。
- VMM在原生虚拟化架构中具有对硬件的最高控制权,它可以直接访问硬件设备,并且可以根据虚拟机的需求进行硬件资源的优化分配,VMM可以根据虚拟机的负载情况,动态调整分配给虚拟机的CPU核心数和内存大小,以提高整个虚拟化环境的性能。
2、特点
高性能
- 由于VMM直接运行在硬件上,减少了中间宿主操作系统的资源开销和性能损耗,在原生虚拟化架构中,虚拟机对硬件资源的请求直接由VMM处理,不需要经过额外的操作系统层,在处理CPU密集型任务时,原生虚拟化架构下的虚拟机能够更快地获取CPU资源,从而提高任务处理的速度。
- 原生虚拟化架构还能够更好地支持硬件的高级特性,对于一些具有特殊指令集(如Intel VT - x或AMD - V)的CPU,原生虚拟化架构可以直接利用这些指令集来提高虚拟机的性能,相比之下,寄居虚拟化架构可能由于宿主操作系统的限制,无法充分利用这些硬件特性。
高安全性
- 没有宿主操作系统意味着减少了一个可能的安全风险源,在原生虚拟化架构中,VMM可以构建自己独立的安全体系,VMM可以对虚拟机之间的通信进行严格的安全监控,防止虚拟机之间的非法数据访问和恶意攻击。
- 由于VMM直接控制硬件资源,它可以对硬件资源进行更精细的安全管理,对于存储资源,VMM可以为不同的虚拟机设置独立的存储访问权限,确保虚拟机数据的安全性。
复杂的安装和管理
- 原生虚拟化架构的安装相对复杂,因为它直接运行在硬件上,需要对硬件有深入的了解和配置,在安装VMware ESXi时,用户需要确保硬件兼容性,可能需要进入BIOS设置来开启硬件虚拟化支持等操作,这对于普通用户来说有一定的难度。
- 管理原生虚拟化环境也需要专门的知识和工具,与寄居虚拟化架构中可以利用宿主操作系统的管理工具不同,原生虚拟化架构需要使用专门为其设计的管理控制台,管理员需要学习ESXi的管理界面和命令行工具来配置网络、存储和虚拟机等资源,这增加了管理的复杂性。
容器虚拟化架构
1、架构概述
图片来源于网络,如有侵权联系删除
- 容器虚拟化架构是一种轻量级的虚拟化技术,与寄居虚拟化和原生虚拟化不同,容器虚拟化不是对硬件进行虚拟化,而是对操作系统进行虚拟化,容器共享宿主机的操作系统内核,多个容器可以运行在同一个宿主机操作系统之上,Docker就是一种广泛使用的容器虚拟化技术。
- 在容器虚拟化架构中,每个容器都包含自己的应用程序、运行时环境和依赖库等,容器通过操作系统的命名空间(Namespace)和控制组(CGroup)技术来实现资源隔离和限制,命名空间可以将容器中的进程、网络、文件系统等与宿主机和其他容器隔离开来,而CGroup则可以对容器使用的资源(如CPU、内存等)进行限制和管理。
2、特点
轻量级和快速启动
- 由于容器共享宿主机的操作系统内核,不需要像传统虚拟机那样模拟整个操作系统环境,所以容器非常轻量级,一个简单的Docker容器镜像可能只有几十兆字节,而一个完整的虚拟机镜像可能达到几个吉字节。
- 容器的启动速度非常快,因为不需要启动完整的操作系统,容器可以在几秒钟甚至更短的时间内启动,这对于需要快速部署应用程序的场景,如微服务架构中的服务快速启动,非常有优势。
高效的资源利用
- 容器对资源的占用非常少,由于共享内核,容器在运行时只需要使用额外的少量内存和CPU资源来运行自己的应用程序和相关的运行时环境,相比之下,传统虚拟机需要为每个虚拟机分配独立的操作系统资源,导致资源浪费。
- 容器可以根据实际需求灵活调整资源使用,通过CGroup技术,容器可以在运行过程中动态调整自己使用的CPU和内存等资源,当容器中的应用程序负载增加时,可以申请更多的CPU资源,当负载降低时,可以释放多余的资源。
有限的隔离性
- 虽然容器通过命名空间和CGroup实现了一定程度的隔离,但这种隔离性不如传统虚拟机,因为容器共享宿主机的操作系统内核,如果宿主机的内核出现问题,可能会影响到所有运行在其上的容器,如果宿主机内核存在安全漏洞,容器中的应用程序也会面临风险。
- 容器之间的资源隔离也不是绝对的,在高负载情况下,一个容器可能会占用过多的资源,从而影响到其他容器的正常运行,如果一个容器中的应用程序出现内存泄漏,可能会耗尽宿主机的内存资源,导致其他容器因为内存不足而崩溃。
评论列表