Xen Orchestra 6.5

XO 6.5 is out: QCOW2 GA, bidirectional replication, traffic rules on networks and VIFs, richer Prometheus metrics, plus a fresh Kubernetes CSI release and a Cluster API teaser.

Xen Orchestra 6.5

Another month, another step forward for Xen Orchestra 6! XO 6.5 keeps pushing feature parity, REST API growth and monitoring, and this cycle also brings real Kubernetes news: a fresh CSI release and a first look at our Cluster API provider. Enjoy the read!

As usual, this announcement is available as a Youtube video:

👨‍🚀 Project & Community

Beyond Xen Orchestra itself, the wider Vates platform kept moving this cycle, with several XCP-ng updates, a new storage capability, signed Windows drivers, and a partnership worth flagging.

Building sustainable open source infrastructure models

One of the recurring themes is long-term viability in open source infrastructure. A recent article explores how organizations can ensure vendor independence without sacrificing stability or support. It highlights how open-source models, when properly structured, can provide a sustainable alternative to traditional proprietary approaches.

Why open‑source ensures continuity: the Vates approach
How does Vates reduce vendor risk? Discover how its open-source model and support-driven strategy ensure long-term continuity and true infrastructure independence.

Scaling infrastructure without storage bottlenecks

Another key area of focus is scalability, particularly around storage. As infrastructures grow, storage often becomes a limiting factor. This month’s article discusses how these constraints can be removed to support larger and more flexible deployments, ensuring that storage architecture does not block infrastructure evolution.

Removing storage constraints for growing infrastructures
XCP-ng 8.3 now supports virtual disks up to 16TB, removing the long-standing 2TB per-disk limit. A practical step forward for backup workloads, storage-heavy applications and migrations from VMware.

Xen on RISC-V progress

For those following the longer-term hardware story, our post about Xen on RISC-V covers Dom0 boot, hypercalls, and a Docker-based toolchain. While in early-stage, it shows the direction the Xen ecosystem is heading beyond x86, and the toolchain notes make it reproducible if you want to experiment yourself.

Xen on RISC-V: Dom0, Hypercalls and Toolchain
Latest progress on Xen for RISC-V, including Dom0 boot, hypercalls and Docker-based tooling.

XCP-ng 8.3 updates

XCP-ng 8.3 LTS received a steady stream of security and maintenance updates through late April and May. If you run XCP-ng 8.3 in production, applying these keeps your hosts current with the latest Citrix-derived security patches and bug fixes. We recommend reading each post before patching, since they call out any reboot requirements and known interactions.

May 2026 Updates #2 for XCP-ng 8.3 LTS
Today’s update addresses an issue with the rolling pool update process on pools using XOSTOR.
May 2026 Updates #3 for XCP-ng 8.3 LTS
New security and maintenance updates are available for XCP-ng 8.3 LTS. Xen, Linux kernel, Intel Microcode…

QCOW2 is now GA in XCP-ng

The QCOW2 disk format reached general availability in XCP-ng, lifting the long-standing VHD ceiling and allowing individual VM disks up to 16 TiB. For anyone running large databases, file servers, or media workloads that previously had to be split across multiple disks, this removes a real constraint on growing infrastructures.

QCOW2 is now GA in XCP-ng
QCOW2 is now GA in XCP-ng 8.3, supporting VM disks up to 16 TiB and replacing the 2 TiB VHD limit. Production-ready, stability-focused, with performance optimizations coming soon.

Windows PV drivers: first signed build since 8.2.2

The Windows guest driver line saw three releases this cycle. The notable milestone is v9.0.9137 on May 19, the first signed build since the 8.2.2.20 series, which matters for clean installation on modern Windows without driver-signature warnings. A maintenance release v9.1.200 followed recently, and the v9.1.152 XenClean/XenBootFix build on May 5 addresses the VSA-2026-012 DLL sideloading advisory. If you maintain Windows guests, moving to a signed build is worth scheduling.

