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 <虚拟机名称>

相关