KVM虚拟机平台

搭建KVM服务器:
组件:KVM/QEMU/LIBVIRTD
KVM是Linux内核的模块,它需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT,AMD-V,内存的相关如Intel的EPT和AMD的RVI技术;
QEMU是一个虚拟化的仿真工具,通过ioctl与内核kvm交互完成对硬件的虚拟化支持;
Libvirt是一个对虚拟化管理的接口和工具,提供用户端程序virsh,virt-install,virt-manager,virt-view与用户交互。
软件包:qemu-kvm、libvirt-daemon、libvirt-client、libvirt-daemon-driver-qemu
可选功能:virt-install系统安装工具、virt-manager图形管理工具、virt-v2v虚拟机迁移工具、virt-p2v物理机迁移工具
守护程序:libvirtd

虚拟机的组成:
-内核虚拟化模块(KVM)
-系统设备仿真(QEMU)
-虚拟机管理程序(LIBVIRT)
XML虚拟机配置文件:/etc/libvirt/qemu/
磁盘镜像文件(虚拟机的硬盘):/var/lib/libvirt/images/

virsh工具,可交互,提供管理各虚拟机的命令接口,格式:virsh 控制指令 [虚拟机名称] [参数]
查看KVM节点:virsh nodeinfo
列出虚拟机:virsh list [--all]
列出虚拟网络:virsh net-list [--all]
查看指定虚拟机:virsh dominfo 虚拟机名称
运行|重启|关闭指定的虚拟机:virsh start|reboot|shutdown 虚拟机名称
强制关闭指定的虚拟机:virsh destroy 虚拟机名称
将指定的虚拟机设为开机自启:virsh autostart 虚拟机名称

KVM的虚拟机磁盘镜像QCOW2格式支持压缩,后端盘复用,快照。
qemu-img工具是虚拟机的磁盘管理命令支持raw、qcow2、vdi、vmdk等磁盘格式
qemu-img命令格式:qemu-img 命令 参数 块文件名称 大小
常用命令:create、convert、info、snapshot
创建新的镜像盘文件:qemu-img create -f 磁盘格式 磁盘路径 大小
使用后端盘模板文件:qemu-img create -b 后端磁盘路径 -f 磁盘格式 磁盘路径
COW技术原理

连接本地/远程KVM
使用virsh连接远程:virsh connect qemu+ssh://user@ip:port/system
使用virt-manager通过add connection连接管理,但需要使用SSH免密登录,若没有,要单独安装python的ssh相关模块

创建虚拟交换机
libvirtd网络接口,原理:调用dnsmasq提供DNS、DHCP等功能
创建配置文件:/etc/libvirt/qemu/networks/XXXX.xml
virsh管理虚拟网络:
net-list
net-define /etc/libvirt/qemu/networks/XXXX.xml #创建虚拟网络
net-undefine 虚拟网络文件
net-start 虚拟网络文件
net-destroy 虚拟网络文件 #停止虚拟网络
net-edit 虚拟网络文件
net-autostart 虚拟网络文件

xml虚拟机文件管理:
默认文件:/etc/libvirt/qemu/...xml
导出:virsh dumpxml 虚拟机名 > 虚拟机名.xml
对虚拟机的配置进行调整:virsh edit 虚拟机名
创建新虚拟机:virsh define XML虚拟机文件
删除虚拟机:virsh undefine 虚拟机名


自定义虚拟机模板:
1.创建虚拟机,配置好自己需要的文件,软件等
2.保存虚拟机配置文件,并打开然后删除id属性和uuid属性
3.可以删除<resource>资源配置和<clock>等,主要修改为符合自身需要特性

离线访问虚拟机,使用guestmount工具,方便对虚拟机定制、修复等
基本用法:guestmount -a 虚拟机磁盘路径 -i 挂载点

原文地址:https://www.cnblogs.com/Haihong72H/p/12679236.html