E0786P03版本的CAS,删除11G大小的快照,需要多长时间。快照删除的速度是每秒多少M,这个值如何查询,如何更改。
(0)
在H3C CAS平台上,删除快照的速度没有一个固定的标准值,它受存储性能、磁盘I/O、快照链长度等多种因素影响。CAS前台也没有直接显示删除速度的功能,但我们可以通过后台命令来查询和估算。
下面是具体的操作方法。
定位虚拟机与磁盘文件
首先,通过SSH登录到虚拟机所在的CVK主机,执行以下命令确定虚拟机的名称和磁盘文件路径:
查看快照列表与状态
使用以下命令查看虚拟机当前的快照列表,确认后台删除进度:
监控删除速度(核心方法)
这是获取删除速度最直接的方法。使用 iotop 命令监控磁盘I/O:
在输出结果中,找到qemu或qemu-img相关进程的 DISK READ 速度。这个速度可以视为当前快照合并(删除)的实际速率。结合快照大小,就可以估算剩余时间。
检查任务与日志(排障)
如果删除任务卡住,可以进一步排查:
对于你提到的11GB快照,无法给出精确的完成时间,其耗时完全取决于具体的环境。但可以提供一个参考:
时间范围:根据社区经验,删除快照的时间从几分钟到几个小时甚至一天都有可能。对于11GB大小的快照,在性能良好的存储上,通常会在几分钟到半小时内完成。
性能因素:最主要的瓶颈在于存储系统的IOPS(每秒输入输出操作次数)和吞吐量。高性能SSD存储的速度会远快于SATA机械硬盘。
进度假象:快照删除进度条常会在99%处卡住较长时间。这是因为前期合并元数据较快,后期需要将大量数据块真正写入磁盘,过程较为缓慢,这是正常现象,请耐心等待。
不能直接通过配置参数来“更改”或“限制”快照删除的速度。
CAS的快照删除是底层(基于QEMU/KVM)的数据块合并操作,其速度由存储系统的性能决定,而非一个可调节的软件参数。你只能通过以下间接方式影响速度:
优化存储性能:这是最根本的办法。提升存储设备的性能(如更换为更高IOPS的磁盘)可以直接加快所有I/O操作。
规划删除时间:如果担心影响业务,建议在业务低峰期进行快照删除操作,以降低对在线业务的影响。
避免中断:强烈不建议通过kill等方式强行终止快照删除的后台进程,这极易导致虚拟机磁盘损坏或数据丢失。
(0)
暂无评论
一、底层原理说明
CAS 删除外部快照本质是block-job commit镜像合并任务;内部快照关机合并无速率限制。
在线开机删快照:可人工限制合并速率(10~500MB/s),后台按限速值读写合并增量数据;
关机删除快照:调用qemu-img commit,无平台限速,跑满存储硬件带宽;
11G 快照理论耗时:按设置限速计算,例限速 100MB/s≈110 秒;限速 50MB/s≈220 秒;机械存储随机 IO 会翻倍耗时。
二、删除速率如何【修改】(两种方式)
方式 1:前台创建删除任务时直接设置(推荐,E0786P03 支持)
虚拟机开机状态,进入【快照管理】,选中快照点删除;
弹窗会出现删除速率 (MB/s) 输入框,取值范围 10 ~ 500;
数值越大,合并越快,但抢占存储 IO,同存储其他虚拟机卡顿;
业务高峰建议设 10~50,凌晨低峰可设 200~500;
填写速率后确认执行删除任务。
方式 2:删除任务运行中动态修改限速(后台 virsh 命令)
SSH 登录虚机所在 CVK 宿主机,查询磁盘设备名:
bash
运行
virsh domblklist 虚拟机名称
动态修改合并速度(单位 MB/s,示例限制 100MB/s):
bash
运行
virsh blockjob --set-speed 虚拟机名称 drive-virtio-disk0 100M
drive-virtio-disk0 替换为上一步查到的磁盘设备标识。
三、快照实时删除速度【查询】(3 种方法,精度从高到低)
方法 1:QMP 指令查询任务实时 speed(最精准,推荐)
登录 CVK 执行,直接返回当前合并速度、总数据量、已处理量:
bash
运行
virsh qemu-monitor-command 虚拟机名称 --pretty '{"execute":"query-block-jobs"}'
关键字段解读:
speed:当前实际合并速率(单位 Byte/s,÷1024÷1024 得到 MB/s);
len:快照总待合并数据(字节);
offset:已合并数据,可算进度;
type: "commit" 代表快照删除合并任务运行中。
方法 2:iotop 监控进程实际磁盘读写速度(看底层存储真实吞吐)
找到快照合并进程 PID:
bash
运行
ps -ef | grep qemu-kvm | grep 虚拟机名称
实时监控该进程 IO 速度:
bash
运行
iotop -Pp PID号
DISK WRITE列即为快照删除实际写入速度,代表真实执行速率。
方法 3:前台界面查看任务预估(粗略,仅参考)
CVM【任务中心】找到快照删除任务,页面仅展示进度百分比,不显示实时 MB/s,只能用来大致判断快慢,无法精确测速。
补充:查看快照原始大小(确认 11G 实际数据量)
bash
运行
# 查看磁盘快照链,获取增量快照真实占用
qemu-img info --backing-chain /存储路径/虚拟机磁盘.qcow2
重点看disk size字段,为快照实际需要合并的数据量(部分快照看似 11G,实际增量数据更小)。
四、11G 快照删除耗时估算参考
在线限速场景
限速 50MB/s:11×1024÷50≈225 秒(3 分 45 秒);
限速 100MB/s:≈112 秒(1 分 50 秒);
限速 200MB/s:≈56 秒;
关机无限制合并
SSD 存储:200~400MB/s,20~60 秒完成;
机械硬盘 RAID5:50~120MB/s,2~4 分钟;
额外耗时因素:
虚机业务持续写入产生脏数据,合并会持续追新数据,时间翻倍;
存储池 IO 负载高、多虚拟机同时操作,速度会被挤压;
多层快照链、磁盘碎片严重会拉长合并时间。
五、常见注意事项(E0786P03 版本适配)
仅外部快照支持速率限制,内部快照删除无速率参数,只能关机合并;
前台删除速率生效范围仅本次任务,不全局永久保存,下次删除需重新填写;
禁止任务运行中多次反复修改速率,容易出现 blockjob 任务卡死;
存储池剩余空间至少≥快照大小 1.5 倍,否则合并到 99% 会停滞;
若前台任务进度卡住 99%,用query-block-jobs看 offset 是否持续上涨,offset 不动代表 IO 瓶颈,调低限速或业务低峰再操作。
六、完整实操示例(11G 快照测速 + 调限速)
前台删除快照,设置速率 80MB/s,启动任务;
CVK 后台查询实时速度:
bash
运行
virsh qemu-monitor-command test-vm --pretty '{"execute":"query-block-jobs"}'
若速度过慢,动态调高至 150MB/s:
bash
运行
virsh blockjob --set-speed test-vm drive-virtio-disk0 150M
iotop 验证底层写入速度,估算剩余时间。
(0)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论