Skip Ribbon Commands
Skip to main content

Migrating Server Environments to Azure – without using PowerShell

Move your VMWare servers to Azure without typing (much)

Andrew Walman

16/02/2015

Here is an example of how to migrate a small 3 node SharePoint environment from VMware to Azure without using any Powershell.

1: Audit the existing environment

You'll need to know all the standard stuff really: server names, IP addresses, roles, resources, disk sizes and disk layouts. Write all this down for later.

In this example with have three simple machines:

  • AD-01: An Active Directory server with a single 40GB drive running Windows 2008 R2, 2 GB RAM and a single processor. Internal IP Address: 172.16.0.144 (static)
  • SQL-01: An SQL server with a single(!) 40GB drive running Windows 2008 R2, 4 GB RAM and dual processors. Internal IP Address: 172.16.0.145 (static)
  • WEB-01: A SharePoint server with a single 40GB drive running Windows 2008 R2, 4 GB RAM and dual processors. Internal IP Address: 172.16.0.146 (static)

We'll use this information later to size the machines and configure our Azure virtual network

2: Prepare Azure

Depending on what you run in Azure already, you may need some or all of the following:

  • A new virtual network, or a new subnet in an existing vnet, that will accommodate these machines.
  • A storage account with a VHDs container.

For this example, we created a new storage account to separate these machines from our existing workloads, and a new virtual network, in which we provisioned the subnet 172.16.0.0/24. Having a dedicated vnet for a set of machines enables them all to talk to each other, plus you can add stuff like DNS servers (which we will in this case) and site-to-site connectivity for hybrid scenarios if needed.

3: Convert the VMware Disks to Hyper-V Disk Format

There's a variety of ways to do this. If you have a lot of machines to convert, and have access to the VMware hosts, you can point Microsoft's Virtual Machine Convertor tool 3.1 at your VMware farm and it will carry out the conversion for you, even moving them directly into Azure. In this case though, we've received VMWare backup files of the machines, so we need to do an "offline" conversion of the disks from the VMware format to Microsoft's VHD format (do not convert to VHDX). We use Starwind's V2V Convertor, http://www.starwindsoftware.com/converter, but there are loads of others out there. Just ensure you convert the disks to fixed-size VHD files.

4: Prepare Machines in Hyper-V

Create a new VM in Hyper-V and attach your freshly converted disk to it. We've found configuring it as a Gen1 machine with an IDE disk plays well with Azure. Once the machine has fired up, you'll need to make the following changes:

  • Remove VMware tools/extensions, and update the Hyper-V extensions – reboot them a few times to make sure all the new devices are detected.
  • Remove any static IP configuration and ensure the only network card in the system is set to DHCP.
  • Ensure the remote desktop service and port are up and running.
  • Shutdown the machines.

5: Upload the VHD to Azure storage

As we're avoiding using PowerShell, we use Cloudberry Explorer (http://www.cloudberrylab.com/free-microsoft-azure-explorer.aspx) to upload the disks as page blobs to our Azure storage account, VHDs container. In cloudberry explorer, you just use the "copy as page blob" button to accomplish this, to copy the files from local storage to Azure. To connect Cloudberry to your storage account, you just need your storage account name and access key (which you can get from the Azure management portal – save this for the next step too).

6: Resize the disks in Azure

In this case, the source disks were really small, so we wanted to increase their size. Most of the Microsoft documentation refers to resizing disks in Azure as being a Hyper-V operation – i.e. something we should have done in step 4 (or download them again, resize and reupload – not very efficient). So we found this solution from Maarten Balliauw (http://blog.maartenballiauw.be/post/2013/01/07/Tales-from-the-trenches-resizing-a-Windows-Azure-virtual-disk-the-smooth-way.aspx) where he's manipulating the VHD file directly within Azure storage. This method seems to work very well, and takes less than a second. Very easy when the disk has yet to become a VM. Admittedly it's a command line programme, but's still not PowerShell! The four parameters needed are the new disk size (in GB), the URL of the blob (copy from the Azure interface or Cloudberry explorer)

7: Convert the Page Blob to a Disk

In order to attach the disk to a VM as an OS disk, you have to create a disk from a VHD in the "disks" section of Virtual Machine within the Azure management portal. Just click create and point it at the appropriate blob in the storage account, ensuring you check the box for "Contains Operating System". Don't worry about cache settings – these get updated when it gets attached to a virtual machine.

8: Create a Virtual Machine from the Disk

In the virtual machines section of the portal, create a new virtual machine from the gallery, and in the "my disks" section, you should find your newly created disks. In this case, we created the machines as "basic" tier, as there was no high-availability requirement, and renamed the first cloud service so it was more descriptive than the machine name. The second and third machines were then joined to the same cloud service, whilst all three machines were connected to the same vnet. We created extra endpoints for the SharePoint server. Completing this wizard provisions the virtual machine and starts it up so you can connect to it through RDP – takes about five minutes. If you have an Active Directory server, fire that up first.

9: Finishing Up

Depending on the services you're migrating, there's a number of finishing up steps you can do. As some of these require Powershell, these are up to you!

  • Assign a "static" internal address to the Active Directory server and direct the vnet DNS setting to use it (you can generally get away with the long-term lease it gives the AD server when you fire it up, especially if you put your AD servers in their own subnet)
  • Open up ports as endpoints to the public internet
  • Create additional machines to create an availability group for the service you're placing in Azure.
  • Expand the disks within the OS to use the new space.
  • Move the page file to the temp disk (see below)

With our three machines, we just set the vnet's DNS server to be 172.16.0.4. They then functioned exactly as they did in VMware – with a bit more disk space (Azure also automatically gives each machine a "temp" drive that's useful for paging too)

10: Other Uses

  • To create images instead of disks (so you can create multiple machines from the same image) you just need to sysprep your Hyper-V disk before you upload it, then in step 7, create an image instead of a disk, and in step 8, use "my images".
  • You can also upload the data disks of a machine and attach them to any Azure machine using this same process. Just leave the box unchecked in step 7. 

 About us

Fuse Collaboration Services is a Cloud Solution Provider and Microsoft Gold Partner specialising in delivering SharePoint, Skype for Business, and Azure cloud-based solutions. Based in Northampton, UK.

Microsoft Gold Partner Logo showing 5 competencies

Read more

 Latest Tweets

 Latest Blog

 

 

Get single sign-on for all apps3995<p class="lead">​​​Are you looking for an identity-as-a-service (IDaaS) solution that solves your biggest IT challenges without compromising user experience?</p><p class="lead">With Azure Active Directory, the Microsoft IDaaS solution, you can streamline the employee experience with single sign-on capabilities and reduce the complexity of managing identity, security, and access to your company’s critical data. You get a proven solution that allows you to&#58;​</p><hr />​ <div class="lead"><div class="row"><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image004.png" alt="" />​ ​ <div class="media-body">​​Quickly adopt cloud services​</div></div></div>​ <div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image006.png" alt="" /> <div class="media-body">Improve application security</div></div></div>​ ​</div>​ <div class="row"><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image008.png" alt="" /> <div class="media-body">Empower employees with access to world-class cloud apps</div></div></div><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image010.png" alt="" /> <div class="media-body">Monitor application usage and protect your business</div></div></div></div>​ <div class="row"><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image012.png" alt="" /> <div class="media-body">Easily and securely manage employee and vendor access</div></div></div><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image014.png" alt="" /> <div class="media-body">Secure remote, mobile access to on-premises apps</div></div></div>​ </div><div class="row"><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image016.png" alt="" /> <div class="media-body">Implement consistent, self-service application access management</div></div></div>​​​ </div></div><hr /><p class="lead"><a href="/_layouts/15/FIXUPREDIRECT.ASPX?WebId=4fc45909-2b6d-48b9-bcf9-a446e9d472d6&amp;TermSetId=c98895cd-d37f-4406-9cff-5480b4f829b6&amp;TermId=218eb0be-10f6-490a-82a7-a7fd47c8de90">Contact Fuse</a> to discuss how we can help implement IDaaS within your organisation, using our expertise and experience to reduce risk and project length.​</p> <div class="well well-lg"><p class="lead">Are you curious about how Azure Active Directory can work for you? <a href="/_layouts/15/FIXUPREDIRECT.ASPX?WebId=4fc45909-2b6d-48b9-bcf9-a446e9d472d6&amp;TermSetId=c98895cd-d37f-4406-9cff-5480b4f829b6&amp;TermId=721159e3-34c0-40dc-8028-ae2e2f2e79e4">Let us show you how​</a>!​</p></div>​​a.walman@fusecollaboration.com | Andrew Walman | 693A30232E777C6675736563735C612E77616C6D616E i:0#.w|fusecs\a.walman17/01/2018 00:00:002018-01-17T00:00:00Zno matter where they liveAzure Active Directory, the Microsoft IDaaS solution23/02/2018 23:55:232757htmlFalseaspx

 Contact us

Our address
12 Brookfield, Duncan Close
Moulton Park, Northampton
NN3 6WL
P: +44(0)1604 797979
Contact Us