Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Mitte väike hulk ettevõtte rakendusi ja virtualiseerimissüsteeme omab oma mehhanisme usaldusväärsete lahenduste loomiseks. Eriti Oracle RAC (Oracle Reaalsete Rakenduste Klaster) on klaster, mis koosneb kahest või enam Oracle'i andmebaasiserverist, mis töötavad koos koormuse tasakaalustamiseks ja usaldusväärsuse tagamiseks serveri/rakenduse tasandil. Tööks sellises režiimis on vajalik ühine salvestus, milleks on tavaliselt SAN.

Nagu oleme varem arutanud ühes oma artiklites, iseenda SAN, vaatamata dubleeritud komponentide olemasolule (sealhulgas kontrolleritele), sisaldab siiski vigu – peamiselt ühesugust andmekogumit. Seetõttu tuleb Oracle'i lahenduse loomiseks, millel on suurenenud usaldusväärsuse nõuded, skeemi "N serverit – üks SAN" keerukamaks muuta.

Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Esiteks, loomulikult tuleb määratleda, millistelt riskidelt püüame end kaitsta. Käesolevas artiklis ei käsitle me kaitset selliste ohtude eest nagu "meteoriit kukkus alla". Seega jääb ruumiliselt hajutatud lahenduse disaster recovery ehitamine järgmiste artiklite teemaks. Siin vaatleme nii nimetatud Cross-Rack disaster recovery lahendust, kus kaitse ehitatakse serverikapid tasandil. Kapid võivad asuda kas ühes ruumis või erinevates, kuid tavaliselt samas hoones.

Need kapid peavad sisaldama kogu vajaliku varustuse ja tarkvara komplekti, mis võimaldab Oracle andmebaaside töötagamist sõltumata "naabri" seisundist. Teisisõnu, kasutades Cross-Rack disaster recovery lahendust, välistame rikke riskid:

  • Oracle rakenduste serverid
  • Salvestussüsteemid
  • Switching süsteemid
  • Kogu varustuse rike kapis:
    • Toite rike
    • Jahutussüsteemi rike
    • Välised tegurid (inimene, loodus jne)

Oracle'i serverite dubleerimine põhineb Oracle RAC tööpõhimõttel ja toimub rakenduse kaudu. Dubleerimisprobleemide lahendamine vahetuskomplektides ei ole samuti probleem. Kuid salvestussüsteemide dubleerimine on juba keerulisem.

Lihtsaim lahendus on andmete replikatsioon põhivaruhoidlast (SāH) varuhoidlast. See võib olla sünkroonne või asünkroonne, sõltuvalt SāH võimalustest. Asünkroonsel replikatsioonil tekib kohe küsimus andmete järjepidevuse tagamise kohta Oracle'i suhtes. Kuid isegi juhul, kui rakendusel on tarkvaraline integratsioon, on peamise SāH tõrke korral alati vajalik administraatorite käsitsi sekkumine klusteri üleviimise jaoks varuse salvestusse.

Keerulisem lahendus on tarkvara ja/või riistvaralised SāH "virtuaaliseerijad", mis vabastavad teid järjepidevuse ja käsitsi sekkumise probleemidest. Kuid nende lahenduste rakendamise ja edasise haldamise keerukus ning üsna kõrge hind peletab paljusid eemale.

Just for scenarios like these, the All Flash array AccelStor NeoSapphire™ is an excellent solution for Cross-Rack disaster recovery. H710 using Shared-Nothing architecture. This model represents a dual-node storage system utilizing proprietary FlexiRemap® technology for working with flash drives. Thanks to FlexiRemap® NeoSapphire™ H710 can deliver performance of up to 600K IOPS@4K random write and over 1M IOPS@4K random read, which is unattainable with traditional RAID-based storage systems.

