Portál AbcLinuxu, 12. května 2025 06:56
Po delší době pátrání jsem nepřišel na to, jak automaticky nastavovat v KVM guestech čas po jejich probuzení např. po restartu KVM hosta. KVM hostitelský systém (CentOS) mám nastavený tak, že při vypínání ukládá stav všech běžících domén na disk. Takže se nestane, že třeba při běhu z UPS by se nestačil včas vypnout kvůli nějakému neposlušnému guestu.
Jenže po opětovném startu hostitele mají po obnovení všechny guesty špatný čas (celkem logicky si to pamatuje čas uložení). Jenže díky tomu přestane hodně služeb v guestech fungovat a fungovat nezačnou, protože ntpd daemon v linuxu nezvládne seřídit velký časový rozdíl včas nebo dokonce při větším časovém rozdílu spadne.
Zásadní problém je ten, že v guestech nelze normálně detekovat, že neběžely - leda třeba každou vteřinu posílat ntp query a porovnávat s lokálním časem. Jenže co když nemám v síti timeserver a ani mít nemůžu? Potom bych strašně zatěžoval veřejné ntp servery.
Proto jsem si v javě naprogramoval jednoduchou aplikaci, která umí poslat z hostitele guestům zprávu, že si mají srovnat čas a pošle jim i aktuální unix timestamp hostitele. Aplikace komunikuje s guesty přes nějaké blokové zařízení, tj. v hostiteli vytvořím přes dd soubor a ten potom guestům přidám jako nový disk. Aplikace umožňuje zapsat do tohoto souboru nějaký status a automaticky zapsat timestamp. Guest potom prostě tento disk čte (respektive prvních 2048 bajtů). Aplikace umí v guestu disk identifikovat podle signatury, takže není potřeba ani znát cestu k tomu zařízení v guestu. Aplikaci jsem zkoušel v následujících guestech: Linux, Windows XP, Windows Server 2008R2.
Výhodou mého řešení je, že se v guestech nemusí používat virtio ovladače, které třeba pod Windows XP fungují strašně (respektive nefungují). "Oficiální" cestou pro komunikaci s guesty je totiž využití virtuálního sériového portu.
Moje otázka zní, jestli by o to někdo neměl zájem a nemám to někam hodit pod nějakou opensource licencí? ... a nekamenujte mne prosím za to, že jsem tento text nepsal do blogu - blogovat můžu až po 10 dnech od registrace
Na otázku zatím nikdo bohužel neodpověděl.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.