Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

环境介绍

操作系统是Windows server 2019,hyper-v创建了一台虚拟机为Windows server 2016,虚拟机每隔一段时间会卡死,时间不固定。

展现为检测信号显示已中断,连接虚拟机能看到锁屏界面,但是任何操作都没有响应,远程连接连不上,检查监控发现卡死前后的CPU、内存、I/O都是正常的,并且在宿主机和虚拟机里都找不到相关的日志。

创建重启脚本

出现卡死情况之后只能硬重启之后才能解决(强行关闭然后开机)。

创建一条powershell脚本来对虚拟机状态进行检测,当检测信号值不为正常时,对虚拟机进行硬重启。中英文系统的参数不同,需要根据情况调整。

1
2
3
4
5
6
if ($VM.PrimaryStatusDescription -ne "确定")
{
write-host "VM Dead ? restarting ..."
Stop-VM test-vm -Force -TurnOff
Start-VM test-vm
}

‘test-vm’为虚拟机名,脚本检查虚拟机状态是否为‘确定’,如果不是,则执行强制关机命令,然后开机

有了脚本之后,虚拟机再卡死即可执行脚本重启,但这并不是最终目的,最终目的应该是虚拟机卡死后不需要人工干预就能重启,因此还需要创建一个任务计划来定时检查。

创建任务计划

  1. 打开任务计划程序
  1. 创建基本任务
  1. 操作选择启动程序,程序填写powershell,参数填写‘-file+文件路径’-file "C:\restart-vm.ps1"
  1. 勾选对话框,进行详细操作
  1. 编辑触发器
  1. 将重复任务间隔设置为:5分钟

至此任务计划创建完成,后续可以观察脚本是否正常运行。

评论