Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

Et ikke ubetydeligt antal enterprise-applikationer og virtualiseringssystemer har deres egne mekanismer til opbygning af failover-løsninger. Specifikt er Oracle RAC (Oracle Real Application Cluster) et cluster af to eller flere Oracle-databaseservere, der arbejder sammen for at balancere belastningen og sikre failover på server-/applikationsniveau. For at arbejde i denne tilstand er et fælles lager nødvendigt, som normalt udgøres af et SAN.

Som vi allerede har diskuteret i en af ​​vores artikler, har selve SAN'en, på trods af tilstedeværelsen af ​​redundante komponenter (herunder controllere), stadig fejlpunkter – primært i form af et enkelt datasæt. Derfor, for at opbygge en Oracle-løsning med høje pålidelighedskrav, skal skemaet "N servere - ét SAN" kompliceres.

Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

Først og fremmest skal vi selvfølgelig finde ud af, hvilke risici vi forsøger at forsikre os imod. I denne artikel vil vi ikke overveje beskyttelse mod trusler som "meteoritten der ramte". Så opbygning af en geografisk spredt disaster recovery-løsning forbliver et emne for en af ​​de kommende artikler. Her vil vi se på det såkaldte Cross-Rack disaster recovery-løsning, når beskyttelsen opbygges på serverrackniveau. Racksene kan være i samme rum eller forskellige, men typisk inden for én bygning.

Disse racks skal indeholde alle nødvendige udstyr og software, der muliggør drift af Oracle-databaser uafhængigt af tilstanden hos "naboen". Med andre ord, ved at bruge Cross-Rack disaster recovery-løsningen udelukker vi risici ved fejl:

  • Oracle-applikationsservere
  • Lagringssystemer
  • Switche
  • Total nedbrud af alt udstyr i racken:
    • Strømsvigt
    • Kølesystemfejl
    • Eksterne faktorer (mennesker, natur osv.)

Redundans af Oracle-servere indebærer selve princippet for Oracle RAC og implementeres via applikationen. Redundans af switching-midler er heller ikke et problem. Men det er ikke så enkelt med redundansen af ​​lagringssystemet.

Den enkleste mulighed er at replikere data fra det primære lagringssystem til det sekundære. Synchronous eller asynchronous, afhængigt af lagringssystemets muligheder. Ved asynkron replikation opstår straks spørgsmålet om sikringen af datakonsistens i forhold til Oracle. Men selvom der er en softwareintegration med applikationen, vil der alligevel være behov for administratorers manuelle indgreb for at skifte klyngen til det sekundære lager ved nedbrud på det primære lagringssystem.

En mere kompleks mulighed er software- og/eller hardware 'virtualizere' af lagringssystemet, som fjerner problemer med konsistens og manuel indgriben. Men kompleksiteten ved implementering og efterfølgende administration, samt den ganske urimelige pris for disse løsninger skræmmer mange væk.

Netop til sådanne scenarier, som Cross-Rack disaster recovery, passer AccelStor NeoSapphire™-løsningen perfekt. H710 med anvendelse af Shared-Nothing-arkitektur. Denne model repræsenterer et to-node lagringssystem, der bruger sin egen teknologi FlexiRemap® til at arbejde med flash-lagringsenheder. Takket være FlexiRemap® NeoSapphire™ H710 kan opnå ydeevne på op til 600K IOPS@4K random write og 1M+ IOPS@4K random read, hvilket er uopnåeligt ved brug af klassiske RAID-baserede lagringssystemer.

Men den vigtigste egenskab ved NeoSapphire™ H710 er udførelsen af de to noder i form af separate kabinetter, hvor hver har sin egen kopi af dataene. Synkroniseringen af noderne sker via et eksternt InfiniBand-interface. Takket være denne arkitektur kan noderne placeres på forskellige lokationer op til 100 meter væk, hvilket muliggør Cross-Rack disaster recovery. Begge noder arbejder fuldt synkront. For værtsmaskinerne ser H710 ud som et almindeligt to-controller lagringssystem. Derfor er der ikke behov for ekstra software- og hardwaremuligheder eller særlig komplekse indstillinger.

Sammenlignes de ovenfor beskrevne løsninger for Cross-Rack disaster recovery, fremhæver AccelStor-løsningen sig tydeligt blandt de øvrige:

AccelStor NeoSapphire™ Shared Nothing Architecture
Software- eller hardware 'virtualizer' af lagringssystemet
Løsning baseret på replikation

Tilgængelighed

Servernedbrud
Ingen nedetid
Ingen nedetid
Ingen nedetid

Switch-nedbrud
Ingen nedetid
Ingen nedetid
Ingen nedetid

Lagringssystem-nedbrud
Ingen nedetid
Ingen nedetid
Nedetid

