2023-2024-1 20232820 陈彦霖《Linux内核原理与分析》第十周作业

第十章、KVM及虚拟机技术

        主流虚拟化技术有VMware的ESXi、开源项目Xen和KVM等,它们的主要差别在于CPU的虚拟化、内存的虚拟化和I/O的虚拟化,以及调度管理实现有所不同。在ESXi中,所有虚拟化功能都在内核中实现;在Xen中,内核仅实现CPU与内存虚拟化,I/O虚拟化与调度管理由主机上启动的第一个负责管理的虚拟机实现;在KVM中,Linux内核实现CPU与内存虚拟化,I/O虚拟化由QEMU实现,调度管理通过Linux进程调度器实现,如图10-1所示。

       除了ESXi、Xen和KVM,还有Hyper-V是微软推出的一种虚拟化技术解决方案。下面以当前主流的虚拟机技术之一(KVM)为例来分析虚拟机技术的实现原理。

       KVM是基于硬件辅助虚拟化技术的虚拟化方案,它需要CPU虚拟化特性的支持。在KVM中,一个虚拟机就是一个用户空间的QEMU进程,vCPU就是分配给该进程的物理CPU核上的某个线程,由Linux内核动态调度。KVM支持将vCPU绑定到特定pCPU上,KVM还支持vCPU的超量分配(over-commit),使得分配给客户虚拟机的vCPU数量超过pCPU上的线程总量,因为Linux内核的调度程序可以分时复用pCPU上的线程。
一般CPU工作在内核模式和用户模式下,而KVM的vCPU工作在3种模式下。
(1)客户模式,运行客户机操作系统(GuestOS),执行客户机非I/O操作指令。
(2)用户模式,运行QEMU,实现I/O的模拟与虚拟机管理。
(3)内核模式,运行KVM内核模块,实现用户模式和内核模式的切换(VM Exit/VM Entry),执行特权与敏感指令。

      KVM的执行环境是基于Linux系统环境扩展得到的,称为虚拟机扩展(Virtual Machine eXtension,VMX)。

第十一章、Linux容器技术

       容器是一种沙盒(sandbox)技术,主要目的是将应用打包起来提供一个与外界隔离的运行环境,以及方便这个沙盒转移到其他宿主机器。本质上,容器是一组特殊的进程,通过namespace、cgroup等技术把资源、文件、设备、状态和配置划分到一个独立的空间,形成一个虚拟的操作系统环境。
        通俗的理解就是一个装应用软件的箱子,箱子里面有软件运行所需的依赖库和配置。开发人员可以把这个箱子搬到任何机器上,且不影响里面软件的运行。
         容器和虚拟机有什么不同呢?容器共享同一个操作系统内核,将容器内的应用进程与系统其他部分隔离开,而虚拟机是在虚拟一套计算机硬件环境的基础上运行完整的操作系统。对虚拟机来说,x86 Windows系统上既可以运行x86 Windows虚拟机又可以运行x86 Linux虚拟机,还可以运行ARM Linux虚拟机;而对容器来说,在没有虚拟机技术的支撑下,ARM Linux系统只能运行ARM Linux容器,x86 Linux系统只能运行x86 Linux容器。Linux容器具有极佳的可移植性,但前提是它们必须与底层计算机硬件和操作系统兼容。

询问chatgpt

总结

 虚拟机技术(Virtual Machine,VM)和容器技术(Container)的主要区别在于虚拟化和资源分配方式。

1. 虚拟化程度:虚拟机技术通过模拟硬件环境,为每个用户创建一个独立的虚拟计算机,具有完整的硬件系统,包括CPU、内存、硬盘等。容器技术则是在同一台物理机上,将操作系统层面的资源进行隔离,使得每个容器内的应用程序看起来像在独立的系统中运行。

2. 资源分配:虚拟机技术需要为每个虚拟机分配独立的硬件资源,因此在资源利用上存在一定的浪费。容器技术则共享主机操作系统和硬件资源,通过资源限制和隔离技术,使得各个容器之间的资源使用不会相互影响。

3. 性能:虚拟机技术由于模拟了完整的硬件环境,性能相对较低。容器技术则因为共享主机资源,性能损耗较小,接近裸机运行性能。

4. 部署和迁移:虚拟机技术需要对整个虚拟机进行迁移,包括操作系统、应用程序和配置等。容器技术只需迁移容器内的应用程序,部署和迁移更加便捷。

5. 安全性:虚拟机技术的安全性依赖于虚拟化层的稳定性,可能存在潜在的安全隐患。容器技术则基于主机操作系统,安全性较高。

总结:虚拟机技术和容器技术的核心区别在于虚拟化程度、资源分配方式、性能、部署迁移便捷性和安全性。容器技术在云计算、微服务等领域具有广泛应用,而虚拟机技术则在需要独立硬件环境的情况下使用。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值