Skip to content

SAP bázistechnológia

A teljesség igénye nélkül szeretnénk felsorolni az alábbiakban néhány olyan műszaki megoldást, amit szívesen használunk SAP témában, és talán túlmegy a szokásos "next-next-finish" megközelítésen.

SAP/Linux

Linux only

Manapság már nem nagy kuriózum kijelenteni, hogy mi kizárólag Linux rendszereken üzemeltetünk SAP-t, de 2000-ben még az volt. Akkoriban nagyvállalati környezetben még renitens hackereknek számítottunk, akik nem akarják megfizetni a drága OS licenszeket és tanácsadói díjakat, és mindent saját kezűleg akarnak összeépíteni.

Utóbbi hozzáállásunk a mai napig megmaradt, szeretünk a "motorháztető alá" nézni, unortodox műszaki megoldásokat alkalmazni, technikai legókockákból egyedi terveket és rendszereket építeni.

Hardvermigráció SAP újratelepítés nélkül

Az egyik előnye annak, hogy mi "alulról" nézzük az SAP rendszereket, hogy részletesen ismerjük, hogy az SAP rendszer OS szinten mit és hol tárol, milyen beállítások alapján működik. Nem ijedünk meg, ha egy működő rendszert át kell migrálni egyik hostról a másikra, például hardvercsere vagy akár nagyobb lélegzetű OS frissítés esetében. Műszakilag nem feltétlen indokolt, hogy az adatbázist és az SAP alkalmazást újratelepítsük ilyen esetekben, elegendő az SAP filerendszereit és beállításait megfelelő módon átmásolni - természetesen alkalmazkodva a célrendszer tulajdonságaihoz, új storage rendszerhez stb.

SAP LXC konténerekben

OS konténerek

Az OS kontĂ©nerizáciĂł egy olyan technolĂłgia, amely lehetĹ‘vĂ© teszi több, egymástĂłl elkĂĽlönĂ­tett felhasználĂłi környezet futtatását egyetlen operáciĂłs rendszeren belĂĽl. A kontĂ©nerek a host operáciĂłs rendszer kernelĂ©t használják, de mindegyik saját fájlrendszerrel, hálĂłzati interfĂ©sszel Ă©s folyamat­kezelĂ©ssel rendelkezik.

Az LXC (Linux Containers) hasonló a Solaris zónáihoz, vagy a FreeBSD jail megoldásához: userspace izolációt biztosítanak az alkalmazások részére.

Amikor 2008 körül a fél világ virtualizációban gondolkodott, mert az volt az aktuális hype: konszolidáljunk, virtualizáljunk; akkor mi az OS konténerekkel kezdtünk el foglalkozni. Amit óriási előnynek tartottunk:

  • nincs virtualizáciĂłs rĂ©teg, az alkalmazások lassulás nĂ©lkĂĽl, natĂ­v OS szinten Ă©s sebessĂ©ggel futnak a hoston
  • nincs fix memĂłriafoglalás, minden kontĂ©ner a közösbĹ‘l kap az igĂ©nye szerint, valĂłjában csak limitet adunk meg (ami futás közben is mĂłdosĂ­thatĂł)
  • a host filerendszerĂ©t használhatják a kontĂ©nerek, akár LVM/Btrfs/ZFS kötetkĂ©nt, akár raw device-kĂ©nt.
  • teljes OS környezetet ad, eltĂ©rĹ‘en az alkalmazáskontĂ©nerekkel szemben (pl. Docker), tehát kĂ­vĂĽl-belĂĽl Ăşgy viselkedik, mint egy önállĂł virtuális gĂ©p.
  • akár másik, a host OS-tĹ‘l eltĂ©rĹ‘ Linux disztribĂşciĂłt is lehet telepĂ­teni egy kontĂ©nerbe, csak a kernel a közös - Ă­gy használunk pĂ©ldául SLES környezetben Ubuntu/Debian kontĂ©nereket is
  • egy logikai bridge interfĂ©sz rákerĂĽl a host hálĂłzati interfĂ©szĂ©re, amelyen keresztĂĽl a kontĂ©nerek hozzáfĂ©rnek a host hálĂłzatához (termĂ©szetesen saját IP cĂ­mmel ugyanabbĂłl a hálĂłzatbĂłl, cĂ­mfordĂ­tás nĂ©lkĂĽl)
  • mindeközben az összes kĂ©nyelmi funkciĂł (kontĂ©ner snapshot / mentĂ©s, migráciĂł másik hostra) elĂ©rhetĹ‘, amit a virtalizáciĂłnál megszokhattunk

