干货分享: 长达250页的Libvirt Qemu KVM的ppt,不实验无真相
https://files.cnblogs.com/popsuper1982/LibvirtQemuKVM.pptx
1. 概论
1.1 虚拟化的基本类型
无虚拟化
半虚拟化Paravirtualization
非硬件辅助全虚拟化
硬件辅助全虚拟化
实验一:查看系统是否支持硬件辅助虚拟化
1.2 KVM Qemu Libvirt之间的关系
实验二:安装KVM, Qemu, Libvirt
2. Qemu KVM
接下来的章节介绍qemu-kvm,先不介绍libvirt
2.1 QEMU-KVM: 安装第一个能上网的虚拟机
2.2 QEMU-KVM: 使用qemu monitor来管理虚拟机
实验三:使用qemu monitor查看信息
2.3 QEMU-KVM: qemu的硬件虚拟化
计算机体系结构
CPU
SMP对称多处理器
System Management BIOS
内存
System Clock
USB
设备总线
显示器
声卡
网卡
CD-ROM
硬盘
实验四:查看qemu所能模拟的设备
2.4 QEMU-KVM: Images
RAW Image
qcow2 Image
Convert: image格式之间可以转换
压缩compress
加密
扩展
2.5 QEMU-KVM: Snapshot
internal snapshot
external snapshot
2.6 QEMU-KVM: Network Block Device
方式一:可以提供unix socket
方式二:普通的socket连接
方式三:将image mount到一个network block device
LVM的处理
2.7 QEMU-KVM: 访问iSCSI
iSCSI的原理
Server端的配置
Client端的配置
连接到qemu
2.8 QEMU-KVM:网络虚拟化
网络模式User Network
Socket:虚拟机之间的交互
Tap/Tun Device
2.9 QEMU-KVM:半虚拟化设备virtio
virtio的原理
Memory Ballooning (virtio_balloon)
硬盘虚拟化virtio_blk
网络设备虚拟化virtio_net
性能比较
2.10 QEMU-KVM: Migration
在qemu里面Live Migration是通过monitor进行的
方法一:使用共享存储,NFS, NBD, SAN
方法二:连带migrate硬盘的迁移
2.11 QEMU-KVM: Monitoring and Debugging
对Monitor的访问
访问The QEMU Monitor Protocol (QMP)
2.12 QEMU-KVM: KVM性能和最佳实践
最佳实践一:使用半虚拟化驱动virtio
最佳实践二:VM的存储设备
最佳实践三:CPU超配
最佳实践四:内存超配
最佳实践五:网络
最佳实践六:Block I/O performance
3. Libvirt
接下来的章节介绍Libvirt工具
3.1 Libvirt: 管理Domain
将命令行转换为XML
定义Domain
编辑Domain
启动Domain
关闭Domain
重启Domain
暂停Domain
唤醒Domain
删除Domain
3.2 Libvirt: 管理snapshot
Internal Snapshot - VM State snapshot
Internal Snapshot - Disk State snapshot
External Snapshot
External Snapshot:管理qcow2 backing chain
方式一:virsh blockcommit/virDomainBlockCommit
方式二: virsh blockpull/virDomainBlockRebase
方式三:blockcopy,将内容复制到另一个Image
3.3 Libvirt: Remote Access
使用什么URI进行远程连接
Unix
SSH
TCP
TLS
配置client和server之间的key和certificate
Authentication
SASL
Kerberos
3.4 Libvirt: Control Group
对CPU的控制
对block I/O的控制
使用TC控制Network
3.5 Libvirt: CPU
查看CPU的兼容性
查看CPU Affinity
3.6 Libvirt: PCI
PCI(Peripheral Component Interconnect)是设备总线标准
3.7 Libvirt: libguestfs
libguestfs的架构
Libguestfs appliance的启动过程
Guestfish的命令
Virt命令系列: guestmount, virt-builder, virt-ls, virt-cat, virt-copy-in, virt-copy-out
3.8 Libvirt: virtual networking
Libvirt帮助管理虚拟网络
DNS & DHCP
默认的NAT模式
Bridged Network
Libvirt提供自己的network filter
实例:禁用ICMP
3.9 Libvirt: Storage
Storage Pool
网络文件系统池netfs
逻辑卷池logical
iSCSI 卷池
Disk Encryption
Libvirt Secret的管理
3.10 Libvirt: Migration
共享存储 vs. 非共享存储
Native迁移 vs. tunnelled迁移
Direct迁移 vs. Peer to Peer迁移
2.11 Libvirt: Hooks
Hooks的基本原理
简单的hooks脚本,打印参数和stdin
复杂的hook脚本
禁止ICMP
设置CPU Share
设置网络带宽
分类:
virtualization
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现