KVM:virsh、virt-Manager、Virt-install、Virt-viewer、libvirt

KVM 工具集合:virsh、virt-Manager、Virt-install、Virt-viewer、libvirt等 ========================================================================================================= KVM 工具集合 libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等在内的多种 Hypervisor。 virsh:基于 libvirt 的 命令行工具 (CLI) virt-Manager:基于 libvirt 的 GUI 工具 virt-v2v:虚机格式迁移工具 virt-* 工具:包括 Virt-install (创建KVM虚机的命令行工具), Virt-viewer (连接到虚机屏幕的工具),Virt-clone(虚机克隆工具),virt-top 等 sVirt:安全工具

安装kvm工具;libvirt配置文件 ========================================================================================================= yum install libvirt -y #看起来原本已经安装了,但是进行此命令时,仍然进行了一堆安装;同时安装完毕后,virsh命令可以使用了 yum install virt-install -y yum install qemu-kvm -y ----------------------------------------------------------------- libvirt配置文件 /etc/libvirt/libvirtd.conf

virsh帮助;virt-install创建虚拟机;virsh常用命令 ========================================================================================================= 获取帮助 virsh help #查看virsh所有命令,在virsh每个命令有不同的分组 virsh help network #查看network分组的相关命令 virsh help domain #查看domain分组的相关命令 virsh help host virsh edit --help virsh dumpxml --help virsh net-edit --help ------------------------------------------------------------------------------------------------------------ [root@yefeng ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name test_os7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-2009.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole #创建虚拟机 ------------------------------------------------------------------------------------------------------------ 常用命令 virsh list --all virsh dumpxml test_os7 > test_os7_txt.xml #查看VM配置;导出的信息比virsh edit更详细 virsh edit test_os7 #配置VM virsh list --all #列出所有虚拟机 virsh destroy centos7 #拔电源关机destroy virsh shutdown centos7 #关机shutdown virsh start centos7 #开机start 待验证命令: virsh dumpxml centos7 >centos7.xml #导出配置dumpxml virsh define centos7.xml #导入配置define virsh domrename centos7 web01 #重命名domrename (注意:低版本不支持) virsh list --all virsh suspend web01 virsh resume web01 virsh vncdisplay web01 virsh autostart web01 域 web01标记为自动开始 virsh autostart --disable web01 常用命令参考:https://www.cnblogs.com/cuiyongchao007/p/12723705.html 常用命令输出示例: [root@yefeng opt]# virsh list --all Id Name State ---------------------------------------------------- 1 test_os7 running

