Skip to content

emka.web.id

writing knowledge, recording civilization

Menu
  • Home
  • Tutorial
  • Search
Menu

Weird XCP-NG Bug or Feature? Enable Maintenance Mode = Host Not Enough Memory

Posted on October 5, 2026

Every time someone asks how to safely take a host offline for updates or hardware work in an XCP-ng pool, the first reply is almost always the same: enable maintenance mode and let the system evacuate the VMs. I followed that exact path on my own three-host HA pool with load balancing turned on. The result was an immediate HOST_NOT_ENOUGH_FREE_MEMORY error. The evacuation tried to shove every VM onto a single remaining host instead of spreading the load, and the free memory simply wasn’t there. I had to turn load balancing off, manually migrate VMs across the other two hosts, and only then could I finish the job. It worked, but it felt like the system was fighting me.

After digging around and testing, I found a far more reliable starting approach: make sure every VM that needs to survive has its HA restart priority set to Restart rather than Best-effort. It costs nothing extra in hardware, yet it changes the evacuation behaviour enough that maintenance mode actually succeeds without the memory error. In my experience this small configuration choice is the difference between a smooth maintenance window and an afternoon of manual VM shuffling.

The practical win that keeps paying off

The real value isn’t just “maintenance mode works.” It’s that the pool finally has a coherent plan for where every protected VM should land when a host disappears. Once the priorities are set correctly, the evacuation logic stops treating Best-effort VMs as optional luggage and starts treating them as part of the protected set. That single change opens the door to a bunch of everyday operations that used to feel risky.

I’ve used it for:

  • Rolling kernel and XCP-ng updates across a three-host pool without ever dropping the critical VMs.
  • Swapping a failed drive or upgrading RAM on one host while the rest of the workload stays online.
  • Testing new storage repositories by evacuating a host, attaching the new SR, and bringing it back.
  • Running firmware updates on the servers themselves during a short maintenance window.
  • Moving a host into a different physical rack or power circuit without scheduling a full outage.
  • Simply reclaiming a host temporarily for some heavy benchmarking while the production VMs stay happily distributed.

All of those tasks still feel safe months later, long after the initial setup. The configuration doesn’t become obsolete once you move past the beginner stage; it actually becomes more useful as the pool grows and the number of VMs increases.

When the workload gets heavier

Compared with leaving everything on Best-effort (the default a lot of people never touch), the Restart setting is stricter. You lose a little flexibility because the HA planner now has to guarantee restart capacity for every protected VM. On a three-host pool that tolerates one failure, that can occasionally surface an HA_OPERATION_WOULD_BREAK_FAILOVER_PLAN message if you’re already running very close to the memory edge. I’ve hit that once or twice when I was being aggressive with overcommitment. In those cases I either temporarily lowered a couple of non-critical VMs back to Best-effort or simply shut a couple of them down for the duration of the maintenance window. It’s a minor annoyance, not a deal-breaker.

I’ve also tried the alternative of just disabling HA for the maintenance window. It works, but it feels like removing the seatbelts so you can change a tire. Once the pool is back online you still have to remember to turn HA back on and re-check every priority. Setting the priorities correctly once and leaving them there has been less error-prone for me.

If you’re comparing the effort to buying a fourth host purely so you never have to think about memory during evacuations, the configuration change wins hands-down on cost. A proper extra host is a significant capital outlay; changing a few HA settings is free.

When another approach might be better?

There are situations where this isn’t the right first step. If your pool is only two hosts and is configured to tolerate zero failures, the current evacuation behaviour is still limited and an upcoming change in the upstream code may eventually help more. In that specific case, temporarily disabling HA or manually migrating VMs can still be faster. Likewise, if you have a large number of truly non-critical VMs that you never want to protect, leaving them on Best-effort and only protecting the important ones is cleaner than forcing everything to Restart. And if you’re still in pure lab mode with no real uptime requirements, the whole HA machinery may be more trouble than it’s worth.

For any production-leaning three-host (or larger) pool, though, getting the priorities right first has saved me more time than any other single habit.

In short, the next time you need to put a host into maintenance mode and the system complains about free memory, check the HA restart priorities before you start manually moving VMs or turning features off. Set the ones that matter to Restart, try the evacuation again, and you’ll usually be done in a couple of minutes instead of an hour. It’s a small configuration detail that quietly makes the whole pool more predictable.

Terbaru

  • Worth It! Switching from Fedora KDE to Kubuntu
  • I’m Happy Using ‘Herdr’, The Fastest Growing Devtool written in Rust
  • Testing Goose on Omarchy Linux (App & CLI): The Open-Source Solution for Daily Task Automation
  • GNOME Founder Attacks Omarchy Founder as “Lazy, Racist, Ignorant”
  • Why I Stopped Using Plain Command Line Docker and Use Portainer 3.0 To Make My Home Projects Fun Again
  • Why I Switched to a Proper Firewall Box with OPNSense for My Homelab Stuff
  • Fixing Windows Error 0x80070005 Hyper-V Export Access Denied Error the Right Way
  • Fixing Hyper V Export Errors and Building a Better Virtual Machine Setup (error 0x80070002, 0x80070005)
  • Fixing the Dreaded Windows Audio Service Stuck on Stopping Error
  • Windows SIM Error, Unknown error 0xc1420127
  • How I’m Building a Cat Breeding Management App with Python Qt6 + Microsoft Litebox, in 1 Week
  • Why Windows Keeps Nuking Your GPU Drivers (And How to Take Back Control)
  • Why I Finally Ditched Mainstream Windows Cleaners (And Why I Use ‘Kudu’ Instead)
  • AI Made Everything Faster, Including Bad Decisions
  • Raspberry Pi Desktop Available of PC and Mac, Based on Debian 13
  • Why I Stopped Yelling at My PC When Error; Getting Windows 11 Voice Isolation and Access to Actually Work
  • Berobat Kanker ke Malaysia: Berapa Biayanya dan Apa Saja yang Perlu Disiapkan?
  • Stop Sending Every Prompt to the Biggest AI Model You Can Find
  • Stop Building AI Agents from Scratch: My Pick for the Best Native Windows Setup
  • Jev Is Faster and Cheaper, But I Still Recommend Clef. Here’s Why.
  • Weird XCP-NG Bug or Feature? Enable Maintenance Mode = Host Not Enough Memory
  • Vinix OS: Another OS That Want to Beat Linux, Try it!
  • Trying NVX, An Ultra-Light Micro-VM Sandbox from Microsoft
  • Learning NocoDB from Scratch: Creating a Simple Greenhouse App
  • How RHEL 10.2 Quietly Turned Into an Absolute Security Beast
  • Grab Videos from Anywhere with ReClip (Can Running Locally)
  • Jumped onto Ubuntu 26.04 LTS? Here’s How to Add a New User Account
  • Tutorial Cara Install WPS Office di Linux (Alternatif Microsoft Office)
  • Tutorial Upgrade Server Ubuntu 24.04 LTS ke Ubuntu 26.04 LTS dengan Aman
  • Inilah Alasan kenapa akun TikTok dibatasi tidak bisa klaim koin dan masalah pembatasan lainnya?
  • Canonical: Ubuntu coming soon to Snapdragon X2 Series platforms
  • Finally, wolfSSL adds post-quantum algorithms!
  • How to Run Gemma Embedding Models Using Docker
  • Deploy Nginx Rootful Container with Podman
  • How to Sandboxing Browser on Linux Desktop with Flatpak
  • Prompt AI: Impressionist Portrait Art of a Woman
  • Prompt AI: Stylish Man Walking Double Exposure Photo
  • Trying Nemotron 3.5 Super VL: NVIDIA’s Open Multimodal Model Built for Agents That Actually See and Act
  • Pruna AI Release their Qwen-Image 2.1 LoRA Adapter, 6x Faster than Regular Qwen
  • The Rise and Fall of the Coding Holy Grail: Is Stack Overflow Just AI Fuel Now?
  • Siapa Sosok Dibalik Video Kerudung Biru Di Mobil? Ini Konteks Asli Rekamannya
  • Bantah Menteri Kesehatan Sesak Nafas di Kalimantan, Netizen Tidak Percaya
  • Download Full Link Video Kakak vs Adik 17 Menit Viral, A Day In My Life? Hati-hati Virus!
  • Nasib Veda Ega di Moto3 Australia 2026: Sudah dapat pole position malah dihambat hujan deras
  • Lagi rame dicari link download Dopamine TV APK, warga diingatkan hati-hati soal keamanan data

©2026 emka.web.id | Design: Newspaperly WordPress Theme