- 论坛徽章:
- 0
|
我想尝试一下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?
谢谢 |
|