Meta, Linux’u büyük ölçekte nasıl yamalıyor
(thenewstack.io)- Linux sunucularını yamalamak basittir, ancak on binlerce sunucuyu kesinti olmadan yamalamak kolay değildir
- Meta, milyonlarca Linux sunucusunu yamalamak için Red Hat’in Kpatch ve KLP’sini (Kernel Live Patching) kullanıyor
- KLP, yeniden başlatma olmadan Linux çekirdeğine en güncel güvenlik güncellemelerini uygulayabiliyor
Canlı çekirdek yaması
- Canlı çekirdek yaması, ana çekirdek paketinden ayrı olarak, düzeltilmiş kodu içeren bir paket halinde sunulur
- Canlı yamalar kümülatiftir; en güncel yama, önceki yamalardaki tüm düzeltmeleri içerir
- Canlı yamalar her şeye uygulanamaz; veri ya da yapılar yamalanamaz ve canlı yama oluşturmak için ek mühendislik çalışması gerekir
Kpatch
- Kpatch, orijinal çekirdek ile yamalanmış çekirdeği karşılaştırır, ardından özel bir çekirdek modülü kullanarak çalışan çekirdeğe yeni kodu uygular
- Ardından Kpatch süreci, mevcut süreçlerin stack’ini
ftraceile izleyerek yamanın zararlı etki olmadan uygulanıp uygulanamayacağını kontrol eder - Güvenli olduğuna karar verilirse, çalışan kod yamalanmış fonksiyona yönlendirilir ve artık eski olan kod kaldırılır
- Böylece yama sunucuya uygulanmış olur ve kesinti yaşanmaz
Meta’nın durumunda
- Elbette pratikte bu kadar basit değildir
- Meta’da canlı yama uygulanırken, yamayı bir host’a uygulamak genelde 1-2 saniye sürer
- Host başına 1-2 saniye, Linux’un yeni bir çekirdeği başlatmak için kullandığı çekirdek mekanizması
kexecile karşılaştırıldığında gerçekten çok hızlıdır - Kesinti ya da workload taşıması gerekmez; canlı yamayı uyguladığınız anda hemen kullanılabilir
Milyonlarca makine nasıl yamalanır
- Milyonlarca makineyi yamalarken iş bununla bitmez
- Meta’da rollout sırasında hatalar ortaya çıkabileceği için yöneticiler önce release candidate katmanını yamalar
- RPM tabanlı yamaları sağlayan paket dağıtım sistemi, sunucuların sağlık durumunu da otomatik olarak kontrol eder
- Meta, yeni çekirdekte crash’leri, kritik alarmları, uygulama sorunlarını ve performansı izler; hata oranı 1000 sunucuda 1 crash’i aşarsa yama durdurulur ve önceki çekirdeğe geri dönülür
- Meta Kpatch kullanıyor, ancak başka alternatifler de var
- SUSE, kGraft sunuyor; Oracle, Ksplice kullanıyor; Canonical ise Livepatch destekliyor
- Kod fark etmeksizin hepsi benzer sonuçlar sağlıyor
GN⁺ görüşü
Bu yazıdaki en önemli nokta, Meta’nın dünya çapında milyonlarca sunucu için kesintisiz ve verimli bir yama yöntemini uygulamış olmasıdır. Bu, yeni başlayan yazılım mühendisleri için de ilgi çekici bir konudur ve Linux sistemlerinin bakım ve güvenliğinin önemini vurgular. Ayrıca bu yazı, canlı yama teknolojisinin karmaşıklığını ve gerekliliğini anlamaya yardımcı olabilir.
1 yorum
Hacker News görüşleri