Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

Számos vállalati alkalmazás és virtualizációs rendszer saját mechanizmusokkal rendelkezik a magas rendelkezésre állású megoldások kiépítésére. Különösen az Oracle RAC (Oracle Real Application Cluster) egy vagy több Oracle adatbázis-szerverből álló klasztert jelent, amely együtt dolgozik a terhelés kiegyensúlyozása és a magas rendelkezésre állás biztosítása érdekében a szerver/alkalmazás szinten. Az ilyen üzemmód működéséhez közös tárolóra van szükség, amelyet általában egy tároló rendszer lát el.

Ahogy azt már korábban is tárgyaltuk cikkünkben, maga a tároló rendszer, annak ellenére, hogy van benne redundáns komponens (többek között vezérlők), mégis rendelkezik hibapontokkal – elsősorban egyetlen adatgyűjtemény formájában. Ezért a megbízhatóság iránti magasabb követelményekkel rendelkező Oracle megoldás kiépítéséhez a „N szerver – egy tároló rendszer” sémát tovább kell bonyolítani.

Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

Először is, természetesen meg kell határoznunk, milyen kockázatoktól próbálunk védekezni. Jelen cikk keretein belül nem foglalkozunk a „meteor érkezik” típusú fenyegetések elleni védelemmel. Így a földrajzilag elosztott katasztrófa-helyreállítási megoldások kiépítése a következő cikkek egyike lesz. Itt a Cross-Rack katasztrófa-helyreállítási megoldást fogjuk vizsgálni, amely a szerver szekrények szintjén biztosít védelmet. A szekrények lehetnek egy helyiségben vagy különbözőben, de általában egy épületen belül találhatóak.

Ezeknek a szekrényeknek tartalmazniuk kell a szükséges hardver- és szoftverkészletet, amely lehetővé teszi az Oracle adatbázisok működését a „szomszéd” állapotától függetlenül. Más szóval, a Cross-Rack katasztrófa-helyreállítási megoldás révén kiiktatjuk a következő hibák kockázatait:

  • Oracle alkalmazás szerverek
  • Tároló rendszerek
  • Kommunkációs rendszerek
  • Teljes berendezés leállása a szekrényben:
    • Áramellátási hiba
    • Hűtőrendszer hiba
    • Külső tényezők (ember, természet stb.)

Az Oracle szerverek duplázása magában foglalja az Oracle RAC működési elvét, és alkalmazás révén valósul meg. A kommunikációs eszközök duplázása sem jelent problémát. A tároló rendszer duplázása viszont már nem olyan egyszerű.

A legutolsó k варианат a legkönnyebb módja az adatok másolásának a fő tárolóból a tartalék tárolóra. Szinkronizált vagy aszinkron, a tároló lehetőségeitől függően. Aszinkron másolás esetén felmerül az adatok konzisztenciájának biztosítása az Oracle-hoz képest. De még ha programozott integráció is van az alkalmazással, egy esetleges fő tárolói meghibásodáskor adminisztrátorok manuális beavatkozására is szükség lesz, hogy a klasztert a tartalék tárolóra irányítsák.

Egy bonyolultabb megoldás a szoftveres és/vagy hardveres tároló „virtualizátorok”, amelyek megoldják a konzisztencia és a manuális beavatkozás problémáját. De a telepítés és a későbbi adminisztráció bonyolultsága, valamint az ilyen megoldások igencsak magas költsége sokakat elriaszt.

Az All Flash tömb, az AccelStor NeoSapphire™, kifejezetten ilyen forgatókönyvekhez, mint a Cross-Rack katasztrófa helyreállítás, tökéletes megoldás. H710 a Shared-Nothing architektúra segítségével. Ez a modell egy kétnódusú tárolórendszer, amely saját FlexiRemap® technológiáját használja a flash tárolók kezelésére. Ennek köszönhetően FlexiRemap® A NeoSapphire™ H710 képes akár 600K IOPS@4K véletlenszerű írási teljesítményre és 1M+ IOPS@4K véletlenszerű olvasási teljesítményre, ami klasszikus RAID-alapú tárolók használatakor nem elérhető.

De a NeoSapphire™ H710 legfontosabb jellemzője, hogy a két nodo külön házakban található, mindkettő saját adatmásolatával rendelkezik. A nodok szinkronizálása külső InfiniBand interfészen keresztül történik. Ilyen architektúra révén a nodok különböző helyszínekre is elhelyezhetők, akár 100 méteres távolságra, ezzel biztosítva a Cross-Rack katasztrófa helyreállítást. Mindkét nodo teljesen szinkron üzemmódban működik. A H710 a hosztok felől mint egy hagyományos két vezérlős tárolónak tűnik. Így nem szükséges további szoftveres és hardveres opciókat implementálni, valamint különösen bonyolult beállításokat végezni.

