HotPatching hogyan kell frissíteni a Linux kernel a rendszer újraindítása nélkül

Az egyik kényelmes szolgáltatása * nix-rendszerek - a számítógép újraindul telepítése után, eltávolítása, és frissítése programokat. Ezért webszerverek működhet zavartalanul évekig, miközben folyamatosan frissített thresh rendszergazdák. Az egyetlen kivétel ez alól a kernel frissítés: itt már újratöltés nélkül nem pontosan. Bár ez nem feltétlenül azonos a Linux.







A legtöbb újraindítások általában nincs semmi baj. Ha ez egy otthoni PC vagy egy külön VDS, a két percig nem valószínű, hogy a probléma a felhasználók éjjel. Ezen kívül néhány disztribúció ki a dobozból támogatási kexec mechanizmus (bevezetett Linux 2.6.27 óta), ami lehetővé teszi, hogy töltse le az új kernel a jelenlegi környezetben, újraindítás nélkül a fizikai szerver, amely minimális állásidő.

A másik dolog az, hogy abban az időben a burjánzó virtualizáció egy fizikai szerver futhat több tucat virtuális gépek - ebben az esetben egy újraindítás nagyon problematikus. És akkor ott vannak a valós idejű rendszerek, a különböző szimulátorok, futás hónapokig, és még sok más. Frissítés a Linux kernel a repülni ilyen rendszerek, amelyek kritikusak a leállás ma nagyon kapós, ezért nem meglepő, hogy a különböző időpontokban kezdődött több kapcsolódó projektek az osztály dinamikus szoftver frissítése: Ksplice Oracle, KernelCare a CloudLinux, kGraft a SUSE, kpatch A Red Hat és livepatch. Mindegyikük olyan, mint az általános működési elve, de eltérnek a végrehajtás részleteit.

Ksplice eredetileg kizárólagosan foltok, ne használja szemantikai változások a adatszerkezetekről velejárója számos (de nem minden) biztonsági javításokat. Ma már lehet használni Ksplice és ha változik a szemantikai, hanem automatikusan generál ilyen foltok nem lehetséges, mert ez szükségessé Ksplice így további utasításokat. De világos útmutatást, hogy az ilyen szabályozás, nem a fejlesztők, és ehhez speciális tudást, így nem valószínű, hogy a rendszergazda vagy a felhasználó ezt. Ezen túlmenően, a tapasz szerelvény kell tenni pontosan ugyanabban a környezetben, mint a kernel által használt. Különböző változatai GCC létrehozni a különböző kódot megjósolni, hogyan fog kinézni egy bináris folt ilyen esetben lehetetlen. Ezért a fejlesztők az alapja a technológia tartották olyan speciális szolgáltatás frissítések Ksplice Uptrack, leegyszerűsíti a műveletet, mivel a szükséges javításokat előkészítése és ellenőrzése speciális csapatot.







Az első disztribúció, amely hivatalosan támogatja a technológia vált az Ubuntu felhasználók, akik használják a Ksplice Uptrack telepítheti a fontos frissítéseket a kernel az Ubuntu 9.04 forgalmazás újraindítása nélkül, és a rendszer leállítása. Később csatlakozott hozzájuk, és Fedora Linux, kereskedelmi támogatást Ksplice kapott RHEL, CentOS, CloudLinux, Ubuntu Server és a Debian GNU / Linux.

Ksplice sokoldalú, mivel nincs szükség speciális módosítása a sejtmagba, és elméletileg működni minden. Ez csak akkor szükséges, hogy a csomag telepítéséhez, amely tartalmazza a kernel modul és a userspace eszközöket, valamint a változtatások a fájlt, amelyet vetített egy futó kernel. A kernel frissítése történik két szakaszban történik. Az első lépésben egy speciális segédprogram összegyűjti ksplice létre a kernel, a forráskódot és patch a kernel, és összehasonlítja a kapott képet a régit. Ennek eredményeként generált a kernel modul kódot tartalmazó megváltozott funkciókat.

HotPatching hogyan kell frissíteni a Linux kernel a rendszer újraindítása nélkül
Ksplice elérhetők az előfizetők
HotPatching hogyan kell frissíteni a Linux kernel a rendszer újraindítása nélkül
Frissítések telepítése segítségével Ksplice Uptrack Ubuntu

Rollback, ha szükséges, történik ugyanabban a sorrendben (segédprogram ksplice-visszavonás). Ha a modul tartalmaz egy patch jelenleg nincs betöltve objektumot, akkor nem csinál semmit, az információ frissítésre, amint elindul. Néhány alapvető rendszer funkcióit, folyamatosan használják a kernel, frissítse a Ksplice nem működik.

Ksplice kezdetben szabad alkalmazni javításokat csak a Linux kernel, de Ksplice új funkciók alkalmazása az Oracle Linux 7 és újabb 6 lehetővé teszi, hogy módosítsa a megosztott könyvtárakat, anélkül, hogy indítsa újra a kapcsolódó működési folyamatokat. Folt is készül menet közben, és szükségtelenné teszi a indítsa újra a régóta tervezett dolgozó alkalmazásokhoz. Jelenleg képes frissíteni felhasználói térben végrehajtott glibc és OpenSSL.

Folytatás a cikk csak az előfizetők




Kapcsolódó cikkek