为什么从控制器报告的WWN和Linux系统之间有一个转变?

我正在设置大量磁盘的ZFS存储系统。 我想使用WWN号码来识别设备(别名在vdev_id.conf中),但是当试图获取WWN号码时,我注意到LSI控制器报告的WWN(LSI MegaRAID SAS 9380-8e,所有磁盘都在JBOD模式)和/ dev / disk / by-id中显示的WWN:

$ storcli64 /c0/e72/s0 show all | grep 5008472696 WWN = 5000C5008472696C 0 Active 6.0Gb/s 0x5000c5008472696d 1 Active 6.0Gb/s 0x5000c5008472696e $ ll /dev/disk/by-id/wwn-0x* | grep 5008472696 /dev/disk/by-id/wwn-0x5000c5008472696f -> ../../sdn 

在这组硬件(磁盘,JBOD,控制器)上,模式似乎是一致的(移位3)。

我有一个'感觉',这是由双重链接造成的,但我无法find一个合适的解释这种行为。 任何build议将不胜感激。

编辑:

另一个样本是

 WWN = 5000C50084726B78 0 Active 6.0Gb/s 0x5000c50084726b79 1 Active 6.0Gb/s 0x5000c50084726b7a 

控制器报告0x5000c50084726b7b ,这与Matthew给出的build议解释是一致的。

您使用的是双端口SAS驱动器的传输地址和单个端口标识符(多path)。 一个WWN,多个端口标识符。

更好的例子是检查以下输出:

multipath -llsscsi --wwnlsscsi --transport

喜欢:

 # lsscsi --transport [0:0:0:0] disk sas:0x5000c50023601236 /dev/sdb [0:0:1:0] disk sas:0x5000c50023614aee /dev/sdc [0:0:2:0] disk sas:0x5000c5007772e5fe /dev/sdd [0:0:4:0] disk sas:0x5000c5002362f346 /dev/sdf # lsscsi --wwn [0:0:0:0] disk /dev/sdb [0:0:1:0] disk 0x5000c50023614aef /dev/sdc [0:0:2:0] disk /dev/sdd [0:0:4:0] disk 0x5000c5002362f347 /dev/sdf # multipath -ll | grep 3500 35000c50023614aef dm-6 HP ,EF0450FARMV 35000c5002362f347 dm-3 HP ,EF0450FARMV 

为了您的目的,请去WWN。 如果这是ZFS,请详细说明您的控制器和JBOD解决scheme。 如果是Linux,则应该使用DM多path并使用DM设备构build池。 另见: https : //github.com/ewwhite/zfs-ha/wiki

这纯粹只是你的一个参赛作品的观察,但是

 0x5000c5008472696d & 0x5000c5008472696e = 0x5000c5008472696c 0x5000c5008472696d | 0x5000c5008472696e = 0x5000c5008472696f 

对于每个系统如何计算WWN,按位运算可能是不同的。

你还有其他的例子吗?

如果这是正确的(我只是猜测)我只能假设没有标准的方式存在,并且RAID控制器和内核实现都select不同的方法。