You can get the full solution (not free) from VMWare with high availability, failover, etc...expensive. You also need the equipment (a shared storage SAN configuration between two identical servers).
You can rig up something using a SAN (you'll want shared storage anyway) and two identical ESXi servers so that if something failed, you could bring up another server fairly quickly. Not so automatic, though.
Last, you could look into assembling a couple of systems and mirroring the servers with something like DRBD to replicate the data volumes across dedicated IP connections; you'd not be using ESXi, though. You'd be using VMWare Server on Linux systems. I'm sure there are other ways to do it, but you'll be dedicating a lot of time and duct tape to get a home grown solution like that.
Personally, we don't need the 24/9 five nines uptime, so we are trying to get two servers, identically configured, with copies of the server VM's made periodically to a network storage device so that if a system fails we can copy over the VM and fire it back up within a few hours. We also have backups of some of the VM's within the VM using our backup software, so if push comes to shove we can create a "blank" VM and run a restore from the backup server.
If your business MUST have these VM's running...you need to get the full ESX package, with support from VMWare. If not, feel free to cobble things together, or you can look into the high availability Linux project information for configuring things like DRBD and heartbeat and clustering and fencing and all the wonderful things to worry about when running high availability servers in a virtual world.