在RHEL 6机器上,我需要定期检查所有SAN LUN是否在至少两个不同的HBA端口上具有至少一个功能路径。我想要一个简单的解析器脚本,它会告诉我哪些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!TIA!
CEPAL
P.S.:如果有足够高的声誉的人可以添加“多路径”的标签请,会很酷..
1条答案
按热度按时间ffscu2ro1#
把这个贴在这里是因为我真的不知道它的存在,直到现在,希望它能拯救别人:**multipathd有一个json输出命令!**您可以运行
multipathd show multipath <path> json
,这将给予multipath -ll
的所有信息。不幸的是,您一次只能对一个设备执行此操作,因此您需要首先通过/dev/dm-*
或/dev/mapper
(或其他方式)获得设备列表,但解析信息的困难部分已经解决!示例架构: