【虚拟化】KVM常用命令操作(virsh虚拟机常用操作之开关|连接|自启|克隆|快照)

目录

​编辑一、KVM概述

[1.1 KVM工具栈](#1.1 KVM工具栈)

[1.2 libvirt架构概述](#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.1 对虚拟机拍摄快照)

[4.2 查看快照详细信息](#4.2 查看快照详细信息)

[4.3 恢复快照](#4.3 恢复快照)

[4.4 删除快照](#4.4 删除快照)

[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

相关推荐
团儿.24 天前
KVM磁盘配置:构建高效虚拟环境的基石
linux·运维·centos·kvm·kvm磁盘
小哈里1 个月前
【虚拟化】内核级虚拟化技术KVM介绍,全/半虚拟化的区别,使用libvirt搭建虚拟化平台(go/java/c++)
java·c++·golang·虚拟化·kvm
igcllq2 个月前
ubuntu 安装kvm 创建windos虚拟机
linux·运维·服务器·ubuntu·虚拟机·kvm
清瞳清2 个月前
KVM环境下制作ubuntu qcow2格式镜像
ubuntu·kvm·qcow2
西京刀客2 个月前
kvm 虚拟机命令行虚拟机操作、制作快照和恢复快照以及工作常用总结
linux·服务器·kvm
开着拖拉机回家2 个月前
【虚拟化】KVM-virsh离线工具进行客户机虚拟机磁盘访问
虚拟化·虚拟机·kvm·virt-df·virt-sparsify
为了待会去码头整点薯条3 个月前
云计算虚拟化Libvirt Domain XML Format中文版—对照学习使用
云计算·openstack·iaas·kvm·libvirt
小哈里3 个月前
【虚拟化】计算虚拟化技术简介,CentOS使用KVM、QEMU安装并管理虚拟机
linux·运维·centos·虚拟化·kvm
henan程序媛4 个月前
部署KVM虚拟化平台
linux·运维·服务器·虚拟化·kvm