virsh 常用分组的操作:存储池、存储卷、虚拟机、网络、快照、libvirt编程控制 ========================================================================================================== 常用分组的操作,笔记源自阿里开发者社区视频:https://developer.aliyun.com/learning/course/809/detail/13904 一、存储池 1.1存储池 Storage Pool 在 libvirt 中,最核心的是 Storage Pool Storage Pool 将存储归纳整理成为一个个不同的Storage Pool Storage Pool 可以跨越不同的硬件,如一个Storage Pool 可以由多个硬盘组成 1.2存储池管理 查看所有存储池: virsh pool-list -- all 定义一个新的存储池:virsh pool-defne-as poolname dir ----/ home / username /. local / libvirt / images 构建存储池:virsh pool-build poolname 启用存储池:virsh pool-start 、 poolname 自启动存储池:virsh pool-autostart poolname 删除存储池:virsh pool-undefne poolname 1.3操作存储池 virsh help pool 就只展示与存储池相关命令 virsh pool-list 查看所有已经配置的存储池 virsh help pool-list 可以查看pool-list里所有参数 virsh pool-info iso 可以查看pool具体信息 virsh pool-capabilities 查看pool的能力 ,表示当前支持哪些配置 1.4创建存储池 使用define创建存储池: 使用virsh pool-define-as 输入要定义的名称比如vdisk格式dir 设定--target ./设置路径 实行pool-list--all查看所有 vdisk还未构建所以vdisk还未激活 virsh pool-build vdisk 对存储池进行构建 path'.' 为相对路径,应该修改为绝对路径 使用viest pool-edit来修改vdisk 进入配置路径: 执行virsh pool-start 启动vdisk 执行virsh pool-autostart vdisk 开启池自动重启 完成创建 执行virsh pool-dumpxml vdisk 查看配置 ============================================================================== 二、存储卷 2.1存储卷Storage Volume 存储池被创建之后,就可以在存储池中创建存储卷。 存储卷是实际用来存储数据的单位。 存储卷有明确的大小的限制。 2.2存储卷管理 virsh vol-create-as poolname volumename 10GiB --format aw|bochs|raw|qcow|qcow|vmdk virsh vol-upload --pool poolname volumename volumepath virsh vol-list poolname virsh vol-resize --pool poolname volumename 12GiBe virsh vol-delete --pool poolname volumename virsh vol-dumpxml --pool poolname volume #查看详情 2.3使用存储卷 virsh 控制存储卷 virsh help volume查看存储卷提供的命令 2.4创建存储卷 virsh help vol-create-as查看创建存储卷的信息 virsh pool-list查看池的名字 virsh vol-create-as 加上池的名字vdisk加上卷的名字datafile 容量10GiB --format virsh vol-list vdisk 查看定义好的卷 virsh vol-list defult 查看之前存在的卷 virsh vol-info datafile --pool vdisk 查看卷的信息 resize 对磁盘进行扩容 容量修改到12GiB 查看容量修改后: ============================================================================== 三、虚拟机 3.1虚拟机Domain 在libvirt中,每一个虚拟机都被称为Domain,我们对于虚拟机的操作,实际上是对于Domain的操作。 3.2管理虚拟机 virt-install --name debian(名字) --memory 1024(内存大小) --vcpus=2,maxvcpus =4(cpu数量) --cpu host --cdrom$HOME/iso/debian.iso(使用的镜像路径)--disk size=2(磁盘大小),format=raw (磁盘格式)--network user(使用的网络) --virt-type kvm (虚拟化类型)创建虚拟机 virt-install -- name demo --memory 512 -- disk /home/user/VMs/mydisk.img --import导入创建好的虚拟机 virsh list--all查看所有虚拟机 virsh start domain启动虚拟机 virsh shutdown domain关闭虚拟机 virsh edit domain编辑虚拟机 3.3虚拟机管理操作 virsh help domain查看命令 通过list查看虚拟机基本信息 vcpuinfo查看cpu具体信息 使用install创建虚拟机 Virtual-install设置名字、内存、cpu大小、镜像路径、磁盘大小、磁盘格式使用网络以及虚拟化类型。 ============================================================================== 四、网络 4.1网络Network libvirt默认会创建一个NAT网桥,用于虚拟机和外界进行沟通。 除了NAT,libvirt还支持以下几种网络配置 bridge——birdge创建一个虚拟设备,它通过一个物理接口直接共享数据。使用场景为:宿主机有静态网络、不需与其它域连接、要占用全部进出流量,并且域运行于系统层级。 Network——这是一个虚拟网络,它可以与其它虚拟机共用。使用场景为:宿生机有动态网络(例如: NetworkManager) 或使用无线 macvtap---直接连接到宿主机的一个物理网络接口 user---本地网络,仅用于用户对话 4.2网络 Macvtap——直接连接到宿主机的一个物理网络接口 User——本地网络,仅用于用户会话。 4.3创建custom 创建 vi network.xml,粘贴上修改好的文件,保存退出 查看net-create帮助 ============================================================================== 五、快照 5.1快照Snapshot 虚拟机快照保存了虚拟机在某个指定时间点的状态(包括操作系统和所有的程序),利用快照,我们可以恢复虚拟机到某个以前的状态,比如测试软件的时候经常需要回滚系统。 5.2管理快照 virsh snapshot-create-as domain snapshot1 -- -disk- -only --atomic创建快照 virsh snapshot-list domain查看快照 5.3创建快照 查看快照命令:snapshot ============================================================================== 六、libvirt编程控制 libvirt提供编程语言的SDK,你可以通过编程来控制虚拟机 实际编程中的操作 Gitlab——libvirt 使用交互式方式了解libvirt的使用 libvirt官方给出教程,可查看教程进行学习。
参考资料
世民谈云计算---KVM 介绍https://www.cnblogs.com/sammyliu/category/696699.html
- (1)介绍和安装
- (2)CPU 和 内存虚拟化
- (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton)
- (4)I/O PCI/PCIe设备直接分配和 SR-IOV
- (5)libvirt 介绍
- (6)Nova 通过 libvirt 管理 QEMU/KVM 虚机
- (7)快照 (snapshot)
- (8)迁移 (migration)
阿里云KVM视频 https://developer.aliyun.com/learning/course/809/detail/13904
深入学习KVM https://www.cnblogs.com/cuiyongchao007/p/12723705.html
虚拟化(1)_virsh 基本命令 https://www.cnblogs.com/sunnybowen/p/10516837.html
kvm之 virt-install工具命令详解https://www.cnblogs.com/nulige/p/8319838.html
ubuntu下使用virt-install安装虚拟机并配置桥接网络https://blog.csdn.net/zhaihaifei/article/details/58156297
虚拟化技术的实现(完全虚拟化、硬件辅助虚拟化) https://blog.csdn.net/gui951753/article/details/81507924
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!