Come posso aggiornare il kernel del mio server senza riavviare?


29

Questa è una domanda carica perché ne sono già a conoscenza e sono molto interessato a ksplice . Il problema è che da quando sono stati acquistati da Oracle, sono stati costretti a estrarre numerose offerte di server dalle offerte. La risposta non è semplice come una volta.

Ho notato una domanda su Unix.SE che afferma:

Puoi creare le tue patch ksplice per caricarle dinamicamente nel tuo kernel

Grande! Ma come?!

Ho installato il ksplicepacchetto gratuito nel repository sul mio desktop (non ksplice-uptrackche non è gratuito) e ora voglio generare e applicare gli aggiornamenti. Qual è il processo? Ci sono degli script là fuori per automatizzare il processo?

Inoltre, se tutto il macchinario richiesto per gli aggiornamenti senza riavvio si trova lì nel kernel (e nel ksplicepacchetto), perché mai non ne stiamo approfittando di default?


Molto recentemente è stato annunciato kGraft . Sembra essere più o meno lo stesso risultato, quindi se hai una risposta che lo coinvolge, ne sarei altrettanto felice. Al momento sono pochi mesi dall'uscita.


Nota 1: Sono felice per una soluzione a fianco di ksplice ma deve fornire la stessa cosa: rotolare gli aggiornamenti al kernel che possono essere applicati senza riavviare il server.

Nota 2: lo dirò di nuovo; il "servizio" principale di ksplice non supporta Ubuntu Server. Lo faceva ma non lo fa più. Quando parlo di voler usare ksplice, sto parlando degli strumenti open source nel ksplicepacchetto. Qualsiasi risposta di cui parla ksplice-uptrackprobabilmente non è ciò che sto cercando in quanto questa è la parte che si integra direttamente con il suddetto "servizio".

Risposte:



6

Non so molto di ksplice ma ho pensato di menzionarlo - ne hai sentito parlare kexec? Questo potrebbe essere quello che ti serve.

Per quanto riguarda la domanda, perché non l'abbiamo adottato come meccanismo predefinito? Bene, sovrascrivere la memoria del kernel corrente mentre è ancora in esecuzione può causare potenziali problemi. Si aspetta inoltre che i dispositivi hardware siano in uno stato ben definito che non è sempre possibile.

Puoi dare un'occhiata all'articolo di lavoro dello sviluppatore IBM su di esso per decidere se soddisfa le tue esigenze.


5
+1 per kexec, ma in sostanza è un riavvio a caldo - IE il kernel viene caricato di nuovo da zero, quindi gli script di init ecc. Vengono comunque chiamati. Questo non è tecnicamente un riavvio, ma i servizi in esecuzione si fermeranno.
jackweirdy,

Sì, ne sono consapevole ma non ho letto nulla su ksplice per scoprire come è diverso.
Marcin Kaminski,

1
Secondo en.wikipedia.org/wiki/Ksplice , kspliceapplica una patch diff binaria al kernel in esecuzione mentre è ancora in memoria
jackweirdy

2
Dovrò leggere qualcosa in più su questo dato che è interessante. Quindi, quanti tempi di attività stai cercando di salvare dall'inizializzazione? : D
Marcin Kaminski,

3

ksplice consentirà lo scambio del kernel senza riavviare. Uptrack funziona all'interno di ksplice e ha un file di configurazione modificabile in /etc/uptrack/uptrack.conf


2

Ci sono un paio di alternative completamente open source a Ksplice che sono state entrambe presentate per l'inclusione nel kernel principale di Linux. È troppo presto per sapere quale finirà nel kernel, ma puoi comunque provarli se sei abbastanza coraggioso:

Puoi leggere di più su entrambi qui: SUSE Posts kGraft, Red Hat Posts Kpatch Patches


1

La wiki di Arch Linux aveva le istruzioni: https://wiki.archlinux.org/index.php/ksplice

L'unica parte che sembra essere specifica della distro è come installare ksplice stesso. Dal momento che hai già capito che sembra, penso che questo dovrebbe metterti sulla buona strada.


1
Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
Eric Carvalho,

0

Dal 16 luglio 2015 "Oracle Ksplice è offerto gratuitamente su Fedora e Ubuntu Desktop Edition.", Ufficialmente.

Basta installare il file .deb scaricato che puoi ottenere qui .

Se ci provi sudo dpkg -i ksplice-uptrack.deb, potresti dover correggere le dipendenze con sudo apt-get install -f.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.