互联网服务LinuxOracle集群udev

Linux 平台 Oracle Rac 环境实施使用Udev 绑定总结

Linux 安装Oracle RAC Udev 设备绑定

环境:

redhat5.6+multipath

# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 5.6 (Tikanga)

# cat /etc/udev/rules.d/99-asm.rules

KERNEL=="/dev/mapper/asm_vnx5200_data0[1-5]", OWNER="grid", GROUP="oinstall", MODE="660"

redhat6.5+multipath

# cat /etc/redhat-release

CentOS release 6.5 (Final)

# cat /etc/udev/rules.d/99-asm.rules

KERNEL=="dm-[2-8]", OWNER="grid", GROUP="oinstall", MODE="660"

由于操作系统版本不同,那么在操作系统上设备识别出来的文件类型也不一样。所以绑定的规则也不一样。

以上设置在生产系统运行一直很稳定。

下面的内容是网上收集而来,可以参考使用:

安装RAC需要绑定磁盘映射,需要获取磁盘WWID来使用UDEV绑定。

scsi_id命令发出一个SCSI INQUIRY指令给设备,访问vital product data (VPD)页0x83的数据,那里包含

设备的WWID和其他的信息,或者页0x80的数据,那里包含单元序列号(unit serial number)。   scsi_id

命令的执行结果(一长串字符)是设备的WWID,当前映射到/dev/sdc(/sys/block/sdc)。每一条到设备的

路径和设备上的每一个分区的WWID都是相同的。设备的WWID不会改变,即使将其他的设备添加到系统或者从

系统中删除。但是,映射到/dev/sdc的设备可能会改变。这就是为什么需要创建一个静态的设备名。可以根

据WWID创建设备名。

一、 如何获取设备WWID

(1) Redhat 5 Enterprise Linux 如下:

#/sbin/scsi_id -g -u -s /dev/sdb

   Or

#/sbin/scsi_id -g -u -s /block/sdb

Shell脚本

# for i in `cat /proc/partitions | awk {'print $4'} |grep sd`; do echo "### $i: `scsi_id -g -u -s /block/$i`"; done

(2) Redhat 6 Enterprise Linux 如下:

#/sbin/scsi_id -g -u /dev/sdb

   Or

#/sbin/scsi_id -g -u /block/sdb

   Or

#/sbin/scsi_id --whitelist [--replace-whitespace] [ --device=] /dev/sdb

Shell脚本

# for i in `cat /proc/partitions | awk {'print $4'} |grep sd`; do echo "### $i: `scsi_id --whitelist  --replace-whitespace /dev/$i`"; done

二、 写入udev .rules

(1) 对于整个盘的绑定写入 99-oracle-asmdevices.rules (文件名,测试可以随便命令)

RHEL5

for i in b c d e f ;

do

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

done

RHEL6

for i in b c d e f ;

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

(2) 对于磁盘子分区的绑定

Redhat Enterprise Linux 5 用如下参数           

KERNEL=="sd?[1-2]", BUS=="scsi", PROGRAM=="/sbin/scsi_id  -g  -u  -s %p", RESULT=="1ATA_VBOX_HARDDISK_VBaef9fa71-c32978c8", NAME="asm-ocr%n", OWNER="grid", GROUP="asmdba", MODE="0660"

Redhat Enterprise Linux 6 用如下参数

KERNEL=="sd?[1-2]", BUS=="scsi", PROGRAM=="/sbin/scsi_id  -g  -u /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBaef9fa71-c32978c8", NAME="asm-ocr%n", OWNER="grid", GROUP="asmdba", MODE="0660"

Or

KERNEL=="sdb1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent" RESULT=="1ATA_VBOX_HARDDISK_VB8383313d-441fd502", NAME="asm-crs1",  OWNER="grid", GROUP="asmadmin", MODE="0660"

(3) 只改权限

[root@rac01 oracle]# cat /etc/udev/rules.d/99-asm-multipath.rules

PROGRAM="/bin/chown oracle:oinstall /dev/mapper/back_mpath1p1"

PROGRAM="/bin/chown oracle:oinstall /dev/mapper/back_mpath2p1"

PROGRAM="/bin/chown oracle:oinstall /dev/mapper/data_mpath1p1"

PROGRAM="/bin/chown oracle:oinstall /dev/mapper/data_mpath2p1"


Linux平台在识别设备方面有独特之处,所以Udev 在Linux平台的使用的很广泛,用于绑定设备,名称持久化,有关Udev和rac设备绑定方面,还有哪些好的使用技巧,欢迎分享和交流。

参与4

1同行回答

zftangzftang  其它 , 小白一枚
Udev 绑定的较多显示全部

Udev 绑定的较多

收起
互联网服务 · 2020-05-25
浏览1863

提问者

powertiandi
系统架构师李宁(中国)体育用品有限公司
擅长领域: 存储服务器灾备

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-04-07
  • 关注会员:3 人
  • 问题浏览:8165
  • 最近回答:2020-05-25
  • X社区推广