udev 协助管理系统中各设备名称

自2.6 核心开始,就可以使用udev 协助管理系统中各设备名称。例如,磁盘设备排序、网卡设备排序等。udev能动态地在/dev 目录里产生自定义的、标识性强的设备文件或设备链接。本文即以红旗Asianux 3.0 平台,给新加载的U盘设备自定义一个链接为例进行简要说明。

一、关于udev
2.4 内核使用devfs(设备文件系统)在设备初始化时创建设备文件,设备驱动程序可以指定设备号、所有者、用户空间等信息,devfs 运行在内核环境中,并有不少缺点:可能出现主/辅设备号不够,命名不灵活,不能指定设备名称等问题。而自2.6 内核开始,引入了sysfs 文件系统。sysfs 把连接在系统上的设备和总线组织成一个分级的文件,并提供给用户空间存取使用。udev 运行在用户模式,而非内核中。udev 的初始化脚本在系统启动时创建设备节点,并且当插入新设备——加入驱动模块——在sysfs上注册新的数据后,udev会创新新的设备节点。
udev 是一个工作在用户空间的工具,它能根据系统中硬件设备的状态动态的更新设备文件,包括设备文件的创建,删除,权限等。这些文件通常都定义在/dev 目录下,但也可以在配置文件中指定。udev 必须内核中的sysfs和tmpfs支持,sysfs 为udev 提供设备入口和uevent 通道,tmpfs 为udev 设备文件提供存放空间。
注意,udev 是通过对内核产生的设备文件修改,或增加别名的方式来达到自定义设备文件的目的。但是,udev 是用户模式程序,其不会更改内核行为。也就是说,内核仍然会创建sda,sdb等设备文件,而udev可根据设备的唯一信息来区分不同的设备,并产生新的设备文件(或链接)。而在用户的应用中,只要使用新产生的设备文件即可。
udev 的工作流程图:



1.硬盘的查看方式;

2.获得硬盘SCSI(Small Computer System Interface)ID;
3.绑定共享存储;
4.绑定共享存储的脚本;

1.硬盘的查看方式:

[root@cl6-11gr2-rac1 ~]# ls -ltr /dev/sd*
brw-rw----. 1 root disk 8, 48 8月  16 13:34 /dev/sdd
brw-rw----. 1 root disk 8, 16 8月  16 13:34 /dev/sdb
brw-rw----. 1 root disk 8, 32 8月  16 13:34 /dev/sdc
brw-rw----. 1 root disk 8, 80 8月  16 13:34 /dev/sdf
brw-rw----. 1 root disk 8, 64 8月  16 13:34 /dev/sde
brw-rw----. 1 root disk 8,  0 8月  16 13:34 /dev/sda
brw-rw----. 1 root disk 8,  4 8月  16 13:34 /dev/sda4
brw-rw----. 1 root disk 8,  8 8月  16 13:34 /dev/sda8
brw-rw----. 1 root disk 8,  9 8月  16 13:34 /dev/sda9
brw-rw----. 1 root disk 8,  1 8月  16 13:34 /dev/sda1
brw-rw----. 1 root disk 8,  6 8月  16 13:34 /dev/sda6
brw-rw----. 1 root disk 8,  3 8月  16 13:34 /dev/sda3
brw-rw----. 1 root disk 8,  2 8月  16 13:34 /dev/sda2
brw-rw----. 1 root disk 8,  7 8月  16 13:34 /dev/sda7
brw-rw----. 1 root disk 8,  5 8月  16 13:34 /dev/sda5

sda 代表本地硬盘,sda1,2,3,6..代表本地硬盘上的分区,sdb..f 代表非本地硬盘,具体硬盘分区是否挂载到系统中,可以使用df 命令查询:

[root@cl6-11gr2-rac1 ~]# df -hT
Filesystem    Type  Size  Used Avail Use% Mounted on
/dev/sda9      ext4    62G  551M  58G  1% /
tmpfs          tmpfs  499M    0  499M  0% /dev/shm
/dev/sda1      ext4  291M  56M  220M  21% /boot
/dev/sda6      ext4  5.1G  139M  4.7G  3% /home
/dev/sda3      ext4  5.1G  161M  4.7G  4% /opt
/dev/sda2      ext4    15G  2.9G  12G  21% /usr
/dev/sda7      ext4  5.1G  139M  4.7G  3% /usr/local
/dev/sda5      ext4  5.1G  611M  4.2G  13% /var

 

2.获得硬盘SCSI(Small Computer System Interface)ID:
SCSI 是一种标准的计算机和外围设备之间的物理连接和传输数据,SCSI 定义标准的命令、协议和电气光学接口用于硬盘和磁带设备,配置共享存储时需要通过SCSI ID绑定设备到系统中,以下操作获取我本机中共享存储的SCSI ID:

 

[root@cl6-11gr2-rac1 ~]# /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
1ATA_VBOX_HARDDISK_VBf1082ced-38c590fb
[root@cl6-11gr2-rac1 ~]# /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
1ATA_VBOX_HARDDISK_VBcb889b15-45566527
[root@cl6-11gr2-rac1 ~]# /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdd
1ATA_VBOX_HARDDISK_VB91e00a0b-5bc96a2b
[root@cl6-11gr2-rac1 ~]# /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sde
1ATA_VBOX_HARDDISK_VBe9eca0fb-a99c152d
[root@cl6-11gr2-rac1 ~]# /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdf
1ATA_VBOX_HARDDISK_VB414d8bfa-0256c987

 

3.绑定共享存储:
建立 rules 文件(注意格式)/etc/udev/rules.d/99-Oracle-asmdevices.rules,每一个条目对应一个磁盘设备,PROGRAM 定义UDEV设备名称;NAME 定义UDEV设备链接名称,该名称将在/dev/目录下显示;RESULT 定义设备的SCSI ID;OWNER 定义设备的所有者;GROUP 定义设备所有者的用户组:

 

KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VBf1082ced-38c590fb",NAME="asm-diskb",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VBcb889b15-45566527",NAME="asm-diskc",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*", BUS=="scsi",PROGRAM=="//sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VB91e00a0b-5bc96a2b",NAME="asm-diskd",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VBe9eca0fb-a99c152d",NAME="asm-diske",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VB414d8bfa-0256c987",NAME="asm-diskf",OWNER="grid",GROUP="asmadmin",MODE="0660"

 

重启UDEV:

[root@cl6-11gr2-rac2 ~]# /sbin/start_udev

查看绑定后的共享存储:

[root@cl6-11gr2-rac2 ~]# ls -ltr /dev/asm*
brw-rw----. 1 grid asmadmin 8, 32 8月  17 15:27 /dev/asm-diskc
brw-rw----. 1 grid asmadmin 8, 16 8月  17 15:27 /dev/asm-diskb
brw-rw----. 1 grid asmadmin 8, 48 8月  17 15:27 /dev/asm-diskd

4.绑定共享存储的脚本:
以上是绑定共享存储的过程,目的是了解如何做,如果配置完成后没有查看到共享存储,请仔细检查配置,任何配置出错都会导致UDEV启动失败;以下脚本是自动配置共享存储的脚本,
使用时根据实际情况修改:

for i in b c d e f g ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""  >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done;

例如:只有/dev/sdc,/dev/sdd 时,将脚本 for i in b c d e f g 修改为 for i in c d 即可;
最后重启UDEV:

[root@cl6-11gr2-rac2 ~]# /sbin/start_udev

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-04/115820.htm

linux


udev 服务自动识别系统中新增的网卡设备

udev的文件是 /etc/udev/rules.d 下70-persistent-net.rules ,删除此文件 ,自动生成一个新的 70-persistent-net.rules 的文件,并记录下系统中被识别的所有的网卡设备信息。

重启和启动udev服务,start_udev 命令。

cp  ifc-lo ifc-eth0 可以快速的得到eth0的配置文件模板!

/etc/sysconfig/network 中,有开启网络的功能。

centos中 如果有 NetManager 服务的话,与network 服务相冲突,network是 service network restart 的使用的。


参考:http://blog.sina.com.cn/s/blog_53689eaf0102vcme.html

http://www.linuxidc.com/Linux/2015-04/115820.htm

https://blog.csdn.net/yejinxiong001/article/details/53673086

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值