Úgyhogy az LXC megjelenése óta aktívan használjuk az OS konténereket. Egy tipikus, általunk tervezett és megvalósított konténerizált nagyvállalati SAP infrastruktúra:

SAP OS konténerekben

SLES 15 LXC/libvirt

A SUSE Linux Enterprise Server szinte a kezdetektől támogatta az LXC használatát, ezért nagy örömmel kezdtük el az SAP rendszereket "bekonténerizálni", ha szabad ezt a csúnya szót használni. Minden kiválóan működött, egészen az SLES 15 SP4 verzióig, ahol is a SUSE ezt a lehetőséget megszüntette:

5.3.8 LXC containers have been removed

System containers using LXC have been removed in SUSE Linux Enterprise Server 15 SP4. This includes the following packages:

  • libvirt-lxc
  • virt-sandbox

As a replacement, we recommend commonly used alternatives like Docker or Podman.

SLES 15 LXD

Fentiek miatt új megoldást kerestünk, hiszen a virtualizáció számunkra nem volt elfogadható lehetőség, nem akartunk a konténerek előnyeiről lemondani.

Az alapvetően Ubuntu-n elérhető, Canonical-féle LXD egy remek LXC megvalósítás, rendkívül kényelmes és megbízható. Szerencsére az LXD a SLES15 rendszeren is elérhető, és kiválóan működik. Azóta minden rendszerünket átmigráltuk erre a megoldásra, így feljebb lehetett lépni az SLES15 SP szintekkel, egészen a legfrissebbig.

Rendszerkonszolidáció UID/GID konverzióval

Néha előfordul, hogy az ügyfél nem szeretne sem konténerizációt, sem virtualizációt, viszont igény, hogy egy fizikai hoston több SAP rendszer üzemeljen. Új telepítésnél ezzel nincs is semmi gond, de ha ezeket több működő szerverről hoznánk át, akkor előfordulhat, hogy az OS felhasználói és csoport azonosítók ütköznek egymással. Ilyen esetben van lehetőség az SAP rendszereket "megdolgozni", egy olyan állapottá konvertálni, hogy minden rendszer teljesen független lehessen egymástól.

HANA esetében az UID/GID váltás picit bonyolultabb, mert a DB konfigurációba is bele kell nyúlni, de erre is van megoldás, lehet konszolidálni a rendszereket ott is.

Például az alábbi UID/GID konverziós táblázatban látható két S/4 HANA rendszer "összebútorozása": a 2-2 adatbázis és 2-2 alkalmazásszerver külön hostokon működött eddig. Ezt a 4 rendszert össze kellett húznunk egy közös hostra, ügyfél nem akart konténerizációt vagy virtualizációt, viszont így rengeteg UID/GID ütközést kellett kezelni. Megfelelő tervezéssel és OS beavatkozásokkal ez abszolút kivitelezhető.

SAP UID/GID migrációs mátrix

LVM thinpool

A klasszikus felállás szerint a storage rendszeren kiosztjuk az SAP rendszereknek a saját köteteiket, mindegyiket alaposan túlméretezve, nehogy üzem közben valamelyik idejekorán beteljen. Ebből egyenesen következik, hogy a méregdrága storage jó részét soha nem használjuk ki, részben elégetve az értékes beruházásunk értelmét.

Overprovisioning

Olyan tárterület-kiosztási módszer, amikor összességében több területet osztunk szét a kötetek között, mint amennyi valójában rendelkezésre áll - számítva arra, hogy egyszerre nem az összes kötet fog betelni.

Amikor konténereket használunk (de akár virtualizáció esetében is), megtehetjük azt, hogy az egy hostra kiajánlott storage köteten kialakítunk egy ún. LVM thinpool-t, amin belül a logikai köteteket (amiből az OS és SAP filerendszerek lesznek) dinamikusan, overprovisioning használatával osztjuk szét. Ez azt jelenti, hogy bár kellően nagyra méretezzük itt is a filerendszereket, a thinpool csak a ténylegesen (adatokkal, fileokkal) elfoglalt, nem pedig a kiosztott terület alapján "fogy el". Konkrét példa: kiosztunk 3 rendszer felé az /sapmnt és /usr/sap filerendszereknek 500-500 GB-os kötetet, ez összesen 3 TB lenne, de a thinpool foglaltsága csak azt a 30-40 GB-ot fogja mutatni, amivel a kezdeti SAP telepítés befoglalja. Ha az egyik filerendszer üzem közben megnő, elmehet egészen 500 GB-ig, vagy ha megnöveljük azt az LV-t, akkor tovább is.

