device mapper的multipath 驱动不能管理本地scsi磁盘吗?
我想尝试一下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),已获得支持的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?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我不太懂你这个,等待达人解答
帮顶,问得有点偏,估计很少有人会,呵呵
主要是最近在看这个。我也发现关于存储和scsi等相关开发讨论的地方比较少。cu上有个存储论坛,不过好像都是讨论怎么使用的。订阅了linux-scsi。但上面都是那些牛人在发patch,不敢打扰。实在找不到地方,所以才贴在这里。
看了下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的查询。不知道是不是direct access的设备都不支持。因为我本地scsi硬盘也不支持。
自己写了个scsi_id程序,虚拟了一个scsi id给本地磁盘。现在本地磁盘能加入multipath 设备了。