在搭建windows server 2012+sql 2012数据库群集时遇到一个比较纠结的问题,经过几翻纠结后终于把问题解决了,把这经验分享给大家。

使用 IBM DS4000作为共享存储,映射LUN后发现其中一个lun无法联机,提示“无法使磁盘联机-Unspecified Error extended information:函数不正确”,初始化也同样出现错误“无法初始化磁盘-Unspecified Error extended information:函数不正确”。

 

在做数据库群集之前,磁盘列阵已做了RAID 1和RAID2两个RAID ,并划分LUN1=1TB和LUN2=3TB,(注:lun1在raid1上,lun2在raid2上)连接到服务器A 正常使用。结构如下图:

wKioL1NbUn6gXyxiAAC52Zwu8rc039.jpg

 

为了实现数据库故障转移群集功能,将磁盘阵列做成共享存储,lun分区重新映射到数据库服务器组(A和B),由于缺少光纤模块因此每台服务器只能连接一个光纤线,重新调整连接后,结构图:

wKiom1NbUsahkJ2BAAD4vEbs1dE973.jpg

  

映射完LUN后,登录服务器A发现LUN1正常使用。但LUN2无法联机及初始化,刚才开始以为被B服务器占用的原因,登录服务器A发现出现同样的问题,提示错误如下图:

wKiom1NbVXHCBhxKAAG3wh8Y_JM745.jpg

wKioL1NbVU2g8jPRAAXzFBwQsQU349.jpg

 

起初以为磁盘阵列配置问题导致,检查存储配置均未发现错误,重启服务器及存储后问题依然存在。

 

还记得前面说过,在做群集之前的存储连接结构,磁盘阵列做了两个RAID并划分了lun1和lun2。根据这个线索检查发现,当时LUN1由A控管理,LUN2由B控进行管理,当重新连接存储结构后,两台服务器均连接到A控制器,但LUN2依然由B控进行管理,导到无法联机的问题。

 

解决办法:

将RAID 2 切换到A控制器进行管理,即可。操作方法选中 raid2,然后选择A控制器,选择OK:

wKioL1NbYavikuehAALpPP5KziE000.jpg