- 方法一:使用asmdevices(推荐使用,但不适用EMC Powerpath)
(1)查看硬盘的SCSI号,两个机器认到的/dev/sda对应在实际的物理盘可能不是一块,但scsi号肯定是完全一致的。
代码1
[root@sgdb1 ~]# scsi_id -g -u -d /dev/sdc
36000c294cea6a656a1e8e32f1091ccaf
[root@sgdb1 ~]# scsi_id -g -u -d /dev/sdd
36000c29f6b12b22e033aac10d8b2c42e
[root@sgdb1 ~]# scsi_id -g -u -d /dev/sde
36000c299cb59b588699f4f086f55ebf8
|
注意:在生产环境盘符可能为/dev/emcpowera、/dev/emcpowerb等等
(2)配置文件/etc/udev/rules.d/99-oracle-asmdevices.rules(不存在则手动添加)
代码2
[root@sgdb1 ~]# vim /etc/udev/rules.d/99-oracle-asmdevices.rules
——本例子中添加三个设备,对应asm-ocr、asm-data1、asm-data2
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB5f88d70c-1a9065fc", NAME="asm-ocr", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB864fa5ad-de19b87f",NAME="asm-data1",OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VB1e210051-3851ce93",NAME="asm-data2",OWNER="grid", GROUP="asmadmin", MODE="0660"
|
注意:只需修改加粗部分,修改SCSI号与映射出来的ASM设备名称,其他地方禁止修改
(3)执行start_udev
代码3
[root@sgdb1~]# start_udev
如果执行成功,则会在/dev/下生成asm块设备,并且权限为grid: asmadmin
[root@sgdb1 ~]# ll /dev/asm-*
brw-rw---- 1 grid asmadmin 8, 48 Dec 10 14:00 /dev/asm-data1
brw-rw---- 1 grid asmadmin 8, 64 Dec 10 14:00 /dev/asm-data2
brw-rw---- 1 grid asmadmin 8, 32 Dec 10 14:00 /dev/asm-ocr
(注意各个原始设备的权限是否为grid:asmadmin)
|
注意:start_udev会在开机自动启动(启动文件为/etc/rc.sysinit)
(4)回退方案
如果发现udev配置错了,并且已经生成了块设备,那么需要手动修改;已经映射的设备是不会被自动清空的,需要手动删除该设备:
代码4
[root@ptsdb1 rules.d]# rm -rf /dev/asm-*
修改好/etc/udev/rules.d/99-oracle-asmdevices.rules文件后,再执行:
[root@sgdb1~]# start_udev
|
- 方法二:使用裸设备(EMC Powerpath使用)
(1)修改配置文件
代码19
[root@sgdb1~]# vim /etc/udev/rules.d/60-raw.rules
——添加
ACTION=="add", KERNEL=="sdc", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdd", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sde", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="raw*", OWNER="grid",GROUP=" asmadmin ",MODE="660"
[root@sgdb1~]# start_udev
——如果执行成功,则会在/dev/raw生成原始设备,并且权限为grid: oinstall
[root@sgdb1~]# ll /dev/raw
brw-rw---- 1 grid asmadmin 8, 48 Dec 10 14:00 raw1
brw-rw---- 1 grid asmadmin 8, 64 Dec 10 14:00 raw2
brw-rw---- 1 grid asmadmin 8, 64 Dec 10 14:00 raw3
(注意各个原始设备的权限是否为grid: asmadmin)
|
注意:start_udev会在开机自动启动(启动文件为/etc/rc.sysinit)
(4)回退方案
如果发现udev配置错了,已经映射的设备是不会被自动清空的,需要手动删除裸设备:
代码20
[root@sgdb1 rules.d]# raw /dev/raw/raw1 0 0
[root@sgdb1 rules.d]# raw /dev/raw/raw2 0 0
[root@sgdb1 rules.d]# raw /dev/raw/raw3 0 0
修改好/etc/udev/rules.d/60-raw.rules文件后,在执行:
[root@sgdb1~]# start_udev
|