udev is introduced with the 2.6 kernel (ie not available in RHEL3 and before)
And that is solely for device name persistence. It is mainly a problem when
disks are external / via HBA, and the names across reboots and/or clusters might
not be the same.
We have been using devlabel to be able to get some persistence with RHEL3 and
RHAS 2.1 but it was not the best solution.
What udev does is that based on the specific attributes of a device (especially
UUID – scsi_id) creates a persistently named symbolic link to a device which can
come up with different /dev/sd* names. udev is also crucial for multipathing
too.
That is for disks.. udev can also be used for RH cluster dlm, hotplugging, sane
(scanners), network, pcmcia, tablets, sound (alsa), pam (biometric interfaces),
bluetooth and some xen.. So udev is way generic.
Note that with EL5, the defaults are available under /dev/disk via
by-id by-label by-path by-uuid
directories.
For raw devices, (raw interface) that was devised to provide character devices
mapped on block devices. Traditionally on UNIX the disks are introduced in
character (raw) mode and they have sequential mode. But for mounts we need block
devices. With linux, it was implemented the other way around. Basically the
block devices are available for disks, and when databases needed raw
devices for multinode access (clustering) and async I/O (2.1 times – when
async I/O was not possible with ext2) it was implemented as a mapping
mechanism.
Nowadays we do not use the raw interface as RDBMSes support the use of
block devices as raw and we have cluster filesystems (OCFS2).
. And the raw support via the “raw” interface is deprecated with RHEL5
(although it is available) and not likely be around for EL6.