Kovács Lajos vezető konzultáns kovacs.lajos@npsh.hu
Egyre több a kritikus rendszer az infrastruktúrában 2
Tervezett állási idő 3 Scheduled Downtime Mikor szükséges a tervezett leállás? Ütemezett szoftver frissítés, patchelés, ami kiszolgáló újraindulással jár Hardver karbantartás Adat, alkalmazás migráció Milyen módon csökkenthető? Ütemezett karbantartási ablak használata (egyre nehezebben kivitelezhető) Folyamatok optimalizálása, központi menedzsment eszköz bevezetésével
Tervezetlen leállás Mi okozza a tervezetlen állási időt? Hardver meghibásodás, szoftver hiba, rosszindulatú támadás, üzemeltetési hiba Környezeti hiba, természeti katasztrófa Legtöbb esetben meglepetésszerű, előjel nélküli leállás Milyen módon csökkenthető? 4 Megbízható hardverek, támogatott OS, HA/Geo clustering, proaktív patch menedzsment használata Best parctice használata, képzések, trainingek
A leállási idő elkerülhetetlen!
Mi erre a SUSE válasza?
Kiszolgáló menedzsment Magas rendelkezésre állás 7 Snapshot és visszaállítás Online Kernel frissítés
Kiszolgáló menedzsment Magas rendelkezésre állás 8 Snapshot és visszaállítás Online Kernel frissítés
Az emberi tényező 9
Rugalmasság növelése Full System Rollback 10 Cél a legutolsó jól működő állapotra történő visszaállása a rendszernek akár egy kattintással Javítások telepítése, rendszer upgrade Alkalmazások konfigurálása, adminisztrátori feladatok elvégzése Service Pack visszaállítás támogatása Kernel Upgrade esetén is használható
Komponensek Snapper: Grafikus és parancssori eszköz a snapshotok kezeléséhez Btrfs: alapértelmezett fájlrendszer hibatűrő funkciókkal, snapshot lehetőséggel és könnyen kezelhető menedzsment eszközökkel Grub2: bootloaderbe integrált renszer-visszaállítási funkciók 11
Btrfs fájlrendszer 12 Btrfs SLES12 alapértelmezett fájlrendszere Következő generációs Linux fájlrendszer, SSD-re optimalizálva Copy On Write fájlrendszer LVM kötetkezelő funkcióinak kiváltása A fájlrendszer lehet több lemezen is, RAID funkcionalitás Csökkenthető a fájlrendszer mérete Snapshot lehetőségek Pre, post: automatikus snapshot készítés Single snapshot
SUSE Linux Enterprise 12 Fájlrendszer ajánlások Ye s OS Purpose? New Filesystem? Data No xfs Type? reiserfs ext2/3/4 Ye s Snapshots? No xfs btrfs Recommended Filesystems 13 Snapshots? Ye s No ext3 4 Convert
Btrfs integráció Alap integráció Telepítő Snapper Snapshotok kezelése Snapshotok automatikus készítése (YaST) Snapshotok közötti különbségek képzése Visszaállítás lehetősége User Interfaces Partícionáló 14 Ajánlás subvolume kialakítására Eszközök Btrfs fájlrendszer és subvolume-ok készítése CLI (snapper) GUI (YaST)
Btrfs fájlrendszer 15 Subvolume-okat hozhatunk létre a fájlrendszeren belül, mintha külön csatolási pontok lennének Minden subvolume külön fájlrendszerként kezelhető, külön felcsatolható, de osztoznak a rendelkezésre álló tárterületen Külön kezelhetőek a snapshotok az egyes subvolumeokon
Root / fájlrendszer és snapshotolása Naplófájlok, átmeneti állományok nem kerülnek visszaállításra Megoldás: subvolume-ok használata a következőkre(nem kerülnek snapshotolásra) /tmp /opt /srv /var/spool /var/log /var/run /var/tmp 16 Rendszer integritásának megőrzése
Fájl alapú visszaállítás Egy módosítás hibásnak bizonyult, vagy véletlen törlés miatt szeretnénk fájlokat visszaállítani Hogyan működik Nem történik régebbi snapshotra történő visszaállás Az egyes fájlok másolásra kerülnek snapshotból az aktuális állapotba snapper undochange parancs Előnyök 17 Tetszőleges fájlokat is kiválaszthatunk, nem szükséges a teljes snapshot visszaállítása
Teljes rendszer visszaállítás A rendszerben változás történt, a kiszolgáló fut, de bizonyos funkciók hibásan működnek, hiányosak... rendszer visszaállítása, újraindítás, enjoy! Reboot later mode A rendszerben változás történt, a kiszolgáló nem bootol (worst case scenario) azonnali újraindítás szükséges Reboot now mode 18
BTRFS demo DEMO TIME 19
Kiszolgáló menedzsment Magas rendelkezésre állás 20 Snapshot és visszaállítás Online Kernel frissítés
Kernel Live patching 21 Cél: kernel patch újraindítás nélküli alkalmazása Kernel patchelésének szükségessége Újonnan kiadott kritikus patch azonnali telepítése Aktuális incidens elhárítása, vészhelyzeti javítás Ütemezett frissítés és leállás Több száz kiszolgálót érintő javítás telepítése után nem megoldható az azonnali újraindítás A Live patching az első két esetben nyújt megoldást, a kernel patchet újraindítás nélkül tudjuk érvényre juttatni, gyors reagálás a hibák javítására Frissített kiszolgálók következő üzemezett leállásig történő újraindítás nélküli futtatása
kgraft 22 Online kernel patchelési technológia SUSE által kifejezetten a Linux kernelhez fejlesztve kgraft mainline kernelbe történő integrálása
kgraft előnyei Használata során nem szükséges a kernel megállítása A kgraft patch egy egyszerű C fájl, egyszerű a code review Egyszerű felépítés 23 Még rövid időre sem, mint a konkurens technológiák esetében Csekély kódbázis a többi meglévő, felhasznált Linux technológiának köszönhetően
kgraft működése 24 Minden kgraft patch egy.ko kernel modul, egy Kernel Module Package (KMP) RPM-ben A.ko kernel modul betöltésre kerül a kernelbe az insmod paranccsal az RPM telepítésekor A telepített kgraft patch újraindítás után is megmarad Hibás kernel funkciót tudunk javítani, a kgraft lecseréli a hibás kernel funkciót Modern önmódosító(self-modifying) kódok használata
kgraft limitációk 25 SUSE Linux Enterprise Live Patching kritikus hibák javítására használatos CVE level 6 és magasabb biztonsági sebezhetőségek Súlyos korrupció, vagy stabilitást fenyegető veszélyek Adatstruktúrák módosítása nehézkes a kernelben Kritikus hibák javításához általában nem szükséges adatstruktúra módosítása. Ezek javításához csekély módosítás is elegendő Ez minden live patching technológia közös tulajdonsága
kgraft működése A hibás kernel funkció kikerülésre. Helyette a javított funkció kerül végrehajtásra Kernel funkció első 5 byte NOP utasítással történő feltöltése NOP utasítások lecserélése JMP utasítással Hibás funkció átugrása JMP utasítással A JMP utasítások megmaradnak a patchelés után is 26 Patch visszavonása esetén a régi funkciók így megmaradnak
kgraft működése 27
Online kernel frissítés demo DEMO TIME 30
Kiszolgáló menedzsment Magas rendelkezésre állás 31 Snapshot és visszaállítás Online Kernel frissítés
SUSE High Availability Extension 32 Vezető nyílt forrású HA megoldás Linux-HA alapokon Akár 99.9999% rendelkezésre állás elérése Magas rendelkezésre állás biztosítása szolgáltatás duplikációval, vagy terheléselosztóval Virtualizáció független Rolling update lehetősége a minimalizált tervezett leállásért Egyszerű telepítés, adminisztráció, menedzsment Távolságtól független szolgáltatás átterhelés
SUSE High Availability Extension 33 Szolgáltatás szemléletű HA a VMware megoldásával ellentétben Ingyenes resource agentek használata, tetszőleges szolgáltatások clusterezése Üzletkritikus alkalmazások folyamatos elérhetőségének biztosítása Tervezett és tervezetlen leállások idejének csökkentése
SUSE High Availability Extension 34 Clusterezett fájlrendszer Virtualizáció támogatás Adatreplikáció kiszolgálók, telephelyek között Hálózati szoftveres terheléselosztó Ingyenes resource agentek Clusterezett Samba Node Recovery (REAR) Limitáció nélküli Geo Clustering
SUSE High Availability use cases Active/active szolgáltatások Active/passive szolgáltatások Tradicionális adatbázisok, fájlrendszerek, IP címek Virtuális gépek: KVM, XEN Terhelés elosztott szolgáltatások 35 OCFS2 közös fájlrendszer, adatbázisok, webkiszolgálók, Samba fájlszerver Webkiszolgálók elérése Integrált Ipvsadm, vagy HAProxy szoftveres terheléselosztón keresztül SUSE Cloud komponensek magas rendelkezésre állása
SLES HA cluster példa 36
Egyszerű alapkonfiguráció Cluster konfigurációja node1 # sleha-init -i bond0 -t ocfs2 -p /dev/sdb noden # sleha-join -c 192.168.2.1 HAWK webes felület használata a cluster további konfigurálásához 37
Test Drive Cluster konfiguráció ellenőrzése és szimulálása a valós hibák előtt 38
Kiszolgáló menedzsment Magas rendelkezésre állás 39 Snapshot és visszaállítás Online Kernel frissítés
70% Manager SUSE maintenan ce 40 Nyílt forrású megoldásra épülő központi kiszolgálómenedzsment Linux kiszolgálók teljes életciklus menedzsment Lehetséges hibák csökkentése automatizált patch menedzsment és központi konfiguráció kezelésével
SUSE Manager Csomag és patch menedzsment 41 Linux kiszolgálók hardver és szoftver leltár Csomagok központi telepítése Saját csomagtárolók használata Csomagok adott verzión tartása (package lock)
SUSE Manager Biztonság és megfelelőség 42 Legkritikusabb rendszerek megjelenítése CVE szám keresés lehetősége Keresés CVE számra kiadott SUSE patchekben Gyors reagálás a sebezhetőségre
ShellShock bug CVE audit Érintett kiszolgálók listája Gyors reagálás a sebezhetőségre Egyszerű riportálási lehetőség 43
Tervezett leállási idő csökkentése 44
Tervezetlen leállás csökkentése 45
Kiszolgáló menedzsment Magas rendelkezésre állás 46 Snapshot és visszaállítás Online Kernel frissítés
Unpublished Work of SUSE. All Rights Reserved. This work is an unpublished work and contains confidential, proprietary and trade secret information of SUSE. Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for SUSE products remains at the sole discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.