免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: xiegang112
打印 上一主题 下一主题

[BE/BESR] Lun id, scsi id, device id, unit serial number之间的关系 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-01-20 15:56 |只看该作者

回复 #8 deadwind 的帖子

感觉上有点类似ip与mac的关系,但是不太确定。因为在iscsitarget程序中,scsi id和scsi serial number是可以自己指定的。现在还不明白它们之间的关系。这儿是否存在一种寻址关系还不确定。iscsitarget配置文件中配置的scsi id,实际上就是scsi inquery命令中的device identifier。不知道它和我们通常所说的,用于scsi 寻址的scsi id有什么联系。因为在直连的scsi 总线设备中,scsi id由连接顺序确定,它决定了选择阶段哪个设备被选择,感觉上有个寻址的作用。但device identifier视乎没有这个作用,这个已经是scsi 命令阶段的内容了。但是很多文档,把device idenfier叫做scsi id。比如在一篇scsi overview的文档上就是这样定义scsi identifier的:
SCSI Identifier represents either an initiator port or a target port identifier. Also
called device identifier and port identifier. Note that other standards define the value
of SCSI identifiers. For example, SPI-2 defines target identifiers to be in the range
0-7, 0-15, and 0-31.
这个定义明显和sam-3的中的device identifier的定义不符。所以现在很困惑,希望兄弟们指点一下。
谢谢

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
12 [报告]
发表于 2009-01-21 11:28 |只看该作者
那位大侠给的回复如下:


1.        多路径软件必须通过lun的唯一标示来确定某一个lun。但我们阵列上的lun,其实都是经过某种程度的虚拟化后,再暴露给用户的( lun mapping)。这就会造成,整列控制器在响应scsi inquery命令的时候是如何处理这个标识符的?因为就像上面的例子,我可以把不同的lun map到同一个lun id。

回答: raid 这一端如何实现lun mapping, host才不会管,对host来说一个lun 就是一个disk device. 这个lun 他有一个serial number, 而且是world wide unique的。这就是标示。但是由于lun serial number是在vpd page 80h获取的,而且根据scsi标准,vpd page 80h是optional的,不一定会有。所以一般是找device id的信息,因为device id是在vpd page 83h里的,而且是mandatory的。在实际上,vpd page 80h的实现已经成为事实上的业界比标准。所以device id + serial number成为一个混合标示。

另外,vpd page 80h里的logical Unit serial number 指的就是lun 的serial number, 不是enclosure的serial number. Logical unit 才是 真正对的叫法,但是被无数人误叫成LUN. LUN是LU’s number.



2.针对上面的例子,我所提到那些概念,比如device identifier,unit serial numbers是什么时候产生的?各自所属的对象是什么。


回答: LU serial number 是在lun 在raid里被生成的时候创建的,不管有没有被map。 就算是没有map,这个lun 也有serial number.
Device id 的话,有点复杂。虽然说vpd page 83h是强制的,但是里面有许多designator是可以有vendor 决定是否实现的,而且每个designator的内容和赋值没有硬性规定,比如designator logical unit names, 你也可以把serial number的值赋给logical unit name,也可以另外再搞一个。另外还有别的信息如relative port, port group等等, raid 可以通过这个报告这个lun是通过那个raid上的host port map到server 端的。这些东西是否实现和如何实现(和硬件有关),要有原厂的scsi external spec, 否则你无法知道他的数据的意思。更何况vpd page 83h里还有vendor自己可以定义的designator.

Device id应该是在lun 被map到host port的时候生成的。如果raid 在vpd 83h里支持port information的话,那么每次mapping改动时应该device id也会跟着变(如果mapping 的raid host port也变的话)。

引申一下,在iSCSI中,不同的host port会有不同的IP, 这时候,raid也可以选择在device id中报告网段,mask等等其他和网络有关的信息。(至于是不是这么做看厂家了)。




其他

建议搞到厂家的SPEC, 然后使用sg3_util, 看看原始设备(sg device), 使用sg_inq命令拿vpd pages, 对照scsi 协议和厂家的spec
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP