当前位置:网站首页 > 容器化与Kubernetes > 正文

KVM虚拟化技术(kvm虚拟化技术分类)



前言

 一.虚拟化概述

虚拟化特点 

 虚拟化优势

内存虚拟化

CPU 虚拟化 

I/O流虚拟化 

 二.KVM概述

QEMU工作原理 

三.KVM部署

​编辑

KVM-Virsh日常管理命令

 KVM-Console登录

 KVM-磁盘管理

KVM-快照管理 

KVM-虚拟机克隆

KVM 桥接网络 


虚拟化技术是云计算的基础,什么是虚拟化?虚拟化技术的本质是什么?主流的虚拟化技术有哪些?本章将为您揭晓


虚拟化是一种将计算机资源(例如cpu、内存、存储等)进行抽象和隔离的技术。它可以将一台物理计算机划分为多个虚拟计算机,每个虚拟计算机可以运行独立的操作系统和应用程序。

特点 概述 分区 虚拟化层为每个虚拟机划分服务器资源,每个虚拟机可以运行单独的操作系统且每个操作系统只能看到虚拟化层为其提供的“虚拟 硬件(虚拟网卡,cpu,内存等)”,使得操作系统认为运行在自己的专用服务器上。 隔离

每台虚拟机互相隔离,单台虚拟机中毒或崩溃不会影响其它虚拟机;

虚拟化环境通常涉及共享物理资源,如CPU、内存和存储。可以为每台虚拟机指定最大或最小资源,防止一个虚拟机消耗过多资源导致其他虚拟机性能下降。

封装 虚拟化技术将虚拟单元的所有环境存放在一个单独的文件中,这种封装性使得整个磁盘分区被存储为一个文件,从而易于备份、转移和拷贝 相对于硬件独立 虚拟机只能看见虚拟层为其提供的虚拟硬件,而虚拟硬件与物理硬件相互独立

利用虚拟化技术可以防止资源浪费,同时虚拟机的隔离性可以防止多个服务安装在同一个操作系统中时,操作系统出问题,所有服务都会出问题,此外虚拟化的克隆,快照功能使得备份更加容易。

内存虚拟化将物理内存抽象成虚拟地址空间,使得每个虚拟机(VM)拥有独立的、连续的内存地址空间。

Hypervisor维护了一个地址映射表(页表),用于记录虚拟地址(HPA)到物理地址(GPA)的映射关系。当虚拟机中的程序需要执行时,它首先会被加载到虚拟机的虚拟内存中,然后被映射到物理内存中。

CPU虚拟化允许单个物理CPU模拟出多个虚拟CPU(vCPU),同时在物理CPU和虚拟机之间引入一个虚拟机管理程序(Hypervisor),每个虚拟机被分配至少一个vCPU,这些vCPU由Hypervisor映射到物理CPU上。

在理想情况下,每个物理线程可以被映射为一个vCPU。因此,对于一颗8核双线程CPU,其理论上可以映射出16个vCPU(8个核心 x 2个线程/核心 = 16个线程/vCPU)

当虚拟机运行程序时,虚拟CPU会生成内存地址,虚拟CPU通过地址总线发送该内存地址到内存芯片,内存芯片根据该内存地址找到存储程序的存储单元,存储单元通过地址总线返回给虚拟CPU,而Hypervisor将虚拟内存地转换为物理内存地址,vCPU执行物理存储单元返回的程序。

Hypervisor在物理硬件上抽象出一个虚拟化层,这个虚拟化层负责将物理设备(如键盘)抽象成多个虚拟设备,供多个虚拟机共享。对于键盘等输入设备,VMM会截获虚拟机对设备的访问请求,并进行相应的处理和模拟,以确保输入数据能够正确地传递给虚拟机。

  1. 输入切换机制
    • 在使用物理机键盘对虚拟机进行输入时,需要在物理机和虚拟机之间进行输入切换。这通常通过特定的按键组合(如Ctrl+Alt)或鼠标点击来实现。
    • 当输入对象切换到虚拟机时,所有键盘输入都会被虚拟机捕获并处理;当输入对象切换回物理机时,键盘输入则会被物理机捕获。
  2. 中断处理与数据传输
    • 当虚拟机接收到键盘输入时,会产生中断信号。VMM负责截获这些中断信号,并将其转发给虚拟机中的设备模拟器(如QEMU)。
    • 设备模拟器或驱动程序会处理这些输入数据,并将其传递给虚拟机中的应用程序或操作系统。

KVM本质是Linux内核中的虚拟化模块kvm.ko,KVM运行在内核空间中提供CPU和内存虚拟化,而IO设备虚拟化由运行在用户空间中的QEMU负责。

  1. 硬件虚拟化初始化
    • 当运行QEMU-KVM时,KVM会加载到Linux内核中,并提供了对CPU和内存虚拟化的支持。
  2. 虚拟机创建与配置
    • 用户通过QEMU提供的工具或界面来创建和配置虚拟机。这些配置信息包括虚拟机的名称、CPU类型、内存大小、磁盘大小等。
    • QEMU将这些配置信息传递给KVM,KVM利用这些信息来创建一个虚拟机实例,并为虚拟机分配必要的资源。
  3. 指令翻译与执行
    • 当客户机操作系统开始运行时,它会发出一系列的指令。这些指令首先被QEMU接收。
    • QEMU使用动态二进制翻译(DBT)技术将这些指令翻译成宿主机能够理解的指令。然后,宿主机的处理器执行这些指令,并将结果返回给虚拟机。
  4. IO设备模拟与交互
    • 虚拟机中的客户机操作系统与IO设备的交互是通过QEMU模拟器来实现的。
    • 当虚拟机中的客户机操作系统请求访问IO设备时,QEMU模拟器会将这些请求转发到宿主机的IO设备。然后,宿主机的IO设备处理这些请求,并将结果返回给虚拟机。

  • 虚拟机管理工具:libvirt
  • 虚拟机安装/克隆工具:virt
  • 虚拟机硬盘管理:qemu-kvm
  • virt-manager:KVM图形化管理工具和Vmware功能相同
  • libguestfs-tools:虚拟机系统管理工具

准备工作:开启VMware虚拟化功能 

 
    

准备工作:安装远程控制软件 --->

准备工作:安装yum源

 
    

 第二步:安装上述三种工具并上传虚拟机所用镜像文件

 
    

 第三步:安装虚拟机

 
    

命令行安装方式可参考如下 -->

 
    
 
    

KVM虚拟机备份

 当需要将KVM虚拟机备份并发送给对方时,只需备份并发送虚拟机的磁盘文件+配置文件

 
    
  •  配置文件:上述命令输出信息中含有配置文件信息,只需备份到新建文件即可
 
    
  •  磁盘文件:在输出的XML配置文件中,查找  标签有关于磁盘文件的路径信息
 
    
 
    

 KVM虚拟机恢复

 
    

KVM挂起/恢复 

 
    

KVM开机自启 :启动libvirtd.service会自动开启KVM虚拟机

 
    

下图中,如果北京地区的主机想要访问虚拟机是无法通过VNC实现(VNC仅支持直连访问),而在KVM虚拟化环境中,配置console登录的作用是允许用户通过跳板机访问到虚拟机。

注意:虚拟机安装时无法通过跳板机ssh连接

 
    
 
    

KVM磁盘格式

  1. raw格式:raw格式是最简单和通用的磁盘格式。他静态分配磁盘空间,即便50G磁盘中文件只用20G,也会分配50G空间,因此占用空间大。该格式不支持快照
  2. qcow2格式:qcow2是一种高级的磁盘格式,支持特性如动态分配空间、快照和压缩。它可以节省磁盘空间,与raw格式相反,他根据文件大小动态分配磁盘空间。该格式支持快照

 KVM添加新磁盘流程

 
    

常用命令 

 
    

注意: qcow2格式的磁盘会随着写入数据而增大,因此创建完成后文件大小只有193K

 更改虚拟机磁盘格式时需要更改虚拟机配置文件内容,具体如下:

虚拟机快照管理 

 
    

区别: 

  1. 完整克隆:由于完整克隆不与父虚拟机共享虚拟磁盘,因此创建过程需要复制整个虚拟机磁盘文件。这导致创建完整克隆所需的时间较长,特别是当涉及的文件较大时,可能需要数分钟才能完成。
  2. 链接克隆:链接克隆通过共享父虚拟机的快照来创建,因此大大缩短了创建时间。同时,由于只创建了与快照相关的差异部分,还节省了物理磁盘空间

KVM--完整克隆

下面步骤是将虚拟机KVM_1完整克隆成,生成的克隆虚拟机命名为kvm_2: 

 
    

上述步骤流程为克隆的思路,下面介绍一种简单方法:

 
    

KVM-链接克隆 

 
    

网络模式:桥接模式--->详情请移步

 
    

 步骤二修改内容:

 
    

到此这篇KVM虚拟化技术(kvm虚拟化技术分类)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • docker如何启动容器(docker启动容器后ps不存在)2025-11-17 20:36:08
  • ddpm模型做化学反应(ddpm模型跟dpm区别)2025-11-17 20:36:08
  • docker版本升级后容器不见了(升级docker里的容器版本)2025-11-17 20:36:08
  • kvm虚拟化技术实战与原理解析(kvm虚拟化技术是什么)2025-11-17 20:36:08
  • kubernetes英文发音(kubernetes介绍)2025-11-17 20:36:08
  • list字符串转化为list 对象(将list转化为字符串并以逗号隔开)2025-11-17 20:36:08
  • conv是什么的缩写(conv是什么的缩写化学)2025-11-17 20:36:08
  • docker-gen(docker跟kvm,xen虚拟化的区别是)2025-11-17 20:36:08
  • conv是什么的缩写(conv是什么缩写有机化学)2025-11-17 20:36:08
  • pointnet网络(pointnet网络模型可视化)2025-11-17 20:36:08
  • 全屏图片