Introduction
Its quite common to have a need to move a Windows server from one hosting location to the cloud - Azure in this example. The source server may be on-premise or at a commercial hosting site, either way you need some sort of tool to make the migration go smoothly.
There may be limitations on how much access you have to the server - perhaps its just Windows remote desktop, and no access to the underlying hardware and/or hypervisor. This is a situation experienced recently with a migration of a Windows Server from Nutanix into Azure.
Limitations in the existing environment
- In this example, the Windows server was running inside Nutanix hypervisor at a commercial data centre. No access to the hypervisor was possible, and crucially no possibility to spin up temporary additional virtual machines - the hosting provider would only permit a 12 month minimum contract for this temporary machine, negating any cost savings we may see from a cloud migration.
- This limitation on additional resources is a key decision point - if you can easily spin up additional servers, then skip this guide and follow the standard Azure Migrate route - fully documented by Microsoft Azure Migrate - Cloud Migration Tool | Microsoft Azure
- The Azure Migrate product is also useful if you have several servers to migrate at the same time.
Introducing Starwind V2V Converter
- If you are not familar with Starwind, they have been building virtual SAN and disk conversion software for decades, and they have a very useful tool called v2v converter - and amazingly its free of charge. https://www.starwindsoftware.com/starwind-v2v-converter
- The tool can be used to migrate and convert virtual disks of various types to several cloud providers, all the information is available on their website so we won’t repeat it here.
- The software will copy all local disks to Azure, configure a virtual machine and power up the server in the cloud.
- The instructions for migrating a Windows server to Azure can be found here StarWind V2V Converter Help : Using StarWind V2V Converter with Microsoft Azure
Lessons learnt
- Whilst the V2V converter works great, its slow to upload data in Azure - think several hours, this appears to be a limitation in how the software is written.
- The converter allows you to specify what Azure VM instance type you want to use - but it expects these to have “accelerated networking enabled” - the converter will fail if this is not the case (you can re-size the machine after the migration is complete)
Pre-migration activities
These are steps you should consider before you attempt a migration:
- Disk housekeeping - go through the source machine and delete old files/backups, generally old debris - the smaller the amount of data, the quicker the migration.
- Can you re-size the disk partition sizes before migration? Azure expects disks to be in multiples of 64GB crossing over the next boundary increases cloud costs. A 64GB disk is lower cost than a 70GB disk (which has to be deployed as 128GB)
- Do you currently send email from your server on port 25 (SMTP)? If so, this will be completely blocked by Azure as this port is not permitted and emails won’t be delivered. Consider adopting a different email sending system like Azure Communication Services or SendGrid.
- Take time to determine what network requirements the server has - what does it communicate with, these rules will be required to enable a network security group (basic firewall) around the migrated server to improve security.
- Rightsizing: Identify which VM instance type you will migrate to. Review the performance of the existing server. Do you still need 8 cores and 64G of RAM? Size appropriately - you can always scale up after migration in the cloud - start small.
- Consider if burst instances (B series) machines can be used. You may find a higher vCPU burstable instance (B8 with 8 vCPU) is more performant and lower cost than a non-burstable instance like D4 with 4 vCPU. This all depends on your workload and “spikiness” of the CPU.
- If high disk throughput is needed, burst instances have limitations on bandwidth. This isn’t normally a problem on webservers which end up caching most of the files.