On this blog and elsewhere you will find UDEV rules examples for setting device ownership and naming consistency on older versions of Linux.
With RHEL7 some of the syntax has changed slightly.
This example was created using OEL7 with the Red Hat kernel, but should also work on Red Hat and CentOS.
First, log in as root and check the block device is visible on the Linux host:
[root@unirac02 ~]# ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1
In this example I have created a device sdb, and as you can see I have created a partition header on it.
Next, make sure we can see the device’s SCSI ID:
[root@unirac02 ~]# /lib/udev/scsi_id -g -u /dev/sdb 36006016004503e0017f99d58603c7c1e
Next, we are going to create a UDEV rule for this SCSI ID in the file /etc/udev/rules.d/99-oracleasm.rules.
[root@unirac01 ~]# cat /etc/udev/rules.d/99-oracleasm.rules KERNEL=="sd?", ENV{ID_SERIAL}=="36006016004503e0017f99d58603c7c1e", SYMLINK+="oracleasm/grid1", OWNER="oracle", GROUP="oinstall", MODE="0660"
If you have several devices to add, you can use the following script to automate the rule generation.
[root@unirac02 ~]# mydevs="sdb sdc sdd" ; export count=0 ; for mydev in $mydevs; do ((count+=1)) ; /lib/udev/scsi_id -g -u /dev/$mydev | awk '{print "KERNEL==\"sd?\", ENV{ID_SERIAL}==\""$1"\", SYMLINK+=\"oracleasm/disk"ENVIRON["count"]"\", OWNER=\"oracle\", GROUP=\"oinstall\", MODE=\"0660\""}' ; done KERNEL=="sd?", ENV{ID_SERIAL}=="36006016004503e0017f99d58603c7c1e", SYMLINK+="oracleasm/disk1", OWNER="oracle", GROUP="oinstall", MODE="0660" KERNEL=="sd?", ENV{ID_SERIAL}=="36006016004503e0017f99d58603d1a87", SYMLINK+="oracleasm/disk2", OWNER="oracle", GROUP="oinstall", MODE="0660" KERNEL=="sd?", ENV{ID_SERIAL}=="36006016004503e0017f99d58603d246a", SYMLINK+="oracleasm/disk3", OWNER="oracle", GROUP="oinstall", MODE="0660"
With RHEL7, restarting the UDEV rules is slightly difference than previous releases:
[root@unirac02 ~]# /sbin/udevadm control --reload-rules [root@unirac02 ~]# /sbin/udevadm trigger
Now check, and a new device should be visible under /dev/oracleasm
[root@unirac02 ~]# ls -al /dev/oracleasm/* lrwxrwxrwx. 1 root root 6 Feb 20 18:38 /dev/oracleasm/grid1 -> ../sdb
Doesn’t work on RHEL7 for me. After running the udevadm step on a new server /dev/oracleasm does not exist.
Nevermind, I lied. 😀
symbolic links creation fails unless you place the link on /dev/ directly