Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

In grut oantal Enterprise-applikaasjes en virtualisaasjesystemen hawwe har eigen meganismen foar it bouwen fan fouttolerante oplossingen. Spesifyk is Oracle RAC (Oracle Real Application Cluster) in kluster fan twa of mear Oracle-databaseservers dy't gearwurkje om de lading te balansearjen en fouttolerânsje te leverjen op it server-/applikaasjenivo. Om yn dizze modus te wurkjen hawwe jo in dielde opslach nedich, dy't normaal in opslachsysteem is.

As wy hawwe al besprutsen yn ien fan ús artikels, it opslachsysteem sels, nettsjinsteande de oanwêzigens fan dûbele komponinten (ynklusyf controllers), hat noch punten fan mislearring - benammen yn 'e foarm fan in inkele set fan gegevens. Dêrom, om in Oracle-oplossing te bouwen mei ferhege easken foar betrouberens, moat it skema "N servers - ien opslachsysteem" yngewikkeld wêze.

Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

Earst moatte wy fansels beslute tsjin hokker risiko's wy besykje te fersekerjen. Yn dit artikel sille wy beskerming net beskôgje tsjin bedrigingen lykas "in meteoryt is oankommen." Dat it bouwen fan in geografysk ferspraat oplossing foar rampherstel sil in ûnderwerp bliuwe foar ien fan 'e folgjende artikels. Hjir sille wy sjen nei de saneamde Cross-Rack disaster recovery oplossing, doe't beskerming wurdt boud op it nivo fan tsjinner kasten. De kasten sels kinne lizze yn deselde keamer of yn ferskate, mar meastal binnen itselde gebou.

Dizze kasten moatte de folsleine nedige set fan apparatuer en software befetsje dy't de wurking fan Oracle-databases tastean sil, nettsjinsteande de steat fan 'e "buorman". Mei oare wurden, mei help fan de Cross-Rack disaster recovery oplossing eliminearje wy de risiko's fan mislearring:

  • Oracle Application Servers
  • Storagesystemen
  • Switching systemen
  • Folsleine mislearring fan alle apparatuer yn it kabinet:
    • Power wegering
    • Koelsysteem falen
    • Eksterne faktoaren (minsklike, natuer, ensfh.)

Duplikaasje fan Oracle-tsjinners ymplisearret it heulende prinsipe fan Oracle RAC en wurdt ymplementearre fia in applikaasje. Duplikaasje fan skeakelfoarsjenningen is ek gjin probleem. Mar mei duplikaasje fan it opslachsysteem is alles net sa ienfâldich.

De ienfâldichste opsje is gegevensreplikaasje fan it haad opslachsysteem nei de reservekopy ien. Syngroane of asynchrone, ôfhinklik fan de mooglikheden fan it opslachsysteem. Mei asynchrone replikaasje ûntstiet fuortendaliks de fraach om gegevenskonsistinsje te garandearjen yn relaasje ta Oracle. Mar sels as d'r software-yntegraasje is mei de applikaasje, yn elts gefal, yn it gefal fan in mislearring op it haadopslachsysteem, sil hânmjittich yntervinsje fan behearders nedich wêze om it kluster te wikseljen nei reservekopy opslach.

In mear komplekse opsje is software en / of hardware opslach "virtualizers" dat sil elimineren konsistinsje problemen en hânmjittich yntervinsje. Mar de kompleksiteit fan ynset en folgjende administraasje, lykas de heul ûnfatsoenlike kosten fan sokke oplossingen, skrikt in protte ôf.

De AccelStor NeoSapphire™ All Flash-array-oplossing is perfekt foar senario's lykas Cross-Rack-rampherstel H710 mei help fan Shared-Nothing-arsjitektuer. Dit model is in opslachsysteem mei twa knooppunten dat proprietêre FlexiRemap®-technology brûkt om te wurkjen mei flash-driven. Mei tank oan FlexiRemap® NeoSapphire ™ H710 is yn steat om prestaasjes te leverjen oant 600K IOPS@4K willekeurich skriuwen en 1M+ IOPS@4K willekeurich lêzen, wat net te berikken is by it brûken fan klassike RAID-basearre opslachsystemen.

