kvm虚拟机
kvm虚拟机
1 安装
1.1 检查宿主机处理器是否支持虚拟化
egrep -o 'vmx | svm' /proc/cpuinfo | wc -l
如果显示数值是 0,则表示该 CPU 不支持虚拟化。
1.2 配置或设置宿主机
需要通过bios 或者 其他(比如在使用vmware时,使用vmware设置)开启CPU虚拟化。
1.3 关闭 iptables/firewall 和 selinux
setenforce 0 sed -i 's/SELINUX=enforce/SELINUX=disable/g' /etc/selinux/conf #CentOS6 service iptables stop chkconfig iptables off #CentOS 7 / 8 systemctl stop firewalld systemctl disable firewalld
1.4 安装KVM软件包
yum install -y kvm virt-* libvirt bridge-utils qemu-img device-mapper-libs virt-top
1.5 查看 kvm 模块是否加载到内核
lsmod | grep kvm_intel kvm_intel 53484 0 kvm 316506 1 kvm_intel
如果没有加载,可以尝试执行命令:modprobe kvm_intel,或者重启主机。
1.6 设置网络
1.6.1 bridge
cd /etc/sysconfig/network-scripts/ cp ifcfg-eth0 ifcfg-br0 cat > ifcfg-eth0 <<EOF DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=none BRIDGE=br0 EOF cat > ifcfg-br0 <<eof DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=static IPADDR=10.1.192.12 PREFIX=24 GATEWAY=10.1.192.1 DNS1=10.1.1.6 NAME=br0 eof # 重启网络 CentOS 6 service network restart CentOS 7/8 systemctl restart network systemctl restart NetworkManager
1.6.2 NAT
NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。 因此,NAT网络案例性更高。
- 安装依赖包
yum install dnsmasq iptables bridge-utils -y
- 定义虚拟网络
我们可以直接编辑虚拟网络文件,以生成我们自己需要的网络。如果已经存在bridge网络,也可以先删除再生成。 如果是全新配置,可以直接生成虚拟网络
-
编辑已存在的网络
virsh net-edit default
-
删除已存在的虚拟网络
virsh net-undefine default
-
定义虚拟网络
virsh net-define /usr/share/libvirt/networks/default.xml
-
NAT网络配置示例 示例1:
<?xml version="1.0" encoding="utf-8"?> <network> <name>default</name> <uuid>dc69ff61-6445-4376-b940-8714a3922bf7</uuid> <forward mode="nat"/> <bridge name="virbr0" stp="on" delay="0"/> <mac address="52:54:00:81:14:18"/> <ip address="192.168.122.1" netmask="255.255.255.0"> <dhcp> <range start="192.168.122.2" end="192.168.122.254"/> <host mac="00:25:90:eb:4b:bb" name="guest1" ip="192.168.5.13"/> <host mac="00:25:90:eb:34:2c" name="guest2" ip="192.168.7.206"/> <host mac="00:25:90:eb:e5:de" name="guest3" ip="192.168.7.207"/> <host mac="00:25:90:eb:7e:11" name="guest4" ip="192.168.7.208"/> <host mac="00:25:90:eb:b2:11" name="guest5" ip="192.168.7.209"/> </dhcp> </ip> </network>
-
NAT生效
virsh net-start default
-
1.7 启用服务
/etc/init.d/libvirtd start /etc/init.d/messagebus restart
1.8 创建磁盘镜像
其实这个步骤可以不做。在创建虚拟机时,可以自动生成。
在创建虚拟机之前,要先创建一个qcow2格式的磁盘文件,以供创建虚拟机时使用。 磁盘格式有多种,现在用得较多的是qcow2格式。更多关于格式的说明,见:虚拟机格式.
qemu-img create -f qcow2 -o preallocation=metadata /data/kvm/test01.qcow2 500G
1.9 创建虚拟机
1.9.1 方式1-通过ISO安装
- CentOS7
virt-install --name CentOS-6.1.8.16.43 --ram=16384 --vcpus=8,maxvcpus=32 --location=/home/isoandimages/rhel-server-6.1-x86_64-dvd.iso \ --disk path=/home/systempool/centos6.1.43.qcow2,size=50 --network bridge=br0 --graphics=none \ --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
- CentOS6
-
qemu-img create -f qcow2 /home/systempool/centos6.1.43.qcow2 20G 查看文件:
# ll *6* -rw-r--r-- 1 root root 197120 Jul 20 13:02 centos6.1.43.qcow2
可以看到初始生成的文件,大小只有不到200k。
-
创建虚拟机
virt-install --name CentOS-6.1.8.16.43 --ram=16384 --vcpus=8,maxvcpus=32 --location=/home/isoandimages/rhel-server-6.1-x86_64-dvd.iso --disk path=/home/systempool/centos6.1.43.qcow2 --network bridge=br0,mode=virtio --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
-
- 参数说明
简写参数 参数全称 说明 -n –name 虚拟机名称,需全局唯一 -r –ram 虚拟机内在大小,单位为MB –memory –vcpus N[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#][,cpuset=1-4,6,8] VCPU个数及相关配置 –cpu CPU模式及特性假如,coreduo,+x2apic 可以使用qemu-kvm -cpu ?来获取支持的CPU模式; –metadata 配置一些基本信息,比如name=foo,title="My title",uuid=..,description="…" <安装方法 > -c –cdrom CDROM:光盘安装介质; -l –location LOCATION:安装源URL,支持FTP、HTTP及NFS等,如http://10.10.100.150:8320 –pxe 基于PXE完成安装; –livecd 把光盘当作LiveCD; –os-type DISTRO_TYPE:操作系统类型,如linux、unix或windows等; –os-variant DISTRO_VARIANT:某类型操作系统的变体,如rhel5、fedora8等; -x –extra-args 根据–location指定的方式安装GuestOS时,用于传递给内核的额外选项 例如指定kickstart文件的位置,–extra-args "ks=http://172.16.0.1/class.cfg" –boot 指定安装过程完成后的配置选项,如指定引导设备次序、使用指定的而非安装的kernel/initrd –boot cdrom,hd,network:指定引导次序; –boot kernel=KERNEL,initrd=INITRD,kernel_args=”console=/dev/ttyS0” < 存储 > –disk 指定存储设备及其属性;格式为–disk /path,opt1=val1,opt2=val2等;常用的选项有: device:设备类型,如cdrom、disk或floppy等,默认为disk; bus:磁盘总结类型,其值可以为ide、scsi、usb、virtio或xen; perms:访问权限,如rw、ro或sh(共享的可读写),默认为rw; size:新建磁盘映像的大小,单位为GB; cache:缓存模型,其值有none、writethrouth(缓存读)及writeback(缓存读写) format:磁盘映像格式,如raw、qcow2、vmdk等 sparse:磁盘映像使用稀疏格式,即不立即分配指定大小的空间 –nodisks 不使用本地磁盘,在LiveCD模式中常用 <网络配置 > -w –network opt1=val1,opt2=val2:将虚拟机连入宿主机的网络中,其中NETWORK可以为: bridge=BRIDGE:连接至名为“BRIDEG”的桥设备名,如br0 network=NAME:连接至名为“NAME”的网络; type=direct,source=IFACE[,source_mode=MODE],通过macvtap直接连接主机IFACE model='e1000','rtl8139', 'virtio'等 filterref,可用值可以通过命令virsh nwfilter-list获得 其他,更多,可以通过命令man virt-install 来查看 mac:固定的MAC地址;省略此选项时将使用随机地址,但无论何种方式,对于KVM来说 其前三段必须为52:54:00 –nonetworks 虚拟机不使用网络功能; < 图形配置 定义虚拟机显示功能相关的配置,如VNC相关配置> –graphics TYPE,opt1=val1,opt2=val2 指定图形显示相关的配置,此选项不会配置任何显示硬件(如显卡),而是仅指定虚拟机 启动后对其进行访问的接口; TYPE:指定显示类型,可以为vnc、sdl、spice或none等,默认为vnc; port:TYPE为vnc或spice时其监听的端口; listen:TYPE为vnc或spice时所监听的IP地址,默认为127.0.0.1 可以通过修改/etc/libvirt/qemu.conf定义新的默认值; password:TYPE为vnc或spice时,为远程访问监听的服务进指定认证密码 –noautoconsole:禁止自动连接至虚拟机的控制台 <设备选项 指定文本控制台、声音设备、串行接口、并行接口、显示接口等> –serial CHAROPTS:附加一个串行设备至当前虚拟机,根据设备类型的不同,可以使用不同的选项, 格式为“–serial type,opt1=val1,opt2=val2,…”,例如: –serial pty:创建伪终端; –serial dev,path=HOSTPATH:附加主机设备至此虚拟机; –video VIDEO:指定显卡设备模型,可用取值为cirrus、vga、qxl或vmvga; < 虚拟化平台 虚拟化模型(hvm或paravirt)、模拟的CPU平台类型、模拟的主机类型、hypervisor类型(如kvm、xen或qemu等)以及当前虚拟机的UUID等> -v –hvm 当物理机同时支持完全虚拟化和半虚拟化时,指定使用完全虚拟化; -p –paravirt 指定使用半虚拟化; –virt-type 使用的hypervisor,如kvm、qemu、xen等;所有可用值可以使用’virsh capabilities’命令获取; < 其他 > –autostart 指定虚拟机是否在物理启动后自动启动; –print-xml 如果虚拟机不需要安装过程(–import、–boot),则显示生成的XML而不是创建此虚拟机 默认情况下,此选项仍会创建磁盘映像; –force 禁止命令进入交互式模式,如果有需要回答yes或no选项,则自动回答为yes; –dry-run 执行创建虚拟机的整个过程,但不真正创建虚拟机、改变主机上的设备配置信息及将其创建 的需求通知给libvirt; -d –debug 显示debug信息;
1.9.2 方式2-clone虚拟机
virt-clone 主要是用来克隆kvm虚拟机,并且通过 Options、General Option、Storage Configuration、Networking Configuration 等不同选项对新的虚拟机进行一些特殊的定义。 示例:
virt-clone -o centos7.8.2003-50 -n centos7.8.2003-51 -f /home/systemimages/centos7.8.2003-50.qcow2 --nonsparse
参数说明:
Options --version:查看版本 -h,--help:查看帮助信息 --connect=URI:连接到虚拟机管理程序 libvirt 的URI General Option -o ORIGINAL_GUEST, --original=ORIGINAL_GUEST:原来的虚拟机名称 -n NEW_NAME, --name=NEW_NAME:新的虚拟机名称 --auto-clone:从原来的虚拟机配置自动生成克隆名称和存储路径。 -u NEW_UUID, --uuid=NEW_UUID:克隆虚拟机的新的UUID,默认值是一个随机生成的UUID Storage Configuration(存储配置): -f NEW_DISKFILE, --file=NEW_DISKFILE:指定新的虚拟机磁盘文件 --force-copy=TARGET:强制复制设备 --nonsparse:不使用稀疏文件复制磁盘映像 Networking Configuration:(网络配置) -m NEW_MAC, --mac=NEW_MAC:设置一个新的mac地址,默认是一个随机的mac
clone 虚拟机,会生成两个文件,一个
1.10 删除虚拟机
virsh destroy <虚拟机> virsh undefine <虚拟机>
2 基本管理
2.1 查看所有虚拟机
virsh list --all
由此引申的,查看所有虚拟机对应的操作系统文件:
virsh list --all |grep -v "Id" |egrep -v '^-'|awk '{print "echo "$2 ";virsh dumpxml "$2"| grep file="}' |sh
示例如下:
centos7.0-04-6-32 <source file='/home/systempool/centos7.8-system-clone-2'/> centos7.0-06-8-32 <source file='/home/systempool/centos7.8-system-clone-4'/> centos7.0-6-16-32 <source file='/home/systempool/centos7.8-system-clone'/> centos7.0-6-16-33 <source file='/home/systempool/centos7.8-system-clone-1'/> centos7.0-32-64-31 <source file='/home/systempool/centos7.8-system'/> centos7.0-05-8-32 <source file='/home/systempool/centos7.8-system-clone-3'/>
2.2 查看所有虚拟机IP
virsh 是没有参数让我们直接查看所有虚拟机的IP地址的。我们这里写一个脚本,用来查询所有虚拟机IP。 主要的思路就是网上说的,先dumpxml 查询出mac 地址,然后再通过arp 过滤 MAC地址,得出IP地址:
yum install -y nmap nmap -PR xx.xx.xxx.0/24 # 时间有点儿长,要耐心等待。这个命令可以在宿主机上做一个定时任务。 virsh list --all |grep -v "Id"|egrep -v '^-'|awk '{print "echo -n "$2" ; virsh dumpxml "$2"|grep \"mac address=\""}'|sh| sed 's/ <mac address=//g'|sed 's/\/>//g'|awk '{print "echo -n "$1";arp -a |grep "$2}'|sh
结果示例:
centos7.0-04-6-32? (xx.xx.xxx.34) at 52:54:00:a8:9a:29 [ether] on eno1 centos7.0-06-8-32? (xx.xx.xxx.36) at 52:54:00:74:ea:c5 [ether] on eno1 centos7.0-6-16-32? (xx.xx.xxx.32) at 52:54:00:6a:9a:30 [ether] on eno1 centos7.0-6-16-33? (xx.xx.xxx.33) at 52:54:00:b6:38:a1 [ether] on eno1 centos7.0-32-64-31? xx.xx.xxx..31) at 52:54:00:d1:86:ce [ether] on eno1 centos7.0-05-8-32? (xx.xx.xxx.35) at 52:54:00:ec:89:17 [ether] on eno1
2.3 查看所有虚拟机磁盘
virsh list --all |grep -v "Id" |egrep -v '^-'|awk '{print "echo "$2 ";virsh dumpxml "$2"| egrep \"source [fd]\""}' |sh
示例:
centos7.0-05-8-32 <source file='/home/systempool/centos7.8-system-clone-3'/> <source dev='/dev/vpsstoragevg/storage05'/>
2.4 查看虚拟机资源配置
virsh dominfo <虚拟机>
示例:
Id: 15 Name: centos7.8 UUID: e937b70a-1eb9-498d-b2ab-eb7544cae5a5 OS Type: hvm State: running CPU(s): 8 CPU time: 439.9s Max memory: 67108864 KiB Used memory: 67108864 KiB Persistent: yes Autostart: disable Managed save: no Security model: none Security DOI: 0
2.5 显示虚拟机分区信息
virt-df <虚拟机>
示例:
# virt-df centos7.8 Filesystem 1K-blocks Used Available Use% centos7.8:/dev/sda1 1038336 157304 881032 16% centos7.8:/dev/sdb1 524029956 1960664 522069292 1% centos7.8:/dev/centos/root 36805060 6287568 30517492 18%
2.6 查看CPU/内存的资源使用率
virt-top
2.7 启停
virsh start <虚拟机> virsh autostart <虚拟机> virsh autostart --disable <虚拟机> virsh suspend <虚拟机> virsh resume <虚拟机> virsh reboot <虚拟机> virsh shutdown <虚拟机> virsh destroy <虚拟机>
2.8 调整最大内存配置
# 查看允许的最大值 virsh dominfo <虚拟机>|grep mem # 关闭虚拟机,调整虚拟机的内存,前提条件是maxmem > current_mem,因此需要先将maxmem 调大。 # 而调整maxmem 则是需要在虚拟机关闭的状态下调整的。 virsh shutdown <虚拟机名> virsh setmaxmem <虚拟机名> <大小单位KB> # 示例: virsh setmaxmem centos7 --size 67108864 --config # 启动虚拟机 virsh start <虚拟机> # 调整虚拟机分配内存 virsh setmem <虚拟机> <大小>
2.9 磁盘扩容(需要重启)
qemu-img resize /data/kvm/<file>.qcow2 +50G virsh shutdown <虚拟机> virsh start <虚拟机>
reboot 后不能识别新添扩展的空间,必须先彻底关闭虚拟机再打开。 新扩容出来的空间,需要分区和格式化。
2.10 添加删除磁盘
2.10.1 添加物理磁盘给虚拟机
-
添加物理磁盘或者分区
这里以添加lv 分区为例。
# lvcreate -L 500G -n storage07 vpsstoragevg # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 1.8T 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 1.8T 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 4G 0 lvm [SWAP] └─centos-home 253:2 0 1.7T 0 lvm /home sdb 8:16 0 14.6T 0 disk ├─vpsstoragevg-storage01 253:3 0 500G 0 lvm ├─vpsstoragevg-storage02 253:4 0 500G 0 lvm ├─vpsstoragevg-storage03 253:5 0 500G 0 lvm ├─vpsstoragevg-storage04 253:6 0 500G 0 lvm ├─vpsstoragevg-storage05 253:7 0 500G 0 lvm ├─vpsstoragevg-storage06 253:8 0 500G 0 lvm └─vpsstoragevg-storage07 253:9 0 500G 0 lvm
-
给虚拟机添加磁盘
virsh attach-disk <虚拟机> /dev/sdb vbd --driver qemu --mode shareable virsh detach-disk kvm vdb
示例:
virsh attach-disk centos7.8-4-16-42 /dev/vpcstoragevg/storage03 vdb --driver qemu --mode shareable
无需重启,即可正常识别:
# lsblk NAME MAJ:MIN RM SIZE RO MOUNTPOINT sr0 11:0 1 1024M 0 vda 252:0 0 40G 0 ├─vda1 252:1 0 500M 0 /boot └─vda2 252:2 0 39.5G 0 ├─VolGroup-lv_root (dm-0) 253:0 0 21.8G 0 / └─VolGroup-lv_swap (dm-1) 253:1 0 17.7G 0 [SWAP] vdb 252:16 0 500G 0 └─vdb1 252:17 0 500G 0
而且虚拟机中的配置也已自动添加:
.......... <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source dev='/dev/vpcstoragevg/storage03'/> <backingStore/> <target dev='vdb' bus='virtio'/> <shareable/> <alias name='virtio-disk1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </disk> .......
2.10.2 添加虚拟磁盘给虚拟机
-
创建虚拟磁盘
qemu-img create -f qcow2 -o preallocation=metadata /home/systempool/centos6.1.43_2.qcow2 500G Formatting '/home/systempool/centos6.1.43_2.qcow2', fmt=qcow2 size=536870912000 encryption=off cluster_size=65536 preallocation='metadata' lazy_refcounts=off
-
添加虚拟磁盘
<disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/home/systempool/centos6.1.43_2.qcow2'/> <target dev='vdb' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </disk>
需要修改的内容如下:
source file --> 指向我们新创建的虚拟磁盘 target dev --> vdb ,给虚拟磁盘,在虚拟机中映射一个新的磁盘名。 address type slot --> 每个设备都会指定一个slot , 与之前的slot 不能一样.
-
重启虚拟机
virsh shutdown <虚拟机> virsh start <虚拟机>
-
磁盘分区及格式化
parted /dev/vdb "mklabel gpt" parted /dev/vdb "mkpart data 1 100%" mkfs.ext4 /dev/vdb1 mkdir /data mount /dev/vdb1 /data EXT4-fs (vdb1): mounted filesystem with ordered data mode
2.11 在线调整CPU
cpu 与memory 不同,没有Maxcpu 配置。在dominfo 中只有一行cpu相关的配置:
virsh dominfo centos7|grep CPU\(s\) CPU(s): 8
要调整CPU 个数,也必须要重启虚拟机。
virsh shutdown <虚拟机> virsh setvcpus <虚拟机> 3 virsh start <虚拟机>
2.12 删除虚拟机
# 关闭虚拟机 virsh shutdown <虚拟机> 或者 virsh destroy <虚拟机> # 删除配置文件 virsh undefine <虚拟机> # 删除虚拟机文件,如果虚拟机文件名不能明确确定与虚拟机的对应关系,需要借助本章第一小节,查看所有主机名与文件的对应关系命令。 rm <虚拟机文件>
2.13 通过console登录虚拟机
virsh console <虚拟机名或者id> 断开使用 Ctrl + ]
2.14 调整网卡
2.14.1 添加虚拟机网卡
virsh attach-interface halberd --type bridge --source br0
[root@kvm ~]# virsh dumpxml halberd > /etc/libvirt/qemu/halberd.xml [root@kvm ~]# virsh define /etc/libvirt/qemu/halberd.xml
2.14.2 删除虚拟机网卡
virsh detach-interface halberd --type bridge --mac 52:54:00:14:86:cf
2.14.3 指定网卡品牌、系列
网卡默认类型是 rtl 品牌的网卡,这里设置为 intel 网卡 e1000 系列。修改如下配置文件即可。
<interface type='bridge'> <mac address='52:54:00:b5:68:a4'/> <source bridge='br0'/> <model type='e1000'/> # 添加设置字段 <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>
重启虚拟机,在虚拟机中查看:
lspci | grep "Ethernet" 00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
3 快照
3.1 创建快照的条件
虚拟机是关机状态。 虚拟机镜像格式是 qcow2。
3.2 创建快照
[root@kvm ~]# virsh snapshot-create halberd
3.3 查看快照列表
virsh snapshot-list halberd
qemu-img info /data/kvm/halberd.img
3.4 切换快照
virsh snapshot-revert halberd 1477285698
3.5 查看当前快照
virsh snapshot-current halberd
3.6 删除快照
virsh snapshot-delete halberd 1477285698
3.7 快照文件存储位置
/var/lib/libvirt/qemu/snapshot
4 虚拟机格式
4.1 格式说明
目前常用虚拟机镜像格式:raw、cow、qcow、qcow2、vmdk。
1)raw
raw格式:老牌的镜像格式,用一个字来说就是裸,也就是赤裸裸,你随便dd一个file就模拟了一个raw格式的镜像。由于裸的彻底,性能上来说的话还是不错的。centos6上KVM和XEN默认的格式还是这个格式。centos7以上默认是qcow2 。
裸的好处还有就是简单,支持转换成其它格式的虚拟机镜像对裸露的它来说还是很简单的(如果其它格式需要转换,有时候还是需要它做为中间格式),空间使用来看,这个很像磁盘,使用多少就是多少(du -h看到的大小就是使用大小)。 例: qcow2 转为 vmdk 方法是: qcow2 转为 raw ,然后把raw转为vmdk 。也可以直接qcow2转为vmdk
佳能相机上的高保真用的就是这格式。RAW的原意就是“未经加工”。可以理解为:RAW图像就是CMOS或者CCD图像感应器将捕捉到的光源信号转化为数字信号的原始数据。RAW理解为“数字底片”
缺点:不支持snapshot快照。
2)cow、qcow、qcow2
cow格式:还没有成熟,就被放弃了。后来被qcow格式所取代。
qcow格式:刚刚出现的时候有比较好的特性,但其性能和raw格式对比还是有很大的差距,目前已经被新版本的qcow2取代。
qcow2格式:现在比较主流的一种虚拟化镜像格式,经过一代的优化,目前qcow2的性能上接近raw裸格式的性能。qcow2格式支持snapshot快照,可以在镜像上做多个快照,具有以下优点:更小的存储空间;支持创建image镜像;支持多个snapshot快照,对历史snapshot进行行管理;支持zlib的磁盘压缩;支持AES的加密。
3)vmdk
vmdk格式:VMware的格式,整体性能最好,因为VMware就是做虚拟化起家。从性能和功能上来说,vmdk应该算最出色的,由于vmdk结合了VMware的很多能力,目前来看,KVM和XEN使用这种格式的情况不是太多。但就VMware的企业级虚拟化Esxi来看,它的稳定性和各方面的能力都很好。
4.2 格式转换
格式转换使用qemu-img convert -f [源镜像格式] -O [目标镜像格式] [源镜像地址] [目标镜像地址]
例如,将centos7.0由qcow2格式转换为raw格式
qemu-img convert -f qcow2 -O raw /var/lib/libvirt/images/centos7.0.qcow2 /var/lib/libvirt/images/centos7.0.raw # 查看格式 qemu-img info /var/lib/libvirt/images/centos7.0.raw
修改配置文件中的格式(这种方式不需要重启libvirtd):
virsh edit centos7.0 //修改第33~34行 <driver name='qemu' type='raw'/> <source file='/var/lib/libvirt/images/centos7.0.raw'/>
还有一种是直接编译配置文件,编辑完成后需要重启libvirtd.
systemctl restart libvirtd
Created: 2020-07-21 Tue 15:39
===================
天行健,君子以自强不息
地势坤,君子以厚德载物
===================