Chinaunix首页 | 论坛 | 博客
  • 博客访问: 717606
  • 博文数量: 107
  • 博客积分: 5079
  • 博客等级: 大校
  • 技术积分: 1330
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-10 10:58
文章分类

全部博文(107)

文章存档

2017年(1)

2015年(8)

2014年(8)

2012年(2)

2011年(7)

2010年(8)

2009年(20)

2008年(53)

分类: LINUX

2008-06-02 17:57:30

实现multipath最基本的一点是要确定:哪一个“/dev”项对应哪一个设备。这个问题和Linux Persistent Device Name要解决的下面两个问题如出一辙:

  1. 当内核程序查找到一个硬件设备时,它通常将这种硬件类型的下一个主设备号/从设备号对分配给这个设备。因此,在启动时,找到的 第一个SCSI设备将被分配 主设备号8,从设备号0,在/dev中的引用是/dev/sda;而第二个SCSI设备分配的主设备号是8,从设备号是1,被引用做/dev/sdb。如 果用户重新布置了SCSI拓扑结构,例如在系统中添加了一台SCSI设备,则下次及其重启时探测SCSI设备的顺序可能会发生改变,从而导致前面两个设备 分配到的次设备号和设备名也发生变化。
  2. 同样的情况会发生在支持设备热插拔的系统中,即在计算机不断电的情况下移除再添加设 备。假设系统有3个SCSI设备,sda、sdb和sdc。当热移除 sdb后,系统只剩下sda和sdc,然后在系统中热插入这个SCSI设备的时候,设备名就变成了sdd。但是在某些情况下,需要保证重新加入这个设备 后,设备名保持为sdb。

所有这些问题的本质在于,如何获得设备对应的唯一ID。同udev一样,multipath实现也使用scsi_id实用程序来确定唯一的设备ID。scsi_id通过SCSI INQUIRY vital product data(VPD)页面0x80或0x83(通过SG_IO ioctl接口直接被发送到设备的SCSI命令)查询SCSI设备,并利用返回的数据生成相对于其它支持页面0x80或0x83唯一的值。要支持scsi_id查询,存储设备必须实现这一命令。

/sbin/scsi_id -g -s /sys/block/sda

udevtest /sys/block/sda  

udevinfo -a -p /sys/class/net/eth0

类似AIX上的

lsdev
lsattr  -El L2cache0
prtconf


阅读(5593) | 评论(1) | 转发(0) |
0

上一篇:怎样应用软件Calibre

下一篇:mysql权限开放

给主人留下些什么吧!~~

chinaunix网友2008-06-02 18:13:59

创建文件/etc/udev/rules.d/10-network.rules然后将不同的网卡通过MAC地址绑定到不同的名字上: SUBSYSTEM=="net", SYSFS{address}=="aa:bb:cc:dd:ee:ff", NAME="lan0" SUBSYSTEM=="net", SYSFS{address}=="ff:ee:dd:cc:bb:aa", NAME="wlan0"