Xen Orchestra 5.95
Get ready for our May release packed with exciting updates, including the first preview of XO 6, significant market recognition, and major improvements across our stack!
It's time for our May release! This month, our main focus has been on advancing XO Lite and XO 6, with the highlight being the first visible preview of XO 6. Beyond displaying a few new components, this preview showcases our significant progress under the hood, introducing innovative mechanisms for communication between the server and the web interface. As always, this is not the only update we have for you. We have also made numerous improvements across various parts of our stack. Enjoy the latest enhancements!
👨🚀 Project & Community
May has been a busy month for us, as usual. We gained significant recognition from the market, with notable mentions from Gartner and CommVault. These are major names, and their acknowledgment is a testament to our progress and impact. Moreover, we have been successfully converting an increasing number of very large customers, including Fortune 500 companies, from VMware to our stack. This shift is driving demand for even larger alliances and new features, propelling our growth and innovation.
More recognition from Gartner
We have been acknowledged as a "Representative Vendor" in the Gartner Market Guide for Integrated Systems. This prestigious recognition places Vates alongside industry giants like Broadcom/VMware, Microsoft, and Nutanix. It underscores the reliability and performance of our solutions, XCP-ng and Xen Orchestra, highlighting our growing reputation in the virtualization market. This acknowledgment is a testament to our commitment to delivering top-tier, open-source virtualization solutions tailored to evolving customer needs.
The full article is available below:
A growing ecosystem
We have expanded our ecosystem by adding more third-party software vendors. The most recent addition is CommVault, a leading backup solution provider in the market. CommVault now offers native compatibility with XCP-ng, enhancing our platform's backup and data protection capabilities. This integration underscores our commitment to providing robust and versatile solutions for our users!
We also had a dedicated article from Starwind doing a recap on our stack:
For more information and to discover the other third-party vendors we have recently added, please visit our dedicated ecosystem page:
LINBIT+Vates webinar on XOSTOR
Join us for an exciting upcoming webinar co-hosted by LINBIT and Vates, focusing on XOSTOR, the cutting-edge solution for storage management. This webinar will provide in-depth insights into XOSTOR's features, benefits, and real-world applications, helping you optimize your storage infrastructure. The webinar will take place on June 26th - 4PM (CET timezone) - more information coming soon!
Our first Vates Innovation Summit
Last week, we proudly hosted our inaugural Vates Venice Innovation Summit at the historic SerenDPT venue in Venice. The event was a tremendous success, gathering some of the most influential figures in technology and innovation in Italy, where we opened a branch few years ago.
We were honored to welcome representatives from major companies such as Leonardo, Clever Cloud, and StormShield, alongside key public sector leaders, including the head of the Technical Secretariat at the Office of the Undersecretary for Innovation and General Giovanni Gagliano, Head of Cyber and Telecommunications at the Italian Ministry of Defense. A complete recap of the event is available here.
A new strategic partner: Clever Cloud
Clever Cloud and Vates have announced a strategic partnership to enhance cloud autonomy in France and Europe. By combining their expertise in PaaS (Platform as a Service) and IaaS (Infrastructure as a Service), they aim to offer a robust, open-source alternative to major global providers. This partnership focuses on reducing dependency on hyperscalers, promoting technological independence, and rejecting vendor lock-in strategies, while delivering high-performance cloud solutions tailored to modern business needs.
For more details, read the full article here:
New Air Gap plans for sensitive installations
We are excited to introduce our new Air Gap plans, developed in response to the unique needs of sensitive installations and environments that require complete isolation from the internet, such as boats, planes, and other high-security settings (energy, defense, healthcare…)
We have successfully replaced many VMware deployments in these scenarios. Recognizing the demand for tailored solutions, we have created custom options for XCP-ng and Xen Orchestra (XOA) that operate fully disconnected, eliminating the need for internet-based pre-configuration, license binding, or registration. These services are now available on demand. Please contact us for more information.
Xen Summit 2024
A significant portion of the XCP-ng team will be attending the annual Xen Summit in Lisbon next week. We have multiple talks scheduled and several design sessions planned. Stay tuned for a recap blog post in the following days!
AMD Secure Encrypted Virtualization (SEV) technologies represent a significant advancement in confidential computing by offering hardware-based memory encryption capabilities. SEV aims to protect VMs' data from various threats, including unauthorised access by the hypervisor or other VMs running on the same host. In this talk, we will discuss ongoing development efforts related to incorporating AMD SEV technologies in Xen. We will focus on covering various enhancements, such as modifications to ASID allocation and TLB flushing mechanisms for SEV-enabled guests, as well as the implementation of the ASP driver and related support within the xl toolstack.
Rust ecosystem is a big change from long-supported-by-every-OS languages like C. This presentation will try to summarize the pitfalls and challenges, some coming from the variety of guest OS we support (portability), some applicable more largely (security support). We hope it will provide valuable input for possible further usage of Rust in the Xen project.
And now, let's switch to our monthly release announcements!
🔭 XO 6 & XO Lite
This month brings many cool updates for XO 6 and XO Lite.
XO 6 first preview
We are thrilled to announce that the basic layout of XO 6 is now accessible in your XOA via the /v6
endpoint, eg https://xoa.example.org/v6
. This preview includes our first visible features such as logout, console access, and a tree view. This milestone marks a significant achievement due to the extensive work completed behind the scenes. XO 6 introduces a completely new method for fetching objects in the web interface, leveraging the REST API. This shift not only unifies and completes the API but also accelerates its development as xo-web becomes its primary "customer."
In XO 6, we are transitioning entirely to VueJS and have implemented new routing. A store with subscription has been introduced to fetch objects efficiently, making the process at least ten times more efficient than the existing XO 5 strategy. This enhancement speeds up the initial load display and significantly reduces the amount of data transferred between XOA and your browser.
To illustrate the difference in design, let's compare the initial load times of the current app with around 300 VMs:
While the load time isn't perfectly linear with the number of VMs (it's more dependent on the number of objects), the improvement with a "medium" infrastructure is already significant. And this is just the beginning!
While we have additional improvements planned, this release showcases that XO 6 is not just a refresh but a comprehensive revamp of Xen Orchestra, designed to be faster, more modern, and future-proof.
Our initial layout
The current preview offers a simple layout with a header (including a disconnect button), a menu, and the first version of the tree view. We have also included the console, allowing you to test the latest version of the console component, which addresses some bugs found in XO 5 consoles with non-US layouts.
This is just the beginning. We are planning to develop a proper dashboard and use this opportunity to create an outstanding backup management UI, replacing the "old" XO 5 interface. As we progress, XO 6 will gain more features step by step and release after release. Eventually, XO 6 will become the default interface, while XO 5 will remain accessible via the /v5
URL, until it will disappear completely.
New components
We are accelerating our implementation of new components, and this month we are excited to introduce several newcomers:
XO Lite
Despite the needed effort to bring the first XO 6 preview visible, we also made some progress in XO Lite.
Button to link to XOA
If XO Lite detects that an XOA has been deployed on the pool, it will automatically display a button to access it, replacing the regular "Deploy XOA" option:
Remove CD drives from storage usage
Our main dashboard displays disk space usage per storage repository (SR). However, including CD drives in this calculation was unnecessary. Therefore, we have removed CD drives from the storage usage metrics.
German translation
XO Lite is now available in German, thanks to the contribution from Alexander Schulz. To change the language, go to the "Settings" section in the top right corner of the XO Lite screen.
Tree view improvements
We have made numerous small tweaks to enhance the tree view's usability. XO Lite has fully transitioned to the "common" version used between XO Lite and XO 6, called web-core
. The extensive work behind the scenes over the past months is now paying off, delivering a smoother and more efficient experience.
🖥️ XO CLI
We have enhanced the usability of XO CLI, making it significantly easier to use. Now, you can bypass the registration phase by using a token directly when calling the xo-server URL (i.e., your XOA IP address).
Additionally, by combining this with a shell alias, you can effortlessly control multiple XOAs simultaneously, such as a development and a production XOA:
# alias xo-dev='xo-cli --url https://token@dev.company.net'
# alias xo-prod='xo-cli --url https://token@prod.company.net'
And then you can simply use:
# xo-prod vm.start id=<VM UUID>
Or:
# # xo-dev vm.stop id=<VM UUID>
📡 REST API
While our primary focus has been on integrating the REST API into our new UI for XO 6, we are excited to announce another addition to our REST API this month!
VM export in OVA
You can now easily export a VM in the OVA format directly from our REST API. This enhancement demonstrates our commitment to interoperability. To export a VM in OVA, simply make a call to the /rest/v0/vms/<uuid>.ova
path.
Here is a quick example:
curl \
-X GET \
-b authenticationToken=KQxQdm2vMiv7j \
'https://xo.company.lan/rest/v0/vms/<uuid>.ova' \
> MyVM.ova
⚖️ Load balancer
Previously, our load balancer made decisions based solely on host load, migrating VMs only when the configured threshold was exceeded. This approach, now termed "Conservative," remains the default. Recently, we introduced an option to balance vCPU usage by pre-positioning VMs for optimal vCPU/CPU ratios.
Today, we have introduced a new "Preventive" behavior that triggers load balancing when there is uneven utilization within the pool. This option also seeks to reduce CPU usage disparities between hosts. For instance, it aims to prevent scenarios where one host is at 60% CPU usage while others are at 10%, a situation that the default performance plan behavior would permit.
🐦 VMware to Vates (V2V)
When selecting a VM to import, you have the option to choose the appropriate template for it. This choice ensures optimal performance by applying the correct Xen/BIOS settings tailored to the VM's needs. If you plan to import multiple VMs simultaneously, it is crucial to ensure that they all belong to the same "family" of operating systems and use the same template.
This consistency guarantees that all VMs benefit from the same performance enhancements and compatibility settings. By carefully selecting templates, you can maximize the efficiency and reliability of your imported VMs.
🚀 XCP-ng 8.3 features
Our highly anticipated release of XCP-ng 8.3 is just weeks away! We're thrilled to share that we are diligently working to ensure full XO support from day one. Explore the exclusive features already available in XO that are designed to work seamlessly with XCP-ng 8.3, delivering enhanced performance and capabilities. Stay tuned for more updates as we approach the release date!
PCI passthrough from the UI
We began our work on PCI passthrough last month, and we are excited to announce that our upstream patch has now landed in XCP-ng 8.3. This means you can now passthrough any PCI devices directly from the UI, making it easier than ever to manage your hardware resources!
VM migration compression
For environments with slow network connections between hosts, you can now enable compression on the migration stream during live VM migrations. This feature uses additional resources on the involved hosts, but can significantly speed up the migration process if your network bandwidth is limited. However, since the effectiveness of this feature can vary, we recommend testing it in your environment before deciding to keep it enabled.
Please note that if you have an XCP-ng host running a version prior to 8.3, this feature will not be available:
🛡️ Air gap features
This section is dedicated to highlighting improvements related to XO or XCP-ng usage in air-gapped environments. We will update it with every release featuring relevant enhancements.
Pre-configured XOAs
We now offer pre-configured XOAs on demand. These XOAs come bound to your account and are fully up-to-date. You can simply transfer the XVA file to your portable drive and deploy it in your fully isolated environment.
Contact us to get access to your custom/pre-configured XOA file!
Air gap deploy script
Our deploy script for Dom0/host can now be used offline. Simply copy the content of https://xoa.io/deploy and paste-it in a file (it's a simple bash script). Then, make it executable, and finally target the path to your local XOA.xva
file, allowing you to configure everything from password, static or DHCP network config and so on!
On a Linux machine, creating the script is straightforward:
# curl https://xoa.io/deploy > deploy.sh
# chmod +x deploy.sh
You can also use this opportunity to download the appliance locally too:
# curl https://xoa.io/xva > XOA.xva
A quick check on the XVA file to verify the MD5 sum is correct:
# md5sum XOA.xva
c3dd6102bef4d9aa2b7c5fc2c38c2bda XOA.xva
Now, move the XVA and the script to your air gap XCP-ng machine. Just pass as a first and unique parameter, the path to your XOA file:
# deploy.sh XOA.xva
That's it!
💠 XOSTOR
We continue to improve and enrich XOSTOR features after our initial 1.0 last month.
Copy VDI UUID in XOSTOR view
You can now easily copy a disk UUID from the XOSTOR dedicated view. That's a pretty important thing to help you investigating any kind of trouble you could have, or to search more efficiently a VDI.
XOSTOR extra warning
We added a warning at XOSTOR creation, to be sure that your replication count is never higher than the number of available disks and hosts.
🆕 Misc
We always try to find a balance between "long term work" versus quality of life improvements. Obviously, it's easier while our team is growing. Anyway, this month, we managed (again) to release various extra improvements all around XO.
Better display when the VM is busy
When you migrate a VM, its icon is going yellow from the initial green state. This is the case but not everywhere in the UI. Now we added the icon change at different place to be 100% sure you aren't missing what's going on!
Parse the result of async XAPI tasks
XAPI tasks sometimes return an XML content, that was displayed "as is" in our UI. Now, this content is correctly parsed for a far more readable and structured result and display.
Improved Task ETA calculation
Initially, we calculated the estimated end time (ETA) for tasks as soon as they started, leading to significant variability due to the task's "warm-up" phase. For instance, a VM migration or import could start slowly, showing a long ETA (e.g., 10 hours), which would then correct itself as the task reached its "cruise speed." To enhance accuracy, we now wait 10 seconds before computing the ETA. This change significantly improves the reliability of the displayed ETA for tasks.