彭泽热线

 找回密码
 注册
查看: 4323|回复: 0

ESX的NFS存储Failover机制Q&A

[复制链接]
发表于 2014-8-9 04:06 | 显示全部楼层 |阅读模式 来自 中国湖南郴州

esx的nfs存储通常都会配置备份链路。当主链路出现故障时自动切换到备份链路上,这叫做failover。

  问:什么时候发起failover?答:当发现存储链路失败时计算机基础知识。

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

  问:心跳是怎么回事?怎样才算找不到心跳?

  答:通常esx host会每隔一定的间隔(heartbeatfrequency)发起一次到存储的心跳检测,每次心跳检测必须在一定的时间内(heartbeattimeout)收到回复,否则就算是一次心跳检测失败(heartbeatfailure),连续失败到一定的次数(heartbeatmaxfailure)就算链路失败。

  这些参数应该修改为以下推荐的值 (无论是netapp还是emc的nas设备)

  nfs.heartbeatdelta (nfs.heartbeatfrequency in esx 3.x)12

  nfs.heartbeattimeout5

  nfs.heartbeatmaxfailures10

  上面这些推荐参数值的含义是: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,修改hklmsystemcurrentcontrolsetservicesdisk下的timeoutvalue值为125即可。(修改注册表有风险,请一定先备份后修改)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

彭泽热线 免责声明 本站内容来源于互联网及个人 不代表本站观点及立场.
本站不对网友所发言论的真实性做出评价,也无权删除(反动、色情、政治、垃圾广告帖等除外)
假若內容有涉及侵权,请立即联络我们。我们将立刻从网站上刪除,并向所有持版权者致最深的歉意。
本站法律顾问: 陈银山
快速回复 返回顶部 返回列表