How to make RHEL have persistent local hdd name?

I have 2 identical Dell R720 servers running identical Oracle Enterprise Linux(RHEL)6.4.

Both servers (supposedly) configured in exactly the same way. However, one of the servers is behaving differently.

Every other reboot its local HDD name(and related partitions) flip from /dev/sda to /dev/sdj. This is problematic because this server is configured with multipathd, and if this flip happens this config does not match other server and Oracle DB(or its clusterware) complains that nodes are not configured identically.

Why does one server has a consistent device names while the other server keeps flipping back and forth?

How can I make local hdd to consistently be /dev/sda?

edit: I created a rules file in /etc/udev/rules.d with the following rule, but it doesn't seem to be working

KERNEL=="sd*" , PROGRAM="scsi_id --page=0x83 -–whitelisted --device=/dev/%k",RESULT=="36b8ca3a0e58a3f00195c25c8117a6822", NAME="sda"

Solution 1:

Better than fighting with udev to force a device name for a given device, a permanent solution is to use UUIDs. This is valid for any device known to the device-mapper.

This way, you don't have to worry if you add extra disks to your host. The UUID identifier guaranties that the right device will be used.

Solution 2:

Use aliases, or user_friedly_names or do it with udev. All of these are documented in RHEL Storage Administration Guide:

Maybe you could use /dev/disk/* tree instead of mapped /dev/sd*

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/persistent_naming.html

http://www.centos.org/docs/5/html/5.2/Virtualization/sect-Virtualization-Virtualized_block_devices-Configuring_persistent_storage_in_a_Red_Hat_Enterprise_Linux_5_environment.html