oracle_使用udev绑定磁盘方法

时间:2021-08-23 23:19:54

oracle_使用udev绑定磁盘方法

原网址:http://blog.sina.com.cn/s/blog_8317516b0101agp5.html

 
安装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
 
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
[root@gitwo sdb1]# udevadm -h
Usage: udevadm [--help] [--version] [--debug] COMMAND [COMMAND OPTIONS]
  info         query sysfs or the udev database
  trigger      request events from the kernel
  settle       wait for the event queue to finish
  control      control the udev daemon
  monitor      listen to kernel and udev events
  test         simulation run
udevadm control -h
[root@gitwo sdb1]# udevadm control -h
Usage: udevadm control COMMAND
  --log-priority=   set the udev log level for the daemon
  --stop-exec-queue        keep udevd from executing events, queue only
  --start-exec-queue       execute events, flush queue
  --reload-rules           reloads the rules files
  --property== set a global property for all events
  --max-childs=         maximum number of childs
  --help                   print this help text
udevadm control --reload-rules