KVM 虚拟化详解
KVM虚拟化详解 1、KVM虚拟化架构 1.1主流虚拟化架构对比 主流虚拟化架构有ESXi、Xen、KVM等。ESXi 内核实现所有虚拟化功能。
Xen只实现了CPU和内存虚拟化,IO虚拟化和调度由Domain0实现。
KVM内核实现CPU和内存虚拟化,QEMU实现IO虚拟化,通过Linux进程调度器管理虚拟机。
1.2KVM架构核心模块 KVM架构包括KVM内核模块和QEMU设备模拟。
KVM内核模块负责CPU和内存虚拟化,而QEMU实现IO虚拟化用于虚拟机管理。
2.CPU虚拟化 2.1pCPU和vCPU 一台物理服务器由两个物理pCPU组成,每个pCPU有多个核心。
启用超线程技术会为每个核心分配两个线程。
在虚拟化环境中,一个线程对应一个vCPU。
KVM 将每个 VM 视为用户空间中的 QEMU 进程,分配给来宾的 vCPU 成为该进程的线程。
2.2 虚拟化类型比较 ESXi 是全虚拟化的,VMM 运行在 Ring0 上,完全模拟底层硬件。
Xen支持全虚拟化和半虚拟化。
KVM 依赖于完全硬件辅助的虚拟化。
2.3KVMCPU虚拟化 KVM vCPU有三种运行模式。
访客模式运行GuestOS,用户模式运行QEMU,内核模式运行KVM内核。
一旦KVM内核被加载,它就会执行VMXON指令进入VMX操作模式。
VMM 运行VMExit 切换到root 模式处理特权指令,然后运行VMLANCH 或VMRESUME 指令返回非root 模式。
3、内存虚拟化 3.1EPT和VPID Intel的EPT和AMD的NPT硬件辅助内存虚拟化技术提供了硬件辅助内存地址转换。
guest 读写 CR3 寄存器或 GuestPageFault 并执行 INVLPG 指令,而无需触发 VMExit,从而降低了内存转换复杂性。
3.2 透明大页THP 透明大页THP技术自动创建、管理和使用大页内存,以提高内存使用率和性能,同时避免传统大页的弊端。
3.3 内存复用 内存复用会导致分配给guest 的内存总量大于实际的物理内存总量。
内存交换、气球和页面共享技术提供了内存超分。
4. IO 设备虚拟化 4.1 IO 设备虚拟化概述 KVM 支持设备模拟、virtio 驱动、设备直通和共享。
4.2 设备模拟和virtio驱动设备模拟是通过QEMU实现的。
virtio 驱动程序将前端驱动程序部署到 guest 虚拟机,将后端驱动程序部署到 QEMU,并通过虚拟环形缓冲区队列处理 IO。
交换请求和执行信息。
4.3 设备直通和共享设备直通 PCIP 直通将主机物理设备直接分配给访客。
设备共享 SR-IOV 标准允许物理设备支持多个虚拟功能接口,并将它们独立分配给不同的来宾。
4.4 其他IO 设备功能图像和声音是在QEMU 中使用SDL 实现的。
热插拔支持KVM中的PCI设备,但热插拔CPU和内存受到平台和操作系统的限制。
KVM虚拟机平台搭建
Hypervisor直接安装在物理机上,多个虚拟机运行在Hypervisor上。在这种虚拟化方法中,Hypervisor直接管理和调用硬件资源,不需要底层操作系统,将Hypervisor做成一个非常瘦的操作系统也是可以理解的。
该方案的性能介于主机虚拟化和操作系统虚拟化之间。
其代表是VMware ESX Server、Citrix Xen Server和Microsoft Hyper-V、Linux KVM。
虚拟化类型2:首先在物理机上安装常规操作系统,例如Redhat、Ubuntu和Windows。
虚拟机管理程序作为操作系统上的程序模块运行并管理虚拟机。
KVM、VirtualBox和VMwareWorkstation都属于这种类型。
2、KVM架构:KVM是一种基于内核的虚拟化(2型虚拟化),主要分为两部分。
1、kvm.io位于内核空间:主要负责虚拟机的虚拟CPU,也就是vCPU,同时也管理和调度虚拟内存。
2. QEMU-KVM:qemu运行在用户空间,kvm运行在内核空间,两者通过/dev/kvm进行通信。
这个QEMU-KVM是一个管理工具,专门用来通过修改QEMU代码来创建和管理虚拟机,让KVM更好的处理内核。
当运行VM时,QEMU会通过KVM模块提供的系统调用进入内核,KVM负责将虚拟机置于特殊模式进行处理。
虚拟机配备有IO和其他设备。
3、KVM实现示例: 实验环境:VMwareWorkstation10、centos7(64位)。
前提条件:(VMware创建的虚拟机需要启用支持虚拟化,如下图红框所示)。
1、检查系统是否支持; 2、安装kvm相关包; 3、在主机上创建虚拟化的网桥; 虚拟机列表; 2)进入虚拟机; 4)关闭虚拟机; ; 8) 添加硬盘 9) 卸载硬盘。
kvm是什么意思
KVM的意思是Kernel-basedVirtualMachine,即基于内核的虚拟机。
下面是KVM的详细解释:
1. KVM的基本定义
KVM是Linux下的一种开源虚拟化技术,可以实现硬件级别的虚拟化。
它允许用户在同一台物理服务器上运行多个操作系统和应用程序。
每个虚拟环境都是独立的,有自己的系统资源和运行环境。
该技术广泛应用于云计算、数据中心和服务器虚拟化等领域。
2. KVM如何工作
KVM虚拟化技术基于Linux内核,它提供了一种在主机操作系统上运行多个虚拟客户操作系统的方法。
在KVM架构下,虚拟化软件以模块化方式运行,以更少的CPU资源和硬件资源实现高效的虚拟运行平台。
这意味着通过使用KVM,可以将多个物理机或虚拟机的计算资源整合在一起,形成共享的虚拟资源池。
每个虚拟机都可以在这个资源池中独立运行自己的操作系统和应用软件。
此外,KVM还可以动态管理虚拟机中的系统资源,提高运行效率和服务响应速度。
随着云技术和服务器硬件的发展,KVM已经成为主流的虚拟化解决方案之一。
3. KVM应用场景
由于KVM提供了强大的虚拟化功能和高度的灵活性,因此在企业数据中心、云计算平台、服务器部署等领域得到了普及。
广泛使用。
例如,企业可以使用KVM构建私有云环境,实现灵活的资源分配和高效的运维管理; 同时,数据中心可以利用KVM实现跨物理服务器的高可用集群部署; 此外,对于开发人员来说,通过KVM技术可以在开发、测试环境等场景下快速创建和管理虚拟机。
由于其开源和性能优势,KVM在企业IT建设和云计算发展中发挥着重要作用。
总体而言,随着技术的不断进步和应用需求的增长,KVM将在未来继续发挥重要作用。
kvm虚拟化分为哪三层?
KVM虚拟化技术主要分为三个层,下面分别介绍: 1.内核层(KVM内核模块):KVM的第一层,即内核层,是Linux内核自带的虚拟化支持。从Linux内核2.6.20版本开始,KVM正式集成到Linux内核中,并作为模块存在。
这意味着任何运行2.6.20或更高版本的Linux系统都会在安装过程中自动加载KVM模块。
用户可以使用命令行界面(CLI)激活KVM模块。
2、用户空间层(QEMU):KVM的第二层是QEMU提供的用户空间工具。
自 2012 年 qemu-kvm 分支被集成到主流 QEMU 项目以来,通过添加 -enable-kvm 选项,QEMU 可以在启用 KVM 功能的情况下运行。
这样QEMU就可以调用KVM内核,提高了虚拟化操作的效率,相比纯QEMU性能有显着提升。
3、管理工具层(KVM管理工具):基于KVM内核层和QEMU用户空间层,第三层是KVM管理工具。
这些工具提供了多种管理 KVM 环境的方法。
对于小型团队,例如规模约为 40 到 50 人的云计算团队,您可以使用 WebVirtMgr 和 ProxmoxVE 等管理工具。
如果大公司人员较多、资源充足,可以考虑使用OpenStack等综合云计算管理平台。