But the main feature of the NeoSapphire™ H710 is its design as two nodes in separate enclosures, each having its own copy of the data. Node synchronization is accomplished through an external InfiniBand interface. This architecture allows for placing nodes at different locations up to 100m apart, thereby providing a Cross-Rack disaster recovery solution. Both nodes operate fully synchronously. From the perspective of hosts, H710 appears as a regular dual-controller storage system. Therefore, no additional software and hardware options or particularly complex configurations are necessary.

Võrreldes kõigi ülaltoodud Cross-Rack katastroofide taastamise lahendustega paistab AccelStori variant selgelt teiste seas silma.

AccelStor NeoSapphire™ jagatud mitte-ressursi arhitektuur
Programmiline või riistvaraline „virtualiseerija” HDA
Lahendus, mis põhineb replikatsioonil

Saadavus

Serveri rike
Ilma seisakuta
Ilma seisakuta
Ilma seisakuta

Lüliti rike
Ilma seisakuta
Ilma seisakuta
Ilma seisakuta

Salvestussüsteemi rike
Ilma seisakuta
Ilma seisakuta
Seisak

Kogu riistvara rike
Ilma seisakuta
Ilma seisakuta
Seisak

Kulud ja keerukus

Lahenduse hind
Madala*
Kõrge
Kõrge

Paigaldamise keerukus
Madala
Kõrge
Kõrge

*AccelStor NeoSapphire™ on siiski All Flash maatriks, mis oma määratlemise järgi ei maksa «3 kopikat», eriti kui arvestada kahekordset mahtude varu. Siiski, võrreldes lõplikku lahenduse maksumust selle alusel teiste tarnijate sarnastega, võib maksumust pidada madalaks.

Rakendusserverite ja All Flash maatriksi sõlmede ühenduse topoloogia näeb välja järgmine:

Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Topoloogia planeerimisel on äärmiselt soovitatav teha juhtimisseente ja serverite vahelise ühenduse koopia.

Edasi ja edasi räägime ühendamisest läbi Fibre Channel. iSCSI kasutamisel on kõik sama, välja arvatud kasutatavate lülitite tüübid ja veidi erinevad asetuste seaded.

Ettevalmistavad tööd maatriksil

Kasutatavad seadmed ja tarkvara

Serverite ja lülitite spetsifikatsioonid

Komponendid
Kirjeldus

Oracle Database 11g serverid
Kaks

Serveri operatsioonisüsteem
Oracle Linux

Oracle andmebaasi versioon
11g (RAC)

Protsessorid serveri kohta
Kaks 16 tuuma Intel® Xeon® CPU E5-2667 v2 @ 3,30GHz

Füüsiline mälu serveri kohta
128GB

FC võrk
16Gb/s FC koos multipathiga

FC HBA
Emulex Lpe-16002B

Dedikeeritud avalikud 1GbE sadamad klastrihalduseks
Intel ethernet adapter RJ45

16Gb/s FC lüliti
Brocade 6505

Dedikeeritud privaatne 10GbE sadamad andmete sünkroniseerimiseks
Intel X520

AccelStor NeoSapphire™ All Flash süsteemi spetsifikatsioon

Komponendid
Kirjeldus

Salvestussüsteem
NeoSapphire™ suure kättesaadavuse mudel: H710

Pildi versioon
4.0.1

Kokku kettaid
48

Ketta suurus
1.92TB

Ketta tüüp
SSD

FC sihtsadamad
16 x 16Gb porti (8 sõlme kohta)

Haldusportid
1GbE ethernet kaabel, mis ühendab hoste ethernet lülitiga

Südame löögisageduse port
1GbE ethernet kaabel, mis ühendab kaks salvestussõlme

Andmete sünkroniseerimise port
56Gb/s InfiniBand kaabel

Enne süsteemi kasutamist tuleb see initsialiseerida. Vaikimisi on mõlema sõlme haldusadress sama (192.168.1.1). Tuleb järjestikku ühenduda nendega ja määrata uued (juba erinevad) haldusadressid ning seadistada ajasünkroonimine, pärast mida saab haldusportid ühendada üheks võrguks. Järgmiseks toimub sõlmede ühendamine HA paariks, määrates alamvõrgud Interlink ühenduste jaoks.

Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Pärast initsialiseerimist saab süsteemi hallata mistahes sõlmest.

