免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5453 | 回复: 13
打印 上一主题 下一主题

linux device mapper的multipath驱动不支持本地scsi磁盘吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-04 16:18 |只看该作者 |倒序浏览
我想尝试一下device mapper的 multipath驱动 ,于是在vmware中添加了两块scsi硬盘。想通过device mapper的multipath driver来管理这两块磁盘(当然,每个设备只有一个path)。但是在配置好multipath以后, 运行multipath  –v2,输出:
Error calling out /sbin/scsi_id  -g –u –s  /dev/sda
查了一下,发现是scsi_id的问题。他没有返回scsi device的标识。于是跟踪scsi_id代码,发现他通过sg发送一个standard inquery,获得verndor id等。然后发送一个Supported vital product data pages(page code 0x00)inquery,以获得支持的page。该page在规范中指定是必须实现的。但是这个时候返回的数据并不是0x00 page。所以进入下面代码:
/*
         * Following check is based on code once included in the 2.5.x
         * kernel.
         *
         * Some ill behaved devices return the standard inquiry here
         * rather than the evpd data, snoop the data to verify.
         */
        if (buffer[3] > MODEL_LENGTH) {
                /*
                 * If the vendor id appears in the page assume the page is
                 * invalid.
                 */
                if (!strncmp((char *)&buffer[VENDOR_LENGTH], dev_scsi->vendor, VENDOR_LENGTH)) {
                        info(udev, "%s: invalid page0 data\n", dev_scsi->kernel);
                        return 1;
                }
也就是说该scsi设备仍然发送的是standard inquery命令的返回结果。因此scsi_id无法获得scsi device的标识。
所以,有以下问题:
1.        是不是device mapper的multipath 驱动不能管理本地scsi 设备?
2.        Scsi_id无法获取标识是因为vmware的对scsi device模拟未能实现的关系吗?但是我在本地的scsi硬盘上也是同样的错误。难道他们都没有实现inquery的page 0x00?

谢谢

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
2 [报告]
发表于 2009-01-04 17:13 |只看该作者
不支持本地盘

论坛徽章:
0
3 [报告]
发表于 2009-01-04 18:25 |只看该作者

回复 #2 无牙 的帖子

是因为本地scsi磁盘都没有实现inquery的page 0x00, 0x80或者0x83吗?也就是因为本地磁盘不能获得scsi id吗?
谢谢

论坛徽章:
9
技术图书徽章
日期:2014-10-14 15:48:13数据库技术版块每日发帖之星
日期:2015-06-04 22:20:00数据库技术版块每日发帖之星
日期:2015-06-10 22:20:00数据库技术版块每日发帖之星
日期:2015-06-11 22:20:00数据库技术版块每日发帖之星
日期:2015-06-13 22:20:00IT运维版块每日发帖之星
日期:2015-09-22 06:20:00IT运维版块每日发帖之星
日期:2015-12-08 06:20:00综合交流区版块每日发帖之星
日期:2016-02-02 06:20:00IT运维版块每日发帖之星
日期:2016-07-25 06:20:00
4 [报告]
发表于 2009-01-04 20:17 |只看该作者
你的SCSI设备得支持MULTIPATH才行。

论坛徽章:
0
5 [报告]
发表于 2009-01-04 21:22 |只看该作者

回复 #4 bbjmmj 的帖子

你说的scsi设备要支持multipath是只指的scsi规范中关于multipath的支持马?sam和scsi spec3好像没有具体提到呀。不知道您提到的multipath支持,具体是指设备要实现什么条件呢?
个人觉得multipath的支持主要看该设备是否实现了scsi相关的命令。其中最重要一点就是获取scsi id的命令。有了这个唯一标识,就应该能实现多路径。比如一个虚拟scsi host的驱动,它会初始化多个虚拟scsi host,当它接收cmd时,会把cmd挂到真实scsi设备。虚拟出来的这几个scsi设备应该就算真实设备的多条路径吧?只不过这些路径的物理链路是内存罢了。如果真实的scsi驱动能提供scsi id,那么这些虚拟的设备就应该能被识别成真实设备的多路径吧?
谢谢

论坛徽章:
9
技术图书徽章
日期:2014-10-14 15:48:13数据库技术版块每日发帖之星
日期:2015-06-04 22:20:00数据库技术版块每日发帖之星
日期:2015-06-10 22:20:00数据库技术版块每日发帖之星
日期:2015-06-11 22:20:00数据库技术版块每日发帖之星
日期:2015-06-13 22:20:00IT运维版块每日发帖之星
日期:2015-09-22 06:20:00IT运维版块每日发帖之星
日期:2015-12-08 06:20:00综合交流区版块每日发帖之星
日期:2016-02-02 06:20:00IT运维版块每日发帖之星
日期:2016-07-25 06:20:00
6 [报告]
发表于 2009-01-04 22:27 |只看该作者
原帖由 xiegang112 于 2009-1-4 21:22 发表
你说的scsi设备要支持multipath是只指的scsi规范中关于multipath的支持马?sam和scsi spec3好像没有具体提到呀。不知道您提到的multipath支持,具体是指设备要实现什么条件呢?
个人觉得multipath的支持主要看 ...


哥们我很佩服你的钻劲儿,看源码,小心脖子疼~~~
你仔细想想,你本地的SCSI硬盘是通过什么连接到电脑上的呢?通过接口,对吧?你想要你本地SCSI硬盘支持MULTIPATH,必须还要有相应的接口的支持,对吧?所以你要找驱动源码,应该找接口那部分源码而不是SCSI硬盘这部分源码,你找错了源码,所以才会一无所获。
不好意思要睡觉了,明天上午短信给你详细的解决方法,你能看懂源码,搞明白这些操作应该是很容易的事。

论坛徽章:
0
7 [报告]
发表于 2009-01-04 23:54 |只看该作者

回复 #6 bbjmmj 的帖子

对硬件不是很了解。您所说的接口部分源代码是指的硬盘接口控制器的firmware吗?那么怎样的接口才支持多路径呢?
我这儿说的多路径,并不是实际上的多路径。我的意思是只要linux 的multiupath驱动认为是多路径就好。而且我有点不明白的是,一条路径也是多路径的一种吧?我把磁盘连到本地scsi总线上和把lun通过一条路径连接到主机hba上有什么区别?我想主要有两点:1 传输介质和协议不同,前者通过scsi总线传输,属于直连的设备,所以没有具体的传输协议,只是有具体的scsi控制器来控制scsi总线上的信号,实现选择,总裁,消息和命令的传输。后者可能通过光纤或者以太网,使用fc或者tcp来进行传输。但二者所传输的数据都是相同的,就是scsi数据。2.二者支持的scsi命令集不同。因为二者毕竟不属于同一种设备类型。不知道我理解是否正确?

这儿可能有点误会。我这儿说的multipath驱动不支持本地scsi设备是指该驱动是否能管理本地scsi磁盘。因为觉得一条路径也是多路径的一种。而且在vertas vxvm里面,本地磁盘也是作为多路径设备被管理的,只不过它的路径只有一条而已。至于本地scsi磁盘是直接连scsi host上的,只有一个initator-target-lun元组,他肯定是不支持多路径发的。
谢谢

论坛徽章:
9
技术图书徽章
日期:2014-10-14 15:48:13数据库技术版块每日发帖之星
日期:2015-06-04 22:20:00数据库技术版块每日发帖之星
日期:2015-06-10 22:20:00数据库技术版块每日发帖之星
日期:2015-06-11 22:20:00数据库技术版块每日发帖之星
日期:2015-06-13 22:20:00IT运维版块每日发帖之星
日期:2015-09-22 06:20:00IT运维版块每日发帖之星
日期:2015-12-08 06:20:00综合交流区版块每日发帖之星
日期:2016-02-02 06:20:00IT运维版块每日发帖之星
日期:2016-07-25 06:20:00
8 [报告]
发表于 2009-01-05 11:21 |只看该作者
原帖由 xiegang112 于 2009-1-4 23:54 发表
对硬件不是很了解。您所说的接口部分源代码是指的硬盘接口控制器的firmware吗?那么怎样的接口才支持多路径呢?
我这儿说的多路径,并不是实际上的多路径。我的意思是只要linux 的multiupath驱动认为是多路径就 ...


短消息给你了。

论坛徽章:
0
9 [报告]
发表于 2009-01-06 16:22 |只看该作者
感谢bbjmmj的指点。自己写了个scsi_id,伪造了一个scsi id给本地磁盘。现在本地磁盘能加入multipath设备了。

论坛徽章:
0
10 [报告]
发表于 2009-01-12 17:51 |只看该作者
传说中的bbjmmj。。。
可否分享下细节啊。不能老是发头重脚轻的帖子啊。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP