Chinaunix首页 | 论坛 | 博客
  • 博客访问: 511601
  • 博文数量: 80
  • 博客积分: 1475
  • 博客等级: 上尉
  • 技术积分: 1047
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-01 22:58
文章分类

全部博文(80)

文章存档

2012年(3)

2010年(77)

我的朋友

分类: 服务器与存储

2010-05-04 08:32:08

在multipath实现中,常常需要定期地、自动地检查实现的路径是否已经恢复,以便将它再纳入“多路径”之中。失效路径检查的方法有很多种,具体使用哪一种是在mulitpath的配置文件中指定的。

1. tur
tur使用一个特殊的SCSI命令(TEST UNIT READY),该命令检查logical unit是否已经准备好,常用于设备的自我侦测。如果tur命令应该返回GOOD状态,说明logical unit可以接收并处理特定的介质访问,则我们认为该路径已经恢复。

2. readsector0
readsector0会试图读取磁盘的第一个扇区,它用到SCSI的READ命令。在SCSI Block Commands规范中,定义了几种不同的READ命令:READ6(6字节的CDB,操作码为08h)、READ10(10字节的CDB,操作码为28h)等。执行ioctl前,将LOGICAL BLOCK ADDRESS设置为0,将TRANSFER LENGTH设置为1。如果成功返回,说明失效路径已经恢复。

3. INQUERY
使用INQUERY命令加上厂商特定的vital product data页面。例如emc_clariion、hp_sw等存储设备即采用这一方式。

4. directio
顾名思义,directio是只直接在设备上使用执行直接I/O访问的read方法。如果成功读取,则路径有效。

阅读(3445) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~