KVM学习随笔

原创文档编写不易,未经许可请勿转载,目前仅发布于博客园,其他平台均为非法转载。文档中有疑问的可以邮件联系我文章。 邮箱:yinwanit@163.com

说明

文档基于centos7下单机安装使用KVM虚拟机。

内容包含KVM安装、虚拟机创建、日常虚拟机维护等常见操作。

文档中除操作系统安装以外其他操作均使用命令行方式完成。日常维护时建议使用命令行方式。

约定俗称:

  • ## :命令注释内容
  • #:具体执行命令
  • 红色字体:重点关注
  • vm_name:KVM虚拟机名称,读者根据自己环境实际情况进行替换。

一、虚拟化说明

1.1  虚拟化技术

qemu: 软件纯模拟全虚拟化软件,兼容性好,比较慢。

xen(半):性能特别好,兼容性较差,部分指令需要进行转换,需要使用专门修改后的内核,兼容性比较差。内核不开源则不能实现内核定制运行。

KVM(全):全虚拟机,需要硬件CPU支持,内置在linux内核模块中,从centos6开始使用kvm。性能好、兼容性强。需要内核支持 如INTER VT-x/EPT,amd的V/RVI(V)

1.2  KVM虚拟机组成

KVM虚拟机由两部分组成:配置文件+磁盘文件

  • 虚拟机配置文件:虚拟机的元数据和硬件配置文件 /etc/libvirt/qemu目录下
  • 虚拟机磁盘文件:虚拟机操作系统及数据存储位置

当虚拟机和虚拟机磁盘文件都存在的情况下,可在同类型其他宿主机上正常注册启动虚拟机。

二、软件环境

操作系统:CentOS Linux release 7.9.2009 (Core)

所需软件:libvirt virt-install qemu-kvm  virt-manager gvnc gtk-vnc2

远程连接软件:MobaXterm

 软件说明:

CentOS Linux release 7.9.2009 (Core):宿主机及KVM虚拟机演示用操作系统。

libvirt:开源的虚拟化管理软件,通过API、守护进程(libvirtd)和命令行工具(virsh)实现对KVM、Xen、QEMU等20余种虚拟化技术的统一管理。

virt-install:用于在KVM上创建虚拟机。

qemu-kvm:虚拟机设备管理,基于qemu虚拟化的基础上优化。Qemu-KVM是一个主机上的VMM(virtual machine monitor)通过动态二进制转换来模拟CPU,并提供一系列的硬件模型,使guest os认为自己和硬件直接打交道,其实是同QEMU模拟出来的硬件打交道,QEMU再将这些指令翻译给真正硬件进行操作。通过这种模式,guest os可以和主机上的硬盘、网卡、cpu、CD-ROM,音频设备和USB设备进行交互。

virt-manager:图形化虚拟机管理界面。

gvnc/gtk-vnc2:远程网络控制服务端。

MobaXterm:远程控制软件可用于vnc、xdmcp、ssh连接。

三、软件安装

3.1  虚拟化支持配置

1、确认宿主机即需要安装KVM虚拟机的主机是否启动虚拟化支持。

Intel系列CPU标识符为vmx
AMD系列CPU标识符为svm
# grep -E "(vmx|svm)" /proc/cpuinfo

image

 有vmx或svm输出结果表示CPU支持虚拟化。如果没有显示说明宿主机bios中没有开启虚拟化支持相关功能。则需要去BIOS中开启相关功能INTER VT-x/EPT,amd的V/RVI(V)。

2、确认宿主机加载了kvm相关模块

# lsmod |grep kvm  

image

 kvm_amd表示宿主机为amd系列CPU已经完成模块加载。kvm_intel表示宿主机为Intel系列CPU已经完成模块加载

如该命令没有输出,则执行第3步加载模块。

3、加载kvm模块(第二步有输出该步骤可以跳过)
# modprobe kvm;modprobe kvm-amd;modporbe kvm-intel

image

 

3.2  虚拟软件安装

1、配置yum源
使用本地宿主机安装光盘镜像挂载到/mnt上,使用操作系统原装镜像安装kvm相关软件。
前置条件:系统安装光盘已经插入到宿主机上。
##挂载光盘镜像到/mnt上
# mount /dev/sr0 /mnt

##备份现有yum源文件
# mkdir  -p /etc/yum.repos.d/bak  ;  mv   /etc/yum.repos.d/*.repo    /etc/yum.repos.d/bak

##新建一个本地源yum文件(命令复制时从cat到最后一个EOF全部复制,这是一条命令,复制后回车键执行)
# cat > /etc/yum.repos.d/local.repo <<EOF
[local_base]
name=local_base
enabled=1
gpgcheck=0
baseurl=file:///mnt
EOF

##装载yum仓库
# yum clean all ; yum repolist

2、安装kvm相关软件

# yum install libvirt virt-install qemu-kvm  virt-manager gvnc gtk-vnc2 -y

3、核实软件安装情况

# rpm -qa libvirt virt-install qemu-kvm  virt-manager gvnc gtk-vnc2

image

4、设置服务开机启动

##启动libvirtd服务
# systemctl start libvirtd

##设置libvirtd服务开机启动
# systemctl enable libvirtd

##查看libvirtd服务运行状态
# systemctl status libvirtd

image

 

四、KVM虚拟机创建

 1、上传ISO镜像文件

文章中iso镜像路径为:/iso/CentOS-7-x86_64-Everything-2009.iso

2、创建一个kvm虚拟机

##新建一个名为centos7_9的虚拟机,虚拟机类型为kvm虚拟机,操作系统类型为linux,操作系统版本为rhel7,设置CPU 2核,内存 1GB,创建一块10GB的RAW格式磁盘位于/vm_dir/centos7_9_1.raw,挂载本地光盘镜像,网络设置为默认NAT,图形界面使用vnc监听默认端口5900,设置不自动连接到客户端控制柜台。
##vnc端口默认为5900
# virt-install --virt-type kvm --os-type=linux --os-variant  rhel7 --name centos7_9 --memory 1024 --vcpus 2 --disk /vm_dir/centos7_9_1.raw,format=raw,size=10 --cdrom /iso/CentOS-7-x86_64-Everything-2009.iso  --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

 

image

 

3、安装操作系统
使用MobaXterm软件连接虚拟机vnc界面,打开MobaXterm软件,点击红圈部分“Session”。

image

 在“Session settings”界面选择“VNC”,在VNC界面填入对端VNC连接信息。

image

 正常执行操作系统安装,操作系统安装步骤本文档不做展示。

image

 

 

五、常用配置

5.1  虚拟机console登录配置

虚拟机console登录旨在KVM虚拟机创建完成过后,通过执行virsh console vm_name命令直接进入到KVM虚拟机操作系统内。
1、KVM虚拟机上操作
##KVM虚拟机内核中添加参数(在安装操作系统完成后进行设置,后期也可通过vnc进入更改
# grubby
--update-kernel=ALL --args="console=ttyS0,115200n8"

##重启KVM虚拟机生效
# reboot
2、宿主机上操作
##执行virsh console vm_name命令进入到虚拟机console中
# virsh console vm_name

image

 (在KVM虚拟机console中使用 Ctrl + ] 快捷键退出到宿主机上)

5.2  虚拟机跟随宿主机自启动

KVM虚拟机开机自启动功能用在宿主机异常宕机重启后自动启动虚拟机,减少人功重启的动作。
##设置kvm虚拟机开机自启
# virsh autostart vm_name

##查看哪些虚拟机设置有开机自启动
# virsh list --autostart

##取消开机自启
# virsh autostart --disable vm_name

image

5.3  CPU管理

1、查看当前CPU配置模式。

##KVM配置文件默认放置在/etc/libvirt/qemu/目录下
##查看cento7_9虚拟机cpu模式,配置文件和dumpxml文件两条命令都可以
# cat /etc/libvirt/qemu/centos7_9.xml  | grep -i vcpu
# virsh dumpxml vm_name |grep -i vcpu

image

 CPU模式分为静态static和动态auto两种,静态模式下无法进行CPU热添加。

2、查看当前CPU配置信息

##查看指定kvm虚拟机cpu配置信息
# virsh vcpucount vm_name

image

cpu支持热添加,不支持热缩容,且扩容数量不能超过maximum限定的数值。
3、修改CPU模式为动态
##执行virsh edit vm_name 进入虚拟机配置文件,找到vcpu行,修改static为auto
# virsh edit vm_name

image


方法1:通过命令行操作调整CPU配置(下次启动生效)。
##设置配置文件中cpu最大扩容数量(当前不生效,下次启动生效)
# virsh setvcpus vm_name --maximum 4 --config

##设置配置文件中虚拟机cpu数量(当前不生效,下次启动生效)
# virsh setvcpus vm_name --count 4 --config

##设置热添加cpu数量,该值必须小于maximum live的值(当前生效,下一次启动以current config的值为准)。
# virsh setvcpus vm_name --hotpluggable --count 4

image

 因为maximum为下一次启动生效,所以当前kvm虚拟机可热扩容的最大cpu数为maximum live行的数据。

方法2:通过配置操作调整CPU配置(下次启动生效)。
##使用virsh edit vm_name 进入到虚拟机配置文件中
# virsh edit vm_name

配置文件说明:
<vcpu placement='auto'>2</vcpu> :设置配置文件CPU中maximum和current值为2,下一次启动虚拟机生效。
<vcpu placement='auto' current='2'>4</vcpu> :
设置配置文件CPU中maximum值为4,当前current大小为2,下一次启动虚拟机生效。

##重启虚拟机
# virsh shutdown vm_name;virsh start vm_name

image

5.4  内存管理

1、查看当前内存配置信息
# virsh dominfo vm_name

# virsh dumpxml centos7_9  | grep -i memory

image

 virsh dumpxml vm_name中 memory unit行为kvm虚拟机内存最大限制值。

 virsh dumpxml vm_name中 currentMemory unit 行为kvm虚拟机当前内存值。


2、设置下一次启动内存值
##设置虚拟机最大内存为4GB,写入到配置文件中,下一次重启虚拟机生效。
# virsh setmaxmem vm_name 4096M --config

##设置虚拟机内存为2GB,写入到配置文件中,下一次重启虚拟机生效。
# virsh setmaxmem vm_name 2048M --config

##查看配置文件是否写入,进入虚拟机配置文件查找memory行
# virsh edit vm_name

以上两条命令执行过后通过virsh dumpxml和virsh dominfo 命令看不出变化,使用 virsh edit vm_name 可以查看变化。

3、设置当前内存值大小
##当前生效,虚拟机重启过后失效,值不能超过maxmem。该操作不会记录到配置文件中。
# virsh setmem centos7_9 --live 4096M

##当前生效,虚值不能超过maxmem。该操作会记录到配置文件中。
# virsh setmem centos7_9 --live 4096M
4、通过配置文件修改内存值
##使用virsh edit vm_name 进入到虚拟机配置文件中
# virsh edit vm_name

配置文件说明:
  <memory unit='KiB'>4194304</memory> : 设置maxmem值,下一次启动虚拟机生效。
  <currentMemory unit='KiB'>4194304</currentMemory> : 设置内存值,下一次启动虚拟机生效。

##重启虚拟机
# virsh shutdown vm_name;virsh start vm_name

5.5 创建新磁盘并挂载

KVM使用qemu的磁盘格式,qemu支撑两种磁盘格式。

raw:裸格式,占用空间比较大,不支持快照功能,不方便传输,读写性能较好。厚置备

qcow2:(qemu copy on write 写时复制)占用空间小,支持快照,性能比raw差一点,方便传输。精简置备

##查看虚拟机磁盘路径
# virsh dumpxml vm_name | grep -i source

##查看磁盘格式
# qemu-img info /opt/centos7.raw
创建新硬盘
##创建虚拟磁盘
# qemu-img create -f qcow2 /dir/file_name.qcow2 size_num

##例子创建一个1G的qcow2格式的磁盘文件放置在/vm_dir/centos7_9_2.qcow2
# qemu-img  create -f qcow2 /vm_dir/centos7_9_2.qcow2 1G

##查看虚拟机当前磁盘数量
# virsh domblklist centos7_9
挂载磁盘到虚拟机命令行操作(即时生效)
##挂载磁盘到虚拟机(当前生效,并写入到配置文件中)
# virsh attach-disk vm_name /vm_dir/centos7_9_2.qcow2  vdb  --config
挂载磁盘到虚拟机修改配置文件(虚拟机重启生效)
##进入虚拟机配置文件新添加磁盘信息,在<device></device>中找到已有的<disk></disk>在其后添加内容
# virsh edit vm_name
.....
 <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/vm_dir/centos7_9_2.qcow2'/>
      <target dev='vdb' bus='virtio'/>
function='0x0'/>
    </disk>
.......

##关闭虚拟机
# virsh shutdown vm_name

##启动虚拟机
# virsh start vm_name

##查看虚拟机磁盘情况
# virsh domblklist vm_name
卸载虚拟机磁盘(即时生效)
##从虚拟机上卸载磁盘(当前生效,并写入到配置文件中)
# virsh detach-disk vm_name vdb --config

5.6  转换磁盘格式

磁盘转换操作不建议在生产用的虚拟机上执行。转换操作建议都在虚拟机关机状态下执行。
##其中的-O 为大写的 o
##基于raw磁盘转换为qcow2格式磁盘(相当于从raw格式磁盘中复制一张qcow2的磁盘)。
# qemu-img convert -f raw  -O qcow2 /source_dir/source_file.raw  /dest_dir/dest-file.qcow2

##基于qcow2磁盘创建新qcow2格式磁盘(相当于从qcow2格式磁盘中复制一张qcow2的磁盘)。
# qemu-img convert -f qcow2 -O qcow2 /source_dir/source_file.qcow2 /dest_dir/dest-file.qcow2

##将ISO转换为qcow2格式文件
# qemu-img convert -f raw -O qcow2 /source_dir/source-file.iso /dest_dir/dest-file.qcow2

##转换qcow2文件为vmdk格式文件
# qemu-img  convert -f qcow2 -O vmdk  /source_dir/source-file.qcow2  /dest_dir/dest-file.vmdk

##转换vmdk文件为qcow2格式文件
# qemu-img  convert -f vmdk -O qcow2  /source_dir/source-file.vmdk  /dest_dir/dest-file.qcow2

5.7  磁盘扩容

重启虚拟机生效。
##调整磁盘添加对应空间(有四则运算符),重启虚拟机生效。
# qemu-img  resize /dir/file_name.qcow2 +size_numg
##调整磁盘到指定空间(无四则运算符),重启虚拟机生效。 # qemu
-img resize /dir/file_name.qcow2 size_num
当前生效
##宿主机执行重置虚拟机对应磁盘命令
# virsh  blockresize centos7_9 /disk_dir/vm_name.qcow2 14GB

##进入到虚拟机中刷新分区信息
# virsh console vm_name

##虚拟机中执行
# partprobe
# lsblk

5.8  网络调整

查看桥接网卡
# brctl show

创建一个桥接网卡
# brctl addbr lvan0 

未桥接到任何网卡上。
#桥接网卡,桥接网卡会中断网络,不要在生产环境中命令执行,请使用脚本执行。
# brctl addif lvan0 ens33

删除掉被绑定网卡的ip地址
# ip addr del dev ens33 192.168.111.100/24
配置ip地址到绑定的网桥上
ifconfig lvan0 192.168.111.100/24 up
#查看路由
# ip route list
#新添加默认路由
route add default gw 192.168.56.2
在虚拟机中修改网络模式首先在xml文件中找到interface选项,然后设置type='bridge',设置 修改虚拟机为桥接网卡,模式。



创建桥接网卡
virsh iface-bridge eth0 br0
取消桥接网卡命令
virsh iface-unbridge br0

新虚拟机使用桥接模式
默认创建的虚拟机为NAT模式。
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --nework network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

桥接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

已有虚拟机更改网卡模式。
关机状态下修改该虚拟机配置。
virsh edit  vm_name
<interface type='bridge'>
  <source bridge='br0' />

5.9  虚拟机备份

KVM虚拟机本质上是由配置文件和磁盘文件组成,虚拟机备份及对虚拟机配置文件和磁盘文件复制即可。该操作需虚拟机处于关机状态下操作。
配置文件有两种方式获取:一、从/etc/libvirt/qemu/目录下查找;二、使用virsh dumpxml vm_name > vm_name.xml 生成。
配置文件路径: /etc/libvirt/qemu目录下
磁盘路径查看1:执行 virsh domblklist vm_name 命令查看
磁盘路径查看2:执行 virsh dumpxml centos7_9  | grep -i 'source file=' 命令查看

磁盘文件备份方式
  • 从磁盘路径直接复制一份到备份的目的目录
  • 使用qemu-img convert命令基于原始磁盘转换一份到备份目的目录

恢复方式见手动克隆章节。

5.10  虚拟机迁移

 虚拟机迁移作用是把一台虚拟迁移到另外一台宿主机上运行,基于单机的KVM宿主机环境,原理等同于从源宿主机上备份虚拟机数据到目的宿主机然后再运行。

5.11  挂载iso镜像

挂载宿主机上的iso镜像到虚拟机上。用作软件安装等操作。
1、确认KVM光盘盘符信息
##查看cdrom位于虚拟机那一张磁盘,虚拟机是否有cdrom
# virsh dumpxml  vm_name  | grep -A5 cdrom
# virsh domblklist vm_name

image

 从结果看虚拟机有cdrom磁盘信息,盘符名为hda

2、挂载光盘
# virsh attach-disk vm_name  /iso/CentOS-7-x86_64-Everything-2009.iso hda --type cdrom --mode readonly
3、确认虚拟机光盘挂载成功
##查看光盘挂载情况
# virsh dumpxml  vm_name  | grep -A5 cdrom
# virsh domblklist vm_name

image

 从结果中看到光盘挂载成功,盘符为hda。

4、进入到虚拟机中确认是否有该盘符
# virsh console vm_name
# lsblk

image

5.12  完全克隆

以原始虚拟机当前状态的完整副本。此副本虚拟机完全独立,不受原始虚拟机影响,但需要较多的存储磁盘空间。
将当前虚拟机的磁盘文件和配置文件完全复制一份,克隆后,手动对克隆出来的虚拟机配置文件进行修改。
克隆的虚拟机必须要处于挂起或者关机状态。
1、关闭虚拟机
##关闭虚拟机电源
# virsh shutdown vm_name

##如果虚拟机关机不了执行强制关闭电源
# virsh destroy vm_name

##确认电源关闭
# virsh list 
virsh list命令输出结果中没有对应虚拟机名称表示虚拟机电源关闭正常。

2、执行克隆命令
##--auto-clone参数表示克隆出来的虚拟机数据文件和配置文件放置在和源虚拟机同一个目录下,多磁盘虚拟机建议使用该方法进行克隆
# virt-clone -o source_vmname -n dest_vmname --auto-clone

##手动指定文件存储路径,虚拟机有几张盘就写几个--file
##查看待克隆虚拟机磁盘信息,主要关注数量,iso镜像磁盘不用管。配置文件还是在/etc/libvirt/qemu/目录下,数据文件在命令指定的目录下。
# virsh domblklist vm_name

#执行虚拟机克隆
# virt-clone -o source_vmname -n dest_vmname --file /clone_dir/new_vm_disk_file1.qcow2 --file /clone_dir/new_vm_disk_file2.qcow2

image

 virt-clone命令会自动修改克隆出来的KVM的配置文件和磁盘文件路径,如果想把克隆文件放置在其他目录,然后启动运行虚拟机,需要手动根据实际情况修改虚拟机配置文件。

5.13  手动克隆

 virt-clone命令会自动修改克隆出来的KVM的配置文件和磁盘文件路径,如果想把克隆文件放置在其他目录,然后启动运行虚拟机,需要手动根据实际情况修改虚拟机配置文件。

1、基于源虚拟机创建一块新的磁盘,如果有多张盘每张盘都要操作一次。也可以直接从文件夹中复制。

##使用qemu-img convert 格式转换命令从一块数据盘中转为出一块数据盘(-c表示压缩)。
# qemu-img convert -f qcow2 -O qcow2 -c  source_disk.qcow2  dest_disk.qcow2

2、导出一份虚拟机配置文件,也可以从/etc/libvirt/qemu/目录中直接复制。

##输出已有虚拟机配置文件
# virsh dumpxml source_vmname > dest_vmname.xml

3、根据实际情况修改虚拟机配置文件

##修改导出的配置文件
# vi dest_vmname
  • 修改虚拟机名字
  • 删除虚拟机uuid,define时自动生产新uuid
  • 删除mac,define时自动生成新uuid
  • 修改磁盘路径

4、使用克隆出来的配置文件重新注册虚拟机

##导入虚拟机,注册虚拟机
# virsh define dest_vmname.xml

5、虚拟机开机

# virsh start dest_vmname

5.14  链接克隆

链接克隆是对原始虚拟机的引用,所需的磁盘存储空间较少。但是,必须能够访问原始原始虚拟机才能够运行,原始虚拟机故障或原始虚拟机磁盘文件删除,克隆虚拟机将无法使用。

链接克隆时,目标磁盘格式只能用qcow2,不能使用raw格式

1、创建引用磁盘,和完整磁盘创建命令上-O变成了-F,同时新加入-b参数

# qemu-img create -f qcow2 -F qcow2  -b source_disk.qcow2 dest_disk.qcow2

##查看磁盘状态
# qemu-img info dest_disk.qcow2

image

 链接磁盘使用qemu-img info命令查看信息时会多一行backing_file。有改行表示此磁盘文件为链接磁盘。

2、导出一份虚拟机配置文件,也可以从/etc/libvirt/qemu/目录中直接复制。

##输出已有虚拟机配置文件
# virsh dumpxml source_vmname > dest_vmname.xml

3、根据实际情况修改虚拟机配置文件

##修改导出的配置文件
# vi dest_vmname
  • 修改虚拟机名字
  • 删除虚拟机uuid,define时自动生产新uuid
  • 删除mac,define时自动生成新uuid
  • 修改磁盘路径

4、使用克隆出来的配置文件重新注册虚拟机

##导入虚拟机,注册虚拟机
# virsh define dest_vmname.xml

5、虚拟机开机

# virsh start dest_vmname

5.15  数据磁盘创建一台虚拟机

 当仅有虚拟机磁盘文件,没有虚拟机xml文件。使用已有磁盘文件新建一台虚拟机。

 创建虚拟机

# virt-install --virt-type kvm --os-type=linux --os-variant  rhel7 --name recover_vm --memory 1024 --vcpus 2 --disk /vm_dir/recover_7_9_1.qcow2  --network network=default --graphics vnc,listen=0.0.0.0  --noautoconsole 

5.16  删除虚拟机

 删除虚拟机主要分为两步,从宿主机上注销虚拟机,从磁盘中彻底删除虚拟机磁盘文件。

1、关闭虚拟机

##强制断开虚拟机电源
# virsh destroy  vm_name

2、查看虚拟机磁盘文件位置

##查看虚拟机所有磁盘信息
# virsh domblklist

3、删除虚拟机(取消注册)相当于删除了/etc/libvirt/qemu/中虚拟机xml文件。

##取消注册虚拟机,不删除虚拟机磁盘文件
# virsh undefine vm_name

##取消注册虚拟机,同步删除虚拟机相关的磁盘文件,用这个命令就不用执行第二步和第4步了
# virsh undefine vm_name --remove-all-storage

4、删除虚拟机磁盘文件

根据第二步查看到虚拟机磁盘信息,手动在文件夹中删除磁盘文件。

六、常用命令

生成kvm虚拟机:virt-install
查看在运行/挂起的虚拟机:virsh list
查看所有虚拟机:virsh list –all
查看kvm虚拟机配置文件:virsh dumpxml name
启动kvm虚拟机:virsh start name
停止kvm虚拟机,强制关机,用在虚拟机操作系统故障无法关机、或没有操作系统的情况下:virsh destroy name
删除虚拟机,该操作只会删除虚拟机的配置文件,数据文件不会删除:virsh undefine name
根据配置文件定义虚拟机:virsh define file-name.xml
console虚拟机:virsh console name
配置console登录:
kvm实现console登录必须修改内核参数在虚拟机里面:
grubby  --update-kernel=ALL --args="console=ttyS0,115200n8"
重启生效
virsh console vm_name
查看kvm虚拟机信息:virsh dominfo centos7_9

重启虚拟机:virsh restart name
备份虚拟机配置文件,打印到屏幕中:virsh dumpxml vm_name > /bak/vm_name.bak
修改虚拟机配置:virsh edit vm_name
挂起虚拟机:vrish suspend vm_name
恢复挂起的虚拟机:virsh resume vm_name
设置kvm虚拟机开机自启:virsh autostarted vm_name
查看哪些虚拟机设置有开机自启动:virsh list --autostart
取消开机自启:virsh autostart --disable vm_name

虚拟机组成:配置文件+磁盘文件
虚拟机配置文件:虚拟机的元数据和硬件配置文件 /etc/libvirt/qemu目录下
虚拟机磁盘文件:虚拟机操作系统及数据存储位置

查看虚拟机磁盘路径:virsh dumpxml vm_name | grep -i source
查看磁盘格式:qemu-img info /opt/centos7.raw
创建虚拟磁盘:qemu-img create -f qcow2 /dir/file_name.qcow2 size_num
调整磁盘添加对应空间(有四则运算符):qemu-img  resize /dir/file_name.qcow2 +size_numg
调整磁盘到指定空间(无四则运算符):qemu-img resize /dir/file_name.qcow2 size_num
磁盘转换格式:qemu-img convert -f source_格式  -O qcow2 /source_dir/source_file.raw  /dest_dir/dest-file.qcow2
创建快照:virsh snapshot-create vm_name

完全克隆:virsh-clone -o source_vmname -n dest_vmname --auto-clone

 

posted @ 2025-08-18 18:36  飞翔的小胖猪  阅读(131)  评论(0)    收藏  举报