This post is intended to help you understand how you can migrate your classic (Service Management or SM) Azure virtual machines from an old Azure subscription to a new CSP subscription where the only API available to you is Azure Resource Manager (ARM).
Official Migration Options From Microsoft
This will be a short paragraph. There are no official migration paths to Azure in CSP. The official text that CSP resellers get from Microsoft is nearly as short!
What Options Have You?
Let’s start with the painful options:
- You do nothing and leave machines in an old subscription. You can migrate them to ARM within the old subscription using the official migration solution from Microsoft, but it means that you cannot avail of the customer/partner benefits of CSP.
- Rebuild the VMs in CSP and migrate your data (using application features), maybe over a VNET to VNET VPN. Eeeek! There’s a lot of work, but you can get into CSP with your data in sync.
And then there’s what I want to talk about: migAz, a solution that a Microsoft employee (still not supported) has shared on GitHub.
The migAz toolset will:
- Record your old deployment as what it would look like in ARM using a JSON file.
- Create a listing of disks to move in a second JSON file.
- Allow you to create the VMs and their dependencies in the CSP subscription.
- Create a one-time snapshot of the original disks and copy them (inside of the Azure network) to a new storage account in the CSP subscription.
- Fix up the ARM deployment and start your VMs in CSP.
- Then you can redirect users to your CSP deployment.
Downtime Versus Data
The disk copy is done using a one-time snapshot. So consider this:
- Users are using your services and making data changes.
- You copy the disks from old services, which are still running, to the CSP subscription.
- Users are continuing to use the old services and making data changes.
- You switch users over to the CSP deployment.
That means data changes between 1 and 3 have been lost. So you have to make a choice from the below options:
- Switch off the virtual machines in the old subscription before the move.
- Don’t use migAz with data machines. Find another method.
- Leave all your machines running while copying with migAz. Deploy the CSP solution with a different network address. Connect the old deployment with the CSP one, maybe using VNET-to-VNET VPN, and use application sync features to keep data synchronized from the old system to the CSP one. Perform a switchover at a time of your choosing.
I’ll show you how to use migAz in a later post.