使用KVM命令集管理虚拟机

1、KVM基本功能管理

1)查看命令帮助

[root@localhost ~]# virsh -h
......//省略输出内容

2)查看KVM的配置文件存放目录(rhel7.1是虚拟机系统实例的配置文件)

[root@localhost ~]# ls /etc/libvirt/qemu
autostart  networks  rhel7.1.xml

3)查看虚拟机状态

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 3     rhel7.1                        running

4)虚拟机关机与开机

[root@localhost ~]# virsh shutdown rhel7.1 
[root@localhost ~]# virsh start rhel7.1 

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 6     rhel7.1                        running

5)强制实例系统关闭电源

[root@localhost ~]# virsh destroy rhel7.1 
域 rhel7.1 被删除

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     rhel7.1                        关闭

6)通过配置文件启动虚拟机系统实例

[root@localhost ~]# virsh create /etc/libvirt/qemu/rhel7.1.xml 
域 rhel7.1 被创建(从 /etc/libvirt/qemu/rhel7.1.xml)

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 7     rhel7.1                        running

7)挂起虚拟机

[root@localhost ~]# virsh suspend rhel7.1 
域 rhel7.1 被挂起

//查看虚拟机状态
[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 7     rhel7.1                        暂停

8)恢复虚拟机

[root@localhost ~]# virsh resume rhel7.1 
域 rhel7.1 被重新恢复

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 7     rhel7.1                        running

9)配置虚拟机实例伴随宿主机自动启动,会自动创建/etc/libvirt/qemu/autostart/目录,目录内容为开机自动启动的系统

[root@localhost ~]# virsh autostart rhel7.1 
域 rhel7.1标记为自动开始

10)导出虚拟机配置

[root@localhost ~]# virsh dumpxml rhel7.1 > /etc/libvirt/qemu/rhel7.2.xml
[root@localhost ~]# ls /etc/libvirt/qemu/
autostart  networks  rhel7.1.xml  rhel7.2.xml

11)虚拟机的删除与添加

        删除虚拟机:

[root@localhost ~]# virsh shutdown rhel7.1 
域 rhel7.1 被关闭

[root@localhost ~]# virsh undefine rhel7.1 
域 rhel7.1 已经被取消定义

//查看删除结果,rhe17.1的配置文件被删除,但是磁盘文件不会被删除
[root@localhost ~]# ls /etc/libvirt/qemu/
autostart  networks  rhel7.2.xml

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------

        通过备份的配置文件重新定义虚拟机:

[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# mv rhel7.2.xml rhel7.1.xml 
[root@localhost qemu]# virsh define rhel7.1.xml 
定义域 rhel7.1(从 rhel7.1.xml)

[root@localhost qemu]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     rhel7.1                        关闭

12)修改虚拟机配置信息(用来修改系统内存大小、磁盘文件等信息)

        直接通过vim命令修改:

[root@localhost qemu]# vim /etc/libvirt/qemu/rhel7.1.xml 

        通过virsh命令修改:

[root@localhost qemu]# virsh edit rhel7.1 
没有更改域 rhel7.1 XML 配置。

2、KVM文件管理

        通过文件管理可以直接查看、修改、复制虚拟机的内部文件。例如,当系统因为配置问题无法启动时,可以直接修改虚拟机的文件。虚拟机磁盘文件有raw、qcow2与qed格式,KVM虚拟机默认使用qcow2格式。

1)查看当前磁盘格式:

[root@localhost ~]# qemu-img info /data_kvm/store/bdqn_kvm.qcow2 
image: /data_kvm/store/bdqn_kvm.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 10G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true

        如果虚拟机磁盘文件不是qcow2格式,可以通过"qemu-img"命令转换磁盘文件格式,如执行以下操作可以将test01虚拟机raw格式磁盘转换至qcow2格式。

[root@localhost ~]# virsh shutdown rhel7.1 
域 rhel7.1 被关闭
 
[root@localhost ~]# qemu-img convert -f raw -o qcow2 /data_kvm/store/"更改的文件" /data_kvm/store/"更改的文件"

        执行转换磁盘格式的命令后还需要修改配置文件中磁盘的类型与磁盘文件名

使用KVM命令集管理虚拟机_第1张图片

2)virt-cat命令,类似于cat命令

 

[root@localhost ~]# yum -y install libguestfs-tools

[root@localhost ~]# virt-cat -a /data_kvm/store/bdqn_kvm.qcow2 /etc/sysconfig/grub 
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

3)virt-edit命令,用于编辑文件,用法与vim基本一致

[root@localhost ~]# virt-edit -a /data_kvm/store/bdqn_kvm.qcow2 /etc/resolv.conf 
nameserver 202.96.128.86
nameserver 119.29.29.29

4)virt-df命令用于查看虚拟机磁盘信息

[root@localhost ~]# virt-df -h rhel7.1
文件系统                            大小 已用空间 可用空间 使用百分比%
rhel7.1:/dev/sda1                         950M        79M       870M    9%
rhel7.1:/dev/sda3                         8.1G       3.2G       4.9G   40%

3、虚拟机克隆

1)查看虚拟机状态

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     rhel7.1                        关闭

2)从rhel7.1克隆rhel7.2

[root@localhost ~]# virt-clone -o rhel7.1 -n rhel7.2 -f /data_kvm/store/bdqn02_kvm.qcow2 

3)查看虚拟机状态

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     rhel7.1                        关闭
 -     rhel7.2                        关闭

4)启动虚拟机

[root@localhost ~]# virsh start rhel7.2 
域 rhel7.2 已开始

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 18    rhel7.2                        running
 -     rhel7.1                        关闭

4、虚拟机快照

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

1)对rhel7.1创建快照

[root@localhost ~]# virsh snapshot-create rhel7.1
已生成域快照 1704355792

2)查看虚拟机快照版本信息

[root@localhost ~]# virsh snapshot-current rhel7.1

  1704355792  //快照版本号
  shutoff  //关机状态下的快照

3)查看快照信息

[root@localhost ~]# virsh snapshot-list rhel7.1
 名称               生成时间              状态
------------------------------------------------------------
 1704355792           2024-01-04 16:09:52 +0800 shutoff

4)创建新快照

[root@localhost ~]# virsh snapshot-create rhel7.2
已生成域快照 1704355880

5)查看快照信息

[root@localhost ~]# virsh snapshot-create rhel7.1
已生成域快照 1704356048
[root@localhost ~]# virsh snapshot-list rhel7.1
 名称               生成时间              状态
------------------------------------------------------------
 1704355792           2024-01-04 16:09:52 +0800 shutoff
 1704356048           2024-01-04 16:14:08 +0800 shutoff

6)将虚拟机开机,恢复虚拟机状态至1704355792(关机状态)

[root@localhost ~]# virsh start rhel7.1 
域 rhel7.1 已开始

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 20    rhel7.1                        running

[root@localhost ~]# virsh snapshot-revert rhel7.1 1704355792
[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
       rhel7.1                        关闭

7)查看虚拟机快照版本信息

[root@localhost ~]# virsh snapshot-current rhel7.1

  1704355792  //快照版本号
  shutoff  //关机状态下的快照

8)删除快照

[root@localhost ~]# virsh snapshot-delete rhel7.1 1704355792
已删除域快照 1704355792

[root@localhost ~]# virsh snapshot-delete rhel7.1 1704356048
已删除域快照 1704356048

[root@localhost ~]# virsh snapshot-list rhel7.1
 名称               生成时间              状态
------------------------------------------------------------

你可能感兴趣的:(Linux高级管理,linux)