Release 9.0.9137 Release Signed · xcp-ng/win-pv-drivers
Proudly presenting the first signed build of the XCP-ng Windows Guest Tools since 8.2.2.200-RC1 was released over six years ago. This build can be installed as-is without further configuration. To…
Release XenClean/XenBootFix 9.1.152 Release · xcp-ng/win-pv-drivers
This release fixes VSA-2026-012 (DLL sideloading vulnerability in XenClean and XenBootFix). If your VM is running 9.1.146, you don’t need to update. You just need to replace any XenClean and XenBoo…

🏢 User stories

This month’s user story highlights another major migration away from VMware toward Vates VMS.

Biocoop successfully migrated its infrastructure to Vates VMS, reinforcing a broader trend we are seeing across organizations: moving away from legacy virtualization stacks in favor of more open, flexible, and cost-controlled environments.

Why Biocoop chose open-source virtualization
Biocoop chose Vates VMS to regain control over virtualization costs, governance, and long-term infrastructure decisions through open-source technologies.

🎫 Events & webinars

Beyond product updates, sharing experience and structuring knowledge remains an important part of the ecosystem.

Vates & EasyVirt webinar

On July 2, Vates and EasyVirt will host a webinar focused on infrastructure optimization, migration planning, and operational visibility across multi-hypervisor environments. The session will showcase how the integration of DC Scope and DC NetScope within the Vates ecosystem helps organizations optimize resource usage, secure migrations, monitor network flows, and gain better control over infrastructure costs and operations through a single interface.

Reduce infrastructure costs and simplify virtualization management with Vates & EasyVirt | Vates
As an IT leader, you are navigating an unprecedented infrastructure landscape: skyrocketing server hardware costs, the operational complexity of multi-hypervisor environments, high-stakes migration…

You can register right now!


XO 6.5

This release is a broad one. On the security side, Redis encryption protects XO's credential store at rest. On the backup side, bidirectional incremental replication removes one of the last friction points in paired-site DR setups. And on the interface side, XO 6 crosses a threshold: disk management and snapshot reversion all land this cycle, so daily VM operations no longer require switching back to XO 5.

A lot of this came directly from your feedback and forum requests, alongside a substantial backend refactor of the backup cleanup code that sets the groundwork for upcoming storage integrations. XO 6.5 is one of the more complete releases we have shipped in this cycle.

🛡️ Security

Keeping XO secure is an ongoing effort, and 6.5 adds another concrete step. After securing inter-XO communications and hardening the XAPI surface in previous releases, this cycle focuses on protecting what XO stores at rest.

Redis encryption

After hardening the XAPI surface and securing inter-XO communications in earlier releases, we are adding another layer of defense-in-depth: encryption of the Redis database that backs Xen Orchestra. Redis holds a great deal of the state that makes XO work, and encrypting it raises the bar considerably for anyone trying to read that data off a compromised system. The protection is built around a key-derivation scheme that splits the decryption key between the XAPI side and a local file on the appliance filesystem. Decrypting the database requires root access, XAPI access, and the local key file all at once, which is a considerably harder bar to clear than any single compromise.

The feature is opt-in for now and will become the default in a later release, so you can adopt it on your own schedule. You enable it through a configuration flag on the XOA virtual machine, and the change is reversible if needed. Before enabling it, two things need to be in place: Xen Orchestra must run inside a VM, because the key-derivation mechanism depends on the appliance store, and configuration backups must have encryption turned on. The upgrade documentation walks through enabling it end to end.

Credential Database Encryption | Xen Orchestra | XO Documentation
Xen Orchestra stores credentials for XenServer connections, remotes, users, and tokens in Redis. When credential encryption is enabled, all records are encrypted at rest using AES-256-GCM, and index keys are replaced with HMAC blind indexes so indexed field values (emails, hostnames, etc.) are not stored as plaintext. The performance impact is negligible for typical deployments.

💾 Backup

Backup work this month splits between a visible improvement for object-storage users, a large invisible backend cleanup, and a new replication mode.

S3 user-agent identification

Xen Orchestra now identifies itself to S3 providers by sending a User-Agent: Xen Orchestra FS <version> header on its object-storage requests. This means your S3 backend can see that the traffic is coming from Xen Orchestra and which version is running, which providers use to track usage and to move toward self-certification of their compatibility with our backup stack. The header is sent to all S3 providers, not a single one, so it works regardless of where your backup repository lives. Wasabi specifically asked for this, and it strengthens the relationship between Xen Orchestra and the storage vendors our users rely on for off-site backup.

