问题描述:因为Windows 2008 R2 Domain的兼容性需求,必须要将NetApp DataOnTap升级到7.2.7以上版本,于是趁着元旦进行一次升级。今天早上顺利将NetApp Filer升级以后。噩梦开始了。我们的Domino服务器的iSCSI LUN无法被顺利Bring Online。但是不是一直不能Bring Online,有时候当该LUN在集群当前节点的时候,重启该节点,LUN就能挂上;但是不能切换节点,一切换节点就假死,再也挂不上。

查看事件发现Snapdrive报错说无法识别DataOnTap的版本。觉得应该是SnapDrive的版本不兼容最新的DataOnTap。跟服务商的技术支持讨论后,一致觉得Snapdrive 3.2是问题症结,于是我去Now.netapp.com网站看了下,当前最新版本已经是6.2.1了。再咨询了一下,确认这个版本是成熟版本,可以兼容我们的Windows 2003 Server SP2。不过安装6.2.1以前必须先装上四个hotfix (KB 919117/931300/932755/937382),并确保安装过DOT NET Framework 3.5 sp1。

于是下载SnapDrive 6.2.1,并按照要求安装了hotfix和.NET Framework。但是安装完这些以后,问题依旧。

 

我另外有一个2节点的SQL Server Cluster,也有同样问题。当我把Snapdrive 3.2卸载掉的时候,却意外地发现2个节点上的2个SQL Instance都启动了。当然,还是不能切换节点。

再次仔细查看了事件管理器,发现每次启动都有一个iscsiport的报错。于是怀疑和Snapdrive无关,而与iSCSI initiator有关。跟工程师讨论后,他们去查了下兼容性列表,发现和7.3.4p2兼容必须至少要iSCSI Initiator 2.06以后的版本,而我们用的是2.01。

于是去微软网站下载,最新版本是2.08。(可以直接安装,无需卸载后再安装,微软的文档里面明白地写清了这个版本是用Windows Update技术升级的,所以直接升级即可,升级后所有的iSCSI配置都完整地继承了)。安装后需要重启,但是貌似问题没有解决。服务商工程师又提出说,可以安装NetApp的iSCSI Host Utility 5.3,这个工具会修改一些Windows的timeout参数,以优化iSCSI的性能。下载安装发现需要先打hotfix 945119,于是去微软网站找Hotfix。安装完Hotfix以后我没有马上安装Host Utility,而是先尝试了下挂LUN,结果却意外地发现问题已经得到了解决。

来回切换几次,都比较顺畅。

再回来解决Domino Cluster,在三个节点上都安装好iSCSI Initiator 后,切回第一个节点再重启一次,然后尝试挂LUN,也成功。虽然挂的时间比较长,但这是因为LUN有260GB大,也属于正常。这说明,没有SnapDrive,Cluster也能运行,SnapDrive的版本兼容性不是问题的Root Cause。当然,没有SnapDrive就无法进行平滑的LUN扩容。所以Snapdrive的版本问题也需要解决。

总结:升级DataOnTap之前没有想到检查兼容性列表是最大的失误所在。虽然前一次从7.1升级到7.2.6没有兼容性问题,但是不意味着这次升级也没有。好在是元旦长假,服务器可以有足够的停机时间供我们排错。

问题可能不出现在那些最明显的地方,比如这次开头发现的SnapDrive版本太低是个明显的兼容性问题,但却偏偏不是Root cause。