Ha összehasonlítjuk az összes fent említett Cross-Rack katasztrófa helyreállító megoldást, az AccelStor opciója jelentősen kiemelkedik a többi közül:

AccelStor NeoSapphire™ Shared Nothing Architecture
Szoftveres vagy hardveres tároló virtualizátor
Replicáció alapú megoldás

Elérhetőség

Szerver leállás
Nincs állásidő
Nincs állásidő
Nincs állásidő

Switch leállás
Nincs állásidő
Nincs állásidő
Nincs állásidő

Tárolórendszer leállás
Nincs állásidő
Nincs állásidő
Állásidő

Teljes szekrény leállás
Nincs állásidő
Nincs állásidő
Állásidő

Költség és bonyolultság

A megoldás költsége
Alacsony*
Magas
Magas

Telepítés bonyolultsága
Alacsony
Magas
Magas

*AccelStor NeoSapphire™ – ez egy All Flash tömb, amely definíció szerint nem kerül „3 fillérbe”, főleg, hogy kétszeres kapacitással rendelkezik. Azonban, ha a megoldás összköltségét más hasonló gyártókétól összehasonlítjuk, az ár alacsonynak tekinthető.

Az alkalmazásszerverek és az All Flash tömb csomópontjainak csatlakozási topológiája a következőképpen fog kinézni:

Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

A topológia tervezésekor rendkívül ajánlott a vezérlő- és a szerverek közötti kapcsolók duplikálása is.

Itt és a továbbiakban a Fibre Channel csatlakozásról lesz szó. iSCSI használata esetén minden ugyanaz lesz, figyelembe véve a használt kapcsolótípusokat és az eltérő tömbbeállításokat.

Előkészítő munka a tömbön

Használt hardver és szoftver

Szerverek és kapcsolók specifikációi

Összetevők
Leírás

Oracle Database 11g szerverek
Kettő

Szerver operációs rendszer
Oracle Linux

Oracle adatbázis verzió
11g (RAC)

Processzorok száma szerveren
Kettő 16 magos Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz

Fizikai memória szerverenként
128GB

FC hálózat
16Gb/s FC több úton

FC HBA
Emulex Lpe-16002B

Dedikált nyilvános 1GbE portok a klaszterkezeléshez
Intel ethernet adapter RJ45

16Gb/s FC switch
Brocade 6505

Dedikált privát 10GbE portok az adat-szinkronizációhoz
Intel X520

AccelStor NeoSapphire™ All Flash tömb specifikációja

Összetevők
Leírás

Tárhelyrendszer
NeoSapphire™ nagy rendelkezésre állású modell: H710

Kép verzió
4.0.1

Meghajtók teljes száma
48

Meghajtó mérete
1.92TB

Meghajtó típusa
SSD

FC célportok
16 x 16Gb port (8 a csomópontonként)

Kezelő portok
Az 1GbE ethernet kábel, amely a gazdákhoz csatlakozik az ethernet switchen keresztül

Szívverés port
Az 1GbE ethernet kábel, amely két tárolócsomópont között csatlakozik

Adatszinkronizálási port
56Gb/s InfiniBand kábel

A tömb használatba vétele előtt inicializálni kell. Alapértelmezés szerint mindkét csomópont kezelőcíme azonos (192.168.1.1). Először csatlakozni kell hozzájuk, és új (már különböző) kezelő címeket beállítani, valamint szinkronizálni az időt, majd a Kezelő portokat egy közös hálózatra csatlakoztathatjuk. Ezt követően a csomópontokat HA párra kell összevonni az Interlink csatlakozások számára kiosztott alhálózatokkal.

Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

Az inicializálás befejezése után bármely csomópontból kezelhetjük a tömböt.

Ezután létrehozzuk a szükséges köteteket, és közzétesszük őket az alkalmazásszerverek számára.

Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

Határozottan ajánlott több kötetet létrehozni az Oracle ASM számára, mivel ez növeli a célok számát a szerverek számára, ami végső soron javítja az általános teljesítményt (több információ a várakozásokról egy másik. a Spotify döntéshozatali módszertanáról. Egyre több felhasználó preferálja a zenehallgatást mobilon a streaming szolgáltatásban, de a cégnél túlnyomórészt webprogramozók dolgoznak. A Spotify elemezte ezt a helyzetet, és úgy döntött, hogy több mobilfejlesztőt vesz fel, valamint átnevezi a webes szakembereket új irányba:).

Teszt konfiguráció

