目录

​编辑一、KVM概述

1.1 KVM工具栈

1.2 libvirt架构概述

二、使用virsh管理虚拟机

三、kvm基本功能管理

1.帮助命令

2.KVM的配置文件存放目录

3.查看虚拟机状态

4.虚拟机关机与开机

5.强制虚拟机系统关闭电源

6.通过配置文件启动虚拟机系统

7.修改虚拟机配置文件

8.设置虚拟机自启

9.导出虚拟机配置

10.创建虚拟机(create)

11.删除和导入虚拟机(define)

12.挂起/恢复虚拟机

13.连接虚拟机

14.查看虚拟机信息

15.虚拟机克隆

查看vnc端口号

四、虚拟机快照

4.1 对虚拟机拍摄快照

4.2 查看快照详细信息

4.3 恢复快照

4.4 删除快照

4.4 编辑快照文件


一、KVM概述


1.1 KVM工具栈


上图所示主要描述了kvm的主要工具栈,从大的类别可以分为libvirt和qemu这两大类,其中libvirt中分virtual machine manager 和 virsh。virtual machine manager中的virt-manager是基于图形界面的管理,其他都是可以在命令行直接使用命令来管理虚拟机。

virsh是基于终端命令行管理。两者都是通过libvirt连接至libvirtd进行管理,对于qemu来说,它管理虚拟机上直接调用kvm内核中模块的API进行管理;

1.2 libvirt架构概述


libvirt是用来管理虚拟机或虚拟化功能的软件集合,主要包括:libvirt API,libvirtd进程和virsh工具集三部分。最初的目的是为不同的hypervisor提供统一的管理接口。

libvirtd该后台进程主要实现以下功能:

(1)远程代理所有remote client发送来的命令,由该进程监测执行;

(2)本地环境初始化libvirt服务的启停,用户connection的响应等;

(3)根据环境注册各种Driver(qemu, xen, storage…)的实现

查看libvirtd服务状态

 systemctl status libvirtd

如果libvirtd服务停止运行,那么你将不能管理虚拟机,也就是不能使用virt-manager等工具来管理虚拟机。

查看配置文件

虚拟机的所有配置是放置在一个xml文件中,位置在/etc/libvirt/qemu/目录中

[root@kvm ~]# ll /etc/libvirt/qemu
total 12
drwxr-xr-x. 2 root root   25 Aug  7 10:08 autostart
drwx------. 3 root root   42 Apr 28  2021 networks
-rw-------. 1 root root 3826 Aug  3 20:03 study01.xml
-rw-------. 1 root root 4737 Aug  7 10:08 study02.xml


二、使用virsh管理虚拟机


virsh是使用libvirt management API构建的管理工具,virsh的名称的含义是virtualization shell。

virsh工具功能非常丰富,它可以全生命周期的管理kvm;比如创建虚拟机,查看虚拟机,动态热插拔硬盘,给虚拟机做快照,迁移、启动、停止、挂起、暂停、删除虚拟机等等操作。

它有两种工作模式:

立即模式

交互模式

常用命令参数:

命令

描述

attach-device

使用XML文件中的设备定义在虚拟机中添加设备

attach-disk

在虚拟机中附加新磁盘设备

attach-interface

在虚拟机中附加新网络接口

create

在XML配置文件生成虚拟机并启动新虚拟机

define

为虚拟机输出XML配置文件

destroy

强制关闭虚拟机

detach-device

从虚拟机中分离设备,使用同样的XML描述作为命令attach-device

detach-disk

从虚拟机中分离磁盘设备

detach-interface

从虚拟机中分离网络接口

domifstat

显示正在运行的虚拟机的网络接口统计

dominfo

显示虚拟机信息

dumpxml

输出虚拟机XML配置文件

help

显示帮助命令

list

列出所有虚拟机

migrate

列出虚拟机迁移到两外一台主机中

nodeinfo

有关管理程序的输出信息

edit

编辑域的XML配置

reboot

重启虚拟机

restore

恢复以前保存在文件中的虚拟机

save

将虚拟机当前状态保存到某个文件中

setmaxmem

为管理程序设定内存上限

setmem

为虚拟机设定分配的内存

setvcpus

修改为虚拟机分配的虚拟cpu数量

shutdown

关闭虚拟机

undefine

删除与虚拟机关联的所有文件

vcpuinfo

显示虚拟机的虚拟cpu信息

vcpupin

控制虚拟机的虚拟cpu亲和性

start

启动未激活的虚拟机


三、kvm基本功能管理


1.帮助命令

总结:从上面的信息可以看到,virsh命令大概分类:

  • Domain Management(域管理)
  • Domain Monitoring(域监控)
  • Host and Hypervisor(主机及虚拟化)
  • Interface(网卡接口)
  • Network Filter(网络防火墙)
  • Networking(网络)
  • Node Device(节点设备驱动)
  • Secret(加密)
  • Snapshot(快照)
  • Storage Pool(存储池或存储策略)
  • Storage Volume(存储卷)
  • Virsh itself(virsh shell自身相关)

查看某一组帮助信息,我们可以使用virsh help +组名;比如查看storage volume组相关命令有哪些,可以使用virsh help volume;

2.KVM的配置文件存放目录

重启,快照文件,网络文件保存目录

3.查看虚拟机状态

list只能查看启动状态下的虚拟机,加参数--all可以查看全部虚拟机,但未启动的虚拟机不会有id。

4.虚拟机关机与开机

通过上面查看的虚拟机状态,这里把myvm01关闭,myvm02开启。

5.强制虚拟机系统关闭电源

当虚拟机出现故障,通过上面温柔的关机方式,无法关闭时。这时你就需要用到暴力(拔电源)关机了,这种方式关机速度快,但是不推荐!!!

virsh destroy study02

6.通过配置文件启动虚拟机系统

启动方式不止start一种,也可以通过启动配置文件来开启虚拟机。

virsh create /etc/libvirt/qemu/study02.xml

7.修改虚拟机配置文件

vim /etc/libvirt/qemu/stuy01.xml
virsh edit stuy01

8.设置虚拟机自启

设置虚拟机随宿主机开启而开启,执行创建命令时在/etc/libvirt/qemu/autostart/目录里面创建开机自启的系统文件链接。

查看自启动配置文件

9.导出虚拟机配置

下面命令是备份虚拟机myvm01,路径还是放qemu目录下。

virsh dumpxml myvm01 > /etc/libvirt/qemu/study02_bak.xml

10.创建虚拟机(create)

如下准备使用study01.xml 拷贝为 stuby03.xml修改部分配置后运行。

为study03虚拟机创建存储

qemu-img create -f qcow2 /images/kvm/study03.qcow2 40G  

提示:qemu-img create 表示使用qemu创建一个磁盘文件,-f指定文件格式,常用的磁盘格式有raw,cow,qcow2;当然qemu-img支持创建很多格式的磁盘文件,这个命令的主要作用就是对磁盘文件的管理,比如创建磁盘,转换磁盘格式,检查磁盘,对磁盘做快照等等操作;

查看磁盘信息

修改study

创建study03虚拟机

用virt-manager验证,看看c1虚拟机是否有系统运行

11.删除和导入虚拟机(define)

删除虚拟机前需要先关闭虚拟机,让虚拟机处于关机状态。需要注意的是,上面已经备份了myvm01的虚拟机,如果没有备份,建议先备份,以便后面的导入操作。

virsh shutdown study02
virsh undefine study02
virsh list --all

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

virsh define /etc/libvirt/qemu/study02_bak.xml

注意:define和creater本质上两者一样的,都是从xml配置文件创建虚拟机

  • define 丛xml配置文件创建主机但是不启动
  • create 同样是丛xml配置文件创建主机,但是可以指定很多选项,比如是否启动,是否连接控制台等。

12.挂起/恢复虚拟机

# 挂起虚拟机
virsh suspend myvm01
# 恢复虚拟机
virsh resume myvm01

13.连接虚拟机

14.查看虚拟机信息

15.虚拟机克隆


复制一个虚拟机,改变所有独特的主机端配置,如MAC地址,名称等。
虚拟机的内容不会改变:virt-clone不会改变客户操作系统内部的任何东西,它只是复制磁盘和主机端更改。因此,诸如更改密码,更改静态IP地址等都不在此工具的范围内。有关这些类型的更改,请参见virt-sysprep(1)。

查看虚拟机状态

克隆study01的虚拟机,到study01_clong

virt-clone -o study01 -n study01_clong -f /images/kvm/study01_clong.qcow2

参数:

  • -o 需要克隆的虚拟机名称;
  • -n 新虚拟机名称;
  • -f 指定克隆到哪个文件目录并命名
# 查看状态并启动
virsh start study01_clong
# virsh list --all

查看vnc端口号

virsh vncdisplay study01

四、虚拟机快照


快照实际上做的是虚拟机的XML配置文件,默认快照XML文件,在/var/lib/libvirt/qemu/snapshot/虚拟机名/下,快照只支持qcow2磁盘格式的系统。

4.1 对虚拟机拍摄快照

拍摄快照有两种方式,第一种是随机生成名称,第二种是指定名称,最后查看虚拟机快照,生成两个虚拟机快照。

# 随机生成名称方式
virsh snapshot-create study01_snapshot
# 指定名字
virsh snapshot-create-as study01 study01_snapshot

4.2 查看快照详细信息

virsh snapshot-info study01 study01_snapshot
virsh snapshot-current study01

4.3 恢复快照

virsh snapshot-revert study01 study01_snapshot

4.4 删除快照

virsh snapshot-delete study01 study01_snapshot

4.4 编辑快照文件

virsh snapshot-edit study01  study01_snapshot_02


参考原文链接:【KVM虚拟化】· virsh管理命令_virsh 暂停-CSDN博客

https://blog.51cto.com/u_16099166/10110774

https://www.cnblogs.com/qiuhom-1874/p/13508231.html

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