The following should work (adapt as necessary):
# cat /etc/udev/rules.d/99-custom.rules
ENV{DM_NAME}=="system-test", ACTION=="add|change", MODE="0664", OWNER="michael", GROUP="disk", PROGRAM="/bin/logger /dev/$env{DM_NAME} owner changed to michael", SYMLINK+="oracle-$env{DM_NAME}"
Then you should get the result:
# lvcreate -L 1G /dev/system -n test
# ls -al /dev/dm-9 /dev/oracle-system-test /dev/system/test /dev/mapper/system-test
brw-rw-r-- 1 michael disk 253, 9 2009-08-08 01:20 /dev/dm-9
brw-r----- 1 root disk 253, 9 2009-08-08 01:20 /dev/mapper/system-test
lrwxrwxrwx 1 root root 4 2009-08-08 01:20 /dev/oracle-system-test -> dm-9
lrwxrwxrwx 1 root root 23 2009-08-08 01:20 /dev/system/test -> /dev/mapper/system-test
I wasn't able to figure out how to modify the actual device node created by LVM, but I was able to modify the device-mapper node. I then added a symlink for oracle to access it with which is a bit of a hack, but works.
(my earlier answer was a little rushed and untested. But I got really curious how to do it right :)
I don't currently have access to EMC equipment to verify this, but I had to set it up at several previous jobs. If I remember right, you had to use this filter line:
filter=["r/sd./", "a/./"]
This removes any sd devices (sda, sdb, etc), then allows everything else. Of course, if you are booting off an internal disk that shows up as /dev/sda, then you will have to specify:
filter=["r/sd[b-z]./", "a/./"]
or something similar.
Edit: I found a configuration line in my old notes (I think this was for RHEL 4, but should still work); this filter is for an HP server that boots off of an internal raid controller (cciss), and has Powerpath for the data drives:
filter = [ "a|^/dev/cciss/.*|", "a|^/dev/emcpower.*|", "a|^/dev/loop.*|", "r
/.*/" ]
So this accepts the cciss devices, emcpower, any loopback device, and rejects everything else (regex rules apply here).
To answer the last part of your question, when LVM does a scan, it looks in /proc/partitions for any device that matches its accept / reject filters, and scans those block devices for LVM headers. The first block device that it finds for a particular LVM volume header is the one that's used. Now with the SAN, both /dev/sda, and /dev/sdg (for example) map to the same data, and so does /dev/emcpowera (the command "powermt display all" should give you the proper mappings). Hopefully this helps.
Best Answer
Install RHEL with "linux mpath" option. Otherwise, you can follow the following: http://thomasvogt.wordpress.com/2007/11/29/linux-san-multipathing/
Start with one disk at a time.
It will be easier to reinstall the OS.