Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Enpresa-aplikazio eta birtualizazio-sistemen kopuru handi batek akatsak jasan ditzaketen soluzioak eraikitzeko mekanismo propioak dituzte. Zehazki, Oracle RAC (Oracle Real Application Cluster) Oracle datu-base zerbitzari bi edo gehiagok elkarrekin lan egiten duten karga orekatzeko eta akatsen tolerantzia emateko zerbitzari/aplikazio mailan bat da. Modu honetan lan egiteko, biltegiratze partekatu bat behar duzu, normalean biltegiratze sistema bat.

Dagoeneko gure batean aipatu dugun bezala artikulu, biltegiratze sistemak berak, bikoiztutako osagaiak (kontrolagailuak barne) egon arren, oraindik ere hutsegite puntuak ditu - batez ere datu multzo bakar baten moduan. Hori dela eta, fidagarritasun-eskakizun handiagoak dituen Oracle irtenbide bat eraikitzeko, "N zerbitzariak - biltegiratze sistema bat" eskema konplikatua izan behar da.

Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Lehenik eta behin, jakina, erabaki behar dugu zein arriskuren aurka aseguratzen saiatzen garen. Artikulu honetan, ez dugu kontuan hartuko "meteorito bat iritsi da" bezalako mehatxuen aurkako babesa. Beraz, geografikoki sakabanatuta dauden hondamendiak berreskuratzeko irtenbide bat eraikitzea hurrengo artikuluetako baten gaia izaten jarraituko du. Hemen Cross-Rack hondamendiak berreskuratzeko irtenbidea deritzona ikusiko dugu, babesa zerbitzarien armairuen mailan eraikitzen denean. Armairuak beraiek gela berean edo beste batzuetan egon daitezke, baina normalean eraikin berean.

Armairu hauek Oracle datu-baseen funtzionamendua ahalbidetuko duten ekipamendu eta software multzo osoa eduki behar dute "bizilagunaren" egoera edozein dela ere. Beste era batera esanda, Cross-Rack hondamendiak berreskuratzeko irtenbidea erabiliz, huts egiteko arriskuak ezabatzen ditugu:

  • Oracle aplikazio-zerbitzariak
  • Biltegiratze sistemak
  • Aldaketa-sistemak
  • Armairuko ekipo guztien hutsegite osoa:
    • Botereari uko egitea
    • Hozte sistemaren hutsegitea
    • Kanpoko faktoreak (giza, natura, etab.)

Oracle zerbitzarien bikoizketak Oracle RAC-ren printzipio operatiboa dakar eta aplikazio baten bidez ezartzen da. Aldaketa-instalazioak bikoiztea ere ez da arazorik. Baina biltegiratze sistemaren bikoizketarekin, dena ez da hain erraza.

Aukerarik errazena biltegiratze sistema nagusitik babeskopiara datuak erreplikatzea da. Sinkronoa edo asinkronoa, biltegiratze sistemaren gaitasunen arabera. Erreplikazio asinkronoarekin, berehala sortzen da Oracle-rekin datuen koherentzia bermatzea. Baina aplikazioarekin software-integrazioa badago ere, edonola ere, biltegiratze sistema nagusian hutsegiterik gertatuz gero, administratzaileek eskuz esku hartzea beharrezkoa izango da cluster-a babeskopiko biltegira pasatzeko.

Aukera konplexuagoa software eta/edo hardware biltegiratze "birtualizatzaileak" dira, koherentzia arazoak eta eskuzko esku-hartzea ezabatuko dituztenak. Baina hedapenaren eta ondorengo administrazioaren konplexutasunak, baita irtenbide horien oso kostu desegokiak ere, asko uxatzen ditu.

AccelStor NeoSapphire™ All Flash array irtenbidea ezin hobea da Cross-Rack hondamendien berreskurapena bezalako eszenatokietarako. H710 Shared-Nothing arkitektura erabiliz. Eredu hau bi nodoko biltegiratze sistema bat da, eta jabedun FlexiRemap® teknologia erabiltzen du flash unitateekin lan egiteko. Eskerrak FlexiRemap® NeoSapphire™ H710-k 600K IOPS@4K ausazko idazketa eta 1M+ IOPS@4K ausazko irakurketarainoko errendimendua eskaintzeko gai da, RAIDean oinarritutako biltegiratze sistema klasikoak erabiltzen dituzunean lortzezina dena.

Baina NeoSapphire™ H710-ren ezaugarri nagusia bi nodoren exekuzioa da kasu bereizietan, eta horietako bakoitzak datuen kopia propioa du. Nodoen sinkronizazioa kanpoko InfiniBand interfazearen bidez egiten da. Arkitektura honi esker, 100 metrora arteko distantziara dauden nodoak kokapen ezberdinetan banatzea posible da, eta horrela Cross-Rack hondamendien berreskuratze irtenbide bat eskainiz. Bi nodoek guztiz sinkronoki funtzionatzen dute. Ostalariaren aldetik, H710-k kontrolagailu bikoitzeko biltegiratze sistema arrunt baten itxura du. Hori dela eta, ez dago software edo hardware aukera gehigarririk edo ezarpen bereziki konplexurik egin beharrik.

Goian deskribatutako Cross-Rack hondamendiak berreskuratzeko irtenbide guztiak alderatzen baditugu, AccelStor-en aukera nabarmen nabarmentzen da gainerakoetatik:

AccelStor NeoSapphire™ Ezer partekaturiko arkitektura
Software edo hardware "birtualizatzaile" biltegiratze sistema
Errepliketan oinarritutako irtenbidea

erabilgarritasuna

Zerbitzariaren hutsegitea
Etenik ez
Etenik ez
Etenik ez

Etengailu-hutsegitea
Etenik ez
Etenik ez
Etenik ez

Biltegiratze sistemaren hutsegitea
Etenik ez
Etenik ez
Downtime

Kabinetearen hutsegite osoa
Etenik ez
Etenik ez
Downtime

Kostua eta konplexutasuna

Irtenbide kostua
Baxua*
High
High

Hedapen konplexutasuna
txikia
High
High

*AccelStor NeoSapphire™ All Flash array bat da oraindik, definizioz "3 kopeck" kostatzen ez duena, batez ere edukiera bikoitza duen erreserba duelako. Hala ere, bertan oinarritutako soluzio baten azken kostua beste saltzaileen antzekoekin alderatzean, kostua baxutzat jo daiteke.

Aplikazio-zerbitzariak eta All Flash array-nodoak konektatzeko topologia honela izango da:

Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Topologia planifikatzerakoan, kudeaketa-etengailuak eta zerbitzariak interkonektatzea ere oso gomendagarria da.

Hemen eta aurrerago Fibre Channel bidez konektatzeari buruz hitz egingo dugu. iSCSI erabiltzen baduzu, dena berdina izango da, erabilitako etengailu motetarako egokituta eta array ezarpen apur bat desberdinak.

Array-aren prestaketa lanak

Erabilitako ekipoak eta softwarea

Zerbitzariaren eta etengailuaren zehaztapenak

Osagaiak
Description

Oracle Database 11g zerbitzariak
bi

Zerbitzariaren sistema eragilea
Oracle Linux

Oracle datu-basearen bertsioa
11g (RAC)

Prozesadoreak zerbitzari bakoitzeko
Bi 16 nukleo Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz

Memoria fisikoa zerbitzari bakoitzeko
128GB

FC sarea
16 Gb/s FC bide anitzeko aukerarekin

FC HBA
Emulex Lpe-16002B

Klusterren kudeaketarako 1 GbE ataka publiko dedikatuak
Intel Ethernet egokigailua RJ45

16 Gb/s FC etengailua
Brokada 6505

Datuak sinkronizatzeko 10GbE ataka pribatu dedikatuak
Intel X520

AccelStor NeoSapphire™ All Flash Array zehaztapena

Osagaiak
Description

Biltegiratze sistema
NeoSapphire™ erabilgarritasun handiko eredua: H710

Irudiaren bertsioa
4.0.1

Unitate kopurua guztira
48

Unitatearen tamaina
1.92TB

Drive mota
SSD

FC helburuko atakak
16 x 16 Gb ataka (8 nodo bakoitzeko)

Kudeaketa portuak
1GbE ethernet kablea ostalariekin konektatzen da Ethernet etengailu baten bidez

Bihotz-taupadaren ataka
Bi biltegiratze nodoren artean konektatzen den 1GbE Ethernet kablea

Datuak sinkronizatzeko ataka
56 Gb/s InfiniBand kablea

Array bat erabili aurretik, hasieratu egin behar duzu. Lehenespenez, bi nodoen kontrol helbidea berdina da (192.168.1.1). Banan-banan konektatu eta kudeaketa-helbide berriak (dagoeneko desberdinak) ezarri eta ordu-sinkronizazioa ezarri behar duzu, ondoren Kudeaketa portuak sare bakar batera konektatu ahal izateko. Ondoren, nodoak HA bikote batean konbinatzen dira Interlink konexioetarako azpisareak esleituz.

Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Hasieratzea amaitu ondoren, array edozein nodotatik kudea dezakezu.

Ondoren, beharrezko bolumenak sortu eta aplikazio-zerbitzarietan argitaratzen ditugu.

Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Oso gomendagarria da Oracle ASMrako bolumen anitz sortzea, zerbitzarien helburuen kopurua handituko baita, eta horrek, azken finean, errendimendu orokorra hobetuko du (beste beste ilaretan gehiago). Artikulu).

Proba konfigurazioa

Biltegiratze bolumenaren izena
Bolumenaren tamaina

Datuak01
200GB

Datuak02
200GB

Datuak03
200GB

Datuak04
200GB

Datuak05
200GB

Datuak06
200GB

Datuak07
200GB

Datuak08
200GB

Datuak09
200GB

Datuak10
200GB

Grid01
1GB

Grid02
1GB

Grid03
1GB

Grid04
1GB

Grid05
1GB

Grid06
1GB

Berregin01
100GB

Berregin02
100GB

Berregin03
100GB

Berregin04
100GB

Berregin05
100GB

Berregin06
100GB

Berregin07
100GB

Berregin08
100GB

Berregin09
100GB

Berregin10
100GB

Array-aren funtzionamendu-moduei eta larrialdi egoeretan gertatzen diren prozesuei buruzko azalpen batzuk

Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Nodo bakoitzaren datu multzoak "bertsio-zenbakia" parametro bat du. Hasierako hasieraren ondoren, berdina eta berdina da 1. Arrazoiren batengatik bertsio-zenbakia desberdina bada, datuak beti sinkronizatzen dira bertsio zaharretik gazteagora, eta ondoren bertsio gaztearen zenbakia lerrokatzen da, hau da. horrek esan nahi du kopiak berdinak direla. Bertsioak desberdinak izan daitezkeen arrazoiak:

  • Nodoetako baten berrabiarazi programatua
  • Nodoetako batean istripua bat-bateko itzalaldi baten ondorioz (elektrizitatea, gainberotzea, etab.).
  • InfiniBand konexioa galdu da sinkronizatzeko ezintasunarekin
  • Nodoetako batean hutsegite bat datuak hondatzeagatik. Hemen HA talde berri bat sortu eta datu-multzoaren sinkronizazioa osatu beharko duzu.

Nolanahi ere, sarean jarraitzen duen nodoak bere bertsio-zenbakia bat handitzen du, bikotearekin konexioa berreskuratu ondoren bere datu multzoa sinkronizatzeko.

Ethernet loturaren bidezko konexioa galtzen bada, Heartbeat aldi baterako InfiniBand-era aldatzen da eta 10 segundoren buruan itzultzen da leheneratzen denean.

Ostalariak konfiguratzea

Akatsen tolerantzia bermatzeko eta errendimendua hobetzeko, MPIO euskarria gaitu behar duzu arrayrako. Horretarako, lerroak gehitu behar dituzu /etc/multipath.conf fitxategian, eta gero bide anitzeko zerbitzua berrabiarazi.

Ezkutuko testuagailuak {
gailua {
"AStor" saltzailea
path_grouping_policy "group_by_prio"
bide_hautatzailea "ilararen luzera 0"
path_checker "tur"
"0" ezaugarriak
hardware_handler "0"
prio "konst"
berehalako hutsegitea
fast_io_fail_tmo 5
dev_loss_tmo 60
user_friendly_names bai
detektatu_prio bai
rr_min_io_rq 1
no_path_retry 0
}
}

Ondoren, ASM-k MPIO-rekin ASMLib bidez lan egin dezan, /etc/sysconfig/oracleasm fitxategia aldatu behar duzu eta gero /etc/init.d/oracleasm scandisks exekutatu

Ezkutuko testua

# ORACLEASM_SCANORDER: Disko eskaneatzea eskatzeko ereduak bat etortzea
ORACLEASM_SCANORDER="dm"

# ORACLEASM_SCANEXCLUDE: Ereduekin bat datozen diskoak eskaneatzetik baztertzeko
ORACLEASM_SCANEXCLUDE="sd"

Kontuan izan

ASMLib erabili nahi ez baduzu, UDEV arauak erabil ditzakezu, ASMLib-en oinarri direnak.

Oracle Database-ren 12.1.0.2 bertsioarekin hasita, aukera eskuragarri dago ASMFD softwarearen zati gisa instalatzeko.

Ezinbestekoa da Oracle ASMrako sortutako diskoak matrizeak fisikoki funtzionatzen duen bloke-tamainarekin (4K) lerrokatuta daudela ziurtatzea. Bestela, errendimendu arazoak sor daitezke. Hori dela eta, beharrezkoa da bolumenak sortzea parametro egokiekin:

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

Datu-baseak gure probaren konfiguraziorako sortutako bolumenen artean banatzea

Biltegiratze bolumenaren izena
Bolumenaren tamaina
Bolumen LUNen mapak
ASM bolumen gailuaren xehetasuna
Esleipen-unitatearen tamaina

Datuak01
200GB
Mapeatu biltegiratze-bolumen guztiak biltegiratze-sistema datu-ataka guztietan
Erredundantzia: Normala
Izena: DGDATA
Helburua: Datu fitxategiak

4MB

Datuak02
200GB

Datuak03
200GB

Datuak04
200GB

Datuak05
200GB

Datuak06
200GB

Datuak07
200GB

Datuak08
200GB

Datuak09
200GB

Datuak10
200GB

Grid01
1GB
Erredundantzia: Normala
Izena: DGGRID1
Xedea: Sarea: CRS eta Bozketa

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Erredundantzia: Normala
Izena: DGGRID2
Xedea: Sarea: CRS eta Bozketa

4MB

Grid05
1GB

Grid06
1GB

Berregin01
100GB
Erredundantzia: Normala
Izena: DGREDO1
Helburua: 1. hariaren erregistroa berregin

4MB

Berregin02
100GB

Berregin03
100GB

Berregin04
100GB

Berregin05
100GB

Berregin06
100GB
Erredundantzia: Normala
Izena: DGREDO2
Helburua: 2. hariaren erregistroa berregin

4MB

Berregin07
100GB

Berregin08
100GB

Berregin09
100GB

Berregin10
100GB

Datu-basearen ezarpenak

  • Blokearen tamaina = 8K
  • Trukatzeko espazioa = 16 GB
  • Desgaitu AMM (Memoriaren kudeaketa automatikoa)
  • Desgaitu orrialde erraldoi gardenak

Beste ezarpen batzuk

# 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 # ez ezarri hau Linux x86 erabiltzen ari bazara
✓ vm.vfs_cache_pressure=200
✓ vm.nr_hugepages = 57000

# vi /etc/security/limits.conf
✓ sareta soft nproc 2047
✓ sare gogorra nproc 16384
✓ sareta soft nofile 1024
✓ sare gogorra nofile 65536
✓ sareta biguna pila 10240
✓ sare gogorra pila 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
✓ memlock biguna 120795954
✓ memlock gogorra 120795954

sqlplus "/ as sysdba"
aldatu sistema ezarri prozesuak=2000 esparrua=spfile;
aldatu sistema ezarri open_cursors=2000 scope=spfile;
aldatu sistema ezarri session_cached_cursors=300 scope=spfile;
aldatu sistema ezarri db_files=8192 scope=spfile;

Porrot proba

Erakusketa helburuetarako, HammerDB erabili zen OLTP karga bat emulatzeko. HammerDB konfigurazioa:

Biltegi kopurua
256

Erabiltzaile bakoitzeko eragiketak guztira
1000000000000

Erabiltzaile birtualak
256

Emaitza 2.1M TPM bat izan zen, hau da, array-ren errendimendu mugatik urrun dago H710, baina "sabaia" da zerbitzarien egungo hardware konfiguraziorako (batez ere prozesadoreengatik) eta haien kopuruarentzat. Proba honen helburua oraindik irtenbidearen akatsen tolerantzia frogatzea da, eta ez errendimendu maximoa lortzea. Hori dela eta, irudi honen gainean eraikiko dugu.

Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Nodoetako baten hutsegitearen proba

Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Ostalariek biltegirako bideen zati bat galdu zuten, bigarren nodoarekin geratzen zirenetatik lanean jarraituz. Errendimendua segundo batzuetan jaitsi zen bideak berreraikitzen ari zirelako, eta gero normaltasunera itzuli zen. Zerbitzuan ez zen etenik egon.

Kabinetearen hutsegite proba ekipo guztiekin

Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Oracle RAC eta AccelStor Shared-Nothing arkitekturan oinarritutako matxurak jasan ditzakeen irtenbide bat eraikitzea

Kasu honetan, errendimendua ere segundo batzuetan jaitsi zen bideak berregituratzearen ondorioz, eta, ondoren, jatorrizko balioaren erdira itzuli zen. Emaitza hasierakoaren erdira murriztu zen, aplikazio-zerbitzari bat funtzionamendutik kanpo utzi zuelako. Zerbitzuan ere ez zen etenik izan.

Cross-Rack hondamendiak berreskuratzeko irtenbidea Oraclerako arrazoizko kostuarekin eta inplementazio/administrazio esfortzu txiki batekin inplementatu beharra badago, Oracle RAC eta arkitekturak elkarrekin lan egiten dute. AccelStor partekatua-Ezer ez aukera onenetako bat izango da. Oracle RAC-en ordez, clustering-a eskaintzen duen beste edozein software egon daiteke, DBMS berdinak edo birtualizazio sistemak, adibidez. Irtenbidea eraikitzeko printzipioa berdina izango da. Eta beheko lerroa zero da RTO eta RPOrentzat.

Iturria: www.habr.com

Gehitu iruzkin berria