Tárhely kötet neve
Kötet mérete

Data01
200GB

Data02
200GB

Data03
200GB

Data04
200GB

Data05
200GB

Data06
200GB

Data07
200GB

Data08
200GB

Data09
200GB

Data10
200GB

Grid01
1GB

Grid02
1GB

Grid03
1GB

Grid04
1GB

Grid05
1GB

Grid06
1GB

Redo01
100GB

Redo02
100GB

Redo03
100GB

Redo04
100GB

Redo05
100GB

Redo06
100GB

Redo07
100GB

Redo08
100GB

Redo09
100GB

Redo10
100GB

Néhány magyarázat a tömb működési módjairól és az előforduló folyamatokról rendellenes helyzetekben

Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

Minden csomópont adatainak egy paramétere van: a "verziószám". Az elsődleges inicializálás után ez azonos és 1-re állítódik. Ha valamilyen okból a verziószám eltérő, akkor mindig a magasabb verzió adatainak szinkronizálása történik az alacsonyabb verzió felé, ezután az alacsonyabb verzió száma igazodik, vagyis ez azt jelenti, hogy a példányok azonosak. Az okok, amelyek miatt a verziók eltérhetnek:

  • Egyik csomópont tervezett újraindítása
  • Egyik csomópont meghibásodása hirtelen áramszünet miatt (tápellátás, túlmelegedés stb.).
  • InfiniBand kapcsolat megszakadása szinkronizálási lehetőség nélkül
  • Egyik csomópont meghibásodása adatkárosodás miatt. Itt már egy új HA csoport létrehozására és a teljes adatcsomag szinkronizálására van szükség.

Minden esetben az online állapotban lévő csomópont növeli a verziószámát egy egységgel, hogy a pár kapcsolatánek helyreállítása után szinkronizálja az adatcsomagját.

Ha az Ethernet kapcsolaton megszakítás történik, a Heartbeat ideiglenesen az InfiniBand-ra vált, és 10 másodpercen belül visszatér az eredeti állapotába annak helyreállítása után.

Gazdagépek beállítása

A hibatűrés és a teljesítmény növelése érdekében be kell kapcsolni az MPIO támogatást a tömb számára. Ehhez a /etc/multipath.conf fájlba kell beilleszteni a sorokat, majd újra kell indítani a multipath szolgáltatást.

Rejtett szövegdevices {
device {
vendor «AStor»
path_grouping_policy «group_by_prio»
path_selector «queue-length 0»
path_checker «tur»
features «0»
hardware_handler «0»
prio «const»
failback immediate
fast_io_fail_tmo 5
dev_loss_tmo 60
user_friendly_names yes
detect_prio yes
rr_min_io_rq 1
no_path_retry 0
}
}

A következő lépés ahhoz, hogy az ASM működjön az MPIO-n keresztül az ASMLib-en, módosítani kell a /etc/sysconfig/oracleasm fájlt, majd végre kell hajtani a /etc/init.d/oracleasm scandisks parancsot.

Rejtett szöveg

# ORACLEASM_SCANORDER: Matching patterns to order disk scanning
ORACLEASM_SCANORDER=«dm»

# ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan
ORACLEASM_SCANEXCLUDE=«sd»

Megjegyzés

Ha nem kívánja használni az ASMLib-t, használhat UDEV szabályokat, amelyek az ASMLib alapját képezik.

A 12.1.0.2 verziótól kezdve az Oracle Database opció elérhető az ASMFD szoftver részeként.

Kötelező meggyőződni arról, hogy az Oracle ASM-hez létrehozott lemezek a tömb által fizikailag használt blokk méretéhez (4K) viszonyítva ki vannak igazítva. Ellenkező esetben teljesítményproblémák léphetnek fel. Ezért a megfelelő paraméterekkel rendelkező kötetek létrehozása szükséges:

parted /dev/mapper/device-name mklabel gpt mkpart primary 2048s 100% align-check optimal 1

Az adatbázisok elosztása a létrehozott kötetekre a teszt konfigurációnkhoz

Tárhely kötet neve
Kötet mérete
Kötet LUN-ok térképezése
ASM kötet eszköz részletei
Allocációs egység mérete

Data01
200GB
Térképezze fel az összes tároló kötetet a tárolási rendszer összes adatportjával
Hibatűrés: Normál
Név: DGDATA
Cél: Adatfájlok

4MB

Data02
200GB

Data03
200GB

Data04
200GB

Data05
200GB

Data06
200GB

Data07
200GB

Data08
200GB

Data09
200GB

Data10
200GB