Seejärel loome vajalikud mahud ja avaldame need rakendusserveritele.

Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Soovitatav on luua mitu mahtu Oracle ASM-i jaoks, kuna see suurendab serverite sihtpunktide arvu, mis lõpuks parandab üldist jõudlust (järgnevates artiklites on esitatud rohkem teavet järjekordade kohta). artiklis).

Testimise konfiguratsioon

Salvestusmahu nimi
Mahu suurus

Andmed01
200GB

Andmed02
200GB

Andmed03
200GB

Andmed04
200GB

Andmed05
200GB

Andmed06
200GB

Andmed07
200GB

Andmed08
200GB

Andmed09
200GB

Andmed10
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

Mõned seletused massiivide töörežiimide ja häireolukordade protsesside kohta.

Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Iga sõlme andmestikul on parameeter „versiooninumber“. Pärast esialgset initsialiseerimist on see sama ja võrdne 1-ga. Kui mingil põhjusel on versiooninumber erinev, toimub alati andmete sünkroonimine vanemalt versioonilt noorematele, pärast mida noorema versiooni number tasandatakse, st see tähendab, et koopiad on identsed. Versioonide erinevuse põhjused võivad olla:

  • Üks sõlmedest taaskäivitati planeeritult.
  • Üks sõlmedest äpardus ootamatu välja lülitamise tõttu (toide, ülekuumenemine jne).
  • InfiniBand-ühenduse katkestamine sünkroonimise võimatuse tõttu.
  • Üksusest andmete kahjustumise tõttu toimunud rike. Siin on vajalik uus HA rühma loomine ja andmete täielik sünkroonimine.

Igal juhul, online jääv sõlm suurendab oma versiooninumbrit ühe võrra, et pärast ühenduse taastamist paariga sünkroonida selle andmestikku.

Kui Etherneti ühenduse katus katkeb, lülitub Heartbeat ajutiselt InfiniBandi peale ja naaseb tagasi 10 sekundi jooksul pärast taastumist.

Hostide seadistamine

Tõrketeabe tagamiseks ja jõudluse suurendamiseks tuleb MPIO tugi rakendamiseks sisselülitada. Selleks tuleb faili /etc/multipath.conf lisada read ning seejärel taaskäivitada multipath teenus.

Peidetud tekstdevices {
seade {
tootja «AStor»
tee_grupid_poliitika «group_by_prio»
tee_valik «queue-length 0»
tee_kontrollija «tur»
funktsioonid «0»
riistvara_käitleja «0»
prio «const»
tagasi võtma koheselt
kiire_io_ülekuumenemise_aeg 5
seadmestiku_kadu_aeg 60
kasutajasõbralikud_nimed jah
tuvasta_prio jah
rr_min_io_rq 1
pole_ted_võimaluse_katset 0
}
}

Edasi, et ASM töötaks MPIO kaudu ASMLib'i, tuleb faili /etc/sysconfig/oracleasm muuta ja seejärel käivitada /etc/init.d/oracleasm scandisks.

Peidetud tekst

# ORACLEASM_SCANORDER: Matching patterns to order disk scanning
ORACLEASM_SCANORDER=«dm»

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

Märkus

Kui ASMLib'i kasutada ei soovi, saab kasutada UDEVi reegleid, mis on ASMLib'i alus.

Alates versioonist 12.1.0.2 on Oracle Databasei valik saadaval installimiseks kui osa ASMFD tarkvarast.

On hädavajalik veenduda, et Oracle ASM-i jaoks loodud kettad oleksid joondatud füüsiliselt töötava massiivi ploki suurusega (4K). Vastasel juhul võivad tekkida jõudlusprobleemid. Seetõttu tuleb luua mahtusid vastavate parameetritega:

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

Andmebaaside jaotamine loodud mahtude vahel meie testkonfiguratsiooni jaoks

