问题描述:
现场环境为ATAE两块单板部署SUSE9SP3,下挂HPEVA4400磁阵,安装HP多路径软件后使用fdisk –l可以看到多路径已正常生效,两块单板上均只看到一块硬盘。然后安装部署VCS软件,部署完成后,双机可正常启动。但启动后发现问题。问题如下:
 

情况一:系统启动后会自动启动VCS双机软件,FS1为主机,FS2为备机,此时只会在主机FS1上看到相应的磁盘阵列。
此时状态:
主机:
HBDXFS1:~ # fdisk -l

Disk /dev/sda: 146.6 GB, 146693685248 bytes
255 heads, 63 sectors/track, 17834 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1045     8393931   82  Linux swap
/dev/sda2            1046       11488    83883397+  83  Linux
/dev/sda3           11489       17833    50966212+   5  Extended
/dev/sda5           11489       16710    41945683+  83  Linux

Disk /dev/sdb: 429.4 GB, 429496729600 bytes
255 heads, 63 sectors/track, 52216 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       52216   419424988+  83  Linux

HBDXFS1:~ # lssd
sda    0,0,2,0          LSILOGIC Logical Volume 3000
sdb    1,0,0,1          HP HSV300 0952

备机:
HBDXFS2:~ # fdisk -l
Disk /dev/sda: 146.6 GB, 146693685248 bytes
255 heads, 63 sectors/track, 17834 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1045     8393931   82  Linux swap
/dev/sda2            1046       11488    83883397+  83  Linux
/dev/sda3           11489       17833    50966212+   5  Extended
/dev/sda5           11489       16710    41945683+  83  Linux
HBDXFS2:~ # lssd
sda    0,0,2,0          LSILOGIC Logical Volume 3000
sdb                     0x1 


关闭主机FS1,此时FS2正常切换为为主机,状态为以下也为正常:
HBDXFS2:~ # fdisk -l

Disk /dev/sda: 146.6 GB, 146693685248 bytes
255 heads, 63 sectors/track, 17834 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1045     8393931   82  Linux swap
/dev/sda2            1046       11488    83883397+  83  Linux
/dev/sda3           11489       17833    50966212+   5  Extended
/dev/sda5           11489       16710    41945683+  83  Linux

Disk /dev/sdb: 429.4 GB, 429496729600 bytes
255 heads, 63 sectors/track, 52216 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       52216   419424988+  83  Linux
HBDXFS2:~ # lssd
sda    0,0,2,0          LSILOGIC Logical Volume 3000
sdb    1,0,0,1          HP HSV300 0952

FS1启动后,未启动VCS,此时为以下状态,会看到4条路径,并且硬盘资源未获取到,多路径软件未生效:
HBDXFS1:~ # lssd
sda    0,0,2,0          LSILOGIC Logical Volume 3000
sdb    1,0,0,1          HP HSV300 0952
sdc    1,0,1,1          HP HSV300 0952
sdd    2,0,0,1          HP HSV300 0952
sde    2,0,1,1          HP HSV300 0952
HBDXFS1:~ # fdisk -l

Disk /dev/sda: 146.6 GB, 146693685248 bytes
255 heads, 63 sectors/track, 17834 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

处理步骤:
1, 将VCS设置为非自启动模式,即在启动系统时不启动VCS,此时使用FDISK -L查看是正常的,双机两块单板均会只看到/dev/sdb,多路径软件正常工作。此时再用chkconfig vcs 345将VCS开启然后使用hastart 启动双机,双机又看到冗余路径。说明确实是VCS启动后导致多路径软件失效。
2, 经过诊断,  由于我们的VCS配置用到了 DiskReservation类型的资源 :
DiskReservation dNFS_Disks1 (
                                Disks = { "/dev/sdb" }
                                FailFast = 1
                                )

但是这个DiskReservation 不支持任何多路径软件,包括 赛门铁科自己生产的的DMP 多路径软件产品也不例外。
因此,HP的多路径软件肯定也和它不能一起正常工作.多路径软件的机制是调用SCSI命令去和存储通讯, 把同一个LUN的不同path绑成同一条, 但是如果另一台机器通过DiskReservation占用着这个LUN, 那么SCSI命令就不能从存储获得信息,导致多路径软件不能正常工作.


3, 修改硬盘资源方式为lvm方式,使用vg、lv、PV进行管理。此问题得解。

总结:
在VCS双机中,DiskReservation资源不能和多路径软件共存,故双机控制文件中队硬盘资源要选择lvm方式。这样就能规避该问题。
引申:今后磁盘阵列尽量不要在选择使用DiskReservation资源,全部使用lvm进行管理。