背景:
操作系统 centos 7.9 数据库:11.2.0.4
操作流程:
- 确认在所有RAC节点上已经安装了必要的UDEV包
[root@orcl01:/root]$ rpm -qa | grep systemd
systemd-libs-219-78.el7.x86_64
systemd-219-78.el7.x86_64
systemd-sysv-219-78.el7.x86_64
- 通过scsi_id获取设备的块设备的唯一标识名,假设系统上已有LUN sdb-sde
–分别获取逐个磁盘的uuid,可跳过直接执行步骤3批量生成uuid
/usr/lib/udev/scsi_id -g -u -d /dev/sdb
如果不能获取UUID,参考“共享存储”中的“VMware 中使用 scsi_id 查询磁盘UUID”文件的解决办法
3 创建并配置UDEVRules 文件
–linux6:
for i in b c; 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;
–linux7:
udev rules 文件位置:/etc/udev/rules.d/99-oracle-asmdevices.rules
for i in b c d;
do
echo "KERNEL==\"sd$i\", ENV{DEVTYPE}==\"disk\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d \$devnode\", RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", RUN+=\"/bin/sh -c 'mknod /dev/asm-disk$i b \$major \$minor; chown grid:asmadmin /dev/asm-disk$i; chmod 0660 /dev/asm-disk$i'\"">> /etc/udev/rules.d/99-oracle-asmdevices.rules
done
4.将该规则文件拷贝到其他节点上
[root@orcl01:/etc/udev/rules.d]$ scp 99-oracle-asmdevices.rules root@192.168.40.201:/etc/udev/rules.d/
5.在所有节点上启动udev服务
–linux6
[root@11gnode1 ~]# start_udev
Starting udev: [ OK ]
–linux7:
/sbin/udevadm control --reload-rules
/sbin/udevadm trigger --type=devices --action=change
6. 检查共享设备的所属关系和权限
node1:
[root@orcl01:/etc/udev/rules.d]$ ls -l /dev/asm*
brw-rw---- 1 grid asmadmin 8, 16 Aug 15 17:22 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8, 32 Aug 15 17:22 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8, 48 Aug 15 17:22 /dev/asm-diskd
node2:
[root@localhost ~]# ls -l /dev/asm*
brw-rw----. 1 root root 8, 16 Aug 15 17:22 /dev/asm-diskb
brw-rw----. 1 root root 8, 32 Aug 15 17:22 /dev/asm-diskc
brw-rw----. 1 root root 8, 48 Aug 15 17:22 /dev/asm-diskd
说明:相应asm磁盘组在后续装GI,DATABASE的时候指定。