Subcategories

  • All Xen related stuff

    622 Topics
    6k Posts
    K
    Hello Folks, Posting this because it cost me an evening and was misattributed to four different subsystems before I found it, and because I think the fix and the reporting gap are separable questions. Summary Windows Server 2022 guests on XCP-ng 8.3 were being destroyed and restarted every 12–15 minutes. No bugcheck, no dump, nothing in the Windows event log except event 41 / 6008 — "rebooted without cleanly shutting down." The cause was populate-on-demand exhaustion: (XEN) p2m_pod_demand_populate: Dom124 out of PoD memory! (tot=1049115 ents=3145696 dom0) (XEN) domain_crash called from p2m_pod_demand_populate+0x4e2/0x8c0 The VMs had memory-static-max at 16 GiB with memory-dynamic-max at 4 GiB. Xen backs the dynamic amount and populates the rest on demand, relying on the balloon driver to return pages before the pool runs dry. The balloon driver in the Citrix XenServer VM Tools 9.4.0 does not reclaim under that pressure. Replacing them with XCP-ng Windows Guest Tools 9.1.200.0 fixed it completely. The test Two VMs from the same sysprepped Server 2022 template, same host, identical memory configuration, differing only in guest tools. Arm A Arm B Guest tools Citrix XenServer VM Tools 9.4.0 XCP-ng Windows Guest Tools 9.1.200.0 memory-static-max 17179869184 (16 GiB) 17179869184 (16 GiB) memory-dynamic-max 4294967296 (4 GiB) 4294967296 (4 GiB) memory-dynamic-min 4294967296 (4 GiB) 4294967296 (4 GiB) memory-static-min 1073741824 (1 GiB) 1073741824 (1 GiB) At idle both ballooned correctly — memory-actual 4297175040 and 4297027584 against a memory-target of 4294967296. Ballooning at idle is not the differentiator. Both drivers do it. The difference only appears when the guest touches a page beyond what is backed. Results: Test Arm A (Citrix) Arm B (XCP-ng) Unattended, idle, 22 hours 4 recreations 0 recreations Interactive login crashed shortly after survived Allocation loop to 14 GiB domain destroyed in 13 seconds completed Domain IDs over 22 h 137, 139, 140, 141, 151 138, unchanged The allocation loop was a PowerShell script holding 256 MiB chunks and touching every page. Arm A's log file contains its start line and nothing else — not one chunk completed. The host watcher: 07:47:04 PoD=170 TEST-DMC-B=138 TEST-DMC-A=140 07:47:19 PoD=173 TEST-DMC-B=138 <- arm A gone 07:47:34 PoD=173 TEST-DMC-B=138 TEST-DMC-A=141 <- recreated Arm B ran the identical script to completion. Windows threw OutOfMemoryException per chunk once it hit its own limit, which is the correct failure — the guest refusing an allocation is right, the hypervisor destroying the domain is not. I then left both running and kept sampling every 15 seconds. Over the following 22 hours, 5,255 samples: Arm B held a single domain ID (138) throughout. Not one recreation. Arm A was destroyed and rebuilt four times — domain IDs 137, 139, 140, 141, 151 — with the host's PoD crash count going 167 to 176. Same host, byte-identical memory limits, both idle at a logon prompt. (Domain IDs increment globally, so the gaps in arm A's sequence are other VMs starting, not extra crashes.) What I think is worth discussing I do not think Xen's behaviour is the bug. Xen cannot swap, PoD exhaustion leaves it no option, and an operator who sets static-max at four times dynamic-max has accepted that risk. Fair enough. What made this take an evening is that nothing anywhere says so. XO's VM creation form writes memory-dynamic-max and nothing else. I verified this separately: cloning a template that carried 4-to-16 and setting the form's RAM field to 8 GiB produced dynamic-min 4 GiB, dynamic-max 8 GiB, static-max 16 GiB. Three of the four values came from the template. The operator types one number and sees one number; the Advanced fields that would reveal the rest are collapsed by default. This was the XO 5 UI, not XO 6 — see the note below, since it may already be different there. XO reports nothing when a domain is killed this way. No alert, no task, no message on the VM. With on_crash=Start the domain restarts immediately, so the guest records only an unclean restart with no bugcheck code — which points the operator at Windows, which is innocent. The cause appears only in xl dmesg on the host, which is not visible through XO at all. So a supported path through the UI produces a configuration that will destroy the guest, and nothing in the management layer indicates it either at creation or at failure. A caveat on all of the above: I was using the XO 5 interface throughout. I have not tried this in XO 6, so if the new VM creation form surfaces all four memory values, or warns when a clone's dynamic-max lands well below the template's static-max, then part of this is already solved and I am reporting a problem you have fixed. Worth someone confirming either way, because the XAPI-level behaviour is the same underneath and the difference would be entirely in what the UI shows. The domain_crash reporting gap is more likely to be common to both, since it is about surfacing a host-level event rather than about a form. Two things that would have saved the evening, in rough order of value: A warning in XO when a VM's static-max materially exceeds its dynamic-max — or simply surfacing all four values where RAM is set, rather than one. Something visible in XO when a domain is destroyed by domain_crash. Even a task or a VM message would have pointed me at the host log on day one. And if the Citrix tools genuinely do not reclaim under PoD on XCP-ng, that seems worth stating plainly in the guest tools documentation. The current guidance recommends XCP-ng tools without naming this as a consequence, and the failure mode looks nothing like a driver problem. Environment XCP-ng 8.3.0, platform 3.4.0, xapi 26.1.11, build 20260707 Xen 4.17.6-9, changeset 8c80ec836310, pq 9f872f8199c0 Xen Orchestra: XO 5 UI (Community Edition, from sources) Host: 768 GiB RAM, no memory pressure at any point (710 GiB free during testing) Guests: Windows Server 2022 Standard, 10.0.20348, UEFI, Secure Boot Happy to provide the full watcher log, xl dmesg extracts, or the allocation script if useful. Is this known? Is the Citrix-tools reclaim failure expected on XCP-ng, or worth reporting upstream? And does the XO 6 creation form already handle the memory side of this differently?
  • The integrated web UI to manage XCP-ng

    30 Topics
    380 Posts
    tjkreidlT
    More options: to Prevent overwriting the file: Method 1: Probably the best option. Use a Configuration Directory. Modern OpenSSH versions (8.2+) support an include directive. This is the cleanest approach. Create a drop-in file: Put your custom settings in a separate file, such as /etc/ssh/sshd_config.d/custom.conf. The rule: Package updates will not touch files inside this directory. Verification: Ensure the line Include /etc/ssh/sshd_config.d/*.conf is active at the top of your main /etc/ssh/sshd_config file. Method 2: Lock the File (Alternative) You can force the filesystem to make the file immutable so nothing can change it. Lock the file: Run sudo chattr +i /etc/ssh/sshd_config. Unlock for edits: Run sudo chattr -i /etc/ssh/sshd_config when you need to make intentional changes. Method 3: Tell Apt to Ignore Updates. If you are on a Debian-based system, you can force the package manager to always keep your local version.Add this line to /etc/apt/apt.conf.d/local: UCF_FORCE_CONFFOLD=true
  • Section dedicated to migrations from VMWare, HyperV, Proxmox etc. to XCP-ng

    127 Topics
    1k Posts
    olivierlambertO
    Excellent! It's really cool to see how XO Backup and Replication can help you to migrate easily
  • Hardware related section

    174 Topics
    2k Posts
    RN0R
    Hi, I'm struggling to install latest XCP-ng on a MINISFORUM MS-A2 , AMD Ryzen 7 7745HX. Installation fails and host constently reboots after GRUB install mode. I have made all BIOS changes possible to avoid any issue : SVM activated IOMMU activated Secure boot desactivated NVMe RAID desactivated SR-IOV desactivated nomodeset added but still fails debug kernel tested but still fails safe mode tested but still fails I saw that AMD Ryzen are not in HCL ... or is this a driver issue ? Many thanks, RNO [image: 1785751886566-dd823e12-ee96-42e0-9b01-a231021dbe89-image.jpeg]
  • The place to discuss new additions into XCP-ng

    254 Topics
    3k Posts
    DanpD
    @rvreugde I believe this is already being reviewed internally.
  • Error installing Ubuntu 24.04 on new xcp-ng host.

    24
    1
    0 Votes
    24 Posts
    6k Views
    A
    @malemburg Kernel versions: 24.04 - Linux ubuntu-server 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux 24.04.3 - Linux ubuntu-server 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux This is what is running after all the updates: Linux pxe000 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux I have this in my autoinstall to install the tools late-commands: - echo 'deb [trusted=yes] https://gitlab.com/api/v4/projects/xen-project%252Fxen-guest-agent/packages/generic/deb-amd64/ release/' > /target/etc/apt/sources.list.d/xen-guest-agent.list - curtin in-target -- apt update - curtin in-target -- apt install -y xen-guest-agent And this to get all the updates: updates: all
  • Booting to Dracut (I trusted ChatGPT)

    26
    0 Votes
    26 Posts
    5k Views
    M
    I know this is old but I had a similar issue. In the end I told dracut NOT to reassemble my raid array which allowed the system to boot perfectly after. I have no idea why it tries to assemble the same array two but on the second seems to be important
  • VM time ahead by 5 hours

    7
    0 Votes
    7 Posts
    809 Views
    acebmxerA
    @dinhngtu I think it just have been a bad migration or the Win 11 Template did other things to the windows 10 os. Since new test vm did not show the time issues, and a fresh migration of the vim with correct template selected did not have the issues either. I dont know but maybe there is a way to put detect the correct VM template or make note. I didnt think using the win 11 template would have caused issues since using the "wrong" template on vm creation does not have the same effect.
  • Windows 11 (Win11_25H2_English_x64.iso) Fails to Install

    12
    4
    0 Votes
    12 Posts
    3k Views
    acebmxerA
    @busthead said in Windows 11 (Win11_25H2_English_x64.iso) Fails to Install: It appears I missed the key press to start setup Dont you know your are not suppose to blink when doing working. You might miss something Glad you figured it out.
  • Create new virtual machine?

    7
    -1 Votes
    7 Posts
    936 Views
    acebmxerA
    @drwhite85 I suggest watching some youtube videos about xcp-ng. I guest Lawrence Systems - https://www.youtube.com/watch?v=2wMmSm_ZeZ4 He has other videos that go into more depth
  • botched pool patching and now we can't change pool master

    9
    0 Votes
    9 Posts
    1k Views
    R
    Resolved. Patched the rest of the hosts. Restarted all the toolstacks for good measure. I can move the master role now, and deploy new VMs.
  • Lost VMs disk after using new SR

    6
    4
    0 Votes
    6 Posts
    904 Views
    D
    Resolved by rebuild, and doing VM backup and metadata to trunas dataset.... Start Backup earlier. Be better then me
  • Red Hat Linux 10.1 ISO Won't Boot in UEFI Mode

    7
    2
    0 Votes
    7 Posts
    1k Views
    J
    Actually Alma Linux does have a variant for v2 CPUs so they can run 10.0. Just look for x86_64 v2 on the downloads page.
  • suggestions for upgrade path XCP-ng 8.2.1 -> XCP-ng 8.3.0

    11
    0 Votes
    11 Posts
    2k Views
    olivierlambertO
    Great! Keep us posted
  • Xapi#getResource /rrd_updates (on xcp-dl380-gen10) 0%

    5
    0 Votes
    5 Posts
    527 Views
    olivierlambertO
  • ubuntu xen-guest-agent vs xe-guest-utilities

    5
    0 Votes
    5 Posts
    813 Views
    acebmxerA
    @olivierlambert Thank you for the reply. There was a thread on here about the iso not being mounted properly and I commented about having power off the vm and back and it will load the iso. This is specifically true with the 0.4.0 for linux. Image pulled from the XO Hub will not mount the ios if the vm is powered on. There is Yellow Explanation mark next to it. Power off vm and power on vm iso is ok. Reboot vm does not let the ios to work.
  • 0 Votes
    5 Posts
    1k Views
    T
    @Pilow Yes, we monitor observability metrics for guest OSes via other means but being able to see this info via the Xen Orchestra web UI along with the other metrics in the Stats tab definitely has is benefits, especially when performing initial troublehshooting or when dealing with groups in our org that only have access to the XO interface and not the other metrics dashboards. Don't get me wrong, I definitely appreciate all of the work that you are all doing to get these tools working and can't wait to start using them in production. I just need to make sure that they work as expected.
  • This topic is deleted!

    3
    0 Votes
    3 Posts
    3 Views
  • Error installing windows PV drivers 9.0.9137

    11
    0 Votes
    11 Posts
    2k Views
    H
    @zpvS9 said in Error installing windows PV drivers 9.0.9137: I have this error too installing the new PV driver, after uninstalling Citrix driver, reboot, execute XenClean, reboot again, it said that an unsupported device is still present. I must uninstall the device by showing hidden device in Device manager and the Windows PV driver now install. So adding this step in XenClean would be appreciated. encountered the same problem with hidden base system that i needed manually uninstall to get the tools to work.
  • VDI Migrate Fail

    6
    1 Votes
    6 Posts
    1k Views
    olivierlambertO
    So first, it's not an XO issue, which helps to diagnose it. Then, it might be a subtle XCP-ng bug indeed.
  • Unable to enable High Availability - INTERNAL_ERROR(Not_found)

    33
    0 Votes
    33 Posts
    7k Views
    J
    said in Unable to enable High Availability - INTERNAL_ERROR(Not_found): said in Unable to enable High Availability - INTERNAL_ERROR(Not_found): @psafont Would designating a new pool master do the same thing? I ran the above command and its had no effect Well, I tried changing the pool master and when VMHost11 was the master I was able to enable HA. Switching back to VMHost13 as the master now so will see how that goes Everything is working as expected/hoped. So for anyone reading through this and wants a TL;DR Issue was related to the pool master setting, changing the pool master to a different host and then back to the original fixed the incorrect settings allowing HA to be enabled
  • 0 Votes
    2 Posts
    557 Views
    D
    @lastcmaster Hi, it's a known issue that guest agent versions are not reported after migration or suspend. Other functionalities (poweroff/reboot, suspend, network change etc.) should continue to work normally.
  • VM start stuck on "Guest has not initialized the display (yet)."

    7
    0 Votes
    7 Posts
    2k Views
    D
    @flakpyro said in VM start stuck on "Guest has not initialized the display (yet).": @dinhngtu said in VM start stuck on "Guest has not initialized the display (yet).": You must run secureboot-certs clear if you're updating from 1.2.0-2.4 or 1.2.0-3.1 and have previously run secureboot-certs install with the above versions installed. Should we run this before installing the update or after 1.2.0-3.2 has been installed? You should run that preferably after updating all hosts. @lukasz_s said in VM start stuck on "Guest has not initialized the display (yet).": @dinhngtu thanks for advice i've upgraded varstored and varstored-tools: rpm -qa | grep varstored varstored-1.2.0-3.2 varstored-tools-1.2.0-3.2 than i've cleared varstore with secureboot-certs clear should taht folder contain more files ? ls /usr/share/varstored/ KEK.uth PK.auth db.auth what about dbx file ? That file is not shipped with varstored nor needed for now. We're validating the final 1.2.0-3.2 and preparing our guidance for the official update.
  • What to do about Realtek RTL8125 RTL8126 RTL8127 drivers

    13
    0 Votes
    13 Posts
    11k Views
    A
    I have updated the drivers for the Realtek RTL812x 2.5/5/10G cards. So far they are working correctly. There are a few minor issues that Realtek needs to fix (for the next version, they say). Also the new Realtek firmware has not been added to XCP (but it's not required). The standard included 8125 driver for XCP 8.3 is not updated. To use the new driver install the new alt version of the 8125 driver. To support the 8126 install the required 8125 alt version first and then the new 8126 driver. The 8127 driver is also available for the new 10GB chips (I just got a production PCIe card for testing). The first issue I see with this card is, it is only a PCIe x1 card, so for full performance you need PCIe 4.0... There are other 8127 chips that support x2 so they will better support PCIe 3.0. Realtek will keep releasing new versions of the chips that will require updates to the drivers to function correctly. Even current versions of Linux needs updates to support the newer chips.
  • 0 Votes
    11 Posts
    3k Views
    TeddyAstieT
    @rk9268vc said in Having issues installing StartOS as a VM. Cant detect a disk for it to install to.: @TeddyAstie so can i just not run this OS on xcp-ng? is there no workaround? Would this run on proxmox? you can try adding to Linux command-line (in grub) xen_emul_unplug=never to disable PV drivers, thus making udev see ATA/NVMe drivers, maybe that's enough as long it's only the installer