NTP macchine virtuali

Sincronizzazione dell'ora nelle macchine virtuali
La sincronizzazione nelle macchine virtuali (VM) può essere piuttosto complicata. Se il tempo in una VM viene confrontato con un clock di riferimento esterno reale a intervalli regolari, la differenza di tempo osservata nei confronti successivi può saltare avanti e indietro anche se l'orologio di riferimento è stabile. Ad esempio, se 1 secondo sembra essere passato all'interno di una VM, il tempo di un orologio reale potrebbe aver guadagnato 1,1 secondi perché gli aggiornamenti del timer nella VM sono stati ritardati, o solo 0,9 secondi se gli aggiornamenti del timer sono stati raggruppati per recuperare.
Quindi, quanto accuratamente il tempo in una macchina virtuale può essere disciplinato da qualsiasi software di sincronizzazione dipende in generale da quanto è buona la sincronizzazione in una VM, che a sua volta dipende dall'implementazione del software di virtualizzazione (cioè l'hypervisor), che deve fare attenzione che gli interrupt in ogni VM siano programmati con precisione ogni volta che un intervallo di tick scade.
Pertanto, le prestazioni della sincronizzazione di una VM dipendono dal tipo e dalla versione del sistema operativo in esecuzione nella VM e dal tipo e versione del software hypervisor in esecuzione sulla macchina fisica.
Alcuni sistemi di virtualizzazione forniscono i propri meccanismi per disciplinare il tempo in una VM in modo più o meno accurato, mentre altri suggeriscono di installare un software come il deamon NTP su una macchina virtuale.
Generalmente non è consigliabile utilizzare una VM come time server di stratum 2 per altre macchine fisiche poiché il tempo fornito da tale server è solitamente meno accurato e fornisce un jitter significativamente maggiore rispetto a una macchina fisica che agisce da time server stratum 2.
Una spiegazione più dettagliata delle nozioni di base può essere trovata in un documento fornito da VMware:
https://www.vmware.com/pdf/vmware_timekeeping.pdf
Altre risorse: supporto NTP: problemi noti del sistema operativo
http://support.ntp.org/bin/view/Support/KnownOsIssues
In particolare: Xen, VMware e altre implementazioni di macchine virtuali
http://support.ntp.org/bin/view/Support/KnownOsIssues#Section_9.2.2.
VMware
Nelle prime versioni di VMware il tempo all'interno di una VM saltava avanti e indietro così tanto che programmi come ntpd non erano in grado di disciplinare correttamente il tempo di sistema, quindi il consiglio generale era di lasciare che l'hypervisor aggiustasse il tempo della VM ad intervalli periodici . Nelle attuali versioni di VMware questo è stato migliorato, quindi VMware suggerisce di installare NTP in ogni VM, se la VM esegue Linux o Windows:
Best practice per il time su Linux (1006427)
https://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=1006427
Best practice per Windows (1318)
https://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=1318
Nota:
Se si esegue ntpd in Windows, utilizzare NTP versione 4.2.8 o successive e configurare i server NTP da sottoporre a polling utilizzando le linee di configurazione come questa in ntp.conf: server aa.bb.cc.dd iburst minpoll 6 maxpoll 6
dove aa.bb.cc.dd deve essere sostituito dal nome host o dall'indirizzo IP del server NTP reale. Questa configurazione produce il miglior risultato sotto Windows in generale. In VMware è anche possibile, in determinate condizioni, utilizzare direttamente una scheda PCI come origine temporale di riferimento all'interno di una singola VM.
Limiti noti
Quando una macchina virtuale viene spostata da una macchina fisica alla successiva o un'istantanea viene prelevata da una macchina virtuale, la macchina virtuale viene temporaneamente sospesa, il che si traduce in un offset di tempo quando viene ripresa la VM.
Altri sistemi di virtualizzazione
Ci sono altre implementazioni di virtualizzazione come:
- Microsoft Virtual PC / Hyper-V
- https://msdn.microsoft.com/library/cc768520.aspx
- Oracles's VirtualBox
- XEN
- Linux KVM
- E molti altri...
Le basi sono per lo più sempre le stesse, ma non abbiamo ancora raccolto informazioni specifiche.