KVM虚拟化基本功能管理

五、KVM基本功能管理

5.1、查看命令帮助

shell 复制代码
[root@kvm ~]# virsh -h

5.2、查看KVM的配置文件存放目录

  • test01.xml是虚拟机系统实例的配置文件
shell 复制代码
[root@kvm ~]# ls /etc/libvirt/qemu/
autostart  networks  test01.xml

5.3、查看虚拟机状态

shell 复制代码
[root@kvm ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 1     test01                         running

5.4、虚拟机管理与开机

shell 复制代码
[root@kvm ~]# virsh shutdown test01

[root@kvm ~]# virsh start test01

5.5、强制实例系统关闭电源

shell 复制代码
[root@kvm ~]# virsh destroy test01

5.6、通过配置文件启动虚拟机

shell 复制代码
[root@kvm ~]# virsh create /etc/libvirt/qemu/test01.xml
[root@kvm ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 4     test01                         running

5.7、挂起虚拟机

shell 复制代码
[root@kvm ~]# virsh suspend test01

# 查看虚拟机状态
[root@kvm ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 4     test01                         暂停

5.8、恢复虚拟机

shell 复制代码
[root@kvm ~]# virsh resume test01
[root@kvm ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 4     test01                         running

5.9、配置虚拟机实例伴随宿主机自启动

shell 复制代码
[root@kvm ~]# virsh autostart test01

# 上述命令将创建/etc/libvirt/qemu/autostart/目录,目录内容为开机自动启动的系统
[root@kvm ~]# ls /etc/libvirt/qemu/autostart/
test01.xml

5.10、导出虚拟机配置

shell 复制代码
[root@kvm ~]# virsh dumpxml test01 > /etc/libvirt/qemu/test02.xml

5.11、虚拟机的删除与添加

shell 复制代码
[root@kvm ~]# virsh shutdown test01
[root@kvm ~]# virsh undefine test01
# 查看删除结果,test01的配置文件被删除,但是磁盘文件不会被删除'
[root@kvm ~]# ls /etc/libvirt/qemu/
# 通过virsh list --all查看不到test01的信息,说明此虚拟机被删除
[root@kvm ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------



# 通过备份的配置文件重新定义虚拟机
[root@kvm ~]# cd /etc/libvirt/qemu
[root@kvm qemu]# mv test02.xml test01.xml 
# 重新定义虚拟机
[root@kvm qemu]# virsh define test01.xml
# 查看虚拟机信息
[root@kvm qemu]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     test01                         关闭

六、KVM文件管理

  • 通过文件管理可以直接查看、修改、复制虚拟机的内部文件。例如,当系统因为配置问题无法启动时,可以直接修改虚拟机的文件。虚拟机磁盘文件由raw、qcow2与qed格式,KVM虚拟机默认使用qcow2格式。这里介绍本地YUM安装libgueftfs-tools后产生的命令行工具,这个工具可以直接读取qcow2格式的磁盘文件
shell 复制代码
# 安装管理工具
[root@kvm ~]# yum -y install libguestfs-tools

6.1、查看当前磁盘格式

shell 复制代码
[root@kvm ~]# qemu-img info /data_kvm/store/test01.qcow2 
image: /data_kvm/store/test01.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 1.7G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true
  • 如果虚拟机磁盘文件不是qcow2格式,可以通过qemu-img命令转换磁盘文件格式,如执行以下操作可以将test01虚拟机raw格式磁盘转换至qcow2格式
shell 复制代码
[root@kvm ~]# virsh shutdown test01
[root@kvm ~]# qemu-img convert -f qcow2 -O raw /data_kvm/store/test01.qcow2 /data_kvm/store/test01.img
  • 执行专函磁盘格式的命令后还需要修改test01的xml配置文件中磁盘的类型与磁盘文件名
shell 复制代码
[root@kvm ~]# virsh edit test01
<disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/data_kvm/store/test01.img'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>

6.2、virt-cat命令

  • 类似于cat命令
  • 需要安装yum -y install libguestfs-tools-c工具包
shell 复制代码
[root@kvm ~]# yum -y install libguestfs-tools-c
# 查看grub文件
[root@kvm ~]# virt-cat -a /data_kvm/store/test01.qcow2 /etc/sysconfig/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

6.3、virt-egit命令

  • virt-edit命令,用于编辑文件,用法与vim基本一致
shell 复制代码
# 编辑resolv文件
[root@kvm ~]# virt-edit -a /data_kvm/store/test01.qcow2 /etc/resolv.conf
nameserver 8.8.8.8

6.4、virt-df命令

  • 用户查看虚拟机磁盘信息
shell 复制代码
[root@kvm ~]# virt-edit -a /data_kvm/store/test01.qcow2 /etc/resolv.conf
[root@kvm ~]# virt-df -h test01
文件系统                            大小 已用空间 可用空间 使用百分比%
test01:/dev/sda1                         1014M       107M       907M   11%
test01:/dev/centos/root                    17G       1.2G        16G    8%

七、虚拟机克隆

7.1、查看虚拟机状态

shell 复制代码
[root@kvm ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     test01                         关闭

7.2、从test01克隆test02

shell 复制代码
[root@kvm ~]# virt-clone -o test01 -n test02 -f /data_kvm/store/test02

7.3、查看虚拟机状态

shell 复制代码
[root@kvm ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     test01                         关闭
 -     test02                         关闭

7.4、启动虚拟机

shell 复制代码
[root@kvm ~]# virsh start test02

八、虚拟机快照

  • KVM虚拟机要使用镜像功能,磁盘格式必须为qcow2

8.1、对test01创建快照

shell 复制代码
[root@kvm ~]# virsh snapshot-create test01
已生成域快照 1716343098

8.2、查看虚拟机快照版本信息

shell 复制代码
[root@kvm ~]# virsh snapshot-current test01
<domainsnapshot>
  <name>1716343098</name>		# 快照版本号
  <state>shutoff</state>
  <creationTime>1716343098</creationTime>
  <memory snapshot='no'/>
  <disks>
## 部分内容省略

8.3、查看快照信息

shell 复制代码
[root@kvm ~]# virsh snapshot-list test01
 名称               生成时间              状态
------------------------------------------------------------
 1716343098           2024-05-22 09:58:18 +0800 shutoff

8.4、创建新快照

shell 复制代码
[root@kvm ~]# virsh snapshot-create test01
已生成域快照 1716343214

8.5、查看快照信息

shell 复制代码
[root@kvm ~]# virsh snapshot-list test01
 名称               生成时间              状态
------------------------------------------------------------
 1716343098           2024-05-22 09:58:18 +0800 shutoff
 1716343214           2024-05-22 10:00:14 +0800 shutoff

8.6、恢复虚拟机状态至1716343098

shell 复制代码
[root@kvm ~]# virsh snapshot-revert test01 1716343098

8.7、查看虚拟机快照版本信息

shell 复制代码
[root@kvm ~]# virsh snapshot-current test01
<domainsnapshot>
  <name>1716343098</name>		# 快照版本号
  <state>shutoff</state>
  <creationTime>1716343098</creationTime>
  <memory snapshot='no'/>
  <disks>
## 部分省略省略

8.8、删除快照

shell 复制代码
[root@kvm ~]# virsh snapshot-delete test01 1716343214
已删除域快照 1716343214
相关推荐
崎岖Qiu9 小时前
【OS笔记36】:文件存储空间管理(一)- 空闲区表法
笔记·操作系统·存储管理·文件系统·os
柏木乃一2 天前
进程(11)进程替换函数详解
linux·服务器·c++·操作系统·exec
羑悻的小杀马特4 天前
【Linux篇章】穿越网络迷雾:揭开 HTTP 应用层协议的终极奥秘!从请求响应到实战编程,从静态网页到动态交互,一文带你全面吃透并征服 HTTP 协议,打造属于你的 Web 通信利刃!
linux·运维·网络·http·操作系统·网络通信
彩妙不是菜喵5 天前
操作系统中的Linux:进程详解--->(深入浅出)从入门到精通
linux·操作系统
农民真快落5 天前
【操作系统】手撸xv6操作系统——types.h/param.h/memlayout.h/riscv.h/defs.h头文件解析
操作系统·risc-v·嵌入式软件·xv6
小当家.1055 天前
操作系统期末考试基础知识点速成:高频考点与题集精要
考研·操作系统·计算机基础·速成·大学·期末考试
seasonsyy5 天前
为虚拟机分配内存和磁盘容量
windows·操作系统·内存·vmware·磁盘空间
想用offer打牌5 天前
一站式讲清IO多路复用(轻松愉悦版)
后端·面试·操作系统
seasonsyy5 天前
在虚拟机中安装操作系统需要U盘吗?
windows·操作系统·vmware·虚拟机
DeepVis Research5 天前
【InfoSec/Sanitization】2026年度非注册实体管控与内存安全擦除基准索引 (Benchmark Index)
网络安全·数据集·数据安全·虚拟化·系统运维