Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

Niektoré Enterprise aplikácie a virtualizačné systémy majú svoje vlastné mechanizmy na vytváranie odolných riešení. Konkrétne Oracle RAC (Oracle Real Application Cluster) je klaster pozostávajúci z dvoch alebo viacerých Oracle databázových serverov, ktoré spolupracujú na vyvážení záťaže a zabezpečení odolnosti na úrovni servera/aplikácie. Na prevádzku v takom režime je potrebné spoločné úložisko, ktorého úlohu zvyčajne plní úložné zariadenie.

Ako sme už diskutovali v jednom z našich článkov, samo o sebe úložné zariadenie, napriek existencii redundantných komponentov (vrátane ovládačov), stále má body zlyhania – predovšetkým vo forme jedného súboru údajov. Preto, na vybudovanie riešenia Oracle s vysokými požiadavkami na spoľahlivosť, je potrebné komplikovať schému „N serverov – jedno úložné zariadenie”.

Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

Najprv sa samozrejme musíme rozhodnúť, od akých rizík sa snažíme chrániť. V rámci tohto článku nebudeme skúmať ochranu pred hrozbami typu „priletel meteorit”. Takže vytváranie teritoriálne vzdialeného riešenia disaster recovery zostane témou nasledujúcich článkov. Tu preskúmame takzvané riešenie Cross-Rack disaster recovery, kde sa ochrana buduje na úrovni serverových skríň. Samotné skrine môžu byť umiestnené ako v jednej miestnosti, tak aj v rôznych, ale zvyčajne v rámci jednej budovy.

Tieto skrine by mali obsahovať celý potrebný súbor zariadení a softvéru, ktorý umožní prevádzku databáz Oracle nezávisle od stavu „suseda”. Inými slovami, pri použití riešenia Cross-Rack disaster recovery eliminujeme riziká pri zlyhaní:

  • Servery aplikácií Oracle
  • Úložné systémy
  • Systémy prepínania
  • Úplné zlyhanie všetkého zariadenia v skrini:
    • Zlyhanie napájania
    • Zlyhanie chladenia
    • Externé faktory (ľudia, príroda a pod.)

Replikácia serverov Oracle predpokladá základný princíp fungovania Oracle RAC a realizuje sa prostredníctvom aplikácie. Replikácia prepínacích prostriedkov tiež nie je problém. Ale s replikáciou úložných systémov to nie je také jednoduché.

Najjednoduchšou možnosťou je replikácia dát z hlavného úložiska na záložné. Môže byť synchronná alebo asynchronná, v závislosti od možností úložiska. Pri asynchronnej replikácii sa však okamžite objavuje otázka zabezpečenia konzistencie dát vo vzťahu k Oracle. Aj keď existuje programová integrácia s aplikáciou, v prípade poruchy hlavného úložiska bude potrebné manuálne zásah od správcov, aby prepli klaster na záložné úložisko.

Zložitejšou možnosťou sú softvérové a/alebo hardvérové „virtualizátory“ úložiska, ktoré eliminujú problémy s konzistenciou a manuálnym zásahom. Avšak zložitosti nasadenia a následnej administrácie, ako aj značné náklady na takéto riešenia odrádzajú mnohých.

Presne pre takéto scenáre, ako je obnovovanie po katastrofách Cross-Rack, je vynikajúce riešenie All Flash pole AccelStor NeoSapphire™ H710 s využitím architektúry Shared-Nothing. Tento model predstavuje dvojuzlový systém úložiska, ktorý využíva vlastnú technológiu FlexiRemap® pre prácu s flash pamäťami. Vďaka FlexiRemap® NeoSapphire™ H710 je schopná zabezpečiť výkonnosť až 600K IOPS pri 4K náhodnom zápise a viac ako 1M IOPS pri 4K náhodnom čítaní, čo je nedosiahnuteľné pri použití klasických RAID-based úložísk.

Hlavnou vlastnosťou NeoSapphire™ H710 je však realizácia dvoch uzlov vo forme samostatných skríň, z ktorých každá má vlastnú kópiu dát. Synchronizácia uzlov prebieha cez externé rozhranie InfiniBand. Vďaka takejto architektúre je možné rozložiť uzly na rôzne lokácie do vzdialenosti až 100 m, čím sa zabezpečuje riešenie obnovovania po katastrofách Cross-Rack. Oba uzly pracujú úplne synchronne. Z pohľadu hostiteľov H710 vyzerá ako bežné dvojkontrolerové úložisko. Preto nie sú potrebné žiadne dodatočné softvérové a hardvérové možnosti a žiadne obzvlášť zložené nastavenia.

Ak porovnáme všetky vyššie opísané riešenia obnovovania po katastrofách Cross-Rack, možnosť od AccelStor sa výrazne vyníma na pozadí ostatných:

AccelStor NeoSapphire™ Architektúra Shared Nothing
Softvérový alebo hardvérový „virtualizátor“ úložiska
Riešenie založené na replikácii

Dostupnosť

Zlyhanie servera
Bez výpadku
Bez výpadku
Bez výpadku

