Xen Orchestra 5.92

February might be a short month, but we've still packed it with plenty of exciting features in the new update.

Xen Orchestra 5.92

Right after the Chinese New Year, we're bringing out XO 5.92. This new update comes with lots of new features that we're excited about. We're all about being open here: not just with our code, which we've always shared, but now with the whole project too. This means it's easier for you to see what we're planning and to help out if you want. We hope you like what you find in this latest version!

🎵
And here is the podcast version of the release!

👨‍🚀 Project & Community

Welcome back to our regular section where we dive into the latest happenings with Xen Orchestra and the broader Vates community. It's always exciting to share what's new and how our project continues to evolve, thanks to the vibrant community that supports us.

Popularity

Yes, it's happening! The shift from VMware is real, and the numbers back it up. To put it simply, everything has doubled: our website visitors, trial requests, inquiries, and community engagement. It's clear we're on a rapid ascent to becoming even more well-known and loved ❤️

But don't worry, we're staying true to what sets us apart: our commitment to openness (and we're not just talking about our software) and transparency. Now, more than ever, you can rely on us.

Let's look at some exciting stats from February, which, by the way, outdid January's record:

  • Forum activity soared with a 30% increase in unique visitors (reaching 311,000) and posts jumped by more than 60%.
  • Registrations for XOA and trial sign-ups doubled: yes, increased by 100%! This is truly remarkable.
  • Requests for demos went through the roof, up by 300%. And no, that's not a typo.

But it's not just about more people visiting; it's about deeper engagement from those who do. This is crucial for us, and we're thrilled to see such vibrant participation.

Articles, podcasts & videos

Our technology is getting a lot of attention lately, which means more people are talking and writing about us. We've put together a list of some really interesting stuff related to what we do.

One thing you shouldn't miss is an interview with one of our team on the "Great Things with Great Tech!" podcast by Anthony Spiteri. It's a great way to learn more about our journey and what we're working on. Also, check out a piece by StarWind Software that talks about how to switch to using our technology. It's full of helpful tips and shows why making the switch can be a good move. Even TrueNAS is listing us in their recent blog post about VMware alternatives!

Community Driven Open Source Virtualization with Vates | Episode #78
In this episode, we sit down with Olivier Lambert, CEO and co-founder of Vates, the innovative company behind XCP-ng and Xen Orchestra. Established in Grenoble, Fra…
Exploring XCP-ng: A Cost-Effective VMware Alternative | StarWind Blog
How to discover the benefits of XCP-ng, an open-source virtualization platform that offers a cost-effective and fully-featured alternative to VMware. Learn how migrating to XCP-ng can reduce costs and provide flexibility, with insights on ease of transition and the advantages of choosing a community-driven solution.
Beyond VMware: Exploring Virtualization Alternatives
Explore community-driven insights on virtualization alternatives to VMware. TrueNAS offers compatibility and flexibility for various hypervisors.

Also there's many new great YouTube videos from Tom (Lawrence Systems):

2GuysTek also made a video about "XCP-ng vs ESXi".

Oh and finally, if you are a Reddit fan, notice there's a dedicated xcpng subreddit since a while, but it started to be really alive recently!

XO CONTRIBUTING.md

We've always had guidelines for contributing in our documentation, but we decided it was time for an upgrade to make it even more straightforward. That's why we've introduced a CONTRIBUTING.md file right at the root of our Git repository. Now, it's simpler for anyone who wants to get involved with the project to see exactly how to do it. This update is all about making it easier for you to become a part of our community!

Our design is now public

Exciting news for our community and UX/UI enthusiasts! As promised last month, we've now made our entire Figma design system publicly accessible. This open approach to our design process allows everyone to view, comment, and even contribute to the development of our future interfaces and components.

💡
If you want to provide a feedback on this design system, we created a dedicated thread on our community forum to discuss it!

This move to share our UX/UI work publicly is a testament to our commitment to transparency and community involvement. By opening up our design process, we invite feedback and ideas that can help shape the future of our platforms, ensuring they meet the needs and expectations of our users.

Whether you're a designer, developer, or simply interested in the behind-the-scenes of product development, you can now dive into our Figma files to explore the thought process behind our interfaces. It's a great opportunity to see how we're working to make Xen Orchestra & XO Lite more intuitive, efficient, and user-friendly.

Check out our Figma designs today and be a part of shaping the future of Xen Orchestra:

After clicking on the link, to see all the design system, you need to click on the top left menu and select the components you want to see:

If you don't remember what's a "Atom/Molecules/Organism", please refer to our previous blog post:

Unleashing the Power of Atomic Design System
Exploring the Atomic Design System in open-source virtual infrastructure: enhancing user experiences, inclusivity, and accessibility while empowering teams.

Using Packer with XCP-ng

In an insightful contribution from our community member, Cécile (a big thank you!), we're excited to share a new post that dives into the practicalities of utilizing Packer with XCP-ng. This guide walks you through a hands-on example of building a Debian 12 VM from scratch, fully automated with Packer. It's an excellent resource for those looking to streamline their VM creation process.

We're committed to producing more guides of this nature in the future. Your expertise and insights are invaluable to us, and we encourage anyone interested in contributing to our blog to reach out. We place great importance on community-generated content, recognizing its potential to enrich our collective knowledge base and support others in their journey with XCP-ng.

Using Packer with XCP-ng
Discover how to keep your VM templates always up-to-date and ready to go!

XCP-ng 8.3 beta 2

After seven months of relentless effort, we're thrilled to present the second beta release of XCP-ng 8.3. This milestone reflects our team's dedication and commitment to enhancing the XCP-ng platform. While we're excited about the progress, please note that this version remains a beta. It's not yet recommended for deployment in critical production environments due to its pre-release status.

The updates and improvements are too numerous to detail in this brief announcement. Therefore, we encourage you to explore the full range of enhancements and features by visiting the following link:

XCP-ng 8.3 Beta 2
XCP-ng 8.3 Beta 2 is now available.

Join us at CloudFest 2024!

We're excited to announce our participation in CloudFest 2024, the premier event for the world's leading cloud, hosting, and internet service providers. This year is especially significant as we celebrate CloudFest's 20th anniversary at the iconic Europa Park. It's set to be the most memorable edition yet, with an array of engaging activities and networking opportunities.

This is a unique opportunity to connect with our leadership team, including CEO & Co-Founder Olivier Lambert, CMO Marc-André Pezin, and Channel Partner Răzvan Roșca. We're eager to discuss the future of cloud technology and share insights into the Vates Roadmap for 2024. Expect to hear about our innovative upcoming features, the latest bundle offers for the Vates Virtual Management Stack, and the launch of our new partner campaign, VMove. Join us to discover how these developments can transform your business operations and enhance your service offerings.


And now, let's talk about our new XO release!

💾 Backup

You know the drill: we always start to talk about backup.

Backup retry

This feature was asked since a while, but we wanted to be sure to do it right. Now, you can configure a number of retries if the VM backup fails. It's pretty easy to do, in your backup job configuration:

This can be useful if you had a transient issue (like a network glitch during your backup job), leaving you more chances to make it instead of just realizing on the morning that it just failed. In the backup log, you can see (for example) when the first try was failed, it made an attempt after that succeeded:

Don't forget to set a number of retry that won't cause you issues, 2 or 3 seems to be a sweet spot to avoid transient issues while still error out rather quickly if you have a bigger problem.

Improved VHD loop detection

Our mirror backup capability is a great feature. However, it can be tricky to synchronize many backup mirrors at once when one is failing and not the others. So we needed to be certain to validate the chain to send the right incremental to each mirror. In short, we refactored the code to reuse something that's already doing it, making the result both better and simpler.

🪐 New XOA

Our previous XOA was built 3 years ago, with an old XOA version (5.60) and also Debian 11. We finally took time to regenerate a new fresh XOA, and this time we are building it in a fully automated fashion, thanks to Packer!

This new XOA is available as we speak when you make a new deploy, and if you want to switch to the new one, just follow our documentation:

Vates Knowledge Base - Migrate to new XOA

Anyway, it's now based on Debian 12 fully up-to-date, and we'll regenerate the XOA more often (maybe once a quarter or even once a month, we'll see).

📡 REST API

We added 2 endpoints this month, both from customer & community request. Don't forget to ask for what you need in the dedicated forum section!

Expose user's groups and group's users

To be able to fetch user's groups and group's users. For example, if you want to get the name of the group for a user (and their URL to request for details):

curl \
  -X GET \
  -b authenticationToken=KQxQdm2vMiv7j \
  'https://xo.company.lan/rest/v0/users/<user UUID>/groups?fields=name'

This will return:

[
{
  "name": "administrators",
  "href": "/rest/v0/groups/b19d3685-ce23-4d7d-9b32-62f8902a29e4"
},
{
  "name": "developers",
  "href": "/rest/v0/groups/9c7f5831-533b-4821-8d67-5d6d192e2af8"
}
]
💡
Reminder: if you want to list all the users, just GET on https://xo.company.lan/rest/v0/users. It's the same principle for groups.

And to list all users from a group:

curl \
  -X GET \
  -b authenticationToken=KQxQdm2vMiv7j \
  'https://xo.company.lan/rest/v0/groups/<group UUID>/users?fields=email'
[
{
  "email": "user@example.net",
  "href": "/rest/v0/users/eb9bdc88-99bc-422a-a453-57623271f273"
}
]

Host SMT/Hyperthreading status

Few years ago, we added a plugin in XCP-ng to detect if a host was using hyperthreading/SMT. It's useful for security but also for licensing reasons (eg when you use a proprietary system in a VM, the number of cores can be important. Glad, happy that's nothing to worry about with XCP-ng!).

Despite being exposed in the UI, we've been asked to add it in the REST API. It's now done:

curl \
  -X GET \
  -b authenticationToken=KQxQdm2vMiv7j \
  'https://xo.company.lan/rest/v0/hosts/<host UUID>/smt'

It will return this:

{
  "enabled": true
}

Another upstream contribution

To remove the need of a dedicated plugin, we made a contribution upstream in the XAPI project to directly include this information in the host API/database:

Add ‘threads_per_core’ in ‘Host.cpu_info’ by benjamreis · Pull Request #5464 · xapi-project/xen-api
Discussed here: #5462

It should be merged soon, and might land in XCP-ng 8.3 at some point.

🔭 XO 6 and XO Lite

Those two projects are going to share more and more components, that's why we are doing one section for both this month.

XO Lite 0.2.0

We're aligning XO Lite updates with Xen Orchestra releases. The latest XO Lite 0.2.0 is now part of XCP-ng 8.3, ready for you through Xen Orchestra's available updates or a yum update.

💡
If you're using XCP-ng 8.2 and want to test XO Lite 0.2.0 without making any changes to your host, just visit your host's URL in your browser (ensure you use https) to confirm the certificate. Then, navigate to the following URL, substituting "host_IP_address" with your actual host's IP address: https://lite.xen-orchestra.com/#/?master=host_IP_address. This easy step lets you explore XO Lite's new features instantly!

Back end work

Behind the scenes, there's a lot of important work happening that you might not see, but it's key to making everything better. Right now, we're focusing on moving parts of our user interface, like certain components, tools, and helpers, into something called web-core. This is so both XO Lite and XO 6 can use them more effectively.

This foundation work is really important. It involves a lot of discussions and meetings to improve how we organize and name parts of our system in web-core. Getting this right is crucial for building a strong base for all the new features and improvements we want to bring you in the future.

A great collection system

To address the similarities across different component behaviors (such as treeview, multiselect, tasks/subtasks, etc.), we have developed a versatile system for managing data collections and their child elements.

Each item within a collection can be activated, selected, or filtered, and is also assigned a list of CSS classes based on its status (active, selected, matches).

Furthermore, an element can serve as a group, containing children and introducing new behaviors (like expansion, descendant selection, and tracking descendant selection status) along with additional CSS classes (selected-partial, selected-full, expanded).

An optional feature also allows for programmatic navigation within a collection (for instance, binding functions to keyboard keys to move through items), enhancing user interaction and accessibility.

New tree view components

The tree view is kind of the biggest new interactive component we need in both XO Lite (already there) and XO 6 (coming with a more complete capabilities, since it could orchestrate many many pools).

We took time to update the tree view UI components to match the new version of the design system (see the Figma design system). We also added visual indicators (vertical and horizontal lines) to connect items:

We also updated icons placement and styles: a new VmIcon.vue component for VM power state and updated UiCounter.vue component to match design system's last version. Also, we moved all UI menu components into web-core (will be used for "quick actions" dropdowns), and finally added automatic indentation for sub lists.

New dropdown components

We've completely revamped all our dropdown components to align with our Design System. This update is a big step in bringing our design principles into the real world, creating a seamless match between theory and practice: a challenge we're proud to have tackled successfully. Now, our dropdowns not only look better but also work more smoothly, enhancing your experience with our interface.

Custom scrollbar

We had to make improvements for the scrollbar, which can be used at many places in XO Lite and XO 6. That's why we changed only browsers native CSS properties to avoid accessibility issues, and providing a better integration and consistency within the design system.

Improve color context

The purpose of the color context is to colorize a component and its descendants by applying a single CSS class on the parent component (e.g., applying the class on a modal component container will style all children components using the context). It's a pretty long and complicated thing to do, but crucial to give a consistent and accessible result for everyone, regardless where you are in the application. In terms of concrete actions:

  • Updated the color context: use CSS custom properties/variables (instead of CSS properties like background-color in the precedent version) for better flexibility on the component level
  • Any component can use the context by applying these variables on any CSS property
  • Integration side, we only need to apply the context color on the parent component (info, success, warning, error), and children components will automatically inherit the color (no need to configure the color prop on each component)
  • If we need to override one component's color, we can still configure the color with a color prop or with CSS

⚖️ Load balancer

In our load balancer feature, you now have the option to stop it from moving certain hosts or VMs. This can be useful if you have a host or VM that you don't want to be moved around. You can set this up by using the "Excluded hosts" setting for each plan you have. There's also a setting for VMs called "Ignored VM tags," which works for all your plans. This way, you can keep some hosts or VMs in place, even when the load balancer is adjusting others to keep things running smoothly.

🆕 Misc

Like every month, we have a lot of small updates to share. This section covers all the little changes we've made to make XO better. These might be small fixes or improvements, but they all add up to help make everything run more smoothly and make your experience better. Keep an eye out for these updates, as they're all about making things easier and more reliable for you.

USB passthrough development

Responding to widespread user requests, we've initiated the development to integrate USB passthrough functionality directly within Xen Orchestra's user interface. As a preliminary step in this process, users can now view available USB devices from the 'Advanced' tab in the host view. This feature allows you to "enable" a USB device, preparing it for passthrough to a virtual machine (VM).

This update marks the beginning of our efforts to simplify USB passthrough, making it more accessible and manageable directly from Xen Orchestra's UI. We're excited to announce that the upcoming XO 5.93 release is set to include the complete process for connecting your USB devices to VMs seamlessly.

💡
In the meantime, for users looking to use USB passthrough today, the XCP-ng documentation remains a valuable resource, offering detailed instructions on achieving this via the CLI.

Manage auto power on pool level

In XCP-ng, the "auto power on" functionality is crucial for ensuring VMs automatically start up following a host reboot. This feature, however, requires enabling at both the individual VM and the pool levels to work effectively. Recognizing the potential for oversight, Xen Orchestra introduces a streamlined process to manage this feature more efficiently. In short, when "auto power on" is activated for a VM, Xen Orchestra will intelligently ensures it's also enabled at the pool level, if it wasn't already. This automation removes a manual step, facilitating a smoother setup process.

But a problem may arise when importing a VM that already has "auto power on" activated but the pool setting remains disabled. Previously, this mismatch would prevent the VM from auto-starting after a host reboot, leading to potential service disruptions.

That's why we added to new capabilities. First, you can now directly enable "auto power on" at the pool level via the pool's advanced settings. This ensures that all VMs within the pool are eligible for auto-start, provided their individual settings are also configured.

And then, even better: if there's a discrepancy -such as when a VM is set to auto power on but the pool setting is disabled- XO now alerts you to this inconsistency. This notification allows you to promptly rectify the configuration, ensuring seamless auto-start functionality:

Robots.txt

To enhance privacy and security, we've introduced a default robots.txt file in Xen Orchestra. This measure is designed to prevent search engines from indexing Xen Orchestra instances, addressing concerns about visibility on the internet. With this update, users can have peace of mind knowing their Xen Orchestra interface won't appear in search engine results, adding an extra layer of protection against unwanted online exposure.

💡
If you're planning to expose your Xen Orchestra to the Internet, it's crucial to enhance your security measures. Always enable Two-Factor Authentication (2FA) or use authentication protocols like OpenID Connect or SAML. These added layers of security significantly reduce the risk of unauthorized access, ensuring that only verified users can interact with your XO environment. Implementing these security features is essential for safeguarding your infrastructure against potential online threats.

New XAPI stat format

The recent XCP-ng 8.3 update introduced a new version of XAPI (v23.31), leading to an unexpected issue where Xen Orchestra was unable to properly display statistics. This issue was quickly identified thanks to the vigilance of our community and the collaborative efforts of our XCP-ng, Xen Orchestra & XO Lite teams.

Upon investigation, two main changes were discovered to be the cause: a bug that scrambled the JSON file generated by XAPI, and a modification in the JSON structure itself, which now utilizes strings for all values instead of integers or floats. The reason for that: dealing with NaN, Infinity and -Infinity cases.

Thanks to the prompt and efficient teamwork between our community and developers, these issues have been resolved in both XCP-ng, Xen Orchestra & XO Lite with this latest release. This experience highlights the strength and effectiveness of our collaborative approach, demonstrating how community engagement and developer responsiveness can lead to swift problem resolution and improvements in our ecosystem.

Sort XO config backups

Addressing a practical aspect of Xen Orchestra's usability, we've refined how XO configuration backups are presented during the restoration process. Previously, the list of available backups was displayed in an unsorted and reverse order, which could be confusing and inefficient for users trying to locate a specific backup.

We've implemented a fix to sort these backups logically, now displaying them from the most recent to the oldest. This small but significant adjustment streamlines the restoration process, making it more intuitive and less time-consuming to find and restore the desired XO configuration backup.

New units added (PiB and TiB)

To stay ahead of technological advancements and cater to environments requiring large-scale storage management, we've expanded the unit options available when defining the size of objects within Xen Orchestra. Recognizing the growing need for handling vast amounts of data, users can now select from additional units, including Pebibytes (PiB) and Tebibytes (TiB), when specifying storage sizes:

Enhanced VM container logic

In Xen Orchestra, we've refined how we handle the VM.$container field, which indicates the current location or association of a virtual machine (VM). Initially, the logic was straightforward: if a VM was running or paused, it was considered to be residing on a physical host, and thus the $container would reflect the host's UUID. Conversely, if the VM was stopped, it was associated with the pool.

We've now improved this logic to better accommodate scenarios where a VM's booting options are limited to a single host due to storage constraints. Specifically, when a VM's disk resides on a Storage Repository (SR) that is local to a particular host, it's clear that the VM can only be started on that host, regardless of its current state. In such cases, we maintain the $container as the host's UUID, even if the VM is not currently running.

This update provides a more accurate representation of a VM's potential locations and constraints, improving the management and scheduling of VMs within Xen Orchestra.

Network change MTU

In the Pool/network tab, you can now change the MTU for the network:

⚠️
Is adjusting the MTU worth it?
Changing the MTU size is often considered by network administrators aiming to optimize network performance. However, the general advice regarding MTU adjustments is cautious: it's typically not necessary. The decision to modify the MTU should be made with specific requirements in mind, as it can introduce complexity and potential issues. Many support cases and community discussions have highlighted problems arising from incomplete configurations, especially related to jumbo frames on network switches.

In our latest update, we've made it easier to identify which suspend VDIs are associated with which VMs in the SR/disk view. A suspend VDI, which stores the memory (RAM) of a VM during snapshot or suspension, previously lacked a direct link to its corresponding VM.

This enhancement addresses that issue by clearly displaying and linking each suspend VDI to its respective VM, improving clarity and management in the interface: