前言
一.虚拟化概述
虚拟化特点
虚拟化优势
内存虚拟化
CPU 虚拟化
I/O流虚拟化
二.KVM概述
QEMU工作原理
三.KVM部署
编辑
KVM-Virsh日常管理命令
KVM-Console登录
KVM-磁盘管理
KVM-快照管理
KVM-虚拟机克隆
KVM 桥接网络
虚拟化技术是云计算的基础,什么是虚拟化?虚拟化技术的本质是什么?主流的虚拟化技术有哪些?本章将为您揭晓
虚拟化是一种将计算机资源(例如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会截获虚拟机对设备的访问请求,并进行相应的处理和模拟,以确保输入数据能够正确地传递给虚拟机。
- 输入切换机制:
- 在使用物理机键盘对虚拟机进行输入时,需要在物理机和虚拟机之间进行输入切换。这通常通过特定的按键组合(如Ctrl+Alt)或鼠标点击来实现。
- 当输入对象切换到虚拟机时,所有键盘输入都会被虚拟机捕获并处理;当输入对象切换回物理机时,键盘输入则会被物理机捕获。
- 中断处理与数据传输:
- 当虚拟机接收到键盘输入时,会产生中断信号。VMM负责截获这些中断信号,并将其转发给虚拟机中的设备模拟器(如QEMU)。
- 设备模拟器或驱动程序会处理这些输入数据,并将其传递给虚拟机中的应用程序或操作系统。
KVM本质是Linux内核中的虚拟化模块kvm.ko,KVM运行在内核空间中提供CPU和内存虚拟化,而IO设备虚拟化由运行在用户空间中的QEMU负责。

- 硬件虚拟化初始化:
- 当运行QEMU-KVM时,KVM会加载到Linux内核中,并提供了对CPU和内存虚拟化的支持。
- 虚拟机创建与配置:
- 用户通过QEMU提供的工具或界面来创建和配置虚拟机。这些配置信息包括虚拟机的名称、CPU类型、内存大小、磁盘大小等。
- QEMU将这些配置信息传递给KVM,KVM利用这些信息来创建一个虚拟机实例,并为虚拟机分配必要的资源。
- 指令翻译与执行:
- 当客户机操作系统开始运行时,它会发出一系列的指令。这些指令首先被QEMU接收。
- QEMU使用动态二进制翻译(DBT)技术将这些指令翻译成宿主机能够理解的指令。然后,宿主机的处理器执行这些指令,并将结果返回给虚拟机。
- 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磁盘格式
- raw格式:raw格式是最简单和通用的磁盘格式。他静态分配磁盘空间,即便50G磁盘中文件只用20G,也会分配50G空间,因此占用空间大。该格式不支持快照
- qcow2格式:qcow2是一种高级的磁盘格式,支持特性如动态分配空间、快照和压缩。它可以节省磁盘空间,与raw格式相反,他根据文件大小动态分配磁盘空间。该格式支持快照
KVM添加新磁盘流程
常用命令
注意: qcow2格式的磁盘会随着写入数据而增大,因此创建完成后文件大小只有193K

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

虚拟机快照管理
区别:
- 完整克隆:由于完整克隆不与父虚拟机共享虚拟磁盘,因此创建过程需要复制整个虚拟机磁盘文件。这导致创建完整克隆所需的时间较长,特别是当涉及的文件较大时,可能需要数分钟才能完成。
- 链接克隆:链接克隆通过共享父虚拟机的快照来创建,因此大大缩短了创建时间。同时,由于只创建了与快照相关的差异部分,还节省了物理磁盘空间
KVM--完整克隆
下面步骤是将虚拟机KVM_1完整克隆成,生成的克隆虚拟机命名为kvm_2:
上述步骤流程为克隆的思路,下面介绍一种简单方法:
KVM-链接克隆
网络模式:桥接模式--->详情请移步
步骤二修改内容:
到此这篇KVM虚拟化技术(kvm虚拟化技术分类)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/do-docker-k8s/20047.html