Ahoj,
Dělá se to z userspace - "něco" musí hypervizoru říct, aby balloon ovladač odebral hostovi třeba 3.8GB RAM (aby mu nějaká cache zůstala). Jádro hosta pak vrátí diskové cache, protože bez těch se obejde - jo, když se to přežene, nastoupí oom killer.
Je to přesně tak. Obvykle je vyžadován i guest agent, aby se dalo vhodně počítat, kolik paměti ta VM používá.
Red Hat na to asi nějakého démona mít bude, to už nevím.
MoM - http://gerrit.ovirt.org/gitweb?p=mom.git;a=summary
Ale je dost magie to vyladit.. zvlášť, když nastoupí ještě KSM (deduplikace stránek na hypervizoru). Linux totiž klidně vrátí všechnu volnou pamět.. a pak stačí, když si kernel řekne o nějaký buffer a Oops…. OOM killer nemá šanci vůbec reagovat. A když to je pomalejší, tak se občas stane, že OOM killer zabije guest agenta a tím znemožní vrácení paměti (protože MOM toho guesta začne ignorovat) :)
Jako jeden z hlavních vývojářů MoMu jsem takových situací viděl a vyvolal dost... Správa prostředků ve virtualizaci je občas velká "sranda". Vůbec to Pavlovi nezávidím (a mám VPS na jiném nodu ;).
-- Martin Sivák