Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2269484
  • 博文数量: 168
  • 博客积分: 6641
  • 博客等级: 准将
  • 技术积分: 1996
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-02 11:49
文章存档

2020年(4)

2019年(6)

2017年(1)

2016年(3)

2015年(3)

2014年(8)

2013年(2)

2012年(12)

2011年(19)

2010年(10)

2009年(3)

2008年(17)

2007年(80)

分类: LINUX

2012-01-06 19:42:39

 
iSCSI存储设备的udev绑定
 
2012-01-06  TsengYia#126.com http://tsengyia.blog.chinaunix.net/  


    针对挂载多个iSCSI设备时其设备名称可能存在变动的情况,通过使用udev规则将设备名称固定。
 
##############################################################################
 
系统环境:
    RHEL 5.5 [2.6.18-192.el5]
 
软件环境:
    lsscsi-0.17-3.el5
    iscsi-initiator-utils-6.2.0.871-0.16.el5
    udev-095-14.21.el5
 
##############################################################################
 
一、连接iSCSI设备

1. 查找
 
[root@localhost ~]# iscsiadmin -m discovery -t sendtargets -p 192.168.4.100
192.168.4.100:3260,1 iqn.2011-12.com.example:web
192.168.4.100:3260,1 iqn.2011-12.com.example:qdisk

2. 连接
    依次访问,并确认当前的设备位置

[root@localhost ~]# service iscsi start

[root@localhost ~]# iscsiadm -m node -T iqn.2011-12.com.example:web --login
[root@localhost ~]# lsscsi                       //确认对应的新增设备
......
[1:0:0:0]    storage    IET    Controller      0001    -
[1:0:0:1]    disk       IET    VIRTUAL-DISK    0001    /dev/sdb

[root@localhost ~]# iscsiadm -m node -T iqn.2011-12.com.example:qdisk --login
[root@localhost ~]# lsscsi                       //确认对应的新增设备
......
[1:0:0:0]    storage    IET    Controller      0001    -
[1:0:0:1]    disk       IET    VIRTUAL-DISK    0001    /dev/sdb
[2:0:0:0]    storage    IET    Controller      0001    -
[2:0:0:1]    disk       IET    VIRTUAL-DISK    0001    /dev/sdc
 


二、确认iSCSI设备的识别字串
    用来唯一定位一个iSCSI设备。

1. 查找当前iSCSI设备的系统路径

[root@localhost ~]# udevinfo -q path -n /dev/sdb
/block/sdb

[root@localhost ~]# udevinfo -q path -n /dev/sdc
/block/sdc

2. 查看设备标记,找出具有唯一性的识别字串

[root@localhost ~]# udevinfo -q env -p /block/sdb
E:ID_VENDOR=IET
E:ID_MODEL=VIRTUAL-DISK
E:ID_REVISION=0001
E:ID_SERIAL=1IET_00010001
E:ID_TYPE=disk
E:ID_BUS=scsi
E:ID_PATH=ip-192.168.4.100:3260-iscsi-iqn.2011-12.com.example:web-lun-1

[root@localhost ~]# udevinfo -q env -p /block/sdc
E:ID_VENDOR=IET
E:ID_MODEL=VIRTUAL-DISK
E:ID_REVISION=0001
E:ID_SERIAL=1IET_00020001
E:ID_TYPE=disk
E:ID_BUS=scsi
E:ID_PATH=ip-192.168.4.100:3260-iscsi-iqn.2011-12.com.example:qdisk-lun-1

—— 以下方法貌似也能区分,但有说法称可能也偶有漂移

[root@localhost ~]# scsi_id -g -s /block/sdb
1IET    00010001

[root@localhost ~]# scsi_id -g -s /block/sdc
1IET    00020001



三、为iSCSI设备应用udev规则
    改用自定义的固定名称 /dev/sdx、/dev/sdy

1. 建立规则

[root@localhost ~]# vi /etc/udev/rules.d/75-persist-iscsi.rules
KERNEL=="sd*", ENV{ID_SERIAL}=="1IE_00010001", NAME:="sdx%n", MODE:="0644", SYMLINK+="web%n"
KERNEL=="sd*", ENV{ID_SERIAL}=="1IE_00020001", NAME:="sdy%n", MODE:="0644", SYMLINK+="qdisk%n"

或者

[root@localhost ~]# vi /etc/udev/rules.d/75-persist-iscsi.rules
KERNEL=="sd*", ENV{ID_PATH}=="ip-192.168.4.100:3260-iscsi-iqn.2011-12.com.example:web-lun-1", NAME:="sdx%n", MODE:="0644", SYMLINK+="web%n"
KERNEL=="sd*", ENV{ID_PATH}=="ip-192.168.4.100:3260-iscsi-iqn.2011-12.com.example:qdisk-lun-1", NAME:="sdy%n", MODE:="0644", SYMLINK+="qdisk%n"

其中,
    1)== 用来指定条件,以唯一匹配指定的设备;= 用来调整设置(名称、权限……); := 也用来调整设置,但禁止后续规则再次更改。
    2)KERNEL 用来匹配内核识别的设备名称;ENV 用来检查特定的设备环境参数。
    3)PROGRAM 用来执行识别程序(命令行),RESULT 用来检查PROGRAM的输出结果是否包含特定字串。
    4)NAME 表示用户设置的设备名称;MODE 表示设备文件权限;SYMLINK 用来添加链接设备,例如可将/dev/sdx链接为/dev/web。
    5)特殊变量 %p 表示当前匹配的设备,%n 表示内核识别设备时的序号,例如 /dev/sdx1、/dev/sdx2中的1、2 。

2. 启用规则
    重启iscsi服务,或者重启系统(推荐),新的iSCSI设备名称即可生效。

 
##############################################################################

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