vmware lun回收引起的IO问题

时间:2024-10-13 07:25:51

起初并没人关注的小问题,正常不过的虚机存储迁移操作,引起的延迟却引发一连串的变化。
环境
vsphere 6.7 + 华为集中式存储
开始

  • 下午5:17
    业务反馈,存在数据超时,频繁在1秒钟以内,正常在200ms。需运维排查虚机的状态与IO情况等硬件使用情况。
  • 下午5:30
    随手翻开zabbix 打开cpu idel 与avaliable memory ,均正常余量蛮大,这台为数据库cpu idel 最高不超过30%,排除cpu 内存问题。
    同时数据库组同事给予意见:
    从awr分析上看瞬时的io大,写入慢了假设后续硬件层面没法提高的情况下,建议对相关表改成分区表,再把数据库的几个数据文件分割到多个新挂载磁盘卷去。如果存储能提升来的会快一点。
    以上在下班前算是给予一个比较好的解决方式,恰逢周五下班,无心排查期待后续没有其余问题。
  • 晚上 21:47
    业务反馈延迟在这几个小时内反反复复发生,告警一直反反复复。
    此刻开始关注,调出vsphere 打开虚机IO延迟,查看在这段时间内IO正常,最大演出151。怀疑这个存储不行,立马决定热更换存储。
  • 晚上 21:58
    怀疑不是存储的问题,立马停止存储迁移。打开存储管理台查看当前lun的状态。并收集存储日志交给厂商进行定量分析。
  • 晚上 23:30
    经过仔细排查与操作记录回想,基本确认是在4:30-5:17进行的虚机整机迁移(包含存储的更换)导致的延迟增加。
    1:分析存储性能数据,从16:35开始存储上ID为17的LUN oceanstor5310_LUN04的unmap最大带宽超过400MB/s
    在这里插入图片描述
    2: ID为17的LUN oceanstor5310_LUN04 IO写时延最高达到了393ms,读延迟正常:
    :
    在这里插入图片描述
    在这里插入图片描述
    到此问题情况已经可以确认:

问题原因:

虚拟机迁移过程中,LUN收到大量unmap命令会消耗页面资源

同时主机业务IO也会申请页面资源。缓存页面资源不足导致LUN的写时延增加

建议:

可以在VMware上手动限制unmap的最大带宽

具体的操作方法建议和VMware确认

资料补充:
官方回复:
回收 vSAN 数据存储上的磁盘空间(适用于 VMware vSphere 6.7U1 及更高版本)
如果您使用的是 vSAN 数据存储,则本主题适用。在 vSphere/vSAN 6.7U1 之前,不支持空间回收。从 6.7U1 开始,支持在 vSAN 数据存储上通过 vCenter Server UNMAP 功能进行 vSAN 空间回收。默认情况下将停用此功能。

1、过程

检查 ESXi 主机中是否已启用 UNMAP 功能。
从命令行运行以下命令:
esxcfg-advcfg -g /VSAN/GuestUnmap
“GuestUnmap”选项的值为 0
  • 1
  • 2
  • 3
  • 4
esxcfg-advcfg -g /VSAN/Unmap
“Unmap”选项的值为 1
  • 1
  • 2

2、在所有 ESXi 主机中启用客户机 UNMAP。

运行以下命令:
esxcfg-advcfg -s 1 /VSAN/GuestUnmap
然后,检查客户机操作系统的 UNMAP 功能。运行以下命令:

esxcfg-advcfg -g /VSAN/GuestUnmap
“GuestUnmap”选项的值为 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3、在 vCenter Server 中启用 UNMAP 功能。

运行以下 RVC 命令:
vsan.unmap_support <cluster> -e
  • 1
  • 2