7 Steps to Server Migration Success

March 21, 2011

It's been a long journey: Four years ago you paid a premium for your humble domain, and things have changed a lot since then. You want to move to a newer, cheaper, nicer place, but you dread the process of collecting all of your stuff and moving it somewhere else. What's the best way to pack it up? Will it be safe during the move? What can I throw away to make this migration easier? What about your mail? You don't want to miss anything in the midst of your move. Doesn't this sound like the last time you moved to another house? The funny thing is that while all of those questions could be describing a physical move, we're actually talking about migrating web servers.

At some point, you'll have to face moving from one server to another. Hopefully it's in the same "neighborhood" or network since that will make the speed of the move a lot faster and less expensive ... especially if the neighborhood has free private network traffic and incoming bandwidth like ours </plug>! Regardless of where you're moving your data, there are seven key steps to preparing and executing a successful server migration:

1. Prepare Your DNS
When you move your site(s) to a new server, you will likely get new IP addresses. With the advent of DNS caching, once you change your IP, it can take up to seven days before the changes propagate throughout the Internet. To keep this from happening, your first step in preparing for the migration is to change your DNS record TTL (Time To Live). This value designates how long your DNS entries should be cached.

It's best to do this step several days before you plan to move. I suggest you do it at least a week in advance to cover at least 95% to 99% of your traffic. I would also change or remove any SPF records if you have any. Details: http://en.wikipedia.org/wiki/Sender_Policy_Framework

2. Set up Your New Server
Make sure your new server has the correct operating system installed and ready and that all hardware meets your applications' specifications. Decide how you wish to provision your site's IP addresses and make note of any differences.

3. Tune Your Server
Check your file system and make sure your partitions are set up as you need them. Set up RAID if required. Most hosts will set up RAID and your partitions for you and even provide you with test results of the hardware ... At least we do </another plug>! This is also the perfect time to implement any security practices within the OS and firewall (if installed). It's important to complete these steps before you get too far because they're much easier to do without content on the server.

4. Install Base Applications
Once you verify your server configuration, set up your operating system and secure your new server, it's time to install the supporting software you plan to us. Examples include webserver, email server and database server software and any application server software. Prepare a sample web page to tests that each of the pieces of software is installed correctly to confirm functionality.

5. Begin Data Migration
Now you're ready to do an initial data migration. Due to the enormous variance in types of data, kinds of servers, amounts of data and applications, how you proceed with this step can vary dramatically. Databases might require a backup and restore process while static data may only require the use of a tool like rsync.

The best way to complete this step is to do it during off-peak times. Understand how long it'll take to move all of your data, and set aside a conservative window to complete the move.

Once the data has been migrated, you should be able to test your website application at its newly assigned IP address.

6. Move from Old to New
Now that you've extensively tested your new server, it's time to set an officical move date and time. By now, your DNS changes have taken hold (assuming you changed them a week ago), and you are ready to throw the switch on your new infrastructure. Depending on the nature and size of your site, you might want to notify users of a maintenance window since service might be temporarily interrupted in this process.

During this window, you'll complete five tasks:

  1. Take down your site on the old server. You might want to put up a maintenance page to let people know about the scheduled work being performed.
  2. Migrate database changes and / or data changes.
  3. Confirm that your site is working properly on new server via the IP address.
  4. Change your DNS records to resolve to your new IP address.
  5. Remove the server maintenance page and redirect traffic from that page to the new server.

Once these steps have been completed, the new server will have up-to-the-minute data, and all new traffic receiving the current DNS information will be sent to your new server. All traffic that has old DNS information will be sent to the old server and redirected to the new server. This allows for all traffic to be delivered to the new server regardless of what may be cached DNS.

7. Enable / Recreate Automated Site Maintenance Jobs
To complete the migration process, you should enable or recreate any automated site maintenance jobs you may have had running on the old server. At this point, you can change your TTL values back to the default, and if you disabled an SPF record, you may restore it after a few days once you are comfortable that the Internet recognizes your new IP address for your domain.

This migration framework should be considered a very high-level recommendation to facilitate most standard server migrations, so if your architecture is more complex or you have additional configuration requirements, it might not cover everything for your migration. Migrations can be daunting, but if you plan for them and take your time, your site will be up and running on a new server in no time at all. If you have problems in the migration process or have questions about how to best handle your specific migration, make sure to have a professional sysadmin on call ... So just keep SoftLayer's number handy </last SoftLayer plug>.

-Harold

Leave a Reply

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • You can enable syntax highlighting of source code with the following tags: <pre>, <blockcode>, <bash>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. The supported tag styles are: <foo>, [foo].
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.

Leave a Reply

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • You can enable syntax highlighting of source code with the following tags: <pre>, <blockcode>, <bash>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. The supported tag styles are: <foo>, [foo].
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.