Server Migration 101: Do Your Homework
For some in the IT community, "migration" is a dreaded word. Long hours, late nights, and countless challenges leap to mind almost immediately. These days, the word has even taken on ever-greater complexities.
Not that long ago when your colleagues in IT spoke of a server migration, they were likely referring to moving to the latest version of Linux or Microsoft from an OS perspective, but now this can mean so much more. When we hear migration these days we have so many questions. Is this on-prem, off-prem, private cloud, public cloud, or hybrid, perhaps? Are you migrating the server OS, or does the migration mean movement into the cloud, and if so, what's going? Workloads? Compute? Storage? Just asking these questions is enough to make your head spin — and we haven't even rolled up our sleeves and jumped into the real work!
So, I am going to try to narrow the scope a little because, frankly, to just discuss server migration is a bit too esoteric for a hardened IT geek. Let's tackle a couple of possible meanings: migrating to a new OS and migrating to the public cloud. Fair enough?
Migrating to a New OS Migrating to a new OS can be a bit of a mixed bag, as you likely have experienced in your career. Depending on your present server OS, the path to migration can be a stroll in the park or a walk on the wild side. Perhaps, you recall trying to make the trip from Windows NT to anything in this millennium?
For our purposes here, I will assume that the OS you are coming from is a modern system and what you are going to is a bright shiny new OS from one of the major players. If this is the case, then you don't have to look too far to find any number of tools that can help you. Of course before you decide to wave your magic wand (or Wizard as the case may be) and make this migration, all of the normal caveats apply: back-up your system, test your back-up to make sure you can restore from it, etc. Then, assuming you have taken the proper precautions, you are ready to go.
Before we dive into your next likely migration, a quick history lesson from the recent past.
A Quick History Lesson One of the most pressing migration points in recent years came with Microsoft's July 2015 deadline for the support of Windows Server 2003. In that case it was a bit of a double whammy. Microsoft already had two new server versions on the market, and for organizations to make the jump to Windows Server 2012 R2, it meant going from a 32-bit OS to a 64-bit OS. Not an easy or inexpensive task. For this reason, many of the organizations making this trip headed for Windows Server 2008 instead, leaving them one OS behind. For these organizations, they have simply kicked the can down the road and bought themselves a little more time before migrating their server OS, which in this case also likely will mean a hardware migration as well. Of course, as they wait, the cloud only becomes more attractive, and for organizations like these, offloading hardware costs might be enough to get them to make the move to something like Microsoft Azure. At least that's what Microsoft is hoping. We'll talk more about that in just a minute.
OK, where were we? That's right, migration tools. Whether you are migrating from Windows Server 2008 to Windows Server 2012 R2, or from Solaris or UNIX to Redhat Linux, there are any number of tools and processes to aid in this task.
If you are migrating within the world of Windows, the place to start is with Windows Server Migration Tools. As an administrator, you can use the Windows Server Migration Tools to help you migrate server roles, features, and operating system settings, as well as other data and shares. Redhat Linux also offers extensive migration assistance through tools and planning guides.
In addition, Redhat offers a series of labs focused on deployment scenarios and tools to assist you in preparing for your migration. With the complexities of each environment, it is important to plan your migration carefully using the best tools at hand, based on your given OS. Taking the extra time to practice aspects of your migration in the lab may aid you in the field and lead to a smoother transition overall. Of course, for some organizations, considering a migration means considering the larger question of whether servers should remain on-premises or make the move to the cloud. This brings to mind the second category of server migration that I wanted to discuss: moving to the cloud.
Migrating to the Public Cloud Today, when we think of server migration, often times, this is exactly the type of migration that is intended. With players such as Microsoft (Azure), Amazon (AWS) and Google (Google Cloud Platform), organizations have a competitive landscape from which to choose if they wish to migrate their storage, processing, and workloads off-prem and to the cloud. For these organizations, often the tradeoff in hardware upgrade costs, power, and ongoing maintenance make it well worth the move. Each vendor offers their own tools to help make your migration to the cloud as seamless as possible.
Migration Tools Let's say for instance you wanted to migrate your SQL Server and all of the important information contained in your databases from an on-prem SQL installation to Azure SQL. One of the first things you will want to do is test for SQL Database compatibility issues. To do this, you can use SqlPackage which is a command-prompt utility you can use to test for compatibility issues. If any are found, a report will be generated and you will need to address any issues before making the move. You also use the Export Data Tier application to get an on-screen display of any Kills that are detected.
Now if you do find compatibility issues, there are a number of tools you can turn to for help:
If you have tested your data and it is compatible, you've taken a big step down the path. To make it the rest of the way, Microsoft offers a number of different migration tools, depending upon the specific scenario. Let's walk through a couple of these and learn what to use.
What if we have a medium-sized SQL 2005 database? In this case, the easiest way to make the move is simply to run the Deploy Database to Microsoft Azure Database Wizard found in the SQL Server Management Studio. This is a fairly straight forward and painless process, particularly if you have done your homework first, and addressed potential compatibility issues.
Now what if you have a more challenging circumstance? Let's say that you have extremely low bandwidth and it would be nearly impossible for you to use your connection to migrate your medium-to-large database. What should we do in this case?
For this situation we would use BACPAC. We would first Export to BACPAC File and then simply Import from BACPAC File. Now, this process won't be quite as easy as clicking a button and being done, but it's nothing too daunting. You will need to export the SQL Server schema and all of the data to a BACPAC file first, and then you will import that same file into the SQL Database using the Export Data Tier Application Wizard in SQL Server Management Studio. Alternatively, if you really want to geek out, you can skip the GUI and use the SqlPackage command-prompt utility.
For our final challenge, let's say that you have an extremely large database and you suffer from the same types of connectivity issues as in our last scenario, or perhaps you have no connectivity at all, then what? In this case, we need to break things up for the migration. We will use the combination of BACPAC and BCP.
First, we will export the schema only to a BACPAC file. Then we will import our schema only from the BACPAC file into SQL Database.
Next, we will use BCP to extract the data into flat files. Finally, we will need to parallel load these files into the Azure SQL Database to complete our move to the cloud.
That wasn't so bad, was it?
Concluding Thoughts When it comes to the wonderful world of migrations, there's no shortage of questions or possible scenarios. I hope that by tackling several scenarios, we've expanded your knowledge and inspired you to learn more about your specific migration challenges. At CBT Nuggets, we are all about helping IT professionals gain practical answers to their everyday challenges. I hope you stop by soon to check us out!