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 , 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.

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 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 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:

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.

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.

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 ).
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

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 # stel dit net yn as jo brûke Linux x86
✓ 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 , 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.

Test foar mislearjen fan ien fan 'e knopen


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


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 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
