`

用 UDEV 固定 iSCSI 设备名称

阅读更多
    用 open-iscsi 连上 Target 之后,iSCSI 设备的名称在系统里总是变来变去,无法固定,这给应用带来了诸多不便。为了固定系统中 iSCSI 设备的名称,可以考虑使用Linux 2.6 内核引入的 UDEV 机制。
    关于 UDEV 的介绍,网上的资料很多,这里就不啰嗦了。英文好的同学也可以用 man udev 来查看系统自带的帮助文档。

  • UDEV 规则文件
    UDEV 相关的配置文件、规则文件和脚本等的位置在不同系统上不尽相同,可以通过 man udev 查到。在 CentOS 上,这些文件均位于 /etc/udev 目录下。
    UDEV 规则文件必须以 .rules 结尾,开始的数字代表规则执行的优先级,数字越小,优先级越高。当然,也可以不指定数字。
    好了,废话不多说,直接上规则:

    KERNEL=="sd*", BUS=="scsi", ENV{ID_PATH}=="ip-*", PROGRAM="/etc/udev/scripts/iscsidev.sh %E{ID_PATH}", SYMLINK+="iscsi/%c/part%n"

    注意:规则文件中的一条规则必须在同一行内,不允许跨行。
    上述规则中,"==" 为条件判断,"KERNEL"、"BUS"、"ENV{ID_PATH}"为规则必须满足的条件。这3个条件可以确认一个 iSCSI 设备或分区。其中,"ENV{ID_PATH}"表示设备的 ID_PATH 属性,该属性在 CentOS 中为 "ip-" 开头的字符串。
    PROGRAM 指定满足规则后执行的脚本程序,SYMLINK 表示满足规则后创建指定该设备的符号链接。SYMLINK 默认创建在 /dev 目录下,所以这里只给出了相对路径。
    规则中以"%"开始的是 UDEV 中的参数,如下:
%E{key}一个环境变量的值,即通过 udevadm 命令查询出的设备属性
%cPROGRAM 返回的结果
%n设备的内核号码,例如:sda3 的内核号码是 3
    详细的参数说明,可以查看 UDEV 的系统帮助(man udev),也可以参考简述udev的自定义规则

    上述规则中,iSCSI 设备的 SYMLINK 为 /dev/iscsi/<target name>/part<n>。其中,<n> 为设备的内核号码;<target name> 通过 PROGRAM 指定的脚本获得。

  • UDEV 脚本
    iscsidev.sh 脚本的内容如下:
    #!/bin/sh
    # File: /etc/udev/scripts/iscsidev.sh

    TARGET_NAME=`/bin/echo $1 | /bin/awk -F"-iscsi-" '{print $2}' | /bin/awk -F"-lun-" '{print $1"/lun"$2}'`
    /bin/echo ${TARGET_NAME}


    脚本的传入参数为设备的 ID_PATH 属性,其格式为 ip-<server ip>:<port>-iscsi-<target name>-lun-<lun id>,可以通过 udevadm 查询到:
    # udevadm info --query=property --name=/dev/sdb


    脚本解析传入的参数,解析出 Target 的名字,然后组成 LUN 对应设备的符号链接,并返回。
    现在,可以登入 iSCSI Target,然后再 /dev/iscsi/ 下查看对应的符号链接了。
  • 大小: 34.7 KB
分享到:
评论

相关推荐

    iscsi+多路径+udev.docx

    - 保持设备命名的稳定性,即使设备的顺序发生变化,udev规则也能确保设备节点名称的一致性。 - 应用设备规则,例如设置权限和所有权,提高安全性。 在部署iSCSI多路径时,Linux提供了一些工具,如mpath、multipathd...

    udev管理linux设备

    5. **内核设备名称**:设备在sysfs中的名称,是udev默认使用的设备文件名。 **配置和使用udev**: 在RHEL4.8和RHEL5.3等系统中,udev通常是预装的。可以使用`rpm -qa | grep -i udev`和`ps -ef | grep udev`等命令...

    利用Udev在linux设备装载时实现易于识别的设备文件名.pdf

    Udev 的使用可以使得人们根据设备的不同属性区分设备,用人们习惯的命名方式设置设备文件名。 要使用 Udev,需要获取设备的属性信息。在 Ubuntu 12.04 LTS 中,可以通过查看 /sys/ 下的设备属性信息和使用 udevadm ...

    linux设备管理工具--udev

    - **自定义命名规则**:通过编写udev规则文件,用户可以自定义设备文件的名称,使得设备文件更具有可读性和易于识别。例如,可以根据设备的序列号、类型等属性来命名设备文件。 - **权限和所有权设定**:udev还允许...

    Red Hat Enterprise Linux 6使用udev配置Oracle ASM总结文档

    在这种情况下,udev这个设备管理器可以帮助我们固定设备名。 udev(用户空间的设备管理器)是Linux系统中负责创建和管理设备节点的程序。在Linux 2.6内核中,udev取代了传统的devfs(设备文件系统),它在系统启动...

    利用udev处理U盘信息,得到U盘路径等

    在Linux系统中,udev是设备管理系统的核心组成部分,它负责动态管理和命名硬件设备。当我们插入一个U盘时,udev会自动检测到这个事件,并为U盘分配一个设备节点,提供访问U盘的路径。这个过程涉及到了Linux内核、USB...

    编写udev规则中文版-writing_udev_rules

    * 内置的持久命名方案:udev 规则可以将设备的名称固定下来,以便更好地管理设备。 * 自动加载驱动程序:udev 规则可以根据设备的类型和属性自动加载相应的驱动程序。 * 设备层次结构:udev 规则可以定义设备的层次...

    利用udev、sys动态创建linux设备结点

    动态创建 Linux 设备结点使用 udev 和 sys Linux 设备结点是指操作系统中表示设备的文件系统对象。Linux 2.6 内核中,devfs 被认为是过时的方法,并最终被抛弃,udev 取代了它。udev 提供了动态创建设备结点的能力...

    掌握udev 掌握udev

    在使用udev之前,设备文件是静态创建的,或者通过devfs动态生成,但这些方法都有其局限性。例如,USB设备的设备文件名(如/dev/usb/lp0和/dev/usb/lp1)并不能可靠地反映设备的真实身份,因为它们可能因设备插入的...

    Redhat7 Udev绑定(DM multipath)多路径设备.docx

    在Redhat7系统中,Udev绑定(DM multipath)多路径设备是指使用Udev机制来管理多路径设备的绑定关系。下面是相关的知识点: 1. DM Multipath:DM Multipath是Redhat7系统中的一种多路径设备管理机制。它可以将多个...

    使用 udev 高效、动态地管理 Linux 设备文件

    但使用udev,用户可以基于硬盘的序列号、型号或其他属性定义自定义的命名规则,使设备文件更具可读性和针对性,如/dev/root_disk、/dev/data_disk等。 udev的工作原理是监听内核产生的uevent消息。当设备插入或拔出...

    udev-126设备文件管理

    udev源代码,用于管理linux下设备文件

    linux用户空间程序udev使用总结

    使用udev管理设备的一个关键优势在于其灵活性。通过编写和修改规则文件,系统管理员可以根据需求定制设备的命名规则、权限设置、启动脚本执行等。例如,如果希望所有USB摄像头都属于'video'组,可以通过编写一个规则...

    linux下udev的使用

    Linux 下 udev 的使用 Udev 是 Linux 系统中的一种设备管理机制,它可以实时监控和管理系统中的设备事件。Udev 的主要功能是对系统中的设备进行自动挂载和卸载操作,以便提高系统的灵活性和可靠性。 Udev 的配置...

    使用udev 的chdev驱动

    本篇文章将深入探讨`udev`的`chdev`驱动,以及如何在Linux设备驱动代码中使用它。 `udev`的核心功能包括: 1. **设备命名规则**:udev允许通过规则文件来定义设备命名策略,避免设备节点的随机命名,使得设备的...

    LINUX UDEV学习心得

    UDEV 是一个基于规则的设备管理器,它可以根据设备的唯一标识符(如 UUID)来分配固定的设备名称。这样即使硬件设备顺序变化,操作系统也能始终以相同的方式识别它们,确保应用程序(如 Oracle 数据库)的稳定运行。...

    suse使用udev管理asm.docx

    这通常涉及到修改 `/etc/udev/rules.d/` 目录下的规则文件,添加特定的udev规则,以指定设备的名称和权限。 最后,完成所有配置后,你可以继续Oracle Grid Infrastructure和数据库实例的安装,遵循Oracle官方文档的...

    udev文件系统的使用和基本工作原理分析.rar

    在深入探讨udev的使用和工作原理之前,我们先要理解设备节点的基本概念。设备节点是Linux内核与用户空间程序通信的一种方式,它们在/dev目录下创建,允许程序访问硬件资源。 **udev的基本工作原理:** 1. **动态...

Global site tag (gtag.js) - Google Analytics