It's udev to the rescue.
Modern kernels now use
udev for device creation. And with it for the first time Linux can have persistent device-specific device nodes. If you look in /dev/disk/by-id, you'll see an entry for every block device you have, named by serial number. These entries will always link to the correct device no matter what order you attach them, so you can use them in your fstab instead of the traditional /dev/sd* devices and you'll always mount correct hardware.
But since these names are rather cumbersome to use, udev can also be configured to create easier names for you. One simple entry in /etc/udev/rules.d and you can have links to your devices named /dev/ipod, /dev/pendrive, and /dev/harddrive, or whatever else your heart fancies. Just follow this guide:
writing udev rules