新加坡狮城论坛

返回列表 发帖 付费广告
查看: 1312|回复: 3

ESX的NFS存储Failover机制Q&A

[复制链接]
发表于 半年前|来自:辽宁 | 显示全部楼层 |阅读模式
ESX的NFS存储通常都会配置备份链路。当主链路出现故障时自动切换到备份链路上,这叫做Failover。

问:什么时候发起failover?答:当发现存储链路失败时。

问:如何判断一条存储链路中断了?答:找不到心跳了呗。

问:心跳是怎么回事?怎样才算找不到心跳?
答:通常ESX Host会每隔一定的间隔(HeartbeatFrequency)发起一次到存储的心跳检测,每次心跳检测必须在一定的时间内(HeartbeatTimeout)收到回复,否则就算是一次心跳检测失败(HeartbeatFailure),连续失败到一定的次数(HeartbeatMaxFailure)就算链路失败。

这些参数应该修改为以下推荐的值 (无论是NetApp还是EMC的NAS设备)
NFS.HeartbeatDelta (NFS.HeartbeatFrequency in ESX 3.x)   12
NFS.HeartbeatTimeout         5
NFS.HeartbeatMaxFailures   10
上面这些推荐参数值的含义是:NFS.HeartbeatFrequency=12说明每12秒会发起一次心跳检测。5秒没有响应就算Timeout,一直累计到10次没有响应才算NFS存储丢失,才发起failover的动作。这中间其实经过了12s*10+5s=125秒时间。也就是说,真正要发起一次failover事件,ESX Host要等上125秒。

问:那么,在这125秒内,从VM的角度看,发生了什么状况呢?
答:VM会发现其vSCSI控制器上连接的磁盘停止响应,这取决于Guest OS会忍受多长时间的磁盘不响应才认为是一个error (delayed write error),当这个IO error发生在Guest OS的系统盘时,就会导致OS崩溃。Windows操作系统默认的disk Timeout是60秒。也就是说,当ESX Host还在125秒的等待时间内而不去执行Failover动作时,Guest OS就已经崩溃了。在Guest级别HA启用的情况下,Guest OS会在NFS Storage恢复的时候重启。但是重新配置Guest OS的参数以使其也能够等待125秒不是更好吗?如何做到?用Regedit,修改HKLM\System\CurrentControlSet\Services\Disk下的TimeOutValue值为125即可。(修改注册表有风险,请一定先备份后修改)
发表于 半年前|来自:辽宁 | 显示全部楼层
小狮租房
诅咒看帖子不回的人。。。打酱油地。。。
回复 支持 反对

使用道具 举报

发表于 半年前|来自:辽宁 | 显示全部楼层
信网络,得永生!              
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册会员 新浪微博登陆

本版积分规则

联系客服 关注微信 下载APP 小程序 返回顶部 返回列表