• 4 Votes
    70 Posts
    32k Views
    nathanael-hN
    Hello there, I posted in another thread an experimental Docker containers integration, not for production, but good enough to test it, see https://xcp-ng.org/forum/topic/12423/bringing-container-visibility-back-to-xo/9?_=1791618850567
  • 0 Votes
    12 Posts
    812 Views
    C
    @nathanael-h This is awesome — genuinely didn't expect to go from "is there any interest?" to screenshots of a working Containers tab in under two months. Thank you (and thanks @TeddyAstie for the architectural context — the vsock/pv-channel angle makes a lot of sense as the "someday" answer). I'll build and play with the later today and will report proper back with test results, including whether I can reproduce @acebmxer's multi-VM fingerprint issue. (As an aside, I really only use docker - if there's any guru's running podman out there that want to give this a crack and provide some feedback, this is the place to do it ). There's a lot to like about the SSH shortcut. No dom0 involvement and nothing to install in the guest makes for lower setup friction than what I originally proposed, honestly. And because it talks to a socket path rather than baking Docker knowledge into an agent, it ends up runtime-agnostic almost by accident — which I think fairly answers Teddy's "one size fits all" concern about my collector idea, so point conceded there It also means the crypto-rot failure mode that killed xscontainer (fossilized paramiko in dom0 arguing with a modern guest sshd - btw have the old packages been or plan on being removed from dom0?) structurally can't recur, since XO's SSH stack gets updated along with XO itself. And full socket access clearly made lifecycle actions and logs come essentially for free — that's already beyond the read-only v1 I'd imagined. IF ( - big if) this iteration makes it eventually, I'd love to see the docs (or UI) recommend a dedicated unprivileged user for XO's access, a rootless socket where possible, and ideally a forced-command/restrict entry in authorized_keys that limits the key to socket forwarding only — I.E if the connection form could even just nudge people toward that pattern, the security story gets much more comfortable. Related to that, a read-only mode toggle would be valuable (although I realise the irony that if a bad actor already has access to XO they effectively have the keys to the castle and a read-only option is moot - perhaps you could weigh in on this idea?); the biggest win imo is just the basic visibility (as I'd imagined in a v1 release) and I imagine some users would happily take visibility while being nervous about handing XO stop/delete power over their containers, and read-only also shrinks what a compromised XO could do with the stored keys. Two smaller ones, mostly for docs/expectations: XO now needs network reachability to every monitored VM, which is fine for homelabs like mine but a real limit in segmented environments (sorry Networking Team in advance!); and the per-VM connection form is fine at my scale, though at many-VMs scale some way to apply a credential across tagged VMs might eventually be wanted (later down the track - food for thought for the XO6 UI and handling of SSH keys maybe?). One question I have relates to surfacing data freshness and connection state: how quick would the UI respond if the docker socket was stopped or ssh connection was terminated (or container in a restarting state)? Would it be feasible to add something like "last refreshed Xs ago" / "disconnected since..." if not already so an empty container list could be distinguished from a dead connection (will try and test this later as well and determine how quick it reacts ) NinjaEdit: Just double checked the screenshots - Already implemented - nice work Thanks again for actually building the thing — this is exactly the "community raises it, Vates runs with it" loop that keeps me on this stack. should we read this experimental SSH approach as stopgap — something to validate the feature and UI now — with the longer-term intent being one of the no-network transports Teddy described (vsock/pv-channel bridging of the socket) once the plumbing exists in a future XCP-ng? Asking because the nice property of this design is that the XO-side code and UI shouldn't really care about the transport: if the answer is "yes, SSH now, vsock later," then everything built here survives the swap and the credential/network concerns above largely resolve themselves over time. If instead SSH is intended as the permanent design, the hardening points matter more. Either answer is fine — just keen to know which way to aim feedback. (Also, this also opens up the possibility of having containers visible across a whole Cluster, similar to how VM's are now viewed, and a whole host of options for container labels/tags and smart(er) backup features! OMG!)
  • cloud-init Cloud Config use of {name}

    Unsolved Infrastructure as Code
    5
    0 Votes
    5 Posts
    104 Views
    B
    @bvitnik It worked as hoped, after an iteration or two. I opted for using jinja templating with setting template vars up top and using in standardized fashion below. But... I can see that cloud configs will not be easy to manage and scale for complex tasks. If you need to write a file or two, configure LDAP authN using sssd, the prometheus node_exporter, etc., the scripts can get lengthy. Given how difficult they are to debug (cloud-init schema --config-file <config.yaml> --annotate is helpful, but more challenging with jinja templates), it would seem something else should supplement a basic config. Now I'm considering ansible-pull from an on-network git repo -- I don't think I have the scale to warrant a control instance and I can't quite warm up to the idea of an SSH key with sudo access everywhere. Admittedly the security concern just shifts to the repo, especially if periodic pulls will happen. In your opinion am I going in the right direction or should I be considering other config management options too? My goal is to deploy VMs with a set of docker containers (I'll use podman) in a repeatable fashion. Thanks again for your patience with a DevOps noob.
  • XOA Unable to connect xo server every 30s

    Unsolved Xen Orchestra
    8
    0 Votes
    8 Posts
    1k Views
    G
    @john.c @poddingue I am very happy to report that I am no longer receiving the "XOA Unable to connect xo server every 30s" message on the Chrome browser of my Windows 11 PC, as of today, after updating the XO-CE VM and all xcp-ng hosts. I just updated the XO-CE VM to master, commit 70b08, and ran a rolling pool update of my 3 xcp-ng hosts. Thank you to the Vates team.
  • is Xo Proxy available in community version

    Unsolved Xen Orchestra
    21
    0 Votes
    21 Posts
    3k Views
    B
    @acebmxer that is awesome work! Looking forqard to duplicating your effort on Monday. Have an aqesome weekend!
  • Install XO from sources.

    Xen Orchestra
    45
    3 Votes
    45 Posts
    10k Views
    acebmxerA
    Update - changes are live in the dev branch now. So figured out the update / switching branches for the proxy by connecting the proxy to my xoa free account. That triggered the available update to next version. From there I found the command that needs to be ran on the proxy to switch back and forth... [image: Screenshot_20261009_143546.png] Latest branch [image: Screenshot_20261009_144414.png] stable branch [image: Screenshot_20261008_202716.png] Backup job ran sucessful. 2026-10-09T17_48_25.447Z - backup NG.txt After the proxy has been deployed... The proxy has been registered with your Xen Orchestra instance. You can manage it from the Xen Orchestra web interface. Next: register the proxy's updater and move it to the 'latest' channel. On the pool master (IP), set a password for the proxy's 'xoa' user (choose your own) and reboot the proxy VM: xe vm-param-set uuid=UUID xenstore-data:vm-data/system-account-xoa-password='<your password>' xe vm-reboot uuid=UUID SSH to the proxy as 'xoa' (IP) and run: sudo xoa-updater register - This registers it with your vates account. sudo xoa-updater configure-channel xo-proxy-appliance-latest - set to latest or stable sudo xoa-updater upgrade - This can be ran via the UI or this command. Both need to be done twice to do the upgrade and/or downgrade. register needs a free xen-orchestra.com account; see the README. And host connected via proxy. [image: Screenshot_20261009_150011.png]
  • 0 Votes
    2 Posts
    46 Views
    D
    @hrvojer There are many bugs in older versions of the Xen PV drivers. I suggest running Windows without guest tools and drivers if you can take the performance and functionality hit (no suspend/migration on UEFI VMs, no metric reporting, etc).
  • Pool metadata backup failed after xoa upgrade

    Unsolved Backup
    6
    0 Votes
    6 Posts
    201 Views
    J
    Hi! We recieved a fix via the support after opening a ticket as suggested. Now the pool metadata backup is running smoothly again. As far as i know 6.9 will become "stable" after 6.10 is released. I'd still suggest a patch for the stable version, unless the new release is a few days. Best wishes Jacob
  • XCP-ng 8.3 updates announcements and testing

    Pinned News
    706
    1 Votes
    706 Posts
    737k Views
    J
    @acebmxer Can you suspend the vm ? If its not possible its most likely a kernel thing inside the vm. If you can suspend the vm however, it points more to a timing/timeout issue with the migration.
  • Synchronize snapshots

    Solved Backup
    6
    2
    0 Votes
    6 Posts
    309 Views
    poddingueP
    Thanks for coming back with that. Commit 8c2f3 is PR #10518 (https://github.com/vatesfr/xen-orchestra/pull/10518), and the changelog lists it under XO 6.9.1 from 5 October, so XOA users get it with 6.9.1, on the latest channel for now if I read the release channels right.
  • Change Pool Master does not update connection string in XOA

    Unsolved Management
    4
    2
    0 Votes
    4 Posts
    148 Views
    poddingueP
    I tried this on my lab (with XO 6.9.1), moving the pool master to the other host with xe pool-designate-new-master and then back. XO stayed connected both times and picked up the new master, even though Settings > Servers still showed the old host's address; on the way back it took a minute or two to catch up. I didn't test 6.2.2, and I used the CLI rather than the XO 5 Advanced tab, so my guess that your older version is the difference is only a guess. For the XVA, I'm not aware of release notes for the appliance image itself: it updates itself after import, and the notes that exist are per XO version, in the monthly blog post and the changelog, both linked from https://docs.xen-orchestra.com/getting-started/releases#release-cadence-and-channels . How often the downloadable XVA gets rebuilt I don't know, so the 2025.12 tag may just be the date of the base image, but I'd rather ask than guess.
  • 0 Votes
    2 Posts
    76 Views
    poddingueP
    The docs have a section for this symptom, Windows Server 2025 hanging at 0% CPU: https://docs.xcp-ng.org/troubleshooting/windows-pv-tools#windows-server-2025-hangs-randomly-with-0-cpu . Besides the Viridian flags you've already set, it says to revert useplatformclock and useplatformtick with bcdedit if they were ever set in the guest. Your earlier thread showed a VM created from the "Other install media" template, so it's worth checking which template this one came from, since the Windows templates bring their own Viridian settings. I don't think the QEMU SIGTERM is the cause, though: when I force-shut down a VM on a lab host, qemu-dm logged that exact terminating on signal 15 line, sent by xenopsd-xc (ps -o comm -p 1526469 will tell you on yours), so yours most likely just matches your forced shutdown around 10:20 on 5 Oct. If it freezes again after that, the memory dump procedure further down the same page (https://docs.xcp-ng.org/troubleshooting/windows-pv-tools#how-to-gather-kernel-memory-dumps-for-in-depth-troubleshooting) is likely what people who know Windows guests better than me would want to see.
  • 0 Votes
    15 Posts
    215 Views
    S
    @yannsionneau Yes it works Thank you very much, great job Tested on Ryzen 9 9950X / AMD Raphael iGPU Tested the new experimental iGPU passthrough packages. - CPU: AMD Ryzen 9 9950X - iGPU: AMD Raphael (1002:13c0) - XCP-ng: 8.3 - Guest: Bazzite AMD - VBIOS: extracted from the ACPI VFCT and supplied as /root/vbios.bin - iGPU passthrough: working - AMD amdgpu driver: working - Physical HDMI output: working - Bazzite desktop displayed successfully on the physical HDMI port. Ubuntu 24.04.2 was able to initialize the GPU and Vulkan/RADV detected the Raphael iGPU, but the HDMI output went black when the graphical desktop started. Bazzite worked and provided a stable display output. So on my Ryzen 9 9950X, the experimental packages appear to successfully enable Raphael iGPU passthrough and physical HDMI output.
  • Intel Core Ultra iGPU passthrough

    Hardware
    12
    5
    0 Votes
    12 Posts
    2k Views
    A
    @yannsionneau Hi, I really appreciate the effort, but unfortunately I had to migrate to another hypervisor on this server and it's already away and running. However, when I get a new one I will make sure to test this and report back. Thanks anyway.
  • Passing through Intel iGPU

    Unsolved Xen Orchestra
    3
    0 Votes
    3 Posts
    821 Views
    Y
    @jp13232 @peek have you tried following this: https://docs.xcp-ng.org/compute/#pci-passthrough ? Also, you can have a look there: https://xcp-ng.org/forum/topic/12523/igpu-pci-passthrough-new-experimental-packages-need-testers if you finally manage to do the passthrough but have "vbios issues" like explained in the thread.
  • Intel iGPU passthough

    Hardware
    46
    0 Votes
    46 Posts
    32k Views
    Y
    @the_spice @bullerwins @xerxist @hawkpro @vhaelan @ovicz Hi I published a post this morning with packages to test iGPU passthrough, if you have a non production host on which you can test it would be awesome: https://xcp-ng.org/forum/topic/12523/igpu-pci-passthrough-new-experimental-packages-need-testers Thanks! Regards, Yann
  • PCIe Passthrough of Radeon iGPU fails

    Unsolved Hardware
    15
    0 Votes
    15 Posts
    2k Views
    Y
    @mgr42 Hi I published a post this morning with packages to test, if you have a non production host on which you can test it would be awesome: https://xcp-ng.org/forum/topic/12523/igpu-pci-passthrough-new-experimental-packages-need-testers Thanks! Regards, Yann
  • [SOLVED] Just FYI: current update seams to break NUT dependancies

    Solved XCP-ng
    40
    0 Votes
    40 Posts
    9k Views
    F
    So, for everyone who wants to install NUT as a service follow these steps. Modifying the systemd files can make you system unbootable! It should not happen, but there is chance since we are also modifying some "natively shipped files". So an update can break your working configuration again and that is not the fault of XCP-NG!!! As prerequisite it requires the installation and testing of this step-by-step guide https://xcp-ng.org/forum/post/104253. Make sure everything runs before proceeding to the following steps! Now: ################################# Remove "nut-driver.target" dependency ################################# Remove "nut-driver.target" dependency from "nut-server.service" by calling nano /lib/systemd/system/nut-server.service and remove nut-driver.target from routine. I prefer to duplicate and comment to keep the modified rows in the original code. It then should look like this. DO NOT COPY AND PASTE, read, compare and modify carefully! [Unit] Description=Network UPS Tools - power devices information server #After=local-fs.target network.target nut-driver.target After=local-fs.target network.target # We don't Require drivers to be successfully started! This would be # a change of behavior compared to init SysV, and could prevent from # accessing successfully started, at least to audit a system. #Wants=nut-driver.target Wants= # The `upsd` is a networked service (even if bound to a `localhost`) # so it requires that the OS has some notion of networking already. # Extending the unit does not require *this* file to be edited, you # can instead drop in an additional piece of configuration, e.g. add # a `/etc/systemd/system/nut-server.service.d/network.conf` with: # [Unit] # Requires=network-online.target # After=network-online.target Requires=network.target Before=nut-monitor.service PartOf=nut.target [Service] EnvironmentFile=-/etc/ups/nut.conf SyslogIdentifier=%N # Note: foreground mode by default skips writing a PID file (and # needs Type=simple); can use "-FF" here to create one anyway: ExecStart=/usr/sbin/upsd -F ExecReload=/usr/sbin/upsd -c reload -P $MAINPID [Install] WantedBy=nut.target ################################# Add Service for ups-driver ################################# nano /etc/systemd/system/ups-driver.service [Unit] Description=NUT UPS Driver After=network-online.target Wants=network-online.target Before=nut-server.service [Service] Type=oneshot ExecStart=/usr/sbin/upsdrvctl start ExecStop=/usr/sbin/upsdrvctl stop RemainAfterExit=yes [Install] WantedBy=multi-user.target ################################### Add Requirement for nut-server ################################# mkdir -p /etc/systemd/system/nut-server.service.d nano /etc/systemd/system/nut-server.service.d/ups-driver.conf [Unit] Requires=ups-driver.service After=ups-driver.service ################################### Add Requirement for nut monitor ################################# mkdir -p /etc/systemd/system/nut-monitor.service.d nano /etc/systemd/system/nut-monitor.service.d/nut-server.conf [Unit] Requires=nut-server.service After=nut-server.service ################################### Enable services ################################### systemctl daemon-reload systemctl enable ups-driver.service systemctl enable nut.target systemctl enable nut-server.service systemctl enable nut-monitor.service systemctl start nut-monitor.service ################################### Analyze & debugging commands ################################### systemctl list-dependencies nut-monitor.service systemd-analyze critical-chain nut-monitor.service systemctl show nut-monitor.service -p Requires -p Wants -p After systemctl show nut-server.service -p Requires -p Wants -p After
  • Future Architecture?

    News
    10
    1 Votes
    10 Posts
    301 Views
    J
    @herhin2017 said: @john.c Your absolute wright, i do my best and train about 25 young engineers per year on linux (we use debian). I also see more and more startups or small companies building their infrastructure on linux. Best greetings from austria It may be worth getting in line and noting the mention of EFI based servers for official Vates support with XCP-ng version 9.0 and above, in government reports. That way when the school’s hardware is refreshed it can be ensured that your provided with EFI capable servers, in time for XCP-ng version 8.3 EOL. I personally are already ready for XCP-ng version 9.0 due to my servers being Dell PowerEdge R620 for XCP-ng hosts. Along with Debian version 13.6 on the VMs. While using a Dell Precision 3590 to manage those systems. The “wright” makes your above now sound like a wheel wright, and its profession instead of “right” in for when correct or agreeing with someone or something.
  • 1 Votes
    6 Posts
    246 Views
    dthenotD
    @racom.jiristerba Sorry, I missed answering your questions the first time Is the tapdisk QCOW2 commit failure “The device is not writable: Permission denied” a known issue with these package versions on shared LVM/iSCSI storage? Yes, it's a known issue, most of them will be fixed with the latest update, you might need to activate the VDI again but a migration during RPU will be enough Why does rollback attempt to deactivate the active guest LV while tapdisk still holds it open? It's because in the case of VHD, it's the case but with QCOW2 we don't stop the tapdisk process accessing the VDI, it's a change that was missed Is the qcow2OLD_<UUID> naming seen in rollback expected, compared with QCOW2-OLD_<UUID> seen during successful cleanup? It's a pre-existing bug that I already have on my TODO list Is there a supported update, hotfix, or workaround for this configuration? Installing the latest release sm-3.2.12-25.1 during updates (and maybe launching a xe sr-scan uuid=<SR UUI> after updating it so it auto-resolve the undo) should be enough What additional logs are required to identify the original failure of the second QCOW2 VM? I don't think we need any more logs since the errors I'm seeing should already be fixed. If you have any more issues after installing the newest packages, I will take another look What is the recommended recovery procedure without a guest outage, and how should we validate the disk chains before resuming snapshot backups? The sr-scan after updating should do it automatically, it shouldn't need any manipulation. Looking at the storage logs in /var/log/SMlog for any irregularities could help to see problems.