udev 不是多路径,是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点。它同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载firmware时。udev的最新版本依赖于升级后的Linux
kernel
2.6.13的uevent接口的最新版本。使用新版本udev的系统不能在2.6.13以下版本启动,除非使用noudev参数来禁用udev并使用传统的/dev来进行设备读取。
Linux
传统上使用静态设备创建方法,因此大量设备节点在 /dev
下创建(有时上千个),而不管相应的硬件设备是否真正存在。通常这由一个MAKEDEV脚本实现,这个脚本包含了许多通过世界上(有幽默意味,注)每一个可能存在的设备相关的主设备号和次设备号对mknod程序的调用。采用udev的方法,只有被内核检测到的设备才会获取为它们创建的设备节点。因为这些设备节点在每次系统启动时被创建,他们会被贮存在ramfs(一个内存中的文件系统,不占用任何磁盘空间).设备节点不需要大量磁盘空间,因此它使用的内存可以忽略。
方法一 raw的配置(1)[root@qs-dmm-rh2 mapper]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all theother init scripts.
# You can put your own initialization stuff inhere if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
#####
# Oracle Cluster Voting disks
#####
chown oracle:oinstall /dev/mapper/voting*
chmod 660 /dev/mapper/voting*
raw /dev/raw/raw5 /dev/mapper/votingdiskp1
raw /dev/raw/raw6 /dev/mapper/votingdiskp2
raw /dev/raw/raw7 /dev/mapper/votingdiskp3
raw /dev/raw/raw8 /dev/mapper/votingdiskp4
#sleep 2
chown oracle:oinstall /dev/raw/raw5
chown oracle:oinstall /dev/raw/raw6
chown oracle:oinstall /dev/raw/raw7
chown oracle:oinstall /dev/raw/raw8
chmod 660 /dev/raw/raw5
chmod 660 /dev/raw/raw6
chmod 660 /dev/raw/raw7
chmod 660 /dev/raw/raw8
方法一(2)
[root@felix2 raw]# vi /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all theother init scripts.
# You can put your own initialization stuff inhere if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
chown -R oracle:oinstall /dev/raw/raw*
chmod -R 660 /dev/raw/raw*
~
(1)编辑rawdevices的配置文件:
[root@felix2 sysconfig]# pwd
/etc/sysconfig
[root@felix2 sysconfig]# vi rawdevices
# rw device bindings
# format: <rawdev><major><minor>
# <rawdev><blockdev>
# example: /dev/raw/raw1 /dev/sda1
# /dev/raw/raw2 8 5
#--添加裸设备、块设备的绑定条目:
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdc1
/dev/raw/raw3 /dev/sdd1
/dev/raw/raw4 /dev/sde1
(2)启动rawdevices服务:
service rawdevices start
(3)配置系统启动时,自动启动rawdevices服务:
chkconfig rawdevices on
(4)确认rawdevices服务成功启动,并且裸设备正确创建。先查看rawdevices服务状态:
service rawdevicesstatus
[root@felix2 sysconfig]# service rawdevices status
/dev/raw/raw1: bound to major 8, minor 17
/dev/raw/raw2: bound to major 8, minor 33
/dev/raw/raw3: bound to major 8, minor 49
/dev/raw/raw4: bound to major 8, minor 65
再查看裸设备:
[root@felix2 sysconfig]# cd /dev/raw
[root@felix2 raw]# ll
total 0
crw-rw---- 1 oracle oinstall 162, 1 May 21 15:03raw1
crw-rw---- 1 oracle oinstall 162, 2 May 21 15:35raw2
crw-rw---- 1 oracle oinstall 162, 3 May 21 15:35raw3
crw-rw---- 1 oracle oinstall 162, 4 May 21 15:35raw4
[root@felix2 raw]#
(5)ASM是以Oracle用户身份运行的,要让ASM能够发现这些设备,必须更改这些设备的属主(owner):
[root@felix2 raw]# chown oracle:oinstall/dev/raw/raw*
[root@felix2 raw]# ll
total 0
crw-rw---- 1 oracle oinstall 162, 1 May 21 15:03raw1
crw-rw---- 1 oracle oinstall 162, 2 May 21 15:37raw2
crw-rw---- 1 oracle oinstall 162, 3 May 21 15:37raw3
crw-rw---- 1 oracle oinstall 162, 4 May 21 15:37raw4
方法二 运用UDEV设备绑定:
修改/etc/udev/rules.d/60-raw.rules文件
# 现在我们把/dev/sdb1 知道到raw1上,就可以在/etc/udev/rules.d/60-raw.rules文件里添加如下内容:
[root@centos~]#vi /etc/udev/rules.d/60-raw.rules
Cat >>/etc/udev/rules.d/60-raw.rules<<EOF
ACTION=="add",KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",KERNEL=="sdd1",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sde1",RUN+="/bin/raw/dev/raw/raw4 %N"
ACTION=="add",KERNEL=="raw[1-5]",OWNER="oracle", GROUP="oinstall", MODE="660"
EOF
重启UDEV服务:
[root@rac1 ~]# start_udev
[root@zrac1 asmfileapp-linux5.4]# ls -lat/dev/raw/raw*
crw-rw---- 1 oracle oinstall 162, 4 Apr 10 00:49/dev/raw/raw4
crw-rw---- 1 oracle oinstall 162, 3 Apr 10 00:49/dev/raw/raw3
crw-rw---- 1 oracle oinstall 162, 2 Apr 10 00:49/dev/raw/raw2
crw-rw---- 1 oracle oinstall 162, 1 Apr 10 00:49/dev/raw/raw1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)