Highlighted
Roger_Wu
4 Ruthenium

【分享】iSCSI存储意外宕机时ESXi和Hyper-V上虚拟机状态测试

原文出处:Hyper-V 相關除錯Q&A - Curah!

系统版本: 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的状态一直停在"正在执行-严重",工作状态会变成"停止连线到虚拟机器设定存放装置",再来变成"关闭-严重",画面出现蓝底白字后关机

hv1.jpg

hv2.jpg

实验结果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"

}

}

标签 (3)
标记 (4)
0 项奖励