Hele rack-nedbrud
Ingen nedetid
Ingen nedetid
Nedetid

Omkostninger og kompleksitet

Pris for løsningen
Lav*
Høj
Høj

Implementeringskompleksitet
Lav
Høj
Høj

*AccelStor NeoSapphire™ er stadig en All Flash-lagringsløsning, som per definition ikke er «gratis», især når man har dobbelt kapacitet. Men sammenlignet med den samlede omkostning for en løsning baseret på den med lignende fra andre leverandører, kan prisen betragtes som lav.

Topologien for tilslutning af applikationsservere og All Flash-lagringsnoder vil se således ud:

Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

Når man planlægger topologien, er det også yderst anbefalet at duplikere styrings- og interconnect-switchene for serverne.

Her og fremover vil der blive talt om tilslutning via Fibre Channel. I tilfælde af brug af iSCSI vil det være det samme, med forbehold for de anvendte typer switches og lidt forskellige indstillinger for lagermediet.

Forberedende arbejde på lagermediet

Brugt udstyr og software

Specifikationer for servere og switches

Komponenter
Description

Oracle Database 11g servere
To

Serveroperativsystem
Oracle Linux

Oracle databaseversion
11g (RAC)

Processorer pr. server
To 16 cores Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz

Fysisk hukommelse pr. server
128GB

FC-netværk
16Gb/s FC med multipathing

FC HBA
Emulex Lpe-16002B

Dedikerede offentlige 1GbE-porte til klyngeadministration
Intel ethernetadapter RJ45

16Gb/s FC-switch
Brocade 6505

Dedikerede private 10GbE-porte til datasynkronisering
Intel X520

Specifikation for AccelStor NeoSapphire™ All Flash-lagringsløsning

Komponenter
Description

Lagringssystem
NeoSapphire™ høj tilgængelighedsmodel: H710

Billedversion
4.0.1

Samlet antal drev
48

Drevstørrelse
1.92TB

Drevtype
SSD

FC målporte
16 x 16Gb porte (8 pr. node)

Administrationsporte
Den 1GbE ethernetkabel, der forbinder til værter via en ethernet switch

Heartbeat port
Den 1GbE ethernetkabel, der forbinder mellem to lagernoder

Datasynkroniseringsport
56Gb/s InfiniBand-kabel

Før lagermediet tages i brug, skal det initialiseres. Som standard er lederadressen for begge noder den samme (192.168.1.1). Du skal skiftevis oprette forbindelse til dem og angive nye (allerede forskellige) lederadresser og konfigurere tidsynkronisering, hvorefter administrationsportene kan tilsluttes et samlet netværk. Derefter bliver noderne samlet i en HA-par ved at tildele subnet til Interlink-forbindelser.

Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

Når initialiseringen er afsluttet, kan lagermediet administreres fra enhver node.

Dernæst opretter vi de nødvendige volumener og offentliggør dem for applikationsservere.

Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

Det anbefales stærkt at oprette flere volumener til Oracle ASM, da dette vil øge antallet af targets for serverne, hvilket i sidste ende forbedrer den samlede ydeevne (mere om køer et andet sted) artikel).

Testkonfiguration

Lagringsvolumen navn
Volumenstørrelse

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

Nogle forklaringer om driftsmodi for arrayet og de processer, der opstår ved nødsituationer.

Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

Hver nodes datasæt har en parameter "versionsnummer". Efter den første initialisering er det ens og lig med 1. Hvis versionsnummeret af en eller anden grund er forskelligt, vil data altid blive synkroniseret fra den ældre version til den yngre, hvorefter nummeret for den yngre version justeres, hvilket betyder, at kopierne er identiske. Årsagerne til, at versioner kan være forskellige, er:

  • Planlagt genstart af en af noderne.
  • Fejl på en af noderne på grund af pludselig strømafbrydelse (strøm, overophedning osv.).
  • Afbrudt InfiniBand-forbindelse med umulighed for synkronisering.
  • Fejl på en af noderne på grund af datakorruption. Her vil der være behov for at oprette en ny HA-gruppe og fuld synkronisering af datasættet.

Under alle omstændigheder øger noden, der forbliver online, sit versionsnummer med én, så den kan synkronisere sit datasæt med parret efter genoprettelse af forbindelsen.

Hvis der opstår afbrydelse på Ethernet-linket, skifter Heartbeat midlertidigt til InfiniBand og vender tilbage inden for 10 sekunder, når forbindelsen er genoprettet.

Host-konfigurationer

For at sikre fejltolerance og øge ydeevnen skal MPIO-support aktiveres for arrayet. Dette kræver, at du tilføjer nogle linjer i filen /etc/multipath.conf og derefter genstarter multipath-tjenesten.

Skjult tekstdevices {
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
}
}

