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

Kernel [2.6.32] and later
KERNEL=="sdc", BUS=="scsi", PROGRAM=="/sbin/scsi_id -gud /dev/$name" RESULT=="1ATA_VBOX_HARDDISK_VB93327385-145dda10", SYMLINK+="asmdisk/asm-crs1", OWNER="grid", GROUP="asmadmin", MODE="0660"
OR
KERNEL=="sdc", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name" RESULT=="1ATA_VBOX_HARDDISK_VB93327385-145dda10", SYMLINK+="asmdisk/asm-crs1", OWNER="grid", GROUP="asmadmin", MODE="0660"

(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"

三、 udev管理
# udevadm -h
# udevadm control -h
# udevadm control --reload-rules
#############################################
SUSE Linux 使用UDEV配置ASMdisk
#############################################
vzwc1:~ # uname -a
Linux vzwc1 3.0.76-0.11-default #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990) x86_64 x86_64 x86_64 GNU/Linux
vzwc1:~ # cat /etc/issue
Welcome to SUSE Linux Enterprise Server 11 SP3 (x86_64) - Kernel \r (\l).

添加编辑/etc/scsi_id.config 文件
options=--whitelisted --replace-whitespace

添加编辑/etc/udev/rules.d/99-oracle-asmdevices.rules
for i in b c d e f g h i
do
echo "KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""
done

vzwc1:~ # cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB0221f2e9-f408ff4f", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB49eb0a29-3c952001", NAME="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB4aa82271-74ee0a90", NAME="asm-diskd", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB2f97c868-e1906340", NAME="asm-diske", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBf82d24e5-0f7a2eaf", NAME="asm-diskf", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB6a27197b-c6c40e34", NAME="asm-diskg", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB9b039565-b8786d7f", NAME="asm-diskh", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB06b0cef7-cc3e6c40", NAME="asm-diski", OWNER="grid", GROUP="asmadmin", MODE="0660"

启动udev
vzwc1:~ # /etc/init.d/boot.udev status
vzwc1:~ # /etc/init.d/boot.udev restart
Restarting udevd:

SUSE和RedHat系列不同,需要使用udevadm test测试,例如 udevadm test /sys/block/sdb
建议配置完成后重启

vzwc1:~ # fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002a75e

Device Boot Start End Blocks Id System
/dev/sda1 2048 8386559 4192256 82 Linux swap / Solaris
/dev/sda2 * 8386560 8787967 200704 83 Linux
/dev/sda3 8787968 83886079 37549056 83 Linux
vzwc1:~ # ll /dev/sd*
brw-rw---- 1 root disk 8, 0 Dec 30 13:56 /dev/sda
brw-rw---- 1 root disk 8, 1 Dec 30 13:56 /dev/sda1
brw-rw---- 1 root disk 8, 2 Dec 30 13:56 /dev/sda2
brw-rw---- 1 root disk 8, 3 Dec 30 13:56 /dev/sda3
vzwc1:~ #
vzwc1:~ # l /dev/asm-disk*
brw-rw---- 1 grid asmadmin 8, 16 Dec 30 13:56 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8, 32 Dec 30 13:56 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8, 48 Dec 30 13:56 /dev/asm-diskd
brw-rw---- 1 grid asmadmin 8, 64 Dec 30 13:56 /dev/asm-diske
brw-rw---- 1 grid asmadmin 8, 80 Dec 30 13:56 /dev/asm-diskf
brw-rw---- 1 grid asmadmin 8, 96 Dec 30 13:56 /dev/asm-diskg
brw-rw---- 1 grid asmadmin 8, 112 Dec 30 13:56 /dev/asm-diskh
brw-rw---- 1 grid asmadmin 8, 128 Dec 30 13:56 /dev/asm-diski
#############################################
案例一则:IBM multipath多路径+VCS双机+udev方式+LVM
#############################################
1、查看多路径
AEP11:/etc/multipath # multipath -ll | grep IBM
3600507680c800091180000000000022e dm-2 IBM ,2145
3600507680c800091180000000000022d dm-1 IBM ,2145
3600507680c800091180000000000022c dm-0 IBM ,2145
2、配置多路径别名
备注:因机器上无/etc/multipath.conf(不明原因),从其他主机(OS版本不同)拷贝/etc/multipath.conf,仅用multipath.conf配置文件中的别名部分配置,如下所示:
AEP11:/etc/multipath # cat /etc/multipath.conf
multipaths {
multipath {
wwid 3600507680c800091180000000000022c
alias aep_diska
}
multipath {
wwid 3600507680c800091180000000000022d
alias aep_diskb
}
multipath {
wwid 3600507680c800091180000000000022e
alias aep_diskc
}
}

重新生成多路径设备:
multipath -F
multipath -v2

3、查看重新生成的多路径设备
AEP11:~ # multipath -ll | grep aep
aep_diskc (3600507680c800091180000000000022e) dm-2 IBM ,2145
aep_diskb (3600507680c800091180000000000022d) dm-1 IBM ,2145
aep_diska (3600507680c800091180000000000022c) dm-0 IBM ,2145

4、udev方式绑定多路径
AEP11:~ # cat /etc/udev/rules.d/99-aep-devices.rules
KERNEL=="dm*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600507680c800091180000000000022c", NAME="aep_diska"
KERNEL=="dm*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600507680c800091180000000000022d", NAME="aep_diskb"
KERNEL=="dm*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600507680c800091180000000000022e", NAME="aep_diskc"

备注:如加权限,则可类似如下:
KERNEL=="dm*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600507680c800091180000000000022c", NAME="aep_diska", OWNER="grid", GROUP="asmadmin", MODE="0660"

-- 重新加载配置文件
AEP11:~ # udevadm control --reload-rules
-- 使规则生效,生成udev设备文件
AEP11:~ # udevadm trigger

5、查看绑定的设备:
# ls -lrt /dev/aep_disk*

6、创建pv
AEP11:~ # pvcreate /dev/aep_disk{a,b,c}
AEP11:~ # pvs

注意:因操作的主机AEP11是双机,所以除去步骤6创建pv之外,其他步骤都需在主备机上操作。

oracle_使用udev绑定磁盘方法的更多相关文章

  1. RedHat 7.3+ORACLE 12c RAC 使用udev绑定磁盘

    在RedHat 7中,很多命令发生了改变,其中使用udev对磁盘绑定的命令也发生了变更,不再使用start_udev,而是改为了udevadm,下面具体介绍如何使用udev对磁盘进行绑定,这里对6和7 ...

  2. Oracle udev 绑定磁盘(转)

    scsi_id命令发出一个SCSI INQUIRY指令给设备,访问vital product data (VPD)页0x83的数据,那里包含设备的WWID和其他的信息,或者页0x80的数据,那里包含单 ...

  3. JQ绑定事件(1.9已经废除了live()等绑定事件方法,on()方法是官方推荐的绑定事件的一个方法)

    本文来源:http://www.cnblogs.com/leejersey/p/3545372.html jQuery on()方法是官方推荐的绑定事件的一个方法. $(selector).on(ev ...

  4. Python基础:绑定和方法调用

    首先,方法仅仅是类内部定义的函数,也就是说,方法是类属性而不是实例属性. 其次方法有两种被调用的方式:调用绑定的方法和调用未绑定的方法. 当存在一个实例时,方法才被认为绑定到了那个实例上,没有实例时方 ...

  5. element-ui(或者说Vue的子组件)绑定的方法中传入自定义参数

    比如el-upload中的 :on-success= fn,其实是给组件el-upload传递一个prop,这样写的话fn只能接受upload组件规定的参数,如果想自己传递父组件中的参数比如b,要写成 ...

  6. WPF PasswordBox不支持绑定解决方法

    原文:WPF PasswordBox不支持绑定解决方法 PasswordBox的Password属性因为安全原因不支持直接绑定,可以使用依赖属性实现.直接插入代码 public class Passw ...

  7. jQuery绑定事件方法及区别(bind,click,on,live,one)

    第一种方式: ? 1 2 3 4 5 $(document).ready(function(){  $("#clickme").click(function(){  alert(& ...

  8. Ubuntu adb devices :???????????? no permissions (verify udev rules) 解决方法

    Ubuntu adb devices :???????????? no permissions (verify udev rules) 解决方法http://www.cnblogs.com/cat-l ...

  9. 2015/9/21 Python基础(17):绑定和方法调用

    绑定和方法调用现在我们需要再次阐述Python中绑定(binding)的概念,它主要与方法调用相关联.方法是类内部定义的函数,这意味着方法是类属性而不是实例属性.其次,方法只有在其所属的类拥有实例时, ...

随机推荐

  1. 安装MongDB

    MongoDB:非关系型的文档型数据库. 下载 安装 bin拷贝到d:/mongodb/bin 新建文件夹: d:/mongodb/var 新建文件 d:/mongodb/logs.txt 打开cmd ...

  2. Java Generator

    以前我以为只有Python才会有generator,看来当时的我才年轻,后来认真研读<Thinking in Java>之后大有感悟,原来Java亦有generator,故做一次记录分享. ...

  3. SQL Server新建登录名,实现SQL Server身份验证模式

    一.如果是默认安装,没有选择SQL Server和Windows身份验证模式,需要重新设置. 1.右击服务器,属性,常规项中点选“SQL Server和Windows身份验证模式” 2.点击“确定”按 ...

  4. C#---初学ActiveMQ中间件

    本篇文章只适合跟我一样的初学者,因为现阶段的我们只想者怎么实现功能,不太会去考虑潜在异常.从上周开始优化公司的调控系统,原先采取的都是通过操作数据库去实现功能,客户体验效果不佳,经过领导决定是用中间件 ...

  5. Python 利用字典实现类似 java switch case 功能

    def add(): print('add') def sub(): print('sub') def exit(): print('exit') choice = { '1' : add, '2' ...

  6. 洛谷P4425 [HNOI/AHOI2018]转盘(线段树)

    题意 题目链接 Sol 首先猜一个结论:对于每次询问,枚举一个起点然后不断等到某个点出现时才走到下一个点一定是最优的. 证明不会,考场上拍了3w组没错应该就是对的吧... 首先把数组倍长一下方便枚举起 ...

  7. float清除浮动

    清除浮动: 在非IE浏览器下,当容器的高度为auto,且容器的内容中有浮动(float为left或right)的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高度,使得内容溢出到容器外面而影响 ...

  8. ArcGIS for Server 的修改IP问题

      ArcGIS for Server 的修改IP问题   1. [arcgisserver@centos6 ~]$ vi /home/arcgisserver/serverconfig/config ...

  9. MySQL MySql连接数与线程池

    MySql连接数与线程池 by:授客 QQ:1033553122 连接数 1.  查看允许的最大并发连接数 SHOW VARIABLES LIKE 'max_connections'; 2.  修改最 ...

  10. loadrunner 脚本开发-定义全局变量

    脚本开发-定义全局变量 by:授客 QQ:1033553122 如果参数是全局的,在脚本中的任何一个Action中都可以使用,变量一般是局部的,如果跨Action调用会出现未声明的错误. 打开Scri ...