Cara Meta menambal Linux dalam skala besar
(thenewstack.io)- Menambal server Linux itu sederhana, tetapi menambal puluhan ribu server tanpa downtime bukanlah hal yang mudah
- Meta menggunakan Kpatch dari Red Hat dan KLP (Kernel Live Patching) untuk menambal jutaan server Linux
- KLP memungkinkan penerapan pembaruan keamanan terbaru ke kernel Linux tanpa reboot
Live kernel patching
- Live kernel patching disediakan sebagai paket yang berisi kode yang telah diperbaiki, terpisah dari paket kernel utama
- Live patch bersifat kumulatif, sehingga patch terbaru mencakup semua perbaikan dari patch sebelumnya
- Live patch tidak berlaku untuk semuanya; data atau struktur tidak bisa ditambal, dan pembuatan live patch memerlukan pekerjaan rekayasa tambahan
Kpatch
- Kpatch bekerja dengan membandingkan kernel asli dan kernel yang sudah ditambal, lalu menambalkan kode baru ke kernel yang sedang berjalan menggunakan modul kernel kustom
- Setelah itu, proses Kpatch menggunakan ftrace untuk memantau stack dari proses yang ada guna memastikan patch dapat diterapkan tanpa dampak berbahaya
- Jika dinilai aman, kode yang sedang berjalan dialihkan ke fungsi yang sudah ditambal, lalu kode lama yang kini usang dihapus
- Server pun kini telah ditambal tanpa menimbulkan downtime
Dalam kasus Meta
- Tentu saja, dalam praktiknya tidak sesederhana itu
- Di Meta, saat menerapkan live patch, biasanya dibutuhkan 1~2 detik untuk menerapkan patch ke sebuah host
- Waktu 1~2 detik per host ini sangat cepat jika dibandingkan dengan kexec, mekanisme kernel Linux untuk mem-boot kernel baru
- Tidak diperlukan downtime maupun migrasi workload; cukup terapkan live patch dan langsung bisa digunakan
Cara menambal jutaan mesin
- Saat menambal jutaan mesin, ceritanya tidak berhenti di situ
- Di Meta, karena bug bisa ditemukan selama rollout patch, administrator terlebih dahulu menambal tier release candidate
- Package roller yang menyediakan patch berbasis RPM juga secara otomatis memeriksa kesehatan server
- Meta memantau crash, alarm utama, masalah aplikasi, dan performa pada kernel baru; jika tingkat kesalahan melebihi 1 crash per 1.000 server, patch dihentikan dan dipulihkan ke kernel sebelumnya
- Meta menggunakan Kpatch, tetapi ada alternatif lain juga
- SUSE menyediakan kGraft, Oracle menggunakan Ksplice, dan Canonical mendukung Livepatch
- Terlepas dari perbedaan kode, semuanya memberikan hasil yang serupa
Pendapat GN⁺
Hal terpenting dari artikel ini adalah bahwa Meta telah menerapkan metode patching yang efisien tanpa downtime untuk jutaan server di seluruh dunia. Ini juga merupakan topik yang menarik bahkan bagi software engineer junior, serta menekankan pentingnya pemeliharaan dan keamanan sistem Linux. Selain itu, artikel ini dapat membantu memahami kompleksitas dan kebutuhan teknologi live patching.
1 komentar
Komentar Hacker News