转://UDEV简介及配置过程
在Linux环境下安装Oracle11g RAC时,OS层面配置好多路径软件后(multipath),下一步就需要配置udev或asmlib来处理共享分区(Lun),以便Orace ASM能够看到这些分区(Lun)。Linux6后,UDEV配置比asmlib配置起来相对简单。关于Multipath的配置说明,在上一文章(Linux MultiPath多路径软件实施说明 )已经进行了说明。接下来将要说明UDEV的配置操作。
udev 简介
简单的讲,通过UDEV配置,能够让Oracle对磁盘名进行持久化并改变磁盘访问权限为grid:asmadmin。这样在ASM的配置过程中能够看到磁盘。今后增加磁盘也不会改变原有的磁盘名称。
在存储行业中,用户总是有这样的要求:linux系统中原来有一块SCSI硬盘,系统分配的设备文件是/dev/sda。现在新增加了一个外置的磁盘阵列,通过SCSI卡连接。在接上这个磁盘阵列后,/dev/sda变成了磁盘阵列的硬盘了,原来内置的SCSI硬盘变成了 /dev/sdb,如何将设备文件名固定下来呢?
在linux kernel 2.6内核之前,我们只能和用户说,这个比较麻烦,因为/dev/sda等文件都是linux内核自动分配的。很难固定下来,除非你更改加载SCSI卡驱动程序的顺序,而且对于其他的即插即用设备,如USB设备等都不适用。
升级到linux kernel 2.6内核后,这个问题已经可以通过linux kernel 2.6内核新的sysfs文件系统和udev程序来解决了。udev是一种工具,它能够根据系统中的硬件设备的状态动态更新设备文件,包括完成对设备文件的创建、删除和刷新。
udev原理和结构
1. 当udev从kernel收到设备add/remove 事件后, udev 将解析:
§ /etc/udev/rules.d目录中的用户自定义规则文件
§ 使用自定义规则输出(可选的)
§ 从/sys中查询相应信息
2. 根据解析的信息,udev汇集了处理设备命名:
§ 确定将创建什么设备文件(device file)或符号链接(symlink)
§ 确定如何设置设备文件属性
§ 确定后续操作
配置udev
所有的udev配置文件被放置在/etc/udev目录下,所有的配置文件均采用文本格式方便用户配置修改,在udev读取过程中将忽略配置文件中以#号开头的行。
udev的全局控制配置文件是/etc/udev/udev.conf,它定义了udev的全局配置参数。/etc/udev/udev.conf文件配置项目前只有3个:
- udev_root ── 定义在那个目录中创建所需的设备文件,默认位置为/dev目录。
- udev_rules ── 定义从那个配置文件或配置目录中读取udev规则,默认位置为 /etc/udev/rules.d目录
- udev_log ── 定义在传递log到syslog系统日志时的优先级,在调试udev的时候也可以run-time的使用udevcontrol命令修改这个优先级。 默认优先级为err,其它可选优先级为info和debug。
udev规则
1. 文件名位置及命名方法
- 默认放置在/etc/udev/rules.d目录下
- 命名为.rules,例如
- 40multipath.rules
- 60net.rules
- bluetooth.rules
2. 规则结构
- value[,....]value[,....]
例如:
ACTION=="add",SUBSYSTEM=="mmc", UN+="modprobe mmc_block"
ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
3. 规则文件将在第一次预读后缓冲
- 当规则文件被修改后时间戳的更新会强制udev从读规则文件,如果想强制重读可以使用touch命令更新时间戳。
udev通过读取规则文件来决定如何命名或重命名设备和执行附加操作。一般情况下,规则文件放置在/etc/udev/rules.d目录下以 .rules 结尾的方式命名。如果配置文件不止一个,udev将按其文件名的词汇顺序读取每个规则配置文件。通常,我们以两位的数字开头定义udev规则文件,比如:
40multipath.rules和60net.rules。40multipath.rules 规则文件会在60net.rules规则文件之前被读取,因为按照词汇顺序4在6之前。缺省的udev规则存放在/etc/udev/rules.d/50udev.rules文件中。它包含一些例子,和一些默认的规则以提供一种devfs风格的/dev层。通常,我们希望自定义的规则先于默认的规则被运行,所以我建议你新增。
关于/etc/udev/rules.d/下新增配置文件的具体内容,与多路径配置时形成磁盘分区名称、类型、uuid等有关联,在此引用Deploying Oracle RAC 11g R2 Database on Red Hat EnterpriseLinux 6 的相关介绍,最后以生产系统为例进行说明:
99-oracle-asmdevices.rules文件的配置过程
1. On the first node of the Oracle RAC cluster, as the root user, identify the Device
Mapper Universally Unique IDentifier (DM_UUID) for each device mapper volume. The
example below shows the DM_UID for the partitions of the volumes labeled
ocrvote1,ocrvote2,ocrvote3,db1,db2,fra, and redo.
# for i in ocrvote1p1 ocrvote2p1 ocrvote3p1 db1p1 db2p1 frap1 redop1; do
printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/$i |grep -i dm_uuid)"; done
其中ocrvote1p1 ocrvote2p1 ocrvote3p1 db1p1 db2p1 frap1 redop1为multipath形成的裸设备分区名。在OS下执行以上文件后,会生成如下内容(根据实际环境有所不同):
ocrvote1p1 E: DM_UUID=part1-mpath-3600c0ff000dabfe596a0f65101000000
ocrvote2p1 E: DM_UUID=part1-mpath-3600c0ff000dabfe5a2a0f65101000000
ocrvote3p1 E: DM_UUID=part1-mpath-3600c0ff000dabfe5b4a0f65101000000
db1p1 E: DM_UUID=part1-mpath-3600c0ff000d7e7a854a0f65101000000
db2p1 E: DM_UUID=part1-mpath-3600c0ff000dabfe562a0f65101000000
frap1 E: DM_UUID=part1-mpath-3600c0ff000d7e7a874a0f65101000000
redop1 E: DM_UUID=part1-mpath-3600c0ff000dabfe585a0f65101000000
2. Create a file labeled 99-oracle-asmdevices.rules within /etc/udev/rules.d/
3. Within 99-oracle-asmdevices.rules file, create rules for each device similar to the
example below:
/etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="dm-*",ENV{DM_UUID}=="part1-mpath-
3600c0ff000dabfe5f4d8515101000000",OWNER="grid",GROUP="asmadmin",MODE="06
60"
To understand the rule above, it can be read as follows:
If any dm- device matches the DM_UUID of part1-mpath-
3600c0ff000dabfe5f4d8515101000000, assign to that dm- device to be owned by the
grid user and part of the asmadmin group with the permission mode set to 0660.
The 0660 value provides read and write permissions to the user grid and owner
asmadmin.
4. Save the file labeled 99-oracle-asmdevices.rules
5. Copy the 99-oracle-asmdevices.rules file to each node within the Oracle RAC
Database 11g Release 2 cluster using the scp command and enter the appropriate
password credentials for the other nodes. The example below shows how to copy the
file to node two of the Oracle RAC Database 11g Release 2 cluster.
# scp /etc/udev/rules.d/99-oracle-asmdevices.rules db-oraclenode2:/
etc/udev/rules.d/
Warning: Permanently added 'db-oracle-node2,10.16.142.52' (RSA) to the
list of known hosts.
root@db-oracle-node2's password:
99-oracleasmdevices.rules 100% 833 0.8KB/s 00:00
6. On each node within the Oracle RAC Database cluster, locate the dm- device for each
Oracle related partition. An example of how to find the dm- device for each partition is
to run the following command:
# for i in db1p1 db2p1 frap1 redop1 ocrvote1p1 ocrvote2p1 ocrvote3p1; do
printf "%s %s\n" "$i" "$(ls -ll /dev/mapper/$i)"; done
db1p1 lrwxrwxrwx. 1 root root 8 Aug 1 15:21 /dev/mapper/db1p1 -> ../dm-14
db2p1 lrwxrwxrwx. 1 root root 8 Aug 1 15:22 /dev/mapper/db2p1 -> ../dm-15
frap1 lrwxrwxrwx. 1 root root 8 Aug 1 15:22 /dev/mapper/frap1 -> ../dm-17
redop1 lrwxrwxrwx. 1 root root 8 Aug 1 15:22 /dev/mapper/redop1 -> ../dm-16
ocrvote1p1 lrwxrwxrwx. 1 root root 8 Aug 1 15:22 /dev/mapper/ocrvote1p1-> ../dm-18
ocrvote2p1 lrwxrwxrwx. 1 root root 8 Aug 1 15:22 /dev/mapper/ocrvote2p1-> ../dm-19
ocrvote3p1 lrwxrwxrwx. 1 root root 8 Aug 1 15:22 /dev/mapper/ocrvote3p1-> ../dm-20
7. On each node within the Oracle RAC Database cluster, apply and test the rules for
each dm- device created within the 99-oracle-asmdevices.rules by running a udevadm
test on each device. The example below demonstrates a udevadm test on dm-11.
# udevadm test /sys/block/dm-11
[ ... Output Abbreviated ... ]
udevadm_test: DM_NAME=db1p1
udevadm_test: DM_UUID=part1-mpath-3600c0ff000d7e7a86485ac5101000000
udevadm_test: DM_SUSPENDED=0
udevadm_test: DEVLINKS=/dev/mapper/db1p1 /dev/disk/by-id/dm-name-db1p1
/dev/disk/by-id/dm-uuid-part1-mpath-3600c0ff000d7e7a86485ac5101000000
/dev/block/253:11
udevadm_test: ID_FS_TYPE=oracleasm
8. Confirm each device has the desired permissions on each node within the cluster.
# ls -lh /dev/dm-*
brw-rw----. 1 grid asmadmin 253, 14 Aug 1 16:02 /dev/dm-14
brw-rw----. 1 grid asmadmin 253, 15 Aug 1 16:02 /dev/dm-15
brw-rw----. 1 grid asmadmin 253, 16 Aug 1 16:02 /dev/dm-16
brw-rw----. 1 grid asmadmin 253, 17 Aug 1 16:02 /dev/dm-17
brw-rw----. 1 grid asmadmin 253, 18 Aug 1 16:02 /dev/dm-18
brw-rw----. 1 grid asmadmin 253, 19 Aug 1 16:03 /dev/dm-19
brw-rw----. 1 grid asmadmin 253, 20 Aug 1 16:02 /dev/dm-20
NOTE: If the desired permissions are not visibile, please reboot the particular node
from the Oracle RAC Database cluster.
理解以上内容的基础上,将99-oracle-asmdevices.rules文件内容的配置可以简化为如下:
在第一节点通过fdisk格式化磁盘,做成分区形成:
fdisk /dev/mapper/mpathb
fdisk /dev/mapper/mpathc
fdisk /dev/mapper/mpathd
fdisk /dev/mapper/mpathe
.....
格式化fdisk /dev/mapper/mpathb,fdisk /dev/mapper/mpathc,fdisk /dev/mapper/mpathd,fdisk /dev/mapper/mpathe
等设备,形成/dev/mapper/mpathcp1,fdisk /dev/mapper/mpathdp1,fdisk /dev/mapper/mpathep1 ...
作为专业一点儿的DBA,我们也可以在multipath配置中设置alias,如下:
multipath {
wwid 3600c0ff000d7e7a854a0f65101000000
alias data01p1
}
二节点扫描设备:
# partprobe
编写UDEV文件(双节点都要配置)
编写UDEV权限文件:vi /etc/udev/rules.d/99-oracle-asmdevices.rules
PROGRAM="/bin/chown grid:oinstall /dev/mapper/orcvotep1"
PROGRAM="/bin/chown grid:oinstall /dev/mapper/data01p1"
PROGRAM="/bin/chown grid:oinstall /dev/mapper/data02p1"
PROGRAM="/bin/chown grid:oinstall /dev/mapper/data03p1"
PROGRAM="/bin/chown grid:oinstall /dev/mapper/data04p1"
PROGRAM="/bin/chown grid:oinstall /dev/mapper/data05p1"
PROGRAM="/bin/chown grid:oinstall /dev/mapper/fra01"
PROGRAM="/bin/chown grid:oinstall /dev/mapper/fra02"
PROGRAM="/bin/chown grid:oinstall /dev/mapper/fra03"
PROGRAM="/bin/chown grid:oinstall /dev/mapper/fra04"
PROGRAM="/bin/chown grid:oinstall /dev/mapper/fra05"
PROGRAM="/bin/chmod 0660 /dev/mapper/orcvotep1"
PROGRAM="/bin/chmod 0660 /dev/mapper/data01p1"
PROGRAM="/bin/chmod 0660 /dev/mapper/data02p1"
PROGRAM="/bin/chmod 0660 /dev/mapper/data03p1"
PROGRAM="/bin/chmod 0660 /dev/mapper/data04p1"
PROGRAM="/bin/chmod 0660 /dev/mapper/data05p1"
PROGRAM="/bin/chmod 0660 /dev/mapper/fra01"
PROGRAM="/bin/chmod 0660 /dev/mapper/fra02"
PROGRAM="/bin/chmod 0660 /dev/mapper/fra03"
PROGRAM="/bin/chmod 0660 /dev/mapper/fra04"
PROGRAM="/bin/chmod 0660 /dev/mapper/fra05"
双节点重新启动UDEV:
#start_udev
转://UDEV简介及配置过程的更多相关文章
- Win7上Git安装及配置过程
Win7上Git安装及配置过程 文档名称 Win7上Git安装及配置过程 创建时间 2012/8/20 修改时间 2012/8/20 创建人 Baifx 简介(收获) 1.在win7上安装msysgi ...
- Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装
原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底 ...
- Spherical CNNs代码配置过程
ICLR18 best paper: Spherical CNNs 论文链接:https://arxiv.org/abs/1801.10130 GITHUB地址:https://github.com/ ...
- Linux DNS原理简介及配置
Linux DNS原理简介及配置 DNS简介 DNS原理 域名解析的过程 资源记录 DNS BIND安装配置 一.简介 一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访 ...
- ELK配置过程初次安装使用心得--elasticsearch5.4版--及logstash
安装所遇到的问题:http://www.bubuko.com/infodetail-1889252.html 一,先创建用户和组groupadd es useradd -g es es passwd ...
- 转载 - Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LTS)
出处:http://www.cnblogs.com/ifantastic/p/3185665.html Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LT ...
- 【Oracle】OGG(Oracle GoldenGate)简介及搭建过程
GoldenGate公司简介 GoldenGate公司专注于数据同步领域,是实现数据同步技术的领导者.至2007年,在全球35个国家售出超过2000个许可证,客户分布在政府.银行.电信.证券.传媒.医 ...
- ESXi与物理交换机静态链路聚合配置过程中的小陷阱
作者:陆斌文章来自微信公众号:平台人生 内容简介:ESXi与物理交换机之间配置静态链路聚合时,因为静态链路聚合的特点,在进行down网卡和从虚拟交换机移除网卡的操作时,可能会无法完成故障流量切换,影响 ...
- Linux LVM逻辑卷配置过程详解
许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...
随机推荐
- 【学习笔记】AJAX内容拓展
题记——近期回顾<javaScript高级程序设计>ajax章节,发现书中对封装一个ajax库并不完美,结合之前看到博客,对ajax库做一点点的优化. 参考博客:如何去封装一个ajax库 ...
- [JZOJ5837] Omeed
Description Solution 有两种做法 一种是线段树维护一次方程系数,一种是线段树维护矩阵 准备都写一写 维护系数 首先把式子推出来 \[CS=B\times \sum\limits_{ ...
- BGP笔记
BGP:用于AS与AS之间的路由,但现在也越来越多的用在IDC内部了 BGP是应用层协议,应用TCP协议(唯一一个运用TCP的路由协议) IGP和EGP的区别:IGP运行在一个AS之内,EGP运行在A ...
- VUE模仿百度搜索框,按上下方向键及回车键实现搜索选中效果
逻辑介绍: 1.表单获取焦点时,显示搜索建议框 2.输入内容时,请求后台接口,并将返回的数据展示在搜索建议框内 3.表单获取焦点情况下,按键盘上下箭头可实现搜索列表项的切换,按回车可以选择当前激活的选 ...
- 动态规划法(五)钢条切割问题(rod cutting problem)
继续讲故事~~ 我们的主人公现在已经告别了生于斯,长于斯的故乡,来到了全国最大的城市S市.这座S市,位于国家的东南部,是全国的经济中心,工商业极为发达,是这个国家的人民所向往的城市.这个到处都 ...
- Owin 自寄宿 asp.net web api
http://owin.org/ Owin 定义了webserver和webapplication之间的标准接口,目标就是为了解耦webapplication对webserver的依赖, 就是说以后可 ...
- http请求的headers详解
关于http请求的headers详解:这里以HTTP1.1为例结合postman返回的信息 1.Server →nginx/1.15.8 A name for the server 这是post ...
- C Looooops(poj2115+扩展欧几里德)
C Looooops Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Pr ...
- Perfect hashing (And Minimal perfect hashing)
Perfect Hashing: A hash function that is injective-that is, maps each valid input to a different has ...
- ViewModel处理View相关事件的多种方式(非技术贴,仅学习总结)
众所周知,在UWP中,微软为我们提供了一种新的绑定方式:x:bind,它是基于编译时的绑定.在性能方面,运行时绑定Binding与它相比还是有些逊色的.因此针对一些确定的.不需要变更的数据,我们完全有 ...