Users | Xen Orchestra | XO Documentation
For system users (in XOA), please refer to XOA section. Here, we are only talking about users in Xen Orchestra application

Refactor and cleanVM refactor

We landed a substantial refactor of the backup cleanup code, the part of the system responsible for reflecting state and tidying up after backup jobs (the cleanVM path). Previously, this logic lived in one heavily coupled monolithic file that mixed many different checks and cleanup steps together, which made it both harder to reason about and harder to extend safely.

The new structure builds on a disk abstraction with cleaner separation between concerns. There is no user-visible change here, but it makes the code more reliable to maintain today and opens the door for upcoming direct-storage integrations such as Pure Storage. This was first raised in forum threads about backup reliability and migration blocking during backups.

Master, commit a3139 failing backups
Updated XO to Master, commit a3139 and now the backups are failing. Log sample: “tasks”: [ { “data”: { “type”: “VM”, “id”: “11393…

Bidirectional incremental replication

Incremental replication now supports bidirectional mode. When you run a replication job, XO looks for any snapshot already in common between source and destination (even one created by a different job) and transfers only what changed since then. No more full resync just because you're going the other way.

In practice, this covers two main DR situations:

  • Planned failover: You had time to run a final prod-to-DR sync before cutting over. When you're ready to return, stop the VMs on DR, run the reverse job, and only the delta accumulated during the outage gets transferred back.
  • Unplanned failover: You started the DR VMs immediately without a last sync. The return is still delta-only, but since the original prod disks were never cleaned up, XO creates a new VM copy on the prod SR rather than updating in place. That copy will trigger a one-time full replication on its next run.

One thing to keep in mind: this only kicks in when the job uses incremental replication mode with a single target SR.

feat(backups): bi directional replication by fbeauchamp · Pull Request #9806 · vatesfr/xen-orchestra
Description review by commit following the symmetrical backup PR reuse any snapshot in common between the source and destination if using incremental replication only one target a common snapshot…

🥝 Core UI

Much of the Core UI work this cycle went into shared components, with a particular focus on the groundwork for consistent form validation across the product.

Shared components and form validation

We did a lot of work on shared components this month to support upcoming form validation. Rather than validating each form in its own ad-hoc way, we are building the validation behavior into the common components that every form is assembled from. The visible result this release is a set of small component updates across the interface, the larger goal being consistency: as more screens adopt the shared components, you will see the same clear, predictable validation everywhere you enter data. It is groundwork that will show up progressively over the coming releases.

Infrastructure management | Xen Orchestra | XO Documentation
This section is related on how to manage your XCP-ng/Citrix Hypervisor infrastructure.

🛰️ XO 6

XO 6 is no longer just catching up. Disk management, VIF handling, snapshot reversion: most of what you relied on in XO 5 for daily VM operations is now in the new interface, plus Traffic Rules as the first feature built exclusively for XO 6.

Traffic rules on networks and VIFs

Traffic Rules are the first feature built only for XO 6, with no back-port to XO 5. They let you define network-wide rules at the Network level and at the VIF level, giving you a single place to express how traffic should be allowed or blocked across your virtual networks. If you have been managing VM isolation on shared subnets or VLANs through workarounds, this gives you a proper tool to do it. It also sets the pattern for XO 6-only features to come.

You have a recap of all the rules in a specific VIF:

VM isolation on the same subnet/Vlan. Migration Planning
Hey All, New to the forum and looking at moving to XCP from another hypervisor. I will be reaching out to Vates as I am looking for the enterprise support…

Used space on snapshots

The VDI view now displays the correct used space for snapshots. Previously, a VDI with a snapshot attached could report 0% of its capacity in use, and the figure only looked right again once the snapshot was removed, which made it hard to understand how much storage a VM was actually consuming. We tracked this down to a display bug in how snapshot space was accounted for, and the view now shows accurate figures whether or not a snapshot is attached. If you have been puzzled by storage numbers that did not add up, this is the fix.

🛰️ XO 6: dedicated thread for all your feedback!
With the December release, XO 6 will become the default experience. This also means a lot of new users will get their hands on it, and we want to make sure t…

Attach an existing disk in the VM view

You can now attach an existing VDI to a VM directly from the VM view. This brings a routine operation that XO 5 users took for granted into the new interface, with a dedicated UI control in the VM's disk view. One less reason to switch back!

No VDI for VMs?
Not sure why..but I can’t see any VDI disks on any of my VMs. The VDI shows as 0B. If I go to the shared (iSCSI) storage in my test Pool, I can see all the d…

Create a new VDI from scratch

Complementing disk attachment, XO 6 now lets you create a brand-new VDI from scratch in the VM view. You define the disk and add it to the VM without leaving the interface, which removes another reason to switch back to XO 5 for storage tasks. Together with attaching existing disks, this rounds out the basic disk lifecycle in the new UI.

Infrastructure management | Xen Orchestra | XO Documentation
This section is related on how to manage your XCP-ng/Citrix Hypervisor infrastructure.

General tab for VIFs

The VIF page in XO 6 gains a General tab, giving you a clear, organized place to see and manage a virtual interface's core properties. A small addition that makes the VIF view consistent with how other objects are presented across the new interface.

Query vif Interface Parameters
Hello, I try to read back the settings for a vif configured via CLI using this command: xe vif-param-set uuid= other-config:ethtool-tx=“off” Does anyone kno…

Improved revert-snapshot experience

We redesigned the VM snapshot reversion process to make it clear and predictable from the UI. Because rolling back a VM is a high-stakes operation, a smoother, more intuitive flow means fewer doubts about what will happen next. If you want to dive into the core concepts behind it, the forum thread on how to revert a VM to a snapshot is a great place to start.

How to revert VM to snapshot
Re: Automation script to revert and save snapshot I have the same question. I’m trying curl -k -X POST -b ‘authenticationToken=’ ’https:///rest/v0/vm-snapsho…

🔭 XO Lite

XO Lite picks up one small but useful defensive improvement this cycle, worth knowing about if your instance is reachable from outside your network.

A robots.txt for exposed instances

XO Lite now serves a simple /robots.txt file. The point is to stop search engines from crawling and indexing XO Lite instances that happen to be reachable from the internet, so your management interface does not turn up in search results. It is a quiet defensive measure that costs nothing and avoids an easy form of exposure for instances that were never meant to be public.

XCP-ng 8.3 LTS | XCP-ng Documentation
XCP-ng 8.3 is an LTS Release. Download the installation ISO.

📡 REST API

The REST API keeps expanding this release, with new endpoints across VIFs, snapshots, and backup repositories. There is also early groundwork for a VM Administrator role that separates VM management from full infrastructure access.

SR deletion

You can now remove a SR via the REST API. The front end will come next month!

Revert a snapshot via the API

A new endpoint lets you revert a VM to a snapshot through the REST API. Reverting was already possible from the interface, and exposing it programmatically means automation and disaster-recovery tooling can drive the operation without a human in the loop. A natural fit alongside the revert-snapshot UX work in XO 6 this release.

How to revert VM to snapshot
Re: Automation script to revert and save snapshot I have the same question. I’m trying curl -k -X POST -b ‘authenticationToken=’ ’https:///rest/v0/vm-snapsho…

Building a VM Administrator role

We’re currently working on a new VM Administrator role following the ACL v2/RBAC model. The goal is simple: allow someone to manage VMs (like editing tags, changing descriptions, or toggling power states) without giving them access to the underlying infrastructure.

While this is still a work in progress and not yet visible in the UI, the core API groundwork is being laid right now. If you've been waiting for a cleaner way to separate your VM operators from your infrastructure admins, this is where we're heading.

ACL v2 / RBAC (REST API/XO6) | Xen Orchestra | XO Documentation
ACL v2 is the access control system for the Xen Orchestra REST API and the XO6 UI. It lets you define exactly what each user or group can see and do — down to individual objects — without granting them full administrator access.

☸️ DevOps Tools

The DevOps work this cycle covers two fronts: observability and Kubernetes integration. On the observability side, the new Prometheus/Grafana series drop straight into your existing setup, no configuration changes needed. On the Kubernetes side, our CSI driver gets a fresh release, and further down we share a first look at our Cluster API provider, a glimpse of where Kubernetes-on-Vates is heading.

Kubernetes CSI new release

v0.3.0 is now available! On the menu:

  • Stable CSI Volume Identity: This decouples Kubernetes volume identity from backend storage lifecycle events (e.g. VDI migration between Storage Repositories)
  • Topology-Aware Volume Provisioning: Dynamic provisioning now supports topology-aware pool selection.

⚠️ Migration required from v0.2.0 to v0.3.0. Read the full release notes in here:

Release v0.3.0 · vatesfr/xenorchestra-csi-driver
ImportantNew requirement — Xen Orchestra 6.4+ This release requires Xen Orchestra 6.4+. The driver now uses other_config at VDI creation time to store Kubernetes volume metadata directly on the dis…

More Prometheus metrics

We added new metrics to the OpenMetrics / Prometheus plugin to help you track infrastructure behavior more precisely from your dashboards.

This release focuses on XOSTOR data. It builds on the previous update, which introduced VDI labels and VM mapping. If you already scrape the /openmetrics/metrics endpoint into Grafana, the new series slot straight into your existing setup.

We decided to prioritize these metrics to answer multiple requests on the forum for better visibility into host and storage data, through the Prometheus exporter.

Gather CPU utilization of host as variable for prometheus exporter
Hello, xsconsole and xen orchestra can display host CPU usage, is it possible to get these metrics somehow in shell into a variable? I would like to create s…

New VDI storage metrics

You can now monitor both the virtual size of your VDIs and the actual physical space they occupy on your SRs.

These metrics include labels for pool, SR, and VDI names, and even identify the associated VM when a disk is attached. This extra level of detail helps you pinpoint exactly where your storage is being used and anticipate capacity needs directly from your monitoring dashboard.

VDI metrics exposed in OpenMetrics
GitHub - prometheus/OpenMetrics: Evolving the Prometheus exposition format into a standard.
Evolving the Prometheus exposition format into a standard. - prometheus/OpenMetrics

Updated Alpine Linux template

We've updated the Alpine Linux template in the XOA Hub to version 3.23:

Kubernetes Cluster API: a glimpse into the future

If you've ever managed Kubernetes at scale, you know the real pain isn't creating a cluster, it's managing dozens of them over time: upgrades, scaling, node replacement, teardown. That's the problem Kubernetes Cluster API (CAPI) was built to solve. It turns clusters themselves into Kubernetes resources: you describe what you want in YAML, apply it, and a management cluster orchestrates the rest.

CAPI uses a provider model, where each infrastructure (AWS, vSphere, OpenStack, etc.) plugs in via its own provider while the workflow stays identical. With a Vates VMS provider, the same declarative API can spin up workload clusters directly on XCP-ng, with XO doing the heavy lifting underneath. Combined with the pieces we already ship (the CSI driver for storage, the CCM for load balancers and node lifecycle), this closes the loop: full Kubernetes lifecycle management on your own infrastructure, no proprietary control plane in sight.

Here's roughly how creating a cluster looks today:

apiVersion: cluster.x-k8s.io/v1beta2
kind: Cluster
metadata:
  name: my-cluster
spec:
  clusterNetwork:
    pods:
      cidrBlocks:
        - 172.31.0.0/16
    services:
      cidrBlocks:
        - 192.168.0.0/16
    serviceDomain: cluster.local
  topology:
    classRef:
      name: xo-almalinux
    version: v1.30.0
    variables:
      - name: controlPlaneEndpoint
        value:
          host: "10.30.139.10"
          port: 6443
    controlPlane:
      replicas: 1
    workers:
      machineDeployments:
        - class: almalinux-worker
          name: worker-md-0
          replicas: 2

This is still very much a work in progress, but expect news on this front very soon. 🚀

📖 Documentation & Guides

Great software needs great documentation, so we're constantly working to make ours better every month!

Restructuring our documentation for XO 6

We’ve started reworking our technical documentation to prepare for the future.

To keep things organized, existing pages have been split into two distinct sections: one for XO 5 and one for XO 6. For now, the vast majority of our current guides and docs live in the XO 5 section.

The new XO 6 section is a clean slate, designed for content that applies only to the new Xen Orchestra interface. As XO 6 picks up speed and gains new features, this section will grow alongside it, so you always know exactly which version a guide is meant for.

The new XO documentation structure

Setting up TOTP for your account

We’ve updated the Xen Orchestra documentation to include clear instructions on how to set up TOTP (Time-based One-Time Password).

If you want to add an extra layer of security to your account with two-factor authentication, you can now find the complete guide directly in the official docs. It covers everything from finding the settings in your profile to scanning the QR code with your authenticator app.

Preview of the TOTP documentation
Users | Xen Orchestra | XO Documentation
For system users (in XOA), please refer to XOA section. Here, we are only talking about users in Xen Orchestra application

Nagios plugin documentation

The transport-nagios plugin is now properly documented. If you rely on Nagios or compatible monitoring systems to keep an eye on your infrastructure, this update is for you.

The new section in the Backup reports documentation explains how to route your Xen Orchestra backup statuses directly into your existing monitoring dashboard. Instead of relying solely on emails, you can now integrate backup success and failure states into your central alerting system.

Preview of the 'transport-nagios' plugin documentation
Backup reports | Xen Orchestra | XO Documentation
At the end of a backup job, you can configure Xen Orchestra to send backup reports directly by email, Slack or in Mattermost. It’s up to you.

🌐 Translations

Thanks to our community translators, Xen Orchestra keeps expanding its language support. Translating the interface is just as valuable as contributing code or reporting bugs! If your language isn’t fully covered (or missing altogether) you can pitch in to help fill the gaps.

8 languages updated

A big thank you to our community for their ongoing efforts in translating Xen Orchestra!

This month, 8 languages were updated: Czech, Chinese (simplified), Dutch, German, Korean, Slovak, Spanish, and Swedish.

Current XO translation status

Want to help translate Xen Orchestra or improve existing translations? You’re more than welcome to join in here.

🆕 Misc

A handful of quality-of-life improvements round out the release.

Timestamped XO config exports

Exporting your Xen Orchestra configuration now adds a timestamp to the filename. It sounds minor, but users told us that XO 5 config exports were easy to lose track of because the files were hard to tell apart. With a timestamp baked into each filename, you can immediately see which export is which and find the one you want. This came directly from a request on our feedback platform.

Better informational XO-config filename · Vates VMS feedback
When doing a manual download/backup of the XO-config. It would be greatly informational if the filename had a timestamp appended to it as a suffix. An

Upload QCOW2 disks from the interface

You can now upload a QCOW2 disk directly from the Xen Orchestra UI. Two API calls that were previously missing have been added, completing the path so the format that just reached GA in XCP-ng can be brought in through the interface. The capability works for both XO 5 and XO 6, so importing a QCOW2 image is now a first-class operation regardless of which interface you use.

Disk import failed
Not sure if this is an XO error or ngix proxy manager issue. When i try to upload an ISO to an NFS ISO share I get the following error when accessing XO via…

IPMI sensors via a dedicated plugin

IPMI sensor data has moved out of the core code and into its own dedicated plugin (xo-server-ipmi).

Previously, we relied on hardcoded rules to map product names to specific sensors. The problem? New or uncommon hardware often got left in the dark until someone manually updated the source code.

By switching to a plugin model, you now have the flexibility to configure exactly how sensors are classified for your specific hardware. This makes out-of-band monitoring much more adaptable, no matter what kind of machines you’re running in your racks. If you're looking to get started or troubleshoot missing temperature readings, check out the dedicated threads on our forum.

The new IPMI sensor plugin
How to Setup IPMI in XO
Hi, Just updated to xcp-ng 8.3 and I tried searching the XO docs for IPMI but can’t find anything. How do I see IPMI info from our Dell PE 640 in XO? Thank y…