virsh管理虚拟机

时间:2024-03-13 15:47:03

virsh管理虚拟机
virsh管理虚拟机

一、管理虚拟机

1、libvirt架构概述

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

libvirtd该后台进程主要实现以下功能:
(1)远程代理
所有remote client发送来的命令,由该进程监测执行。
(2)本地环境初始化
libvirt服务的启停,用户connection的响应等。
(3)根据环境注册各种Driver(qemu, xen, storage…)的实现不同虚拟化技术以Driver的形式实现,由于libvirt对外提供的是统一的接口,所以各个Driver就是实现这些接口,即将Driver注册到libvirt中。

virsh管理虚拟机

查看libvirtd服务状态:

[[email protected] ~]# systemctl status libvirtd

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

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

[[email protected] ~]# ll /etc/libvirt/qemu

可以看到创建的2个虚拟机,libvirt的xml文件分为几个重要部分,整体结构如下:
01
02 虚拟机整体信息
03 系统信息
04 硬件资源特性
05 突发事件处理
06 虚拟硬盘(单个或者多个)
07 虚拟光盘(可选)
08 虚拟网络(单个或者多个)
09 vnc/spice配置
10

虚拟机的配置文件信息:

具体格式可以参看http://libvirt.org/formatdomain.html

2、使用virsh来管理虚拟机

virsh是使用libvirt management API构建的管理工具。

virsh的名称的含义是virtualization shell。它有两种工作模式:
立即模式、交互模式

立即模式:

[[email protected] ~]# virsh list --all

交互模式:

[[email protected] ~]# virsh
virsh # list --all
virsh # quit

查看virsh命令帮助信息:

[[email protected] ~]# virsh --help

主要部分管理命令:
virsh管理虚拟机

virsh常用命令总结:

virsh管理虚拟机
virsh管理虚拟机
virsh管理虚拟机

二、KVM基本功能管理

1、查看命令帮助(–help)

[[email protected] ~]# virsh --help

2、查看kvm的配置文件存放目录(/etc/libvirt/qemu/)

[[email protected] ~]# ll /etc/libvirt/qemu

3、查看虚拟机状态(list --all)

[[email protected] ~]# virsh list --all

4、虚拟机的开机与关机(start/shutdown)

①开启虚拟机:

[[email protected] ~]# virsh start test-os1
[[email protected] ~]# virsh start test-os2

②关闭虚拟机(优雅关机):

[[email protected] ~]# virsh shutdown test-os1
[[email protected] ~]# virsh shutdown test-os2

5、强制虚拟机系统关闭电源(destroy:摧毁,可以当作直接断电)

[[email protected] ~]# virsh destroy test-os1

6、通过虚拟机的xml配置文件启动虚拟机系统(create)

[[email protected] ~]# virsh create /etc/libvirt/qemu/test-os1.xml
[[email protected] ~]# virsh create /etc/libvirt/qemu/test-os2.xml

7、挂起虚拟机(suspend)

[[email protected] ~]# virsh suspend test-os1

8、恢复虚拟机(resume)

[[email protected] ~]# virsh resume test-os1

9、配置虚拟机伴随宿主机自动启动与关闭自动启动(autostart/autostart --disable)

①伴随宿主机自动启动

[[email protected] ~]# virsh autostart test-os1
[[email protected] ~]# virsh autostart test-os2

②关闭自动启动

[[email protected] ~]# virsh autostart --disable test-os1
[[email protected] ~]# virsh autostart --disable test-os2

10、导出虚拟机配置(dumpxml)

[[email protected] ~]# virsh dumpxml test-os1 > /etc/libvirt/qemu/test-os1_backup.xml

11、虚拟机的删除与添加(undefine/define)

①删除虚拟机

[[email protected] ~]# virsh shutdown test-os1
[[email protected] ~]# virsh undefine test-os1

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

[[email protected] ~]# mv /etc/libvirt/qemu/test-os1_backup.xml /etc/libvirt/qemu/test-os1.xml
[[email protected] ~]# virsh define /etc/libvirt/qemu/test-os1.xml

12、修改虚拟机的配置信息(vim/edit)

①通过vim命令修改配置文件(不建议使用vim)

[[email protected] ~]# vim /etc/libvirt/qemu/test-os1.xml

②通过virsh命令修改配置文件(建议使用virsh,自带保护机制)

[[email protected] ~]# virsh edit test-os1

13、查看虚拟机配置信息

[[email protected] ~]# virsh dominfo test-os1
[[email protected] ~]# virsh dominfo test-os2

14、连接虚拟机(进入虚拟机后按 Ctrl + ] 退出虚拟机)

[[email protected] ~]# virsh console test-os1

三、KVM虚拟机克隆

查看虚拟机状态:

[[email protected] ~]# virsh list --all

关闭虚拟机:

[[email protected] ~]# virsh shutdown test-os1
[[email protected] ~]# virsh shutdown test-os2

克隆虚拟机:

[[email protected] ~]# virt-clone -o test-os1 -n test-os1_clone -f /kvm-vm/vm1_clone.qcow2

开启克隆虚拟机并登陆:

[[email protected] ~]# virsh start test-os1_clone
[[email protected] ~]# virsh console test-os1_clone

四、KVM虚拟机快照

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

在虚拟机中创建一个文件:

创建一个虚拟机快照(snapshot-create不指定快照名称):

[[email protected] ~]# virsh snapshot-create test-os1_clone

查看虚拟机的所有快照信息(snapshot-list):

[[email protected] ~]# virsh snapshot-list test-os1_clone

virsh管理虚拟机

查看当前虚拟机的快照信息(snapshot-current):

[[email protected] ~]# virsh snapshot-current test-os1_clone

在虚拟机中再次创建一个文件:

再次创建一个虚拟机快照(snapshot-create-as指定快照名称):

[[email protected] ~]# virsh snapshot-create-as test-os1_clone create_test

再次查看虚拟机的所有快照信息(snapshot-list):

[[email protected] ~]# virsh snapshot-list test-os1_clone

恢复到虚拟机的快照状态(snapshot-revert):

[[email protected] ~]# virsh snapshot-revert test-os1_clone 1585813971
[[email protected] ~]# virsh snapshot-revert test-os1_clone create_test

删除虚拟机的快照(snapshot-delete):

[[email protected] ~]# virsh snapshot-delete test-os1_clone 1585813971