免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
11 [报告]
发表于 2009-01-12 20:50 |只看该作者
厉害呀!

论坛徽章:
0
12 [报告]
发表于 2009-01-13 10:56 |只看该作者
学习! 收藏一下你的联系方式!

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

回复 #6 bbjmmj 的帖子

把解决方法放出来吧,期待~~

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

回复 #10 tech坦克 的帖子

装上scsi debug驱动,在OS驱动上虚拟出了scsi 块设备。执行multipath -v2.multipath驱动为该设备生成了一个多路径设备。但是路径只有一条。说明不管scsi设备不管是不是多路径的,都可以被mutipaht管理。其实这个应该是合理的。单路径的情况是多路径的一种。在vertas vm中,本地设备也会被识别成多路径设备。
scsi debug 驱动之所以能被mapper成多路径设备。就是因为它提供了一个scsi id。用scsi id命令来查询该设备,会返回一个scsi id。

看了下multipath tool的代码。它会扫描/sys/block/下的所有设备,通过调用外部程序来获得这些设备的scsi id。 这个外部程序就是我们在multpath.conf中配置的scsi id callout程序。代码的具体实现是fork一个子进程来执行该call out程序,通过管道获得call out程序的输出。并且检查call out程序是否正常返回。而我们通常用的scsi id callout 程序一般是udev中带的scsi_id。
scsi_id程序通过sg驱动向设备发送inquery命令来获取scsi id。之前所说的scsi_id不能获得本地磁盘(vmware)的scsi id就是因为本地scsi磁盘不能正常响应该命令。看了下sense data,似乎设备确实不支持page0的inquery:
sense data: 0xf0 0x50 0x00 0x00 0x00 0x00 0x00 0x0a 0x00 0x00 0x00 0x00 0x24 0x00 0x00 0xc0 0x01 0x00
sense data 说明该inquery 是ILLEGAL REQUEST.出错的命令字节为0x01。也就是evpd。说明设备确实不支持Vital product data的查询。
因此,可以自己编写一个scsi_id程序,根据扫描的设备,向标准输出输出一个id,并返回0,就能实现多路径设备的聚合。
最近在看multipath的代码。感觉实现的比较简单。不知道用这个东东的人多不?

[ 本帖最后由 xiegang112 于 2009-1-15 21:12 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP