0
点赞
收藏
分享

微信扫一扫

Azure云上虚拟机故障修复

一.背景:

Azure云上由于虚拟机故障导致无法启动,需要进行恢复

二.思路:

1.创建故障虚拟机的磁盘快照(这是出于安全考虑,备份数据);

2.使用故障虚拟机的磁盘快照创建新的虚拟机,称为修复虚拟机;

3.打开cloud shell,安装vm-repair插件;

4.根据修复虚拟机的操作系统,根据故障诊断,选择执行对应的repair脚本,脚本位置:https://github.com/Azure/repair-script-library;

5.卸载原先故障的虚拟机磁盘,将修复好的磁盘调换到故障虚拟机上,修复完成。

简洁办法:

(尝试,一般要根据诊断日志来)数据不太重要,就不做快照了,也不使用救援虚拟机,直接使用脚本进行修复

az vm repair run -g 所属故障虚拟机的资源组名 –n 故障虚拟机的名称 –run-on-repair –run-id win-sfc-sf-corruption –verbose


为什么要创建修复虚拟机?

因为怕数据丢失,在修复虚拟机上修复,不影响故障虚拟机的数据


三.详细步骤:

打开cloud shell命令行窗口

1.安装repair扩展

az extension add -n vm-repair;

2.有两种创建修复虚拟机的方式,一个是在当前云环境中创建,一个是使用云环境中虚拟机中的Hyper-V作为修复虚拟机环境;

以下命令是对故障虚拟机的磁盘进行快照,并创建虚拟机,将快照作为修复虚拟机的数据盘

使用云环境下创建修复虚拟机:az vm repair create -g 故障虚拟机所属资源组名 -n 故障虚拟机名 --repair-username username --repair-password 'password!234' --verbose;

使用云环境下嵌套hyper-v创建修复虚拟机:az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password 'password!234' --enable-nested --verbose

3.开启故障诊断:

常见错误解决方案:https://learn.microsoft.com/zh-cn/troubleshoot/azure/virtual-machines/boot-diagnostics

开启诊断:az vm boot-diagnostics enable --name 故障虚拟机的名字 --resource-group 故障虚拟机的资源组

获取诊断日志:az vm boot-diagnostics get-boot-log --name 故障虚拟机的名字 --resource-group 故障虚拟机的资源组

也可以从portal门户查看对应故障虚拟机日志

4.执行修复步骤:

区分Linux和Windows

列出对应脚本ID,az vm repair list-scripts

Azure云上虚拟机故障修复_故障诊断

5.根据诊断日志,执行对应脚本修复:

az vm repair run -g 修复虚拟机的资源组名 –n 修复虚拟机名称 –run-on-repair –run-id win-sfc-sf-corruption –verbose

6.卸载修复虚拟机的磁盘,给故障虚拟机做交换磁盘,重启故障虚拟机

举报

相关推荐

0 条评论