What you are looking for is typically called "cloning" a server. All the major (and a vast majority of the smaller) providers support this. Your comment below reads:
I've looked at Linode, DigitalOcean and Rackspace but there does not
appear to be a "clone" facility on their VPS offerings. I'd be
delighted if there were.
That is demonstrably false, as you'll see:
Linode
Contrary to your comment below, there's a great big "Clone" button on the Linode management web interface for your server.
DigitalOcean
Take a snapshot of a droplet, then restore then create a new droplet from that snap.
Rackspace
Create an image of a server, then you can restore that image.
AWS/EC2
Right-click on a server, choose "create image", then you can launch a new server from that image.
(Old answer, regarding live migration, is below)
VMware vSphere, Hyper-V, and Xen (others too, I'm sure) all have mechanisms by which virtual machines can be live-migrated between machines. Without getting too much into the technical detail, the mechanisms behind this are broadly:
- two physical servers connected to a shared storage device. This storage device is where the VM's backing disks are kept.
- migration is initiated by the user or perhaps by the virtualization resource planning system (VMware vSphere DRS, for example), at which point the source server starts copying the VMs RAM, CPU state, etc. to the target system over the network
- when the two servers are in agreement about whether or not the VM is ready to be "moved", that VM's state is moved from source to target and the VM has now moved hardware
- at the moment the switch happens, the VM's networking MAC address (or addresses) is moved from one server to the other. This can involve some networking gymnastics on the part of the hypervisors to ensure that the upstream switches know where the MAC's new location is on the network
If you're using a well-configured and well-resourced infrastructure, live migration can be done without even dropping as much as a single ping.
None of this really has anything to do with "cloud". Cloud is a nebulous term used to describe a collection of servers, working together in some fashion. No more or no less can be said about it.
Most "cloud providers" do not support live-migration of virtual machines. If this is a requirement, you likely need to run your own virtualization infrastructure or retain the services of one of the few very high-end (read: expensive) providers that do support live migration.