Mar it wichtichste skaaimerk fan NeoSapphire ™ H710 is de útfiering fan twa knopen yn 'e foarm fan aparte gefallen, elk fan dy hat in eigen kopy fan' e gegevens. Syngronisaasje fan knopen wurdt útfierd fia de eksterne InfiniBand ynterface. Mei tank oan dizze arsjitektuer is it mooglik om knooppunten te fersprieden nei ferskate lokaasjes op in ôfstân fan maksimaal 100m, en dêrmei in Cross-Rack disaster recovery oplossing te leverjen. Beide knopen wurkje folslein syngroan. Fan 'e hostkant liket de H710 as in gewoane opslachsysteem mei dûbele kontrôler. Dêrom is d'r gjin ferlet om ekstra software of hardware-opsjes út te fieren of benammen komplekse ynstellings.

As wy alle hjirboppe beskreaune oplossingen foar rampherstel fan Cross-Rack fergelykje, dan falt de opsje fan AccelStor merkber út fan 'e rest:

AccelStor NeoSapphire ™ Shared Nothing Architecture
Software of hardware "virtualizer" opslach systeem
Replikaasje-basearre oplossing

Fergees

Tsjinner mislearring
Gjin downtime
Gjin downtime
Gjin downtime

Skeakelje mislearring
Gjin downtime
Gjin downtime
Gjin downtime

Storage systeem flater
Gjin downtime
Gjin downtime
Downtime

Hiele kabinet falen
Gjin downtime
Gjin downtime
Downtime

Kosten en kompleksiteit

Oplossingskosten
Leech*
Высокая
Высокая

Ynset kompleksiteit
Leech
Высокая
Высокая

* AccelStor NeoSapphire ™ is noch altyd in All Flash-array, dy't per definysje net "3 kopeken" kostet, foaral om't it in dûbele kapasiteitsreserve hat. As jo ​​​​lykwols de definitive kosten fan in oplossing op basis dêrfan fergelykje mei ferlykbere fan oare leveransiers, kinne de kosten as leech wurde beskôge.

De topology foar it ferbinen fan applikaasjeservers en All Flash-arrayknooppunten sil der sa útsjen:

Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

By it plannen fan de topology wurdt it ek tige oanrikkemandearre om behearswitches te duplikearjen en tsjinners te ferbinen.

Hjir en fierder sille wy prate oer ferbining fia Fibre Channel. As jo ​​​​iSCSI brûke, sil alles itselde wêze, oanpast foar de brûkte soarten skeakels en wat ferskillende array-ynstellingen.

Tariedend wurk op 'e array

Apparatuer en software brûkt

Tsjinner en Switch Spesifikaasjes

Komponinten
beskriuwing

Oracle Database 11g tsjinners
Twa

Server bestjoeringssysteem
oracle linux

Oracle databank ferzje
11g (RAC)

Prozessoren per tsjinner
Twa 16-kearnen Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz

Fysike ûnthâld per tsjinner
128GB

FC netwurk
16Gb / s FC mei multipathing

FC HBA
Emulex Lpe-16002B

Dedicated iepenbiere 1GbE havens foar kluster behear
Intel ethernet adapter RJ45

16Gb/s FC switch
Brokaat 6505

Dedicated privee 10GbE havens foar gegevens synchonization
Intel X520

AccelStor NeoSapphire™ All Flash Array-spesifikaasje

Komponinten
beskriuwing

Opslachsysteem
NeoSapphire™ model mei hege beskikberens: H710

Ofbylding ferzje
4.0.1

Totaal oantal driuwfearren
48

Drive grutte
1.92TB

Drive type
SSD

FC doelhavens
16x 16Gb havens (8 per knooppunt)

Behear havens
De 1GbE ethernetkabel dy't ferbine mei hosts fia in ethernet-switch

Heartbeat haven
De 1GbE ethernetkabel dy't ferbine tusken twa opslachknooppunten

Data syngronisaasje haven
56Gb/s InfiniBand kabel

Foardat jo in array kinne brûke, moatte jo it inisjalisearje. Standert is it kontrôleadres fan beide knopen itselde (192.168.1.1). Jo moatte har ien foar ien ferbine en nije (al oare) behearadressen ynstelle en tiidsyngronisaasje ynstelle, wêrnei't de Managementports kinne wurde ferbûn mei ien netwurk. Neitiid wurde de knooppunten kombineare yn in HA-pear troch subnetten ta te jaan foar Interlink-ferbiningen.

Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

Nei inisjalisaasje is foltôge, kinne jo de array beheare fanút elke knooppunt.

Dêrnei meitsje wy de nedige folumes en publisearje se nei applikaasje-tsjinners.

Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

It wurdt tige oanrikkemandearre om meardere folumes foar Oracle ASM te meitsjen, om't dit it oantal doelen foar de servers sil ferheegje, wat úteinlik de algemiene prestaasjes ferbetterje (mear oer wachtrijen yn in oar artikel).

Test konfiguraasje

Opslach Volume Namme
Folume grutte

Gegevens 01
200GB

Gegevens 02
200GB

Gegevens 03
200GB

Gegevens 04
200GB

Gegevens 05
200GB

Gegevens 06
200GB

Gegevens 07
200GB

Gegevens 08
200GB

Gegevens 09
200GB

Gegevens 10
200GB

Grid01
1GB

Grid02
1GB

Grid03
1GB

Grid04
1GB

Grid05
1GB

Grid06
1GB

Weromsette 01
100GB

Weromsette 02
100GB

Weromsette 03
100GB

Weromsette 04
100GB

Weromsette 05
100GB

Weromsette 06
100GB

Weromsette 07
100GB

Weromsette 08
100GB

Weromsette 09
100GB

Weromsette 10
100GB

Guon ferklearrings oer de wurkwizen fan 'e array en de prosessen dy't foarkomme yn needsituaasjes

Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

De gegevensset fan elke knooppunt hat in parameter "ferzjenûmer". Nei inisjele inisjalisaasje is it itselde en gelyk oan 1. As om ien of oare reden it ferzjenûmer oars is, dan wurde gegevens altyd syngronisearre fan 'e âldere ferzje nei de jongere, wêrnei't it nûmer fan 'e jongere ferzje ôfstimd wurdt, d.w.s. dit betsjut dat de kopyen identyk binne. Redenen wêrom't ferzjes oars kinne wêze:

  • Planne werstart fan ien fan 'e knopen
  • In ûngelok op ien fan 'e knooppunten troch in hommelse shutdown (stromforsyning, oververhitting, ensfh.).
  • Ferlern InfiniBand ferbining mei ûnfermogen om te syngronisearje
  • In crash op ien fan 'e knopen fanwege datakorrupsje. Hjir moatte jo in nije HA-groep oanmeitsje en folsleine syngronisaasje fan 'e dataset.

Yn alle gefallen fergruttet de knooppunt dy't online bliuwt syn ferzjenûmer mei ien om syn gegevensset te syngronisearjen neidat de ferbining mei it pear is hersteld.

As de ferbining oer de Ethernet keppeling is ferlern, Heartbeat tydlik oerstapt nei InfiniBand en werom binnen 10 sekonden as it wurdt restaurearre.

It opsetten fan hosts

Om fouttolerânsje te garandearjen en prestaasjes te ferbetterjen, moatte jo MPIO-stipe foar de array ynskeakelje. Om dit te dwaan, moatte jo rigels tafoegje oan it /etc/multipath.conf-bestân, en dan de multipath-tsjinst opnij starte

Ferburgen tekstapparaten {
apparaat {
ferkeaper "AStor"
path_grouping_policy "group_by_prio"
paadselektor "wachtrige-lingte 0"
path_checker "tur"
funksjes "0"
hardware_handler "0"
prio "konst"
failback daliks
fast_io_fail_tmo 5
dev_loss_tmo 60
user_friendly_names ja
detect_prio ja
rr_min_io_rq 1
no_path_opnij 0
}
}

Folgjende, om ASM te wurkjen mei MPIO fia ASMLib, moatte jo it /etc/sysconfig/oracleasm-bestân wizigje en dan /etc/init.d/oracleasm scandisks útfiere

Ferburgen tekst

# ORACLEASM_SCANORDER: oerienkommende patroanen om skiif skennen te bestellen
ORACLEASM_SCANORDER="dm"

# ORACLEASM_SCANEXCLUDE: oerienkommende patroanen om skiven út te sluten fan scan
ORACLEASM_SCANEXCLUDE="sd"

remark

As jo ​​ASMLib net wolle brûke, kinne jo de UDEV-regels brûke, dy't de basis binne foar ASMLib.

Begjinnend mei ferzje 12.1.0.2 fan Oracle Database, is de opsje beskikber foar ynstallaasje as ûnderdiel fan 'e ASMFD-software.

It is ymperatyf om te soargjen dat de skiven makke foar Oracle ASM binne ôfstimd mei de blokgrutte wêrmei't de array fysyk wurket (4K). Oars kinne prestaasjesproblemen foarkomme. Dêrom is it nedich om folumes te meitsjen mei de passende parameters:

parted /dev/mapper/device-name mklabel gpt mkpart primêr 2048s 100% align-check optimaal 1

Ferdieling fan databases oer oanmakke folumes foar ús testkonfiguraasje

Opslach Volume Namme
Folume grutte
Folume LUNs mapping
ASM Volume Device Detail
Tawizing Unit Grutte

Gegevens 01
200GB
Map alle opslach folume oan opslach systeem alle gegevens havens
Redundânsje: Normaal
Namme: DGDATA
Doel: Gegevensbestannen

4MB

Gegevens 02
200GB

Gegevens 03
200GB

Gegevens 04
200GB

Gegevens 05
200GB

Gegevens 06
200GB

Gegevens 07
200GB

Gegevens 08
200GB

Gegevens 09
200GB

Gegevens 10
200GB

Grid01
1GB
Redundânsje: Normaal
Namme: DGGRID1
Doel: Raster: CRS en stimmen

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Redundânsje: Normaal
Namme: DGGRID2
Doel: Raster: CRS en stimmen

4MB

Grid05
1GB

Grid06
1GB

Weromsette 01
100GB
Redundânsje: Normaal
Namme: DGREDO1
Doel: Logboek fan thread 1 opnij meitsje

4MB

Weromsette 02
100GB

Weromsette 03
100GB

Weromsette 04
100GB

Weromsette 05
100GB

Weromsette 06
100GB
Redundânsje: Normaal
Namme: DGREDO2
Doel: Logboek fan thread 2 opnij meitsje

4MB

Weromsette 07
100GB

Weromsette 08
100GB

Weromsette 09
100GB

Weromsette 10
100GB

Databankynstellingen

  • Blokgrutte = 8K
  • Ruilje romte = 16GB
  • AMM (automatysk ûnthâldbehear) útskeakelje
  • Transparante enoarme siden útskeakelje

Oare ynstellings

# 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 # set dit net yn as jo Linux x86 brûke
✓ vm.vfs_cache_pressure=200
✓ vm.nr_hugepages = 57000

# vi /etc/security/limits.conf
✓ raster sêft nproc 2047
✓ grid hurd nproc 16384
✓ raster sêfte nofile 1024
✓ grid hurde nofile 65536
✓ raster soft stack 10240
✓ grid hurde stapel 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
✓ sêft memlock 120795954
✓ hurde memlock 120795954

sqlplus "/ as sysdba"
feroarje systeem set prosessen = 2000 scope = spfile;
feroarje systeem set open_cursors = 2000 scope = spfile;
feroarje systeem set session_cached_cursors=300 scope=spfile;
feroarje systeem set db_files = 8192 scope = spfile;

Failure test

Foar demonstraasjedoelen waard HammerDB brûkt om in OLTP-lading te emulearjen. HammerDB konfiguraasje:

Oantal Warehouses
256

Totaal transaksjes per brûker
1000000000000

Firtuele brûkers
256

It resultaat wie in 2.1M TPM, wat fier fan de prestaasjelimyt fan 'e array is H710, mar is in "plafond" foar de hjoeddeiske hardware konfiguraasje fan tsjinners (foaral fanwege processors) en harren oantal. It doel fan dizze test is noch altyd om de fouttolerânsje fan 'e oplossing as gehiel te demonstrearjen, en net om maksimale prestaasjes te berikken. Dêrom sille wy gewoan op dizze figuer bouwe.

Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

Test foar mislearjen fan ien fan 'e knopen

Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

De hosts ferlearen in part fan 'e paden nei de opslach, trochgean te wurkjen troch de oerbleaune mei it twadde knooppunt. Prestaasje sakke foar in pear sekonden fanwege de paden wurde ferboud, en doe werom nei normaal. Der wie gjin ûnderbrekking yn tsjinst.

Kabinet falen test mei alle apparatuer

Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

Bouwe in fout-tolerante oplossing basearre op Oracle RAC en AccelStor Shared-Nothing-arsjitektuer

Yn dit gefal sakke prestaasjes ek foar in pear sekonden troch de werstrukturearring fan 'e paden, en dan werom nei de helte fan' e oarspronklike wearde. It resultaat waard mei de helte fermindere fan 'e earste troch it útsluten fan ien applikaasjeserver fan wurking. Der wie ek gjin ûnderbrekking yn tsjinst.

As d'r ferlet is om in flater-tolerante Cross-Rack-ramphersteloplossing foar Oracle te ymplementearjen tsjin in ridlike kosten en mei in bytsje ynset-/administraasje-ynspanning, dan wurkje Oracle RAC en arsjitektuer gear AccelStor Shared-Neat sil ien fan de bêste opsjes. Yn stee fan Oracle RAC kin d'r elke oare software wêze dy't klustering leveret, bygelyks deselde DBMS as virtualisaasjesystemen. It prinsipe fan it bouwen fan de oplossing sil itselde bliuwe. En de ûnderste rigel is nul foar RTO en RPO.

Boarne: www.habr.com

Add a comment