iSCSI存储设备的udev绑定

  iSCSI存储设备的udev绑定 
    针对挂载多个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设备名称即可生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值