Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Ievērojamam skaitam uzņēmuma lietojumprogrammu un virtualizācijas sistēmu ir savi mehānismi defektu izturÄ«gu risinājumu izveidei. Konkrēti, Oracle RAC (Oracle Real Application Cluster) ir divu vai vairāku Oracle datu bāzes serveru kopa, kas darbojas kopā, lai lÄ«dzsvarotu slodzi un nodroÅ”inātu kļūdu toleranci servera/lietojumprogrammas lÄ«menÄ«. Lai strādātu Å”ajā režīmā, ir nepiecieÅ”ama koplietojama krātuve, kas parasti ir uzglabāŔanas sistēma.

Kā mēs jau esam apsprieduÅ”i vienā no mÅ«su raksti, paÅ”ai uzglabāŔanas sistēmai, neskatoties uz dublētiem komponentiem (tostarp kontrolieriem), joprojām ir atteices punkti - galvenokārt vienas datu kopas veidā. Tāpēc, lai izveidotu Oracle risinājumu ar paaugstinātām uzticamÄ«bas prasÄ«bām, shēmai ā€œN serveri ā€“ viena uzglabāŔanas sistēmaā€ ir jābÅ«t sarežģītai.

Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Pirmkārt, mums, protams, ir jāizlemj, pret kādiem riskiem mēs cenÅ”amies apdroÅ”ināt. Å ajā rakstā mēs neapsvērsim aizsardzÄ«bu pret tādiem draudiem kā ā€œIr ieradies meteorÄ«tsā€. Tātad Ä£eogrāfiski izkliedēta avārijas seku novērÅ”anas risinājuma izveide joprojām bÅ«s viena no turpmākajiem rakstiem. Å eit apskatÄ«sim tā saukto Cross-Rack katastrofu atkopÅ”anas risinājumu, kad aizsardzÄ«ba tiek veidota serveru skapju lÄ«menÄ«. PaÅ”i skapji var atrasties vienā telpā vai dažādās, bet parasti vienas ēkas ietvaros.

Å ajos skapjos ir jābÅ«t visam nepiecieÅ”amajam aprÄ«kojuma un programmatÅ«ras komplektam, kas ļaus darboties Oracle datubāzēm neatkarÄ«gi no ā€œkaimiņaā€ stāvokļa. Citiem vārdiem sakot, izmantojot Cross-Rack avārijas atkopÅ”anas risinājumu, mēs novērÅ”am atteices riskus:

  • Oracle lietojumprogrammu serveri
  • UzglabāŔanas sistēmas
  • Komutācijas sistēmas
  • PilnÄ«ga visa skapÄ« esoŔā aprÄ«kojuma kļūme:
    • Varas atteikums
    • DzesÄ“Å”anas sistēmas kļūme
    • Ārējie faktori (cilvēks, daba utt.)

Oracle serveru dublÄ“Å”ana ietver paÅ”u Oracle RAC darbÄ«bas principu un tiek Ä«stenota, izmantojot lietojumprogrammu. ArÄ« komutācijas iespēju dublÄ“Å”anās nav problēma. Bet ar uzglabāŔanas sistēmas dublÄ“Å”anos viss nav tik vienkārÅ”i.

VienkārŔākā iespēja ir datu replikācija no galvenās krātuves sistēmas uz rezerves sistēmu. Sinhronā vai asinhronā, atkarÄ«bā no uzglabāŔanas sistēmas iespējām. Izmantojot asinhrono replikāciju, nekavējoties rodas jautājums par datu konsekvences nodroÅ”ināŔanu attiecÄ«bā uz Oracle. Bet pat tad, ja ir programmatÅ«ras integrācija ar lietojumprogrammu, jebkurā gadÄ«jumā galvenās krātuves sistēmas kļūmes gadÄ«jumā bÅ«s nepiecieÅ”ama manuāla administratoru iejaukÅ”anās, lai pārslēgtu klasteru uz rezerves krātuvi.

Sarežģītāka iespēja ir programmatÅ«ras un/vai aparatÅ«ras uzglabāŔanas "virtualizatori", kas novērsÄ«s konsekvences problēmas un manuālu iejaukÅ”anos. Taču izvietoÅ”anas un turpmākās administrÄ“Å”anas sarežģītÄ«ba, kā arÄ« Ŕādu risinājumu ļoti nepiedienÄ«gās izmaksas daudzus atbaida.

AccelStor NeoSapphireā„¢ All Flash masÄ«va risinājums ir lieliski piemērots tādiem scenārijiem kā Cross-Rack avārijas atkopÅ”ana H710 izmantojot Shared-Nothing arhitektÅ«ru. Å is modelis ir divu mezglu uzglabāŔanas sistēma, kas izmanto patentētu FlexiRemapĀ® tehnoloÄ£iju, lai strādātu ar zibatmiņas diskiem. Pateicoties FlexiRemapĀ® NeoSapphireā„¢ H710 spēj nodroÅ”ināt veiktspēju lÄ«dz pat 600 K IOPS@4K izlases veida rakstÄ«Å”anai un 1 miljonam+ IOPS@4K nejauÅ”ai lasÄ«Å”anai, kas nav sasniedzams, izmantojot klasiskās uz RAID balstÄ«tas uzglabāŔanas sistēmas.

Taču NeoSapphireā„¢ H710 galvenā iezÄ«me ir divu mezglu izpilde atseviŔķu gadÄ«jumu veidā, kuriem katram ir sava datu kopija. Mezglu sinhronizācija tiek veikta, izmantojot ārējo InfiniBand interfeisu. Pateicoties Å”ai arhitektÅ«rai, ir iespējams sadalÄ«t mezglus dažādās vietās lÄ«dz 100 m attālumā, tādējādi nodroÅ”inot Cross-Rack avārijas atkopÅ”anas risinājumu. Abi mezgli darbojas pilnÄ«gi sinhroni. No saimniekdatora puses H710 izskatās kā parasta divu kontrolieru glabāŔanas sistēma. Tāpēc nav nepiecieÅ”ams veikt papildu programmatÅ«ras vai aparatÅ«ras opcijas vai Ä«paÅ”i sarežģītus iestatÄ«jumus.

Ja salÄ«dzinām visus iepriekÅ” aprakstÄ«tos Cross-Rack avārijas atkopÅ”anas risinājumus, tad AccelStor opcija ievērojami izceļas no pārējiem:

AccelStor NeoSapphireā„¢ Shared Nothing Architecture
ProgrammatÅ«ras vai aparatÅ«ras "virtualizatora" uzglabāŔanas sistēma
Replikāciju balstīts risinājums

Pieejamība

Servera kļūme
Nav dīkstāves
Nav dīkstāves
Nav dīkstāves

Slēdža kļūme
Nav dīkstāves
Nav dīkstāves
Nav dīkstāves

UzglabāŔanas sistēmas kļūme
Nav dīkstāves
Nav dīkstāves
Dīkstāves

Visa skapja kļūme
Nav dīkstāves
Nav dīkstāves
Dīkstāves

Izmaksas un sarežģītība

Risinājuma izmaksas
zems*
Augsts
Augsts

IzvietoŔanas sarežģītība
Zems
Augsts
Augsts

*AccelStor NeoSapphireā„¢ joprojām ir All Flash masÄ«vs, kas pēc definÄ«cijas nemaksā ā€œ3 kapeikasā€, jo Ä«paÅ”i tāpēc, ka tam ir dubulta jaudas rezerve. Tomēr, salÄ«dzinot uz tā balstÄ«ta risinājuma galÄ«gās izmaksas ar lÄ«dzÄ«giem citu piegādātāju risinājumiem, izmaksas var uzskatÄ«t par zemām.

Lietojumprogrammu serveru un visu Flash masīva mezglu savienoŔanas topoloģija izskatīsies Ŕādi:

Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Plānojot topoloģiju, ļoti ieteicams arī dublēt pārvaldības slēdžus un savienot serverus.

Å eit un tālāk mēs runāsim par savienojuma izveidi, izmantojot Fibre Channel. Ja izmantojat iSCSI, viss bÅ«s vienāds, pielāgots izmantoto slēdžu veidiem un nedaudz atŔķirÄ«giem masÄ«va iestatÄ«jumiem.

SagatavoŔanas darbi pie masīva

Izmantotais aprīkojums un programmatūra

Serveru un slēdžu specifikācijas

Komponenti
Apraksts

Oracle Database 11g serveri
Divās

Servera operētājsistēma
Oracle Linux

Oracle datu bāzes versija
11 g (RAC)

Procesori uz serveri
Divi 16 kodolu IntelĀ® XeonĀ® CPU E5-2667 v2 @ 3.30 GHz

Fiziskā atmiņa uz serveri
128GB

FC tīkls
16Gb/s FC ar daudzceļu

FC HBA
Emulex Lpe-16002B

ÄŖpaÅ”i publiskie 1GbE porti klasteru pārvaldÄ«bai
Intel Ethernet adapteris RJ45

16Gb/s FC slēdzis
Brokāde 6505

ÄŖpaÅ”i privātie 10GbE porti datu sinhronizÄ“Å”anai
Intel X520

AccelStor NeoSapphireā„¢ visa zibspuldzes masÄ«va specifikācija

Komponenti
Apraksts

UzglabāŔanas sistēma
NeoSapphireā„¢ augstas pieejamÄ«bas modelis: H710

Attēla versija
4.0.1

Kopējais disku skaits
48

Piedziņas izmērs
1.92TB

Piedziņas veids
SSD

FC mērķa porti
16 x 16 Gb porti (8 vienā mezglā)

Pārvaldības porti
1GbE Ethernet kabelis, kas savieno ar saimniekdatoriem, izmantojot Ethernet slēdzi

Sirdspukstu osta
1GbE Ethernet kabelis, kas savieno divus uzglabāŔanas mezglus

Datu sinhronizācijas ports
56Gb/s InfiniBand kabelis

Lai varētu izmantot masÄ«vu, tas ir jāinicializē. Pēc noklusējuma abu mezglu vadÄ«bas adrese ir vienāda (192.168.1.1). Ar tiem jāpieslēdzas pa vienam un jāiestata jaunas (jau dažādas) pārvaldÄ«bas adreses un jāiestata laika sinhronizācija, pēc kuras Management portus var savienot ar vienu tÄ«klu. Pēc tam mezgli tiek apvienoti HA pārÄ«, pieŔķirot apakÅ”tÄ«klus starpsaiÅ”u savienojumiem.

Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Kad inicializācija ir pabeigta, varat pārvaldīt masīvu no jebkura mezgla.

Tālāk mēs izveidojam nepiecieÅ”amos sējumus un publicējam tos lietojumprogrammu serveros.

Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Ir ļoti ieteicams izveidot vairākus Oracle ASM sējumus, jo tas palielinās serveru mērķu skaitu, kas galu galā uzlabos vispārējo veiktspēju (vairāk par rindām citā raksts).

Testa konfigurācija

Krātuves apjoma nosaukums
Tilpuma lielums

Dati01
200GB

Dati02
200GB

Dati03
200GB

Dati04
200GB

Dati05
200GB

Dati06
200GB

Dati07
200GB

Dati08
200GB

Dati09
200GB

Dati10
200GB

Grid01
1GB

Grid02
1GB

Grid03
1GB

Grid04
1GB

Grid05
1GB

Grid06
1GB

Atkārtot01
100GB

Atkārtot02
100GB

Atkārtot03
100GB

Atkārtot04
100GB

Atkārtot05
100GB

Atkārtot06
100GB

Atkārtot07
100GB

Atkārtot08
100GB

Atkārtot09
100GB

Atkārtot10
100GB

Daži skaidrojumi par masīva darbības režīmiem un procesiem, kas notiek ārkārtas situācijās

Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Katra mezgla datu kopai ir parametrs ā€œversijas numursā€. Pēc sākotnējās inicializācijas tas ir vienāds un vienāds ar 1. Ja kāda iemesla dēļ versijas numurs ir atŔķirÄ«gs, tad dati vienmēr tiek sinhronizēti no vecākās versijas uz jaunāko, pēc tam tiek izlÄ«dzināts jaunākās versijas numurs, t.i. tas nozÄ«mē, ka kopijas ir identiskas. Iemesli, kāpēc versijas var atŔķirties:

  • Ieplānota viena mezgla atsāknÄ“Å”ana
  • NegadÄ«jums vienā no mezgliem pēkŔņas izslēgÅ”anas dēļ (baroÅ”anas padeve, pārkarÅ”ana utt.).
  • Pazaudēts InfiniBand savienojums ar nespēju sinhronizēt
  • Avārija vienā no mezgliem datu bojājumu dēļ. Å eit jums bÅ«s jāizveido jauna HA grupa un jāpabeidz datu kopas sinhronizācija.

Jebkurā gadÄ«jumā mezgls, kas paliek tieÅ”saistē, palielina savu versijas numuru par vienu, lai pēc savienojuma ar pāri atjaunoÅ”anas sinhronizētu savu datu kopu.

Ja savienojums, izmantojot Ethernet saiti, tiek zaudēts, Heartbeat īslaicīgi pārslēdzas uz InfiniBand un atgriežas 10 sekunžu laikā, kad tas ir atjaunots.

Saimnieku iestatīŔana

Lai nodroÅ”inātu kļūdu toleranci un uzlabotu veiktspēju, jums ir jāiespējo MPIO atbalsts masÄ«vam. Lai to izdarÄ«tu, failam /etc/multipath.conf jāpievieno rindas un pēc tam jārestartē vairākceļu pakalpojums.

Slēpts tekstsierīces {
ierīce {
pārdevējs "AStor"
path_grouping_policy "group_by_prio"
path_selector "rindas garums 0"
ceļa_pārbaudītājs "tur"
funkcijas "0"
hardware_handler "0"
pirms "konst"
nekavējoties
fast_io_fail_tmo 5
dev_loss_tmo 60
lietotājam draudzīgi_nosaukumi jā
detect_prio jā
rr_min_io_rq 1
no_path_retry 0
}
}

Tālāk, lai ASM varētu strādāt ar MPIO, izmantojot ASMLib, jums ir jāmaina /etc/sysconfig/oracleasm fails un pēc tam jāpalaiž /etc/init.d/oracleasm scandisks

Slēpts teksts

# ORACLEASM_SCANORDER: modeļu atbilstÄ«ba diska skenÄ“Å”anas pasÅ«tÄ«Å”anai
ORACLEASM_SCANORDER="dm"

# ORACLEASM_SCANEXCLUDE: atbilst modeļi, lai izslēgtu diskus no skenÄ“Å”anas
ORACLEASM_SCANEXCLUDE="sd"

Piezīme

Ja nevēlaties izmantot ASMLib, varat izmantot UDEV noteikumus, kas ir ASMLib pamatā.

Sākot ar Oracle Database versiju 12.1.0.2, Ŕī opcija ir pieejama instalÄ“Å”anai kā daļa no ASMFD programmatÅ«ras.

Ir obligāti jānodroÅ”ina, lai Oracle ASM izveidotie diski bÅ«tu saskaņoti ar bloka izmēru, ar kādu masÄ«vs fiziski darbojas (4K). Pretējā gadÄ«jumā var rasties veiktspējas problēmas. Tāpēc ir jāizveido sējumi ar atbilstoÅ”iem parametriem:

parted /dev/mapper/ierīces nosaukums mklabel gpt mkpart primārais 2048s 100% align-check optimal 1

Datu bāzu sadalījums izveidotajos sējumos mūsu testa konfigurācijai

Krātuves apjoma nosaukums
Tilpuma lielums
Skaļuma LUN kartÄ“Å”ana
ASM skaļuma ierīces informācija
PieŔķīruma vienības lielums

Dati01
200GB
Kartē visus krātuves apjomus ar krātuves sistēmas visus datu portus
AtlaiŔana: normāla
Nosaukums: DGDATA
Mērķis: datu faili

4MB

Dati02
200GB

Dati03
200GB

Dati04
200GB

Dati05
200GB

Dati06
200GB

Dati07
200GB

Dati08
200GB

Dati09
200GB

Dati10
200GB

Grid01
1GB
AtlaiŔana: normāla
Nosaukums: DGGRID1
MērÄ·is: Režģis: DRS un balsoÅ”ana

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
AtlaiŔana: normāla
Nosaukums: DGGRID2
MērÄ·is: Režģis: DRS un balsoÅ”ana

4MB

Grid05
1GB

Grid06
1GB

Atkārtot01
100GB
AtlaiŔana: normāla
Vārds: DGREDO1
MērÄ·is: atjaunot 1. vÄ«tnes žurnālu

4MB

Atkārtot02
100GB

Atkārtot03
100GB

Atkārtot04
100GB

Atkārtot05
100GB

Atkārtot06
100GB
AtlaiŔana: normāla
Vārds: DGREDO2
MērÄ·is: atjaunot 2. vÄ«tnes žurnālu

4MB

Atkārtot07
100GB

Atkārtot08
100GB

Atkārtot09
100GB

Atkārtot10
100GB

Datu bāzes iestatījumi

  • Bloka izmērs = 8K
  • Maināmā vieta = 16 GB
  • Atspējot AMM (automātisko atmiņas pārvaldÄ«bu)
  • Atspējot caurspÄ«dÄ«gās milzÄ«gas lapas

Citi iestatījumi

# vi /etc/sysctl.conf
āœ“ fs.aio-max-nr = 1048576
āœ“ fs.file-max = 6815744
āœ“ kernel.shmmax 103079215104
āœ“ kernel.shmal 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 # neiestatiet to, ja izmantojat Linux x86
āœ“ vm.vfs_cache_pressure=200
āœ“ vm.nr_hugepages = 57000

# vi /etc/security/limits.conf
āœ“ grid soft nproc 2047
āœ“ režģa cietais nproc 16384
āœ“ režģa mÄ«kstais nofile 1024
āœ“ režģa cietais nofile 65536
āœ“ režģa mÄ«kstā kaudze 10240
āœ“ režģa cietā kaudze 32768
āœ“ Oracle soft nproc 2047
āœ“ Oracle hard nproc 16384
āœ“ Oracle soft nofile 1024
āœ“ Oracle cietais nofile 65536
āœ“ Oracle soft stack 10240
āœ“ Oracle cietā kaudze 32768
āœ“ mÄ«kstais memlock 120795954
āœ“ cietais atmiņu bloks 120795954

sqlplus ā€œ/as sysdbaā€
mainīt sistēmas kopas procesus=2000 tvērums=spfile;
mainīt sistēmas kopu open_cursors=2000 tvērums=spfile;
mainīt sistēmas kopu session_cached_cursors=300 sfēra=spfile;
mainīt sistēmas kopu db_files=8192 sfēra=spfile;

Neveiksmes pārbaude

Demonstrācijas nolūkos HammerDB tika izmantots, lai emulētu OLTP slodzi. HammerDB konfigurācija:

Noliktavu skaits
256

Kopējais darījumu skaits vienam lietotājam
1000000000000

Virtuālie lietotāji
256

Rezultāts bija 2.1 M TPM, kas ir tālu no masÄ«va veiktspējas ierobežojuma H710, bet ir ā€œgriestiā€ paÅ”reizējai serveru aparatÅ«ras konfigurācijai (galvenokārt procesoru dēļ) un to skaitam. Å Ä« testa mērÄ·is joprojām ir demonstrēt risinājuma kļūdu toleranci kopumā, nevis sasniegt maksimālu veiktspēju. Tāpēc mēs vienkārÅ”i balstÄ«simies uz Å”o skaitli.

Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Pārbaudiet, vai nav kāda no mezgliem atteices

Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Saimnieki zaudēja daļu ceļu uz krātuvi, turpinot strādāt ar atlikuÅ”ajiem ceļiem ar otro mezglu. Veiktspēja uz dažām sekundēm kritās, jo celiņi tika pārbÅ«vēti, un pēc tam atgriezās normālā stāvoklÄ«. Pakalpojumā nebija nekādu pārtraukumu.

Skapja bojājumu pārbaude ar visu aprīkojumu

Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Kļūmju izturīga risinājuma izveide, pamatojoties uz Oracle RAC un AccelStor Shared-Nothing arhitektūru

Å ajā gadÄ«jumā arÄ« veiktspēja uz dažām sekundēm samazinājās ceļu pārstrukturÄ“Å”anas dēļ un pēc tam atgriezās uz pusi no sākotnējās vērtÄ«bas. Rezultāts tika samazināts uz pusi salÄ«dzinājumā ar sākotnējo, jo viens lietojumprogrammu serveris tika izslēgts no darbÄ«bas. ArÄ« apkalpoÅ”anā nebija nekādu pārtraukumu.

Ja ir nepiecieÅ”ams ieviest defektiem izturÄ«gu Cross-Rack avārijas atkopÅ”anas risinājumu Oracle par saprātÄ«gām izmaksām un ar nelielu izvietoÅ”anas/administrÄ“Å”anas piepÅ«li, Oracle RAC un arhitektÅ«ra strādā kopā. AccelStor koplietots ā€” nekas bÅ«s viens no labākajiem variantiem. Oracle RAC vietā var bÅ«t jebkura cita programmatÅ«ra, kas nodroÅ”ina klasterizāciju, piemēram, tās paÅ”as DBVS vai virtualizācijas sistēmas. Risinājuma konstruÄ“Å”anas princips paliks nemainÄ«gs. Un apakŔējā lÄ«nija ir nulle attiecÄ«bā uz RTO un RPO.

Avots: www.habr.com

Pievieno komentāru