Így a filerendszer méret inkább kvótának minősül a gyakorlatban, és az értékes storage területet sokkal gazdaságosabban ki tudjuk használni.

Egyes újabb storage rendszerek már storage szinten is lehetővé teszik a thinpool kialakítását, így egy szinttel feljebb is megvalósulhat az overprovisioning.

Filerendszer mentések

Deduplikáció

Deduplikáció

A deduplikációs mentés olyan adatmentési technika, amely a mentési folyamat során csak az új vagy megváltozott adatokat menti el, miközben az ismétlődő adatokra csak referenciaként hivatkozik, így jelentősen csökkentve a mentések tárolási igényét.

Az adatbázismentéseknél, így SAP alatt is régóta létező mentési módszer, hogy ritkábban végrehajtott teljes DB mentések között gyakrabban futtatott differenciális / inkrementális mentésekkel mentjük a különbözetet, illetve még ennél is gyakrabban generálódnak az ún. offline redo logok (saparch fileok), amelyeket megfelelően elmentve biztosak lehetünk abban, hogy ebből a többszintű mentési struktúrából vissza tudunk állni bármilyen időpontra (PIT / point-in-time recovery), és persze mindig meglesznek az aktuális adataink, lehetőleg minimális adatvesztéssel.

Hasonló funkcionalitást biztosít a filerendszermentéseknél a deduplikáció. Éles üzemű SAP rendszereknél az egyes filerendszerek mérete még rendszeres karbantartás mellett is nagyon megnőhet, ugyanakkor fontos lenne, hogy minden adatot a lehető leggyakrabban, mégis a lehető legkisebb tárhelyfoglalással rendszeresen mentsünk.

Az alkalmazott megoldásaink közül mutatunk kettőt ízelítőül:

Pull backup

  • kĂĽlön hoston lĂ©vĹ‘ SAP rendszerek esetĂ©n egy közös tárterĂĽletre szinkronizáljuk a binárisokat, konfiguráciĂłt Ă©s az SAP filerendszereket (termĂ©szetesen az adatbázis adat- Ă©s logfileok nĂ©lkĂĽl - azt a DB mentĂ©s intĂ©zi), kĂ­vĂĽlrĹ‘l indĂ­tva
  • ez a közös tárterĂĽlet a minimális helyfoglalás vĂ©gett egy tömörĂ­tett btrfs filerendszer, amelyrĹ‘l ĂłránkĂ©nt belsĹ‘ snapshot-ot kĂ©szĂ­tĂĽnk, Ă­gy visszamenĹ‘leg akár több hĂłnapra/Ă©vre visszamenĹ‘leg megvan minden filerendszer mindenkori állapota
  • napi / heti szinten, ahogy az ĂĽzlet megkĂ­vánja, elarchiváljuk az utolsĂł pillanatfelvĂ©telt szalagra, Ă­gy hosszĂş távon is visszakereshetĹ‘, elĂ©rhetĹ‘
  • mivel az SAP hostok visszafelĂ© nem fĂ©rnek hozzá a mentĂ©si terĂĽlethez, az SAP rendszerek esetleges kompromittálĂłdása esetĂ©n a mentĂ©sek nem sĂ©rĂĽlhetnek.

Append-only repo

  • hostonkĂ©nt a rajta futĂł SAP kontĂ©nerek filerendszereit bekĂĽldjĂĽk egy deduplikáciĂłt ismerĹ‘, tömörĂ­tett Ă©s titkosĂ­tást vĂ©gzĹ‘ mentĹ‘eszközbe, ami egy helyi backup repository-ba menti a filerendszereket, majd egy offsite/offline mentĂ©ssel mĂ©g azt is biztosĂ­tja
  • bár közvetlenĂĽl az SAP kontĂ©nerek nem látják a backup tárterĂĽletet, az LXC/LXD hostok elĂ©rik azt, ezĂ©rt a mentĹ‘szerveren a backup repository append-only mĂłdban van: nem lehet a mentĂ©seket mĂłdosĂ­tani, termĂ©szetesen azokbĂłl törölni sem, kizárĂłlag Ăşjabb mentĂ©st lehet rákĂĽldeni - Ă­gy bármilyen szándĂ©kos vagy akár vĂ©letlen beavatkozás nem tudja megsĂ©rteni az adatok integritását.

További mentési megoldásaink