在RHEL6计算机上,我需要定期检查所有至少具有两个不同HBA端口的功能路径的SAN LUN。我想要一个简单的解析器脚本,告诉我哪些LUN不符合这些标准。
标识'假设你们中的一些人经历过同样的事情并且可能已经创建了一个简单的解析器,这可能会节省我一点时间......理想情况下使用标准Linux工具,所以bash / cat / grep / awk / sed,而不是perl / ruby / java / erlang ...(虽然perl确实可以接受)。
每个设备的输出可以看下面的"关键字"对于LUN是" dm - [[:digit:]]",那么可能有一个或多个HBA端口,每个端口在各种条件下都有无或更多可见路径,这里有几个例子:
1)没有别名的设备,两个HBA端口,每个端口有两条路径,一切运行良好
36005076802810c208000000000000014 dm-53 IBM,2145
size=10T features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 4:0:1:20 sded 128:80 active ready running
| `- 4:0:2:20 sdez 129:176 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
|- 3:0:1:20 sdcf 69:48 active ready running
`- 3:0:2:20 sddb 70:144 active ready running
2)此设备有一个别名,每个端口只有一个路径:
otsdcpp01_lun49 (360001ff0118e74c831000100000e8ded) dm-52 IBM,DCS9900
size=7.3T features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 2:0:0:33 sdd 8:48 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 1:0:6:33 sdgl 132:16 active ready running
3)这个有4条路径,只有一条HBA - 应该报告:
360000970000296800131533030303638 dm-1 EMC,SYMMETRIX
size=600G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 2:0:1:1 sdh 8:112 active ready running
|- 1:0:0:1 sdw 65:96 active ready running
|- 2:0:2:1 sdy 65:128 active ready running
`- 1:0:1:1 sdcr 69:240 active ready running
4)单路径设备(这里是本地SCSI磁盘,但更好地报告):
3600508b1001030384639323138300600 dm-53 HP,LOGICAL VOLUME
size=137G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
`- 0:0:0:0 sda 8:0 active ready running
multipath命令输出没有任何间隙的设备,空行等。
命令的输出不一定非常漂亮,即转储该设备的整个块,设备将被触发为"不足以简化路由",所以这个解析器将是像"多行块grep"过滤"多路径多HBA"案件并留下可能需要注意的案件。
TIA!
CEPAL
P.S。:如果有足够声誉的人可以添加" multipath"对于标签,请冷静..