Salvestusmahu nimi
Mahu suurus
Volume LUNs mapping
ASM Volume Device Detail
Allocation Unit Size

Andmed01
200GB
Kaardista kõik salvestusmahtude andmesüsteemi kõik andmeportid
Redundancy: Normaalne
Nimi:DGDATA
Eesmärk: Andmefailid

4MB

Andmed02
200GB

Andmed03
200GB

Andmed04
200GB

Andmed05
200GB

Andmed06
200GB

Andmed07
200GB

Andmed08
200GB

Andmed09
200GB

Andmed10
200GB

Grid01
1GB
Redundancy: Normaalne
Nimi: DGGRID1
Eesmärk: Grid: CRS ja hääletamine

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Redundancy: Normaalne
Nimi: DGGRID2
Eesmärk: Grid: CRS ja hääletamine

4MB

Grid05
1GB

Grid06
1GB

Redo01
100GB
Redundancy: Normaalne
Nimi: DGREDO1
Eesmärk: Thread 1 taastelog

4MB

Redo02
100GB

Redo03
100GB

Redo04
100GB

Redo05
100GB

Redo06
100GB
Redundancy: Normaalne
Nimi: DGREDO2
Eesmärk: Thread 2 taastelog

4MB

Redo07
100GB

Redo08
100GB

Redo09
100GB

Redo10
100GB

Andmebaasi seadistused

  • Ploki suurus = 8K
  • Vahetusruum = 16GB
  • AMM (Automaatne Mälu Halduse) keelamine
  • Läbipaistvate Suurte Lehtede keelamine

Muud seadistused

# 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 # ärge seadistage seda, kui kasutate 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”
alter system set processes=2000 scope=spfile;
alter system set open_cursors=2000 scope=spfile;
alter system set session_cached_cursors=300 scope=spfile;
alter system set db_files=8192 scope=spfile;

Vastuskatsetus

Demonstreerimiseks kasutati HammerDB-d OLTP koormuse simuleerimiseks. HammerDB konfiguratsioon:

Ladude arv
256

Kokku tehinguid kasutaja kohta
1000000000000

Virtuaalsed kasutajad
256

Tulemuseks oli 2,1M TPM, mis jääb kaugele salve jõudluse piirist, H710, kuid on praeguse serverite riistvara konfiguratsiooni (peamiselt protsessorite) ja nende arvu "lagi". Selle testi eesmärgiks on siiski demonstreerida lahenduse usaldusväärsust üldiselt, mitte jõudlustippude saavutamist. Seetõttu lähtume lihtsalt sellest numbrist.

Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Ühe sõlme tõrketest

Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Hostid kaotas osa teid hulgimüügiossa, jätkates tööd läbi jäänud teede teise sõlme. Tulemus langes mitmeks sekundiks teede ümberkorraldamise tõttu ja seejärel naasis normaalsesse tasemesse. Teenuse katkestust ei olnud.

Kapoti rikke test kogu seadmetega

Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Oracle RAC ja AccelStor Shared-Nothing arhitektuuri põhjal usaldusväärse lahenduse loomine

Selles juhul langes tulemus samuti mitmeks sekundiks teede ümberkorraldamise tõttu ja seejärel naasis algse taseme poole. Tulemused vähenesid poole võrra algsest, kuna ühe rakendusse serveri töö lõpetamise tõttu. Teenuse katkestust samuti ei olnud.

Kui on vajadusi rakendada Ristjõudude katastroofide taastamise lahendust Oracle jaoks mõistliku hinna ja väheste juurutamis-/halduspingutustega, siis Oracle RAC ja arhitektuuri koostöö AccelStor Shared-Nothing on üks parimaid variante. Oracle RAC-i asemel võib kasutada mis tahes muud tarkvara, mis toetab klasterdamist, samu andmebaase või virtualiseerimisse süsteeme, näiteks. Lahenduse ehitamise põhimõte jääb samaks. Lõplik näitaja on RTO ja RPO nullväärtus.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster