APM 备份 Nutanix 虚拟机报「无法进入静默状态」:先手动做一次还原点分锅,再逐项查三道前提
这条报错其实在说两件事
夜里跑 ActiveProtect Manager 备份 Nutanix 虚拟机,日志里蹦出「无法拍摄虚拟机的应用程序感知快照,因为虚拟机无法进入静默状态。系统此次将禁用应用程序感知服务并再次拍摄快照」——后半句常被忽略:系统会降级为崩溃一致性快照把备份跑完,任务不至于中断,但数据库类应用恢复时最值钱的「应用一致性」已经丢了。这条报错的根源几乎不在 APM 本身,而在 Nutanix 平台配置或访客操作系统没满足静默要求。
第一步:手动做一次还原点,把锅分清
排查别从备份系统开始,先登录 Nutanix Prism Central,选中目标虚拟机,手动创建一个应用一致性还原点。这一步是分水岭:手动创建成功,说明虚拟化平台侧链路是通的,回头查 APM 任务配置;手动也失败,基本坐实是访客 OS 静默处理或 Nutanix AHV 配置问题,按下面的顺序继续查。
三道前提逐项过
- 虚拟机和 Nutanix 存储容器都有足够的可用空间;
- 访客操作系统里的 Nutanix Guest Tools(NGT)已安装且处于启用状态——NGT 不可用或工作异常,访客静默必然失败,轻则备份失败、重则回退为崩溃一致性快照;
- Windows 虚拟机的 VSS 已启用,且所有 VSS writer 处于正常状态。
Windows 虚拟机:两条命令、两个脚本
以管理员身份打开命令提示符,先验 VSS:
vssadmin list providers——确认列表里列出了 Microsoft VSS provider;vssadmin list writers——所有 writer 应处于稳定且无错误的状态,发现问题按微软或应用厂商的建议修复后重试备份。
应用一致性快照还依赖访客 OS 内的两个脚本:C:\Program Files\Nutanix\scripts\pre_freeze.bat 与 post_thaw.bat,且管理员账户必须对它们有读取、写入、执行三项权限。不需要自定义应用处理时,脚本内容两行就够(@echo off 加 ver);生产环境再按应用要求在快照前后停止、刷新、恢复服务。任一脚本运行失败,应用一致性快照就会跟着失败——把脚本内容、执行结果和权限各查一遍再重试。
Linux 虚拟机:同样的脚本,换套路径
对应脚本在 /usr/local/sbin/pre_freeze 与 /usr/local/sbin/post_thaw,必须存在、归属 root:root,权限建议收紧到 700:
sudo chown root:root /usr/local/sbin/pre_freeze /usr/local/sbin/post_thaw
sudo chmod 700 /usr/local/sbin/pre_freeze /usr/local/sbin/post_thaw
不需要自定义处理时,放一个 #!/bin/bash 加 exit 0 的空脚本即可。
查到最后:两种收尾
一是磁盘与挂载方式——Nutanix 的 VSS 还原点不支持 delta 磁盘、SATA/IDE 磁盘和访客操作系统内的 iSCSI 挂载,命中任一项就别硬抠应用一致性:调整虚拟机配置、把这类工作负载排除,或接受崩溃一致性备份。二是前面全查过仍报错,在客户机里重装或修复 NGT,然后按「NGT 运行中 + VSS 正常 + 脚本就位」三项复核一遍,重试备份。
从 VMware 迁到 Nutanix AHV 的迁移路线站内此前讲过,本文解决的是迁完之后备份环节的静默排障——两件事常在同一个项目里先后遇到。
虚拟化备份排障这件事,诚鑫致达科技的做法是先花十分钟在平台侧手动做一次还原点——分清是备份系统的锅还是虚拟化环境的锅再动手,比对着日志盲扫一夜省得多。