Introduction (the necessity of converting a standard bare-metal server into a VM and backup to a cloud hosting service)
As of today, there’s no doubt of virtualization being the most discussed and developed aspect in the modern IT sphere. Therefore, engineers nowadays face more and more tasks that require quite specific knowledge, and there’s no way to avoid that. Case in point: just lately, I had to transform a few Windows Server 2016 R2 bare-metal servers (one of them was the domain controller) into VMs. UEFI served as a boot sector for every single one of them, which, as you can guess, was another obstacle.
I had to do it for the following reasons:
– A penny saved is a penny earned, and virtual environment enables you to cut down your expenses significantly;
– Infrastructure management has never been more simple;
– Great scalability possibilities;
– You can access your resources in the cloud anytime, anywhere, if you have the internet access and an appropriate device;
– Amazon Web Services and Microsoft Azure offer a chance for the whole infrastructure to go cloud, with multiple platforms all over the world;
– As I have already told you, as long as you have the internet connection, you’re good to go, and with 12 000 Starlink satellites from SpaceX, the internet will be available, well, pretty much anywhere. That’s not even mentioning the British OneWeb network!
But there’s always a “but.”
Virtualization isn’t a rookie on the market. There are already tons of hypervisors from different vendors and with varying levels of functionality and a whole army of VMs, ready for deployment. In most cases, each vendor has its own types of VMs, sadly, rarely compatible with their rivals. The ones everybody heard of are Hyper-V, KVM, and ESXi, but there are more hypervisors explicitly tailored for the specific tasks.
Now you can see how deploying the VMs for a particular hypervisor can affect another hypervisor. The very process of migration between different hypervisors or such triviality as replacing the equipment can become challenging tasks even for an experienced admin. The different cloud platforms provide various types of VMs too. The most common ones these days are *.vmdk (AWS Amazon) and *.vhdx (Microsoft Azure).
Of course, no one would want to do that if possible, but sometimes, pricelist planning, working priorities, or just a budget shortage can push you to the need to migrate VMs from one cloud to another.
For the reasons above, I have decided to divide the process of finding a suitable solution into two parts.
- Server virtualization – P2V
- Migration to cloud (Azure or AWS)
Searching for the available P2V conversion solutions have led me to the following options:
- Microsoft Virtual Machine Converter
- VMware vCenter Converter
- StarWind V2V Converter
In case you’re wondering why did I limit it to three most well-known variations, that’s because one of the options turned out to be perfectly corresponding to my needs! But, of course, there’s more to it than that. I can list the other solutions that come up to mind, but if you want more details about their primary functions and specifications, you’ll have to look it up yourself. Vembu VMBackup, Xtreme VM Migrator, Vision Solutions Double-Take Move, NetIQ PlateSpin Migrate, and NetApp OnCommand Shift are the next best solutions the money can buy. However, if you’re looking for free software, 2tware Convert VHD, Vmdk2Vhd, and VirtualBox are ripe for picking.
Testing and negative results
Now, let’s start with Microsoft solution – Microsoft Virtual Machine Converter. I suppose we can all agree that if Microsoft software developers don’t know the details of the necessary specifications, file types, and inner structure of a product, nobody does. Thus, if everything is ok, the conversion process should be as smooth as they come.
Download and start it up.
The next step is a conversion of a physical server to a VM (P2V) on Windows Server 2016 R2 with UEFI.
In 2 hours, start the VM with the connected VHD disk.
Then this message pops up: Details: There are blocking issues for the physical-to-virtual conversion: There is no BCD boot device found in the source machine, noticing that the conversion of an EFI boot machine is currently not supported.
As a result, all I have is black screen now.
Well, I guess now is the time to read the instruction! It says there that EFI is currently not supported. As for the specifications, the only supported servers are supposed to be Windows Server 2012 R2, Windows Server 2008 R2 SP1, or Windows Server 2012. The official support of all MVMC versions (1.0, 2.0, 3.0, 3.1) has been stopped at 03.07.2017.
Searching for a next solution and choosing the best one!
After hours of failed attempts of searching through FAQ and manuals, I have finally found some options to reanimate a VM, but they turned out to be quite tiresome. For instance, its either reconfiguring VM manually or outside software (to work with a VM where the loader was incorrectly written). However, none of these options fitted since what I wanted was finding a utility that could take care of the conversion process on itself. Nevertheless, what I did find were two software products with marvelous reviews, namely VMware vCenter Converter and StarWind V2V Converter.
VMware vCenter Converter
Basically, it’s just another vendor that created a software product tailored specifically for its own hypervisor and its own virtual environment.
Interestingly enough, unlike the Microsoft product, it does seem to support UEFI completely.
Still, always check for the list of supported OSs (in this case – quite a lot)
Converter Standalone 6.2.x supports the following guest operating systems:
- Windows Vista SP2 (32-bit and 64-bit)
- Windows Server 2008 SP2 (32-bit and 64-bit)
- Windows 7 (32-bit and 64-bit)
- Windows Server 2008 R2 (64-bit)
- Windows 8 (32-bit and 64-bit)
- Windows Server 2012 (64-bit)
- Windows 8.1 (32-bit and 64-bit)
- Windows Server 2012 R2 (64-bit)
- Windows 10 (32-bit and 64-bit)
- Windows Server 2016 (64-bit)
- CentOS 6.x (32-bit and 64-bit)
- CentOS 7.0, 7.1, 7.2, 7.3, 7.4, 7.5 (64-bit)
- Red Hat Enterprise Linux 4.x (32-bit and 64-bit)
- Red Hat Enterprise Linux 5.x (32-bit and 64-bit)
- Red Hat Enterprise Linux 6.x (32-bit and 64-bit)
- Red Hat Enterprise Linux 7.0, 7.1, 7.2, 7.3, 7.4, 7.5 (64-bit)
- SUSE Linux Enterprise Server 10.x (32-bit and 64-bit)
- SUSE Linux Enterprise Server 11.x (32-bit and 64-bit)
- Ubuntu 12.04 LTS (32-bit and 64-bit)
- Ubuntu 14.04 LTS (32-bit and 64-bit)
- Ubuntu 16.04 LTS (32-bit and 64-bit)
Also, it wouldn’t hurt to check for the list of VM conversion variations.
Now, let’s install VMware vCenter Converter. Start it up, and it’s time to get into details of how this converter exactly works. The rest is quite simple. Find convert machine, press on it, and follow the steps of conversion wizard. However, you should take into consideration that the only available conversion format is VDMK, and conversion goes only to the virtual environment built on ESX/ESXi. Select your server, start the conversion process, wait a little bit, and voila – everything is done! Start your newly converted VM on the ESXi host. Everything is working just fine. The conversion is successful. However, you will always need something more, and no wonder that I wanted my solution to be universal. Spoiler alert – I have found it!
Even though VMware vCenter Converter turned out to be overall satisfactory, I have decided to give StarWind V2V Converter a shot. The vendor, naturally, promises full compatibility with every major VM type:
- RAW image .IMG – StarWind Virtual SAN, and other software;
- MS VHD/VHDX – thick- and thin-provisioned;
- VMware VMDK for ESXi – thick-provisioned;
- VMware VMDK for Workstation – thick- and thin-provisioned;
- VMware VMDK stream-optimized for OVF;
- QCOW2 – QEMU (KVM);
- Physical to virtual from Windows Machine;
- VMDK files – all versions ranging from 5.x to 6.7;
- remote connection – all versions ranging from 5.5 to 6.7;
The product supports conversion to both sides. Converting to any VM and from any VM is giving StarWind V2V Converter an edge over its analogs. Also, it supposedly should completely support working with two most standard hypervisors such as Microsoft Hyper-V Server and VMware ESXi Server as well. Direct conversion from one hypervisor into another is, too, on board:
- Microsoft Azure to a Microsoft Hyper-V Server
- Microsoft Azure to remote VMware ESXi Server
- Microsoft Hyper-V Server to Microsoft Azure
- Microsoft Hyper-V Server to Microsoft Hyper-V Server
- Microsoft Hyper-V Server to VMware ESXi Server
- Remote VMware ESXi Server to Microsoft Azure
- Remote VMware ESXi Server to remote Hyper-V Server
- Remote VMware ESXi Server to Remote VMware ESXi Server
Yes, yes, I know what you’re thinking. Some outside vendor, without even its own hypervisor, is offering a free product that is supposedly perfect? Admittedly, this sounds too good to be true.
And that’s not even all there is. Also, it should work fine not only with converting a bare-metal server into a VM but converting a VM to the cloud as well. However, as any person working in IT, I treat “Trust, but verify” proverb very seriously.
So, let’s get on with testing. After filling in a small form, you’ll get a link for downloading delivered to your mail almost immediately.
Begin the installation process.
Now, start StarWind V2V Converter. In the minimalistic yet efficient Web 2.0 pop-up window, you’ll have only to select location of image to convert.
I can’t help but notice the diversity of choices, which is quite pleasing to the eye. Still, we are here for P2V conversion, so, for now, let’s stop at that.
Click Next and continue.
The next pop-up window offers you to select physical data to convert. Now, I know that some people may think that such simplicity is a bit tedious and insecure. Still, those people most definitely have never ever tried to soldier on through the walls of various pop-up windows with options and items of all shapes and sizes. Sometimes it can be hard to find and select the necessary option even for quite an experienced user, let alone a newbie. Following simple steps and narrowing it down to a few basic choices is undoubtedly the right call.
Click Next and continue.
Select only the system disk.
As a next step, select location of destination image. Click Next and continue.
Of course, it is excellent that conversion both to VMware ESXi Server and Microsoft Hyper-V is available, but since, in my case, Hyper-V is the only option, naturally, I select it.
Fill in connection parameters. Click Next and continue.
Check settings of the resource. Select the place of keeping the VHDX file of the VM.
Thanks to the functional interface, you can see how much space is required and how much of it is free. That way, if there’s not enough space for the VM, you’ll know it right away and not from a system message when the time is already spent pointlessly (yes, I’m looking at you, Windows).
The conversion has started now, and we’re about to see whether the comfortable and simple setup wizard guarantees the smooth functioning of a product. It’s not necessary to watch it relentlessly though, get on with other things since it may take a while. When everything is finished, check if it is working by launching the VM on the hypervisor.
Congratulations, it is working.
Enter the credentials. The desktop is here, and it seems like everything is going how it is supposed to.
Gotta admit that so far StarWind V2V Converter is doing great. It did precisely what it should have done without a fuss and outside software. Not only did that product convert the physical server to the VM, but the VM is ready to go right after conversion. Half of the work is done, time to move to the second stage – conversion to Azure.
Basic requirements are as follows:
- While starting the system, NICs will be launched as well (Linux);
- DHCP assigns the IP address to the NICs in the VMs;
- Remote access is supported (RDP for Windows, ssh for Linux);
- Firewall isn’t blocking RDP\ssh connection;
- VMs have been stopped.
Everything seems to be clear. Time to select the VM on Hyper-V, follow setup wizard, and enter Azure credentials.
Before working with Azure, follow this link. For further work, you’ll need your Microsoft account. Once you’re in there, create Storage accounts and select the “StorageV2” account (Home – Storage accounts – Create storage account).
Select the VM.
Follow the wizard and select Azure as the location.
Enter Azure credentials.
Select Storage accounts to store your VHDX file with the VM image.
The only thing to do now is wait.
Necessary to mention that for this process, it would help if you had a reliable internet connection with high upload speed. Otherwise, you’ll get stuck. Moreover, if this server is in use for a long time and it has a quite prominent size with all upgrades and adjustments, I’ll strongly advise against using the WiFi network too. Try Ethernet or Fiber-Optic instead.
After everything seems to be done, time to go to the Microsoft Azure account. Testing the converted VM is required. Select Virtual machines, pick the necessary VM, connect to it via RDP, and start working! For quick testing, there’s a boot diagnostic tab in the Azure interface where you can see the boot window of the selected VM.
As you can see, this VM is ready and steady.
Although it’s not usually the case with Ethan Hunt, my mission turned out to be quite possible! Both migrating and converting processes were completed with the utmost success. As you can probably guess yourselves, the more diverse and broad market becomes, the more big companies need tools for migration between hypervisors from different vendors or simple P2V conversion. V2V made it look easy. The efficiency of StarWind V2V, like any other software product in general, is dependent on the specifics of a task. However, I can tell that it’s a perfect fit for the most common scenarios.
Of course, you’re probably wondering why it is free at all if it were so good. As the response from the vendor support team goes, it is for attracting new clients for other products and promoting their reputation. However, I still think that one day they’ll release a new, improved version, not so free by then. Speaking of this moment, StarWind V2V is basically a Swiss Army knife for migration processes, and I can hardly name something better in this regard.
Itís hard to come by well-informed people in this particular topic, but you sound like you know what youíre talking about! Thanks