Zlyhanie prepínača
Bez výpadku
Bez výpadku
Bez výpadku

Zlyhanie úložného systému
Bez výpadku
Bez výpadku
S výpadkom

Zlyhanie celého rámca
Bez výpadku
Bez výpadku
S výpadkom

Náklady a zložitosť

Cena riešenia
Nízke*
Vysoká
Vysoká

Zložitosť nasadenia
Nízka
Vysoká
Vysoká

*AccelStor NeoSapphire™ je plne flash úložisko, ktoré stojí viac ako '3 centy', najmä ak má dvakrát väčšiu kapacitu. Avšak v porovnaní s konečnou cenou riešenia založeného na jeho platforme s porovnateľnými produktmi od iných dodávateľov, je cena považovaná za nízku.

Topológia pripojenia aplikačných serverov a uzlov All Flash úložiska bude vyzerať nasledovne:

Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

Pri plánovaní topológie je tiež veľmi odporúčané vytvoriť zálohu správcovských a interkonektívnych prepínačov serverov.

Odkiaľ budeme hovoriť, je pripojenie cez Fibre Channel. V prípade použitia iSCSI bude všeobecne rovnaké, s úpravami pre použité typy prepínačov a mierne odlišnými nastaveniami úložiska.

Príprava na úložisko

Používané vybavenie a softvér

Špecifikácie serverov a prepínačov

Komponenty
Popis

Servery Oracle Database 11g
Dva

Prevádzkový systém servera
Oracle Linux

Verzia databázy Oracle
11g (RAC)

Procesory na server
Dva 16-jadrové procesory Intel® Xeon® CPU E5-2667 v2 @ 3,30 GHz

Fyzická pamäť na server
128 GB

FC sieť
16 Gb/s FC s multipath

FC HBA
Emulex Lpe-16002B

Vyhradené verejné 1 GbE porty pre správu klastru
Intel Ethernet adaptér RJ45

16 Gb/s FC prepínač
Brocade 6505

Vyhradené súkromné 10 GbE porty pre synchronizáciu dát
Intel X520

Špecifikácia AccelStor NeoSapphire™ All Flash úložiska

Komponenty
Popis

Úložný systém
Model vysokej dostupnosti NeoSapphire™: H710

Verzia obrázku
4.0.1

Celkový počet diskov
48

Veľkosť disku
1,92 TB

Typ disku
SSD

FC cieľové porty
16 x 16 Gb porty (8 na uzol)

Správne porty
Kábel Ethernet 1 GbE spájajúci hostiteľov cez ethernetový prepínač

Srdcový port
Kábel Ethernet 1 GbE spájajúci medzi dvoma úložnými uzlami

Port na synchronizáciu dát
56 Gb/s InfiniBand kábel

Pred začiatkom používania úložiska je potrebné ho inicializovať. Predvolená adresa správy oboch uzlov je rovnaká (192.168.1.1). Je potrebné sa postupne pripojiť k nim a zadať nové (už rôzne) adresy správy a nastaviť synchronizáciu času, po čom môžu byť správcovské porty pripojené do jednej siete. Potom sa uzly spoja do HA páru určením podnetov pre interlinkové pripojenia.

Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

Po dokončení inicializácie je možné spravovať úložisko z akéhokoľvek uzla.

Potom vytvoríme potrebné objemy a publikujeme ich pre aplikačné servery.

Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

Veľmi sa odporúča vytvoriť niekoľko objemov pre Oracle ASM, pretože to zvýši počet cieľov pre servery, čo nakoniec zlepší celkový výkon (podrobnosti o frontách v inom) článku).

Testovacia konfigurácia

Názov úložného objemu
Veľkosť objemu

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

Niektoré vysvetlenia týkajúce sa režimov prevádzky poľa a procesov, ktoré sa vyskytujú pri neštandardných situáciách

Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

Každý uzol má parameter „verzia čísla“ v súbore dát. Po primárnej inicializácii je ten istý a rovný 1. Ak sú čísla verzií z akýchkoľvek dôvodov rôzne, vždy sa uskutoční synchronizácia dát z vyššej verzie na nižšiu, po čom sa číslo nižšej verzie zosúladí, čo znamená, že kópie sú rovnaké. Dôvody, prečo môžu byť verzie rôzne:

  • Plánované reštartovanie jedného z uzlov
  • Havária na jednom z uzlov v dôsledku náhleho vypnutia (napájanie, prehriatie a pod.).
  • Prerušenie spojenia InfiniBand s nemožnosťou synchronizácie
  • Havária na jednom z uzlov v dôsledku poškodenia dát. Tu bude potrebné vytvoriť novú HA skupinu a úplnú synchronizáciu súboru dát.

V každom prípade uzol, ktorý zostáva online, zvýši svoje číslo verzie o jednotku, aby po obnovení spojenia mohol synchronizovať svoj súbor dát s párom.

Ak dôjde k prerušeniu spojenia cez Ethernet link, Heartbeat sa dočasne prepne na InfiniBand a vráti sa späť počas 10s po jeho obnovení.

Nastavenie hostiteľov

