kvm磁盘管理
- KVM虚拟磁盘类型
- raw
- qcow2
- qemu-img常用参数
- 主要参数:
- 安装qemu-img
- 查看磁盘信息--info
- 创建磁盘文件--create
- 磁盘容量调整--resize
- 热扩容
- 磁盘增加容量
- 磁盘缩小容量(生产环境下禁止操作)
- 磁盘调整容量到指定大小
- 转换磁盘格式--convert
- 转换VMware的vmdk为qcow2
- 检查磁盘镜像文件
- 磁盘快照
- 创建磁盘快照
- 查看磁盘快照
- 回滚到磁盘快照
- 删除磁盘快照
- 在线附加和卸载VM磁盘
- 附加磁盘到vm实例--attach-disk
- 从vm实例中分离磁盘--detach-disk
- 存储池管理
KVM虚拟磁盘类型
raw
raw为裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输,创建多大的磁盘就占用多大的空间。
qcow2
qcow2(quick copy on wire --写时复制),占用空间小,支持快照,性能比 raw差一些,方便传输,磁盘的实际大小时动态的(当写入数据时宿主机的磁盘占用才会变大)。
qemu-img常用参数
https://mp.weixin.qq.com/s/N8l3p3Bemr3AczqntEr4VA
# 列出指定虚拟机上的磁盘信息
virsh domblklist vm名
主要参数:
-
info
: 查看镜像的信息; -
create
: 创建镜像; -
check
: 检查镜像; -
convert
: 转化镜像的格式; -
snapshot
:管理镜像的快照; -
rebase
: 在已有的镜像的基础上创建新的镜像; -
resize
: 增加或减小镜像大小
安装qemu-img
# Windows安装
choco install qemu-img -y
# rhel安装
dnf install -y qemu-img
# Debian安装
apt install -y qemu-utils
查看磁盘信息–info
# 查看磁盘信息
qemu-img info disk_name.raw
qemu-img info disk_name.qcow2
创建磁盘文件–create
创建的磁盘文件后缀名
不用关注,工作中经常会以.img
为磁盘文件后缀。
# 创建raw(默认格式)
qemu-img create /data/vm1.raw 1G
# 创建qcow2
## 不指定参数,默认创建的是raw格式的磁盘文件
## -f 指定磁盘格式
qemu-img create -f qcow2 /data/vm2.qcow2 1G
磁盘容量调整–resize
热扩容
# 列出指定虚拟机上的磁盘信息
virsh domblklist vm名
# 对虚拟机的磁盘文件进行扩容
## --paht 为vm的磁盘绝对路径
virsh blockresize --path vm实例的磁盘绝对路径 --size 50G vm名
# 登录vm扩容文件系统容量
磁盘增加容量
# 增加10G容量
qemu-img resize /data/vm1.raw +10G
磁盘缩小容量(生产环境下禁止操作)
# raw磁盘缩小容量
qemu-img resize /data/vm2.raw -500M
# qcow2磁盘缩小容量---不支持缩容
qemu-img resize /data/vm2.qcow2 -500G
!!!qcow2
只能加不能减
!
磁盘调整容量到指定大小
# 将磁盘容量调整至1T
qemu-img resize /data/vm2.qcow2 1T
转换磁盘格式–convert
运行中的VM实例,要先关机后才能转换VM实例的磁盘格式,转换完成后,要执行virsh edit vm实例
修改disktype
和diskpath
为正确值才能启动VM实例。
# 1.将vm实例关机
virsh shutdown vm名称
## qemu-img convert如果不-O指定输出格式,默认转换为raw格式
# 将raw磁盘转换为qcow2磁盘
# 转换镜像为qcow2格式
## -f:参数值为源镜像文件的格式。
## -O(大写):参数值分别为输出镜像格式、源镜像文件名称和输出镜像文件名称。
qemu-img convert -f raw -O qcow2 vm1.raw vm2.qcow2
# 修改vm实例的磁盘type和path
virsh edit vm名称
原来的磁盘格式是raw
修改成qcow2
格式磁盘
转换VMware的vmdk为qcow2
# 转换VMware的vmdk为qcow2
## qemu-img convert如果不-O指定输出格式,默认转换为raw格式
# 将raw磁盘转换为qcow2磁盘
# 转换镜像为qcow2格式
## -f:参数值为源镜像文件的格式。
## -O(大写):参数值分别为输出镜像格式、源镜像文件名称和输出镜像文件名称。
qemu-img convert -f vmdk -O qcow2 source-name.vmdk target-name.qcow2
# 转换&压缩命令:
## -c 压缩镜像
qemu-img convert -c -f vmdk -O qcow2 source-name.vmdk target-name.qcow2
检查磁盘镜像文件
对磁盘镜像文件进行一致性检查,查找镜像文件中的错误,目前仅支持对qcow2
、qed
、vdi
格式文件的检查。
# 检查磁盘文件
qemu-img check vm2.qcow2
磁盘快照
默认会把磁盘快照的配置文件
存储到/var/lib/libvirt/qemu/snapshot/虚拟机名称/快照名称.xml
创建磁盘快照
# -c:表示创建磁盘快照
qemu-img snapshot -c 快照名 磁盘镜像文件路径
查看磁盘快照
# -l:查看磁盘文件的快照列表
qemu-img snapshot -l /kvm/images/centos7.qcow2
回滚到磁盘快照
# -a:应用磁盘快照,将磁盘恢复到做快照那一刻
qemu-img snapshot -a 快照名 磁盘镜像文件路径
删除磁盘快照
# -d:删除磁盘快照
qemu-img snapshot -l /kvm/images/centos7.qcow2
在线附加和卸载VM磁盘
附加磁盘到vm实例–attach-disk
附件磁盘
是热生效
的,通过virsh attach-disk
添加硬盘时,只能是虚拟机运行时才能添加
,而且是即时生效
的。
# 将磁盘挂载到vm实例--立即且永久生效
## --live 热生效,但不保存到配置文件
## --config 写入到配置文件永久生效
virsh attach-disk vm名称 [--source] /data/raw/disk02.qcow2 sdb --subdriver=qcow2 --live --config
# 查看指定虚拟机的磁盘是否增加
virsh domblklist vm名
virsh | 附加磁盘 / 卸载磁盘 | vm名称 | vm磁盘路径 | vm中块设备名 | 指定vm磁盘格式(可选参数) | 其他参数(可选参数) |
virsh | attach-disk | vm1 | /data/raw/disk02.qcow2 | vdb | –subdriver=qcow2 | –live --config |
从vm实例中分离磁盘–detach-disk
附加的磁盘
一定要在虚拟机运行
时卸载,
vm关机卸载磁盘会报错,但也能把该磁盘卸载掉。
# 从vm实例中删除磁盘--立即且永久生效
virsh detach-disk vm名称 –target vdb --live --config
# 查看指定虚拟机的磁盘是否减少
virsh domblklist vm名
virsh | 附加磁盘 / 卸载磁盘 | vm名称 | –target | vm中块设备名 | 其他参数(可选参数) |
virsh | detach-disk | vm1 | –target | vdb | –live --config |
存储池管理
# 查看所有Storage Pool
virsh pool-list --all