在RedHat 7中,很多命令发生了改变,其中使用udev对磁盘绑定的命令也发生了变更,不再使用start_udev,而是改为了udevadm。而且scsi_id命令所在的包也由udev变成了systemd里直接包含。本篇就结合rhel6和rhel7说下两者的不同。

一、编辑/etc/scsi_id.config文件

无论在rhel6还是rhel7下,默认该文件都是不存在的,不过在使用oracle时,oracle的官方文档上建议配置该项:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/ladbi/configuring-device-persistence-manually-for-oracle-asm.html#GUID-70D50812-CCB2-41E4-AA3B-4689E1DA934E ,实际操作人个人觉得不配置貌似也没有什么问题。

如果想要配置,具体配置如下:

1# rhel6下
2[root@RAC01 ~]# vi /etc/scsi_id.config
3options=--whitelisted --replace-whitespace
4# rhel7下
5[root@raca1 ~]# cat /etc/scsi_id.config
6options=-g

二、查看磁盘的uuid

rhel6和rhel7下会有不同,具体操作如下:

1# rhel6
2[root@RAC01 ~]# scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
3360000970000498700082533030374536
4# rhel7
5[root@raca1 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sda2
63600508b1001c07f01a760347579105b5

rhel6下本地盘会识别不出来,rhel7下分区也可以识别出来。

三、配置 rule文件

1# rhel6下
2[root@RAC01 ~]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules
3KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360000970000498700082533030374536",NAME="asm-disk1",OWNER="grid",GROUP="dba",MODE="0660"
4# rhel7下
5[root@raca1 ~]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules
6KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="3600508b1001c07f01a760347579105b5", SYMLINK+="asm-ocrdisk1", OWNER="grid", GROUP="dba", MODE="0660"

四、触发测试

 1# rhel6
 2[root@rac01 ~]# start_udev
 3Starting udev:                                             [  OK  ]
 4# rhel7
 5[root@raca1 ~] /sbin/partprobe /dev/sdb2
 6[root@raca1 ~] /sbin/udevadm test /block/sdb/sdb2
 7两者之间都使用如下命令触发
 8/sbin/udevadm control --reload-rules
 9也可以逐个块触发:
10udevadm trigger --subsystem-match=block --sysname-match=$i --verbose

配置完成后,可以使用命了ls -l /etc/asm*进行查看生成的别名文件。