Grid01
1GB
Hibatűrés: Normál
Név: DGGRID1
Cél: Rács: CRS és szavazás

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Hibatűrés: Normál
Név: DGGRID2
Cél: Rács: CRS és szavazás

4MB

Grid05
1GB

Grid06
1GB

Redo01
100GB
Hibatűrés: Normál
Név: DGREDO1
Cél: 1. szál redo naplója

4MB

Redo02
100GB

Redo03
100GB

Redo04
100GB

Redo05
100GB

Redo06
100GB
Hibatűrés: Normál
Név: DGREDO2
Cél: 2. szál redo naplója

4MB

Redo07
100GB

Redo08
100GB

Redo09
100GB

Redo10
100GB

Adatbázis beállítások

  • Blokk mérete = 8K
  • Cserehely = 16GB
  • Automatikus memória kezelés (AMM) letiltása
  • Átlátszó hatalmas oldalak letiltása

Egyéb beállítások

# vi /etc/sysctl.conf
✓ fs.aio-max-nr = 1048576
✓ fs.file-max = 6815744
✓ kernel.shmmax 103079215104
✓ kernel.shmall 31457280
✓ kernel.shmmn 4096
✓ kernel.sem = 250 32000 100 128
✓ net.ipv4.ip_local_port_range = 9000 65500
✓ net.core.rmem_default = 262144
✓ net.core.rmem_max = 4194304
✓ net.core.wmem_default = 262144
✓ net.core.wmem_max = 1048586
✓ vm.swappiness=10
✓ vm.min_free_kbytes=524288 # ne állítsa be, ha Linux x86-ot használ
✓ vm.vfs_cache_pressure=200
✓ vm.nr_hugepages = 57000

# vi /etc/security/limits.conf
✓ grid soft nproc 2047
✓ grid hard nproc 16384
✓ grid soft nofile 1024
✓ grid hard nofile 65536
✓ grid soft stack 10240
✓ grid hard stack 32768
✓ oracle soft nproc 2047
✓ oracle hard nproc 16384
✓ oracle soft nofile 1024
✓ oracle hard nofile 65536
✓ oracle soft stack 10240
✓ oracle hard stack 32768
✓ soft memlock 120795954
✓ hard memlock 120795954

sqlplus "\/as sysdba"
alter system set processes=2000 scope=spfile;
alter system set open_cursors=2000 scope=spfile;
alter system set session_cached_cursors=300 scope=spfile;
alter system set db_files=8192 scope=spfile;

Megbízhatósági teszt

A bemutató céljából a HammerDB-t használták az OLTP terhelés emulálására. A HammerDB konfigurációja:

Raktárak száma
256

Összes tranzakció felhasználónként
1000000000000

Virtuális felhasználók
256

Ennek eredményeként 2,1M TPM értéket kaptunk, ami messze van a tömb teljesítményének határától H710, de ez a "küszöb" a jelenlegi kiszolgáló konfiguráció számára (elsősorban a processzorok és számuk miatt). Ennek a tesztnek a célja mégis a megoldás megbízhatóságának bemutatása, és nem a teljesítmény maximumának elérése. Ezért egyszerűen ezt a számot fogjuk alapként venni.

Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

Egy csomópont leállásának tesztje

Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

A hosztok elveszítették a tárolóra vezető egyes útvonalakat, de továbbra is működtek a második csomóponttal megmaradtak. A teljesítmény néhány másodpercre csökkent az útvonalak átrendeződése miatt, majd visszatért a normál értékekhez. Szolgáltatáskimaradás nem történt.

A szekrény teljes berendezésének leállásának tesztje

Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

Oracle RAC és AccelStor Shared-Nothing architektúrára épülő magas rendelkezésre állású megoldás kiépítése

Ebben az esetben a teljesítmény szintén néhány másodpercre csökkent az útvonalak átrendeződése miatt, majd visszatért az eredeti érték felére. Az eredmény megfeleződött egy alkalmazásszerver inaktívvá válása miatt. Szolgáltatáskimaradás szintén nem történt.

Ha a Cross-Rack katasztrófa-helyreállítási megoldás megvalósítására van szükség Oracle számára, ésszerű áron és minimális telepítési/adminisztrációs erőfeszítéssel, akkor az Oracle RAC és az architektúra együttműködése lesz az egyik legjobb lehetőség. AccelStor Shared-Nothing Ez helyettesítheti az Oracle RAC-ot bármilyen más szoftverrel, amely klaszterezést biztosít, ugyanazokkal az adatbázis-kezelő rendszerekkel vagy virtualizációs rendszerekkel például. A megoldás felépítési elve változatlan marad. És a végső mutató – a nullás érték az RTO és RPO esetében.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster