Ravello has been featured on our blog in the past already several times. Our readers know that it's a cool service for learning virtualization or expanding your home lab and run some VMs in the cloud. You have probably read some of our How-to articles to gets you started. During those times, Ravello was a small startup offering nested virtualization, which was very cool but kind of not ready for production workloads. Ravello Hardware Assisted Nested Virtualization And Bare-Metal Options For VMware VMs will get detailed today in this blog post.
Today we bring some major news about Ravello which will interest many VMware admins as their new offering allows you to run your VMware VMs on a hypervisor installed on a bare-metal server hardware with almost native performance and also Hardware Assisted Nested Virtualization option.
Ravello claims up to 14x speed increase compared to the previous offering with software assisted virtualization. Let's talk about Ravello and what they do for those of you who do not know them first.
Ravello allows you to upload and run your on-prem workloads, including multi-VM applications, into the Oracle Cloud Infrastructure (OCI) without any changes to those VMs. Without the need for any reconfiguration, including networking. Including those networking which exists multi-VM apps as well. You can also construct your VMs and apps within Ravello, but obviously, this needs more time. The idea is to pick your already configured VMs, upload them to Ravello, and run your workloads there.
One of the first problems you have when you want to migrate some workloads to the public cloud, which is not based on VMware cloud, is the fact that you have to completely re-install the application, reconfigure the storage, and also reconfigure the networking. You must basically start from scratch.
With Ravello, you can keep everything. Storage, networking, all config. You don't have to “touch” your production VMs in order to migrate them to Ravello. You simply Upload your VM to Ravello Create an application > Drop the uploaded VMs to the canvas > Hit Publish and you're done.
What's new now is the fact that you have a possibility to run those VMs on Ravello HVX hypervisor installed directly on bare-metal so the VMs runs with almost native speed. Previously their offering was only software assisted virtualization with binary translation.
With their latest innovations, HVX’s nested virtualization engine supports three modes when running VMware VMs. These nested virtualization modes are:
- Software Assisted – For AWS/GCP clouds not supporting or exposing the hardware assist capabilities. Still OK and acceptable for workloads not needing top of the class performance. (their initial offering)
- Hardware Assisted – for clouds supporting virtualization extensions allowing multiple guest OSs to share the same underlying hardware. For example, Oracle Cloud Infrastructure supports those extensions. (Very Good performance)
- Direct on bare metal (Best performance) – HVX is installed directly on the bare metal hardware so the performance of the VMs is optimal.
Update: There are differences in performance with those different modes. The difference between Hardware Assisted and the Bare-Metal option is not that big. Initially, I thought it was. The hardware assist is several times faster than the software assists with binary translation and an only little bit slower than the “bare-metal” option. But it depends on the application workloads. You don't get the same performance every time. Whether it is file I/O, network I/O or CPU intensive workload.
Ravello And Nested Virtualization
As I said, the HVX hypervisor is now able to be installed and runs on bare metal on Oracle Cloud Infrastructure (OCI). HVX can also run as a VM and benefit from hardware assisted nested virtualization option. Both modes offer near-native performance, like VMware ESXi.
In many cases, the software-based nested virtualization with binary translation is too slow for production workloads, especially for VMs with a high number of vCPUs and many IOPS intensive VMs. Screenshot from Ravello Oracle Blog showing the three modes. You can clearly see the benefits of eliminating the nested virtualization layer. Fewer layers = better performance, everyone knows that.
The thing that Ravello now has the hardware assist nested virtualization and bare-metal options to run VMware VMs, you not only have up to 14x performance improvements but also you don't need any VMware license to run those applications.
Production-ready and scalable
When running VMs in hardware-assisted nested virtualization mode or directly on bare-metal, the performances are optimal. You can now run much ‘beefier’ applications (up to 32 vCPUs, 200GB RAM) and benefit from up to 14x performance gains. In some cases even more. This is making Ravello a really appealing and viable solution to execute production workloads.
As being said, you can have VMs with 32 vCPU with up to 200 Gb of RAM. And compared to your environment, which might be limited in size, you can run any number of those in Ravello cloud.
Networking was (and still is) always one of the major trouble and source of fears for some. Having Ravello to be able to take care of networking setup, it really helps.
Often there are vApps or multi-VM applications executed within VMware environment. Ravello takes care of those too. You upload those multi-vm applications into Ravello and the networking is configured automatically so those VMs can talk to each other the same way they were talking when running on-premises.
Ravello automatically compiles a private encapsulated network for this application. When you uploaded the VM, metadata will be parsed to extract the networking information and then a network is constructed to fit the needs of this application.
Note: You can always adjust the networking settings once you have your VMs at Ravello.
While still in the Network tab, you can adjust the IP settings, add an additional vNIC, change static IP into DHCP or change type of vNIC. Very flexible.
How to Move my VMs to Ravello?
We'll try to give you an overview of some details on how it is possible to move a VMware workload to Ravello cloud. Basically, we have already done that in the past, but the Ravello tools have evolved since then a little bit so we prefer to show that again. Especially the possibility to move multi-tiered applications which will continue to talk to each other the same way as on-premises might be an interesting example.
I assume that you have a VMware infrastructure running some production VMs and you want to “offload” part of your environment to the Ravello cloud. We'll show you how easy it is.
Step 1: Download Ravello Import tool.
From the Ravello VM Import Tool page and import your VMs using the Ravello console. You can install the VM Import Tool on a Windows, Linux, or Mac OSX host. The utility is a web-based and allows multiple choices depending on what you want to upload (a VM, ISO, OVF…)
I tested the first option “Extract and upload VMs from vCenter, vSphere or ESXi”. There are other options allowing you to upload OVF, OVA, ISO, VMDK, QCOW (QUEMU copy on write file) or other types. Note that you can upload only powered OFF VMs. If you can't shut down your VMs for longer periods, I'd suggest of creating a clone which you can shut down and upload to Ravello.
You're asked to connect to your vCenter and select your VM. After selection hit the Upload button. Do this for all VMs you want to upload. I haven't found an option to “multi” select several VMs at once, but it does not matter. Here is the progress window from the lab. I picked two Jenkins VMs (Master and Slave node) which are configured locally to talk to each other.
The process, in my case, the process was is kind of long as I don't have an “enterprise-class” pipe which allows for speedy uploads. So it took me a while until I got my VMs up in the Ravello cloud. While it uploads you can still do few things, such as Create Application, which is kind of an “envelope” for your construct. Your VMs live Inside of an application.
Step 2: Create an application.
After logging to your Ravello online console, you'll see an orange button “Create Application”. This will create a new application at Ravello. Put some meaningful name.
So far so good. As you can see, the UI got us directly to the Canvas TAB (see below). And once your VMs are uploaded to Ravello you can drag them to the canvas from the left to the right. If you pay attention, you can see that all important buttons are in orange color. This time we have a new button Edit and Verify VM allowing us to review what the VM will have as a configuration, storage, CPU, networking…. so you can just accept as is or change.
Step 3 – Publish.
You can have many VMs inside an application. (10, 100, 1000….. ). The minimum number of VMs is one. Once done you check if everything looks good and hit the Publish button.
As you can see, the process is very straightforward and does not necessitate much effort from the admin. You don't have to convert those VMs, you don't have to reinstall your applications, or do many configurations. In our example, we did not even have to do anything for our two VMs for them to work together as they did on premises.
And this is valid for much larger applications, clusters, enterprise DBs, etc. The only potential issue is perhaps just the upload speed because the fact that you cannot upload running VMs can be mitigated by cloning or by restoring from backup first, then uploading to Ravello cloud.
Hardware Assisted Nested Virtualization Option
In this mode, the system allows multiple guest OSs to share the same underlying hardware. Oracle Cloud Infrastructure supports those extensions. It's a very performant mode which is the default performance mode when publishing your application to 3 different regions you can choose from:
- US East 5
- US Southwest 1
- Europe Central 3
If you publish to any of those 3 regions, you don't have to modify your VMs with an advanced parameter (as an example below).
HVX on Bare Metal Option
In this example, we will allow the VMs to run directly on bare metal. Not all regions do have this option. If we hit publish without activating the advanced option to any of the 3 regions of OCI mentioned above, the application will run in the “Hardware Assisted nested virtualization” option.
The advanced option has to be specified before hit the publish button. You can find it when you do this:
Select the VM on the canvas > General > Scroll down > Advanced configuration link
This will open an overlay window where you'll find a preferPhysicalHost advanced option. And then click on the right-hand side, you have to specify the true value there. Click OK.
Then when you click Publish you'll get only 3 regions where you can publish your application. (after first clicking the Optimize for Performance). As on the image below.
So far only those 3 regions are able to benefit the bare-metal option, but more regions will be added soon.
The Ravello process is very simple. The fact that you don't have to worry about reconfiguring the VM is a real time saver.
They still have their previous options with software assisted virtualization for AWS and Google Clouds which does not support exposing the hardware assist capabilities or bare-metal virtualization. But it is cheaper and acceptable for workloads which do not need such a top of the class performance.
I can see a real potential here for VMware applications, VMware VMs which now can benefit almost native speed. The fact that you don't have to even think of getting an additional VMware licenses to be able to do that, is another positive point.
Lastly, there is a good news for vExperts as with your vExpert account you can try the bare-metal option with your vExpert access. If this is for your own tests of a production environment of your company or for the lab, you're free to test it. Ravello definitely moved forward.
Check Ravello website here.
More about Ravello on ESX Virtualization:
- Create a simple VM in Ravello
- Configure RDP for your VM in Ravello Cloud
- Assign a Public IP Which Persists Across Reboots for Ravello VMs
- How to create a multi VM application In Ravello