Linux Virsh 控制虚拟机
Virsh 命令对虚拟机操作
参考文档
virsh define 创建虚拟机
1. 首先需要创建一个稀疏镜像
# 校验镜像是否正确
qemu-img check 镜像名
# 创建一个qcow2的稀疏文件虚拟磁盘文件,就是说刚创建出来的文件并没有8G,它会随着数据的增多慢慢增加,直到80G;
qemu-img create -f qcow2 -b /path/name.qcow2 -o backing_fmt=qcow2 /path/new_name.qcow2 80G
# 参数说明:
# -f: 指定镜像格式,
# -o:指定选项
# /root/kvm.qcow2 表示指定创建的虚拟磁盘路径
# 80G指定磁盘大小;
# backing_fmt, 设置后端镜像的镜像格式
2. 创建一个 xml 文件
- 参考文章
- https://blog.csdn.net/qq_15437629/article/details/77827033
Python 生成一个 uuid 作为虚拟机的 uuid
import uuid
# 基于时间戳生成一个 uuid
def get_uuid():
instance = uuid.uuid1()
return instance
generic
f3a9ac9b-32fc-4fe0-bb63-8a970db3b50d
10485760
10485760
8
hvm
Broadwell
destroy
restart
destroy
/usr/libexec/qemu-kvm
3. 创建虚拟机
virsh define ./instance_xml_name.xml
virsh 其他操作
- 删除虚拟机
# 先关机 在删除
virsh destroy 虚拟机名称
virsh undefine 虚拟机名称
- 关闭虚拟机
virsh shutdown 虚拟机名称
- 强制关闭虚拟机
virsh destory 虚拟机名称
virsh 虚拟机快照
- 创建虚拟机快照
virsh snapshot-create-as 虚拟机名称 快照名称
# domain 是指虚拟机的名字
# snapshot-name 是指快照的名字
- 查看快照列表和详情信息
virsh snapshot-list 虚拟机名称 快照名称
- 恢复快照
virsh snapshot-revert 虚拟机名称 快照名称
- 删除快照
virsh snapshot-delete 虚拟机名称 快照名称
virsh lv卷:作为虚拟机后端存储
查看虚拟机的虚拟磁盘
$ virsh domblklist <虚拟机名称>
挂载一个 LV 作为虚拟机硬盘
$ virsh attach-disk instance_name /dev/vg_name/lv_name vde --driver qemu
$ virsh <虚拟机名字> <挂载的lv>
--derver <设备驱动 qemu>
--mode <挂载的类型> # --mode shareable
OPTIONS
[--domain] domain name, id or uuid
[--source] source of disk device
[--target] target of disk device 一般为vdb,vdc...
--driver driver of disk device
--mode mode of device reading and writing
--subdriver 镜像文件的格式
卸载一块虚拟磁盘
# 卸载某一台虚拟机上的虚拟磁盘
$ virsh detach-device <虚拟机名称>
#
$ virsh domlblist <虚拟机名称>