Linux: kernel potrebbe includere presto aggiornamenti più fluidi

Gli ingegneri di Google hanno proposto LUO, sistema basato su macchine a stati per gestire gli update del kernel Linux in tempo reale.
Linux: kernel potrebbe includere presto aggiornamenti più fluidi

Di recente sono emerse interessanti novità relative al kernel Linux. Si tratta di una nuova serie di patch intitolata “Live Update Orchestrator“, creata dall’ingegnere di Google Pasha Tatashin e basata su un set precedente di patch comunemente noto come serie di patch KHO v5. Questa dovrebbe consentire aggiornamenti fluidi del kernel, denominati “Live Update“.  In questo modo, determinati dispositivi potranno rimanere completamente operativi durante la transizione da un vecchio kernel a uno nuovo. In sostanza, l’innovativo sottosistema Live Update Orchestrator (LUO) intende ridurre al minimo i tempi di inattività del sistema preservando gli stati del dispositivo durante un riavvio. Ciò va a vantaggio degli ambienti cloud dinamici in cui anche piccole interruzioni possono essere sgradite. Secondo gli sviluppatori, questo approccio utilizza un meccanismo di macchina a stati per orchestrare la transizione.

Linux: i dettagli di Live Update Orchestrator

Il sottosistema LUO traccia i progressi attraverso diversi stati, “normale“, “preparato” e “aggiornato“, e li collega tramite API di callback. Questi callback consentono ad altri sottosistemi del kernel di integrarsi senza problemi nel flusso di lavoro di aggiornamento live. Inoltre, il sistema può essere controllato tramite un’interfaccia sysfs in “/sys/kernel/liveupdate/{state, prepare, finish}“.

Quando viene utilizzata, la sequenza di aggiornamento live passa dagli stati sopracitati. Il primo è normal: il kernel funziona normalmente, senza alcun aggiornamento live. Vi è poi prepare: la scrittura di “1” su “/sys/kernel/liveupdate/prepare” attiva il callback LIVEUPDATE_PREPARE, spostando i sottosistemi in uno stato transitorio “preparato“. L’altro stato è updated: una volta che il nuovo kernel prende il sopravvento, il sistema entra nello stato “aggiornato”. Ciò significa che i dispositivi e i sottosistemi stanno riprendendo la funzionalità. Infine, vi è lo stato finish: la scrittura su “/sys/kernel/liveupdate/finish” esegue una transizione finale di ritorno a “normale”, invocando il callback LIVEUPDATE_FINISH e ripristinando lo stato operativo completo.

Tuttavia, un cambiamento così importante nel kernel Linux non può avvenire facilmente. Lo sviluppatore Greg Kroah-Hartman ha espresso riserve e ha chiesto prove più sostanziali della fattibilità di LUO. In particolare, Kroah-Hartman sottolinea la necessità di “patch reali, effettive e funzionanti per almeno tre sottosistemi di bus” prima che lui e altri manutentori prendano in considerazione una revisione seria. Inoltre, nella sua risposta alla mailing list di sviluppo del kernel Linux, sottolinea l’importanza di strumenti user-space ben sviluppati, Ciò servirà a gestire il numero potenzialmente elevato di dispositivi coinvolti in qualsiasi scenario di aggiornamento live. In altre parole, c’è ancora molta strada da fare prima che la funzionalità LUO faccia il suo ingresso nel kernel Linux, sempre che ciò avvenga.

Ti consigliamo anche

Link copiato negli appunti