使用udev方式绑定RAC共享存储脚本

来源:互联网 发布:nginx header传递吗 编辑:程序博客网 时间:2024/06/08 01:02

环境:CentOS 6.4

磁盘:/dev/sd* device files are for SCSI, SATA disks

生成文件:/etc/udev/rules.d/99-oracle-asmdevices.rules     文件名称为自定义

============================================================================================

脚本内容:

#!/bin/bash
line=4                        ---该参数定义使用udev绑定的第一块盘位于提取的disks列表的第几行
disks=(`fdisk -l | grep "Disk /dev/sd*"| awk -F: {'print $1'}|awk -F' ' {'print $2'}|sed -n ''$line',$p'`)     ---获取的系统中的磁盘列表
#echo  ${disks[*]}
#echo  ${#disks[*]}
#echo  ${disks[0]}
i=1                             ---生成的文件中的盘文件后缀,标示同一功能磁盘数量
disku=(ocr data)        ---标示磁盘用途,用作ocr还是data.
k=0                            ---ocr盘数量标示
for device in ${disks[*]}
do
  if [ $i -gt 3 ]; then
  k=1
  i=`expr $i - 3`
  fi
  room=`fdisk -l | grep $device|awk {'print $3$4'}|awk -F, {'print $1'}`
  echo \#$i $device=$room>>/etc/udev/rules.d/99-oracle-asmdevices.rules      ---将每块盘的路径名称以及磁盘容量加入到udev配置文件
  scid=`/sbin/scsi_id --whitelisted --replace-whitespace --device=$device`         ---获取指定磁盘的uuid
  echo KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/\$name\",     RESULT==\"$scid\", NAME=\"asm-${disku[$k]}$i\",  OWNER=\"grid\",  GROUP=\"asmadmin\", MODE=\"0660\">>/etc/udev/rules.d/99-oracle-asmdevices.rules
  i=` expr $i + 1 `
done

------------------------------------------------------------------------------------------------------------------------------------------------------

注意:使用该脚本,首先要确认出已经使用的盘是在$line行之前,这是关键。

生成的99-oracle-asmdevices.rules

#1 /dev/sdd=2147MB
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBc73c21d8-a786643d", NAME="asm-ocr1", OWNER="grid", GROUP="asmadmin", MODE="0660"
#2 /dev/sde=2147MB
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB3fcb60bf-40afb527", NAME="asm-ocr2", OWNER="grid", GROUP="asmadmin", MODE="0660"
#3 /dev/sdf=2147MB
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB20195d97-6d2ad51a", NAME="asm-ocr3", OWNER="grid", GROUP="asmadmin", MODE="0660"
#1 /dev/sdg=10.7GB
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB24c920ba-9eb72480", NAME="asm-data1", OWNER="grid", GROUP="asmadmin", MODE="0660"
#2 /dev/sdh=10.7GB
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB66f47205-cf20c312", NAME="asm-data2", OWNER="grid", GROUP="asmadmin", MODE="0660"




0 0