Na zabezpečenie odolnosti voči poruchám a zvýšenie výkonu je potrebné povoliť podporu MPIO pre pole. K tomu je potrebné pridať do súboru /etc/multipath.conf riadky, po ktorých je nutné reštartovať službu multipath

Skrytý textdevices {
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
}
}

Ďalej, aby ASM pracoval s MPIO cez ASMLib, je potrebné zmeniť súbor /etc/sysconfig/oracleasm a potom vykonať /etc/init.d/oracleasm scandisks

Skrytý text

# ORACLEASM_SCANORDER: Matching patterns to order disk scanning
ORACLEASM_SCANORDER=„dm“

# ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan
ORACLEASM_SCANEXCLUDE=„sd“

Poznámka

Ak nechcete používať ASMLib, môžete použiť pravidlá UDEV, ktoré sú základom pre ASMLib.

Od verzie 12.1.0.2 je možnosť Oracle Database dostupná na inštaláciu ako súčasť softvéru ASMFD.

Je dôležité zabezpečiť, aby vytvárané disky pre Oracle ASM boli zarovnané s veľkosťou bloku, s ktorým fyzicky pracuje pole (4K). Inak môžu nastať problémy s výkonom. Preto je potrebné vytvárať objemy s príslušnými parametrami:

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

Rozdelenie databáz na vytvorené objemy pre našu testovaciu konfiguráciu

Názov úložného objemu
Veľkosť objemu
Mapovanie LUN objemov
Podrobnosti o objekte ASM Volume
Veľkosť alokačnej jednotky

Data01
200GB
Mapovať všetky úložné objemy na úložný systém všetkými dátovými portami
Redundancia: Normálna
Názov: DGDATA
Účel: Dátové súbory

4MB

Data02
200GB

Data03
200GB

Data04
200GB

Data05
200GB

Data06
200GB

Data07
200GB

Data08
200GB

Data09
200GB

Data10
200GB

Grid01
1GB
Redundancia: Normálna
Názov: DGGRID1
Účel: Mriežka: CRS a hlasovanie

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Redundancia: Normálna
Názov: DGGRID2
Účel: Mriežka: CRS a hlasovanie

4MB

Grid05
1GB

Grid06
1GB

Redo01
100GB
Redundancia: Normálna
Názov: DGREDO1
Účel: Redo log vlákna 1

4MB

Redo02
100GB

Redo03
100GB

Redo04
100GB

Redo05
100GB

Redo06
100GB
Redundancia: Normálna
Názov: DGREDO2
Účel: Redo log vlákna 2

4MB

Redo07
100GB

Redo08
100GB

Redo09
100GB

Redo10
100GB

Nastavenia databázy

  • Veľkosť bloku = 8K
  • Priestor na swap = 16GB
  • Zakázať AMM (Automatické riadenie pamäte)
  • Zakázať transparentné obrovské stránky

Ostatné nastavenia

# 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 nastavujte toto, ak používate Linux x86
✓ 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;

Test na odolnosť voči poruchám

Na účely demonštrácie bol použitý HammerDB na simuláciu OLTP záťaže. Konfigurácia HammerDB:

Počet skladov
256

Celkový počet transakcií na používateľa
1000000000000

Virtuálni používatelia
256

Výsledkom bolo 2.1M TPM, čo je ďaleko od limitu výkonu poľa H710, ale je to "strop" pre aktuálnu hardvérovú konfiguráciu serverov (predovšetkým kvôli procesorom) a ich počtu. Cieľom tohto testu je však demonštrácia odolnosti riešenia ako celku, nie dosiahnutie maximálnych výkonov. Preto sa jednoducho budeme odvolávať na toto číslo.

Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

Test na poruchu jednej z nód

Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

Hostitelia stratili časť ciest do úložiska, ale pokračovali v práci cez zostávajúce so druhou nódou. Výkon klesol na niekoľko sekúnd kvôli prestavbe ciest a potom sa vrátil na normálne hodnoty. K prerušeniu obsluhy nedošlo.

Test na poruchu skrinky so všetkým vybavením

Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

Vytvorenie odolného riešenia na základe Oracle RAC a architektúry AccelStor Shared-Nothing

V tomto prípade výkon tiež klesol na niekoľko sekúnd kvôli prestavbe ciest a potom sa vrátil na polovičné hodnoty pôvodného ukazovateľa. Výsledok sa znížil na polovicu od pôvodnej hodnoty kvôli vylúčeniu jedného servera aplikácií. K prerušeniu obsluhy tiež nedošlo.

Ak existujú požiadavky na implementáciu riešenia s vysokou dostupnosťou Cross-Rack disaster recovery pre Oracle za rozumnú cenu a s minimálnym úsilím na nasadenie/administráciu, potom spolupráca Oracle RAC a architektúry AccelStor Shared-Nothing bude jednou z najlepších možností. Namiesto Oracle RAC môže byť akýkoľvek iný softvér, ktorý podporuje klastrové riešenia, tie isté DBMS alebo virtualizačné systémy, napríklad. Zásada budovania riešenia zostane rovnaká. A konečný ukazovateľ – to je nulová hodnota pre RTO a RPO.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster