Bagaimana saya bisa memutakhirkan kernel server saya tanpa me-reboot?

29

Ini adalah pertanyaan yang dimuat karena saya sudah sadar, dan saya sangat tertarik dengan ksplice . Masalahnya adalah bahwa sejak mereka dibeli oleh Oracle, mereka terpaksa menarik banyak distribusi server dari penawaran. Jawabannya tidak sesederhana dulu.

Saya perhatikan pertanyaan tentang Unix.SE yang menyatakan:

Anda dapat membangun patch ksplice Anda sendiri untuk memuat secara dinamis ke dalam kernel Anda sendiri

Besar! Tapi bagaimana caranya?!

Saya telah menginstal ksplicepaket gratis di repo di desktop saya (bukan ksplice-uptrackyang tidak bebas) dan sekarang ingin membuat dan menerapkan pembaruan. Apa prosesnya? Apakah ada skrip di luar sana untuk mengotomatiskan proses?

Terlebih lagi, jika semua mesin yang diperlukan untuk upgrade tanpa reboot ada di kernel (dan ksplicepaket), mengapa kita tidak memanfaatkannya secara default?


Baru-baru ini kGraft diumumkan . Tampaknya hasil yang kira-kira sama sehingga jika Anda memiliki jawaban yang melibatkannya, saya akan senang dengan itu. Saat ini beberapa bulan dari dirilis.


Catatan 1: Saya senang untuk solusi di samping ksplice tetapi harus memberikan hal yang sama: bergulir pembaruan ke kernel yang dapat diterapkan tanpa me-reboot server.

Catatan 2: Saya akan mengatakannya lagi; "layanan" utama ksplice tidak mendukung Server Ubuntu. Dulu tapi tidak lagi. Ketika saya berbicara tentang ingin menggunakan ksplice, saya berbicara tentang alat open source dalam ksplicepaket. Setiap jawaban yang berbicara tentang ksplice-uptrackmungkin bukan apa yang saya cari karena ini adalah bagian yang terintegrasi langsung dengan "layanan" tersebut.

Oli
sumber

Jawaban:

6

Saya tidak tahu banyak tentang ksplice tetapi saya pikir saya akan menyebutkannya - pernahkah Anda dengar kexec? Ini mungkin yang Anda butuhkan.

Mengenai pertanyaan mengapa kita tidak mengadopsi ini sebagai mekanisme default? Nah, menimpa memori kernel saat ini masih berjalan dapat menyebabkan masalah potensial. Ini juga mengharapkan perangkat keras berada dalam keadaan terdefinisi dengan baik yang tidak selalu memungkinkan.

Anda dapat melihat artikel karya pengembang IBM tentang hal itu untuk memutuskan apakah itu sesuai dengan kebutuhan Anda.

Marcin Kaminski
sumber
5
+1 untuk kexec, tetapi pada dasarnya ini adalah reboot panas - IE kernel akan dimuat lagi dari awal, sehingga skrip init dll masih dipanggil. Secara teknis ini bukan reboot, tetapi menjalankan layanan akan berhenti.
jackweirdy
Ya, saya menyadarinya tetapi saya belum membaca apa pun di ksplice untuk mencari tahu perbedaannya.
Marcin Kaminski
1
Menurut en.wikipedia.org/wiki/Ksplice , kspliceterapkan patch biner ke kernel yang sedang berjalan selagi masih dalam memori
jackweirdy
2
Saya perlu membaca lebih banyak tentang ini karena menarik. Jadi, berapa banyak uptime yang Anda coba simpan agar tidak disetel ulang? : D
Marcin Kaminski
3

ksplice akan memungkinkan swap kernel tanpa perlu reboot. Uptrack berfungsi di dalam ksplice dan memiliki file konfigurasi yang dapat diedit di /etc/uptrack/uptrack.conf

blindfett
sumber
2

Ada beberapa alternatif open-source sepenuhnya untuk Ksplice yang keduanya telah diajukan untuk dimasukkan dalam kernel Linux mainline. Masih terlalu dini untuk menentukan mana yang akan berakhir di kernel, tetapi Anda masih bisa mencobanya jika Anda cukup berani:

Anda dapat membaca lebih lanjut tentang keduanya di sini: SUSE Posting kGraft, Red Hat Posts Kpatch Patches

bupupin
sumber
1

Wiki Arch Linux memiliki instruksi: https://wiki.archlinux.org/index.php/ksplice

Satu-satunya bagian yang tampaknya spesifik distro adalah cara menginstal ksplice itu sendiri. Karena Anda sudah tahu itu sepertinya, saya pikir ini akan membuat Anda pergi.

bobpaul
sumber
1
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Eric Carvalho
0

Sejak 16 Juli 2015 "Oracle Ksplice ditawarkan secara gratis di Fedora dan Ubuntu Desktop Editions.", Secara resmi.

Cukup instal file .deb yang diunduh, Anda bisa dapatkan di sini .

Jika Anda mencoba, sudo dpkg -i ksplice-uptrack.debAnda mungkin harus memperbaiki ketergantungan dengan sudo apt-get install -f.

Pablo A
sumber