Derudover, for at ASM fungerer med MPIO via ASMLib, skal du ændre filen /etc/sysconfig/oracleasm og derefter køre /etc/init.d/oracleasm scandisks.

Skjult tekst

# ORACLEASM_SCANORDER: Matching patterns to order disk scanning
ORACLEASM_SCANORDER="dm"

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

Bemærk

Hvis du ikke ønsker at bruge ASMLib, kan du bruge UDEV-regler, som danner grundlaget for ASMLib.

Fra version 12.1.0.2 er Oracle Database muligheden tilgængelig til installation som en del af ASMFD-softwaren.

Det er vigtigt at sikre, at de opdelt diske til Oracle ASM er korrekt justeret i forhold til blokstørrelsen, som arrayet fysisk arbejder med (4K). Ellers kan der opstå ydeevneproblemer. Derfor skal du oprette volumener med de relevante parametre:

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

Fordeling af databaser på de oprettede volumener til vores testkonfiguration

Lagringsvolumen navn
Volumenstørrelse
Volumen LUNs kortlægning
ASM Volumen Enhedsdetalje
Allokeringsenhedsstørrelse

Data01
200GB
Kortlæg alle lagervolumener til lagersystemets alle dataporter
Redundans: Normal
Navn: DGDATA
Formål: Datafiler

4MB

Data02
200GB

Data03
200GB

Data04
200GB

Data05
200GB

Data06
200GB

Data07
200GB

Data08
200GB

Data09
200GB

Data10
200GB

Grid01
1GB
Redundans: Normal
Navn: DGGRID1
Formål: Grid: CRS og afstemning

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Redundans: Normal
Navn: DGGRID2
Formål: Grid: CRS og afstemning

4MB

Grid05
1GB

Grid06
1GB

Redo01
100GB
Redundans: Normal
Navn: DGREDO1
Formål: Redo-log for tråd 1

4MB

Redo02
100GB

Redo03
100GB

Redo04
100GB

Redo05
100GB

Redo06
100GB
Redundans: Normal
Navn: DGREDO2
Formål: Redo-log for tråd 2

4MB

Redo07
100GB

Redo08
100GB

Redo09
100GB

Redo10
100GB

Databaseindstillinger

  • Blokstørrelse = 8K
  • Swapplads = 16GB
  • Deaktiver AMM (Automatisk Hukommelsesstyring)
  • Deaktiver Transparente Store Sider

Andre indstillinger

# 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 # sæt ikke dette, hvis du bruger 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"
ændre systemindstilling til processes=2000 scope=spfile;
ændre systemindstilling til open_cursors=2000 scope=spfile;
ændre systemindstilling til session_cached_cursors=300 scope=spfile;
ændre systemindstilling til db_files=8192 scope=spfile;

Test af fejlbarhed

For demonstrationsformål blev HammerDB anvendt til at emulere OLTP-belastning. HammerDB konfiguration:

Antal lagre
256

Samlede transaktioner pr. bruger
1000000000000

Virtuelle brugere
256

Som resultat blev der opnået en måling på 2.1M TPM, hvilket er langt fra maksimal ydeevne for arrangementet H710, men er et 'loft' for den nuværende hardwarekonfiguration af serverne (primært på grund af processorerne) og deres antal. Målet med denne test er dog stadig at demonstrere pålideligheden af løsningen som helhed, ikke for at nå ydeevne-toppe. Så lad os bare tage udgangspunkt i dette tal.

Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

Test af fejl på en af noderne

Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

Værterne mistede noget af stien til lagringen, men fortsatte med at arbejde gennem de resterende med den anden node. Ydeevnen faldt i nogle sekunder på grund af genopbygning af veje, og kom derefter tilbage til normale niveauer. Der var ikke nogen serviceafbrydelse.

Test af fejl på skabet med alt udstyr

Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

Opbygning af et failover-løsning baseret på Oracle RAC og AccelStor Shared-Nothing arkitektur

I dette tilfælde faldt ydeevnen også i nogle sekunder på grund af genopbygning af veje, og kom derefter tilbage til halvdelen af den oprindelige værdi. Resultatet faldt til det halve af det oprindelige på grund af udelukkelse af én applikationsserver. Der var heller ikke nogen serviceafbrydelse.

Hvis der er behov for at implementere en fejlsikker Cross-Rack disaster recovery-løsning for Oracle til en rimelig pris og med minimal indsats til implementering/administration, så vil samarbejde mellem Oracle RAC og arkitekturen AccelStor Shared-Nothing være en af de bedste muligheder. I stedet for Oracle RAC kan ethvert andet software, der muliggør clustering, de samme DBMS eller virtualiseringssystemer bruges. Princippet for løsningens opbygning forbliver det samme. Og det endelige resultat – nul værdi for RTO og RPO.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster