You're a simple hosting company, with about 100 customers. Let's say your first 100 customers are at .. err.. RackShack, for example. You've just decided to start co-locating your own servers in a different facility, and you want to RELOCATE those 100 customers to your new servers.
Is there a simple way to do this? Or is it guaranteed to be a nightmare?
Let me start by saying, thank GOD - you've made a good choice. I've learned that RackShack has great deals for unguarenteed servers. I had two machines with them and both had hardware issues, and it took me nearly 6 months for them to do anything about it.
Now - you've got a LOT of work ahead of you. The first thing I would consider is how you have accounts setup now. Do you use a control panel? If so, what control panel do you use? If you don't use a control panel at all, you've likely made more work for yourself in the beginning but the job now will be relatively painless. Otherwise, you've got some work ahead of you.
The second thought is - what control panel will you have on your new machine. If it is the same, you are in luck because copying everything will be much easier. If you have Ensim, you can use its built in backup system. If you use Plesk, they have backup/restore utilities available for free download at their website: www.plesk.com
If, by chance, you are switching control panels, prepare for some work!
I recently moved a machine from RackShack and switched from Plesk to CPanel. At times the move was a bit bumpy but for the most part things went smooth.
First, I made customers aware that the move would be happening, and why. I believe that this is an important step because you don't want customers wondering what is going on when DNS starts to change and strange things happen. Most likely if you let them know in advance and keep them updated, they will like your company better in the end.
Second, I got the new server online, and prepared it for new accounts. You don't want to start transferring files and find out that something went goofy in your RedHat install and you need to format!
Third, I printed out a list of all the domains on the old server, along with the username/passwords associated with that account. I also made note of which accounts had what resources (space, bandwidth, email addresses, etc).
Fourth, I created all the accounts on the new machine. This way directories were ready for the users files.
Fifth, I made a HUGE tarball of all the sites on the old server and let users know that any changes made from this point until further notice would have to be re-uploaded.
Sixth, I untarred all the files and put them in the right spot.
Seventh, I created MySQL dumps for all databases on the old server, and transferred them to the new server.
At this point I emailed clients on the progress. I told them that until DNS was updated, their domains would be forwarded to a temporary url on the new machine. I also told them the new details for logging in, control panel, etc on the new machine.
I updated my nameservers IP addresses. This allowed me to move all the domains pointed to my DNS servers to be moved with no action needed by my clients.
I made sure that any non-standard DNS and httpd.conf changes were placed on the new machine that needed to be (ie special A records, non CP http.conf entries, etc).
Update FAQ's and other support documents, other random work.
Important things are to keep your customers informed on what is happening, and to triple check everything. You will need lots of time and plenty of drinks (code red is the best :-p )
With a little planning, switching data centers and servers, platforms, and control panels does NOT have to be a nightmare!
But if you don't do your homework, you don't put in the effort, you will end up with a lot of irritated customers, and you'll be pretty frustrated yourself!