未解决
此帖子已超过 5 年
4K 消息
0
1190
【分享】iSCSI存储意外宕机时ESXi和Hyper-V上虚拟机状态测试
系统版本: VMware ESXi 5.1 , Hyper-V (Windows 2012), iSCSI Target (Windows 2008 R2)
环境: ESXi上创建VM1, Hyper-V上创建VM2, Storage都在Windows iSCSI Target上
本实验测试ESXi和Hyper-V上的VM遇到iSCSI Server突然宕机时的情况。
实验项目:
1.当iSCSI存储无预警宕机时,VMware ESXi及Hyper-V (Windows 2012)分别会有什么样的情况?
2.当存储回复正常时,两者分别会有什么样的情况?
3.若存储回复正常,VM却没有回复正常,该如何处理?
实验结果1
当iSCSI存储无预警宕机时,VMware ESXi及Hyper-V (Windows 2012)分别会有什么样的情况?
ESXi :
Ping VM1 3小时都没有掉包。
画面仍看的到,但无法操作。
Hyper-V :
Ping两分钟后即断线。
VM2的状态一直停在"正在执行-严重",工作状态会变成"停止连线到虚拟机器设定存放装置",再来变成"关闭-严重",画面出现蓝底白字后关机
实验结果2
当存储回复正常时,两者分别会有什么样的情况?
ESXi :
存储起来后,VM1马上可以正常使用。
最久曾断线3小时,但存储开起来后马上可以正常使用。
Hyper-V :
VM2需要手动开机,不过手动开启后即正常。
实验结果3
若存储回复正常,VM却没有回复正常,该如何处理?
ESXi :
因为存储正常后,VM随即正常,故不须特别处理。
Hyper-V:
考虑写一段脚本,让计划任务每10分钟自动执行,当发现存储正常但VM2不正常时,随即启动VM2。
实验结论
VMWare ESXi的系统不需特别处理,因为存储回复正常时,VM1即可马上恢复正常。
Windows Hyper-V的系统可以定时执行脚本,以检查状况并启动VM2。
在Windows 2012中,以上操作的日志都可以在主机上的Event Viewer及Hyper-V的VMMS中查询。但是需要注意是VMware ESXi主机内的VM,因为倘若用Ping的方式无法查出VM是否真的正常时,应该检查其所提供的服务和端口是否正常工作,例如用WhatsUp之类的工具检查该VM的HTTP 80端口是否正常等。
脚本示例:
vm.txt中保存需要检查的vm
192.168.20.3是iSCSI Server的IP地址
HVM-t1的IP是192.168.20.108
———— ————————————————————————–
$names = Get-Content “C:\vm.txt"
foreach ($name in $names) {
$result = Test-Connection 192.168.20.3 -Count 1 -ErrorAction SilentlyContinue
if ( $result ) {
$result2 = Test-Connection $name -Count 1 -ErrorAction SilentlyContinue
if (!$result2) {
Write-Host “Storage is up, but vm is down" -ForegroundColor Magenta
switch ($name)
{
192.168.20.108{$VM="HVM-t1″}
}
start-vm $VM
Write-Host “$VM is starting…" -ForegroundColor Red
}
else {
Write-Host “both storage and vm are up "
}
}
else {
Write-Host “stroage is down"
}
}