今天聊一个比较典型的场景:在Solaris 10下配置存储多路径冗余,硬件环境是SUN V245,搭配LSI 3994阵列卡,HBA用的是Emulex LPE11002双端口卡。本来想测试一下LSI存储在Solaris下的路径冗余,结果LSI自带的RDAC驱动装完系统就直接Hang住了……这事儿说起来挺折腾的,不过最后折腾出了一套可行的方案。
环境与背景
先交代一下具体配置:SUN V245,操作系统是Solaris 10 U5,HBA卡为Emulex LPE11002双端口。存储方面,先用LSI的Santricity做了一个Raid,然后在Solaris下用format能看到两个盘。这是最基础的阶段——能看到盘,但冗余还没配置上。
问题的核心在于:如何让操作系统正确识别存储设备的Vendor ID和Product ID,进而启用原生的多路径(MPxIO)支持。
针对第三方存储的配置步骤
首先需要了解scsi_vhci.conf这个关键文件。默认的配置里有一段注释说明如何为第三方对称设备启用MPxIO支持:只需要在文件中添加Vendor ID/Product ID的对应关系即可。
那么,怎么获取Vendor ID和Product ID?最简单的方法就是用format命令。
执行format,然后选择映射过来的磁盘,输入inquiry就可以看到完整信息。比如在实际操作中会看到类似这样的输出:
Vendor: ENGENIO Product: INF-01-00 Revision: 0619
拿到这些信息后,在/kernel/drv/scsi_vhci.conf中添加对应的配置项:
device-type-scsi-options-list = "DGC RAID", "symmetric-option"; symmetric-option = 0x1000000;
然后运行stmsboot -e这个命令:
bash-3.00# stmsboot -e WARNING: This operation will require a reboot. Do you want to continue ? [y/n] (default: y) y
系统会提示需要重启,确认后会生效。重启后再用format查看,应该就只能看到一个盘了——这正是多路径正常工作的标志。
普安光纤存储的特别处理
如果用的是普安的光纤存储,或者其他品牌的光纤阵列,情况略有不同,需要额外修改几个文件。
同样先用format看到两个盘,选择其中一个执行inquiry获取Vendor和Product信息。假设输出如下:
Vendor: inspur Product: AS800 Revision: 361G
然后修改/kernel/drv/scsi_vhci.conf,添加对应的配置:
device-type-scsi-options-list = "inspur AS800", "symmetric-option"; symmetric-option = 0x1000000;
接下来,需要查看机器上的光纤设备挂载情况。用ls -l /dev/fc可以列出所有光纤通道设备。确定需要启用多路径的HBA端口后,编辑/kernel/drv/fcp.conf,添加对应的配置项:
name="fcp" parent="pci@1e,600000/pci@0/pci@2/lpfc@0" instance=0 port=0 mpxio-disable="no"; name="fcp" parent="pci@1e,600000/pci@0/pci@2/lpfc@0,1" instance=0 port=0 mpxio-disable="no";
保存后执行stmsboot -e,重启系统。重启后用luxadm probe验证,应该能看到类似这样的输出:
Node WWN:200000d0230014de Device Type:Disk device Logical Path:/dev/rdsk/c3t600D0230FFFFFFFF0014DE422CA20201d0s2
再用format查看,此时应该只显示一个盘,路径指向/scsi_vhci/ssd@...,说明多路径已经正确生效。
整个过程的关键点在于:准确获取设备的Vendor/Product ID,正确配置scsi_vhci.conf和fcp.conf(如果需要的话),然后通过stmsboot启用。如果实际操作中有什么需要修正的地方,欢迎指正。
