Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Jimarek girîng ji serîlêdanên Enterprise û pergalên virtualîzasyonê mekanîzmayên xwe hene ji bo avakirina çareseriyên toleransê xelet. Bi taybetî, Oracle RAC (Oracle Real Application Cluster) komek ji du an bêtir serverên databasa Oracle ye ku bi hev re dixebitin da ku barkirinê hevseng bikin û di asta server / serîlêdanê de tolerasyona xeletiyê peyda bikin. Ji bo ku hûn di vê modê de bixebitin, hûn hewceyê hilanînek hevbeş, ku bi gelemperî pergalek hilanînê ye.

Wekî ku me berê jî di yek ji me de nîqaş kir gotarên, pergala hilanînê bixwe, tevî hebûna pêkhateyên dubare (tevî kontrolkeran), hîn jî xalên têkçûnê hene - bi piranî di forma yek komek daneyan de. Ji ber vê yekê, ji bo avakirina çareseriyek Oracle bi hewcedariyên pêbaweriya zêde, pêdivî ye ku nexşeya "N server - yek pergala hilanînê" tevlihev be.

Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Berî her tiştî, bê guman, divê em biryar bidin ku em li hember çi xetereyan hewl didin ku sîgorte bikin. Di vê gotarê de, em ê parastina li dijî gefên mîna "meteorîtek hat" nabînin. Ji ber vê yekê avakirina çareseriyek vegerandina karesatê ya bi erdnîgarî belavbûyî dê mijarek ji bo yek ji gotarên jêrîn bimîne. Li vir, dema ku parastin di asta kabîneyên serverê de were çêkirin, em ê li çareseriya bi navê Cross-Rack-ê vegerandina karesatê binêrin. Kabîneyên xwe dikarin di heman odeyê de an jî li cîhên cûda, lê bi gelemperî di hundurê heman avahiyê de bêne bicîh kirin.

Pêdivî ye ku van kabîneyan tevahî cîhê pêdivî û nermalava pêdivî bihewîne ku dê rê bide xebitandina databasên Oracle bêyî rewşa "cîranê". Bi gotinek din, bi karanîna çareseriya vegerandina karesatê ya Cross-Rack, em xetereyên têkçûnê ji holê radikin:

  • Pêşkêşkerên Serlêdana Oracle
  • sîstemên Storage
  • Pergalên veguherînê
  • Bi tevahî têkçûna hemî alavên di kabîneyê de:
    • Têkçûna hêzê
    • Têkçûna pergala sarkirinê
    • Faktorên derve (mirov, xweza, hwd.)

Dubarkirina serverên Oracle prensîba xebitandinê ya Oracle RAC-ê vedihewîne û bi serîlêdanek ve tête bicîh kirin. Dubarekirina tesîsên veguherînê jî ne pirsgirêk e. Lê bi dubarekirina pergala hilanînê, her tişt ne ew çend hêsan e.

Vebijarka herî hêsan dubarekirina daneyê ji pergala hilanînê ya sereke berbi ya hilanînê ye. Hemdem an asînkron, li gorî kapasîteyên pergala hilanînê ve girêdayî ye. Bi dubarekirina asynchronous re, pirs yekser derdikeve holê ku lihevhatina daneyê di pêwendiya Oracle de misoger bike. Lê tewra ku bi serîlêdanê re entegrasyona nermalavê hebe jî, di her rewşê de, di bûyera têkçûnek li ser pergala hilanînê ya sereke de, dê destwerdana bi destan ji hêla rêvebiran ve were xwestin da ku komê biguhezîne hilanîna hilanînê.

Vebijarkek tevlihevtir "virtualîzatorên hilanîna nermalavê" û/an hardware ye ku dê pirsgirêkên hevgirtinê û destwerdana destan ji holê rake. Lê tevliheviya bicihkirinê û rêveberiya paşîn, û her weha lêçûna pir nebaş a çareseriyên weha, gelekan ditirsîne.

Çareseriya array AccelStor NeoSapphire™ All Flash ji bo senaryoyên wekî vegerandina karesatê ya Cross-Rack bêkêmasî ye. H710 bikaranîna mîmariya Shared-Tiştek. Ev model pergalek hilanînê ya du-node ye ku teknolojiya xwedan FlexiRemap® bikar tîne da ku bi ajokarên flash re bixebite. Bi saya FlexiRemap® NeoSapphire™ H710 karibe performansê bigihîne 600K IOPS@4K nivîsandina rasthatî û 1M+ IOPS@4K xwendina bêserûber, ku dema ku pergalên hilanînê-based RAID-ê yên klasîk bikar tînin ne pêkan e.

Lê taybetmendiya sereke ya NeoSapphire™ H710 pêkanîna du girêkan di forma dozên cihêreng de ye, ku her yek ji wan kopiyek xwe ya daneyê heye. Hevdengkirina girêkan bi navbeynkariya derveyî ya InfiniBand ve tête kirin. Bi saya vê mîmariyê, gengaz e ku meriv girêkan li cîhên cihêreng li dûrahiya 100 m were belavkirin, bi vî rengî çareseriyek başkirina karesatê ya Cross-Rack peyda dike. Her du girêk bi tevahî hevdem dixebitin. Ji hêla mêvandar ve, H710 mîna pergalek hilanîna du-kontrolker a asayî xuya dike. Ji ber vê yekê, ne hewce ye ku hûn vebijarkên nermalava an hardware an jî mîhengên taybetî yên tevlihev bikin.

Ger em hemî çareseriyên başkirina karesata Cross-Rack ku li jor hatine destnîşan kirin bidin ber hev, wê hingê vebijarka AccelStor ji yên mayî bi baldarî radiweste:

AccelStor NeoSapphire™ Mîmariya Tiştek Parvekirî
Pergala hilanînê ya "virtualizer" nermalava an hardware
Çareseriya bingehîn a dubarekirinê

Hilbijartinê

Server têkçûna
Downtime tune
Downtime tune
Downtime tune

Switch têkçûna
Downtime tune
Downtime tune
Downtime tune

Têkçûna pergala hilanînê
Downtime tune
Downtime tune
Downtime

Tevahî têkçûna kabîneyê
Downtime tune
Downtime tune
Downtime

Mesref û tevlihevî

Mesrefa çareseriyê
Nizm*
Vîdeo
Vîdeo

Tevliheviya belavkirinê
Nizm
Vîdeo
Vîdeo

*AccelStor NeoSapphire™ hîn jî berhevokek Hemî Flash-ê ye, ku ji hêla pênase ve "3 kopek" lê naçe, nemaze ji ber ku rezervek kapasîteya wê ya ducar heye. Lêbelê, dema ku lêçûna paşîn a çareseriyek li ser bingeha wê bi yên mîna ji firoşkarên din re were berhev kirin, lêçûn dikare kêm were hesibandin.

Topolojiya ji bo girêdana serverên serîlêdanê û Hemî girêkên array Flash dê bi vî rengî xuya bike:

Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Dema plansazkirina topolojiyê, di heman demê de pir tê pêşniyar kirin ku guheztinên rêveberiyê û pêşkêşkerên bi hev ve girêdin.

Li vir û bêtir em ê li ser girêdana bi Kanala Fiber biaxivin. Heke hûn iSCSI bikar bînin, dê her tişt wekî hev be, ji bo celebên guhêrbarên ku têne bikar anîn û mîhengên array hinekî cûda têne verast kirin.

Karê amadekariyê li ser array

Amûr û nermalava bikar anîn

Server û Switch Specifications

Components
description

Pêşkêşkerên Oracle Database 11g
Du

Pergala xebitandinê ya serverê
oracle linux

Guhertoya databasa Oracle
11g (RAC)

Processors per server
Du 16 core Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz

Bîra fizîkî per server
128GB

tora FC
16Gb/s FC bi piralî

FC HBA
Emulex Lpe-16002B

Ji bo rêveberiya komê portên 1GbE yên giştî yên veqetandî
adapterê ethernet Intel RJ45

Guhestina FC ya 16Gb/s
Brocade 6505

Ji bo hevdengkirina daneyan portên 10GbE yên taybet ên veqetandî
Intel X520

AccelStor NeoSapphire™ Hemî Taybetmendiyên Array Flash

Components
description

Sîstema hilanînê
Modela hebûna bilind a NeoSapphire™: H710

Guhertoya wêneyê
4.0.1

Bi tevahî hejmara ajokeran
48

Mezinahiya ajotinê
1.92TB

Cureyê drive
SSD

benderên armanca FC
Portên 16x 16Gb (8 her girêk)

benderên Management
Kabloya ethernetê ya 1GbE bi guhezek ethernetê bi mêvandaran ve tê girêdan

bendera lêdana dil
Kabloya ethernet a 1GbE di navbera du girêkên hilanînê de tê girêdan

Porta hevdemkirina daneyê
56Gb/s kabloya InfiniBand

Berî ku hûn bikarin arrayek bikar bînin, divê hûn wê dest pê bikin. Bi xwerû, navnîşana kontrolê ya her du girêkan yek e (192.168.1.1). Pêdivî ye ku hûn yek bi yek bi wan ve girêdin û navnîşanên rêveberiyê yên nû (jixwe cihêreng) saz bikin û hevdengkirina demê saz bikin, piştî ku portên Rêvebiriyê dikarin bi yek torê ve werin girêdan. Dûv re, girêk di nav cotek HA-yê de têne berhev kirin û ji bo girêdanên Interlink subnet têne veqetandin.

Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Piştî ku destpêkkirin qediya, hûn dikarin rêzê ji her girêkekê birêve bibin.

Dûv re, em cildên pêwîst diafirînin û wan li ser serverên serîlêdanê diweşînin.

Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Pir tê pêşniyar kirin ku ji bo Oracle ASM gelek cild biafirînin ji ber ku ev ê jimara armancên ji bo pêşkêşkeran zêde bike, ku di dawiyê de dê performansa giştî baştir bike (bêtir li ser rêzên din gotara).

Veavakirina testê

Navê Volume Storage
Mezinahiya Volume

Daneyên01
200GB

Daneyên02
200GB

Daneyên03
200GB

Daneyên04
200GB

Daneyên05
200GB

Daneyên06
200GB

Daneyên07
200GB

Daneyên08
200GB

Daneyên09
200GB

Daneyên10
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

Hin ravekirinên li ser awayên xebitandinê yên array û pêvajoyên ku di rewşên awarte de diqewimin

Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Daneyên her girêk xwedan pîvanek "hejmara guhertoyê" ye. Piştî destpêkirina destpêkê, ew yek e û bi 1-ê re wekhev e. Ger ji ber hin sedeman hejmara versiyonê cûda be, wê hingê dane her gav ji guhertoya kevintir ber bi ya piçûktir ve têne hevdeng kirin, piştî wê jî hejmara guhertoya piçûk li hev tê, yanî. ev tê wê wateyê ku kopiyan yek in. Sedemên ku guhertoyên cûda cûda dibin:

  • Rebootkirina plansazkirî ya yek ji girêkan
  • Qezayek li ser yek ji girêkan ji ber qutbûnek ji nişka ve (dabînkirina hêzê, germbûna zêde, hwd.).
  • Têkiliya InfiniBand bi nebûna hevdengkirinê winda bû
  • Ji ber xerabûna daneyan li ser yek ji girêkan têkçû. Li vir hûn ê hewce ne ku komek HA-ya nû biafirînin û hevdengkirina daneya daneyê temam bikin.

Di her rewşê de, girêka ku serhêl dimîne jimara guhertoya xwe yek yek zêde dike da ku piştî ku pêwendiya bi cotê re were sererast kirin daneya xwe hevdeng bike.

Ger pêwendiya li ser girêdana Ethernet winda bibe, Heartbeat bi demkî vediguhere InfiniBand û dema ku were sererast kirin di nav 10 çirkeyan de vedigere.

Sazkirina hosteyan

Ji bo dabînkirina tolerasyona xeletiyê û baştirkirina performansê, divê hûn piştgiriya MPIO ji bo rêzê çalak bikin. Ji bo vê yekê, hûn hewce ne ku rêzan li pelê /etc/multipath.conf zêde bikin, û dûv re karûbarê pir rê ji nû ve bidin destpêkirin.

Nivîsa veşartîcîhazên {
cîhaz {
firoşkar "AStor"
path_grouping_policy "group_by_prio"
path_selector "queue-length 0"
path_checker "tur"
taybetmendiyên "0"
hardware_handler "0"
preo "const"
têkçûn yekser
fast_io_fail_tmo 5
dev_loss_tmo 60
user_friendly_names erê
detect_prio erê
rr_min_io_rq 1
no_path_retry 0
}
}

Dûv re, ji bo ku ASM bi MPIO re bi ASMLib re bixebite, hûn hewce ne ku pelê /etc/sysconfig/oracleasm biguherînin û dûv re /etc/init.d/oracleasm scandisks bimeşînin.

Nivîsa veşartî

# ORACLEASM_SCANORDER: Nimûneyên lihevhatî ji bo fermankirina şopandina dîskê
ORACLEASM_SCANORDER="dm"

# ORACLEASM_SCANEXCLUDE: Nimûneyên lihevhatî ji bo derxistina dîskan ji şopandinê
ORACLEASM_SCANEXCLUDE="sd"

bingotin

Heke hûn nexwazin ASMLib bikar bînin, hûn dikarin qaîdeyên UDEV bikar bînin, ku bingeha ASMLib in.

Bi guhertoya 12.1.0.2 ya Oracle Database dest pê dike, vebijark ji bo sazkirinê wekî beşek nermalava ASMFD heye.

Pêdivî ye ku meriv pê ewle bibe ku dîskên ku ji bo Oracle ASM hatine afirandin bi mezinahiya blokê ya ku array bi fizîkî bi (4K) re tevdigere re hevaheng in. Wekî din, dibe ku pirsgirêkên performansê çêbibin. Ji ber vê yekê, pêdivî ye ku cildên bi pîvanên guncan werin afirandin:

ji hev veqetandin /dev/mapper/device-name mklabel gpt mkpart seretayî 2048s 100% align-check optimum 1

Belavkirina databasan li ser cildên hatine afirandin ji bo veavakirina ceribandina me

Navê Volume Storage
Mezinahiya Volume
Nexşeya Volume LUNs
ASM Volume Device Detail
Mezinahiya Yekîneya Veqetandinê

Daneyên01
200GB
Hemî cildên hilanînê ji pergala hilanînê re hemî portên daneyê nexşînin
Zêdebûn: Normal
Nav: DGDATA
Armanc: Pelên daneyan

4MB

Daneyên02
200GB

Daneyên03
200GB

Daneyên04
200GB

Daneyên05
200GB

Daneyên06
200GB

Daneyên07
200GB

Daneyên08
200GB

Daneyên09
200GB

Daneyên10
200GB

Grid01
1GB
Zêdebûn: Normal
Nav: DGGRID1
Armanc: Grid: CRS û Dengdan

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Zêdebûn: Normal
Nav: DGGRID2
Armanc: Grid: CRS û Dengdan

4MB

Grid05
1GB

Grid06
1GB

Redo01
100GB
Zêdebûn: Normal
Nav: DGREDO1
Armanc: Ji nû ve têketin 1

4MB

Redo02
100GB

Redo03
100GB

Redo04
100GB

Redo05
100GB

Redo06
100GB
Zêdebûn: Normal
Nav: DGREDO2
Armanc: Ji nû ve têketin 2

4MB

Redo07
100GB

Redo08
100GB

Redo09
100GB

Redo10
100GB

Mîhengên Database

  • Mezinahiya blokê = 8K
  • Cihê veguherîn = 16 GB
  • AMM (Rêveberiya Bîra Xweser) neçalak bike
  • Rûpelên Mezin ên Zelal neçalak bike

Mîhengên din

# 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 # vê saz nekin ger hûn Linux x86 bikar tînin
✓ vm.vfs_cache_pressure=200
✓ vm.nr_hugepages = 57000

# vi /etc/security/limits.conf
✓ tora nerm nproc 2047
✓ tora hişk nproc 16384
✓ tora nerm nofil 1024
✓ tora hişk nofil 65536
✓ tora nermalavê 10240
✓ tora hişk 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 nerm 120795954
✓ memlock hişk 120795954

sqlplus "/ as sysdba"
guhertina pergalên pergalên pergalê = 2000 çarçoveya = pelê;
guhertina pergala pergalê open_cursors=2000 scope=spfile;
guhertina pergala pergalê session_cached_cursors=300 scope=spfile;
pergala pergalê biguherîne db_files=8192 scope=spfile;

Testa têkçûnê

Ji bo mebestên xwenîşandanê, HammerDB hate bikar anîn ku barkirina OLTP-ê bişopîne. Veavakirina HammerDB:

Hejmara Warehouses
256

Tevahiya danûstandinên her bikarhêner
1000000000000

Bikarhênerên Virtual
256

Encam 2.1M TPM bû, ku ji sînorê performansa array dûr e H710, lê ji bo veavakirina hardware ya heyî ya pêşkêşkeran (bi serî de ji ber pêvajokeran) û hejmara wan "sivanek" e. Armanca vê ceribandinê hîn jî ew e ku tolerasyona xeletiyê ya çareseriyê bi tevahî destnîşan bike, û negihîje performansa herî zêde. Ji ber vê yekê, em ê tenê li ser vê hejmarê ava bikin.

Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Ji bo têkçûna yek ji girêkan test bikin

Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Mêvandaran beşek ji riyên hilanînê winda kirin, bi girêka duyemîn re xebata xwe ya mayî berdewam kirin. Ji ber rêyên ku ji nû ve hatin çêkirin, performans çend saniyeyan daket, û dûv re vegeriya rewşa normal. Di xizmetê de qut nebû.

Testa têkçûna kabîneyê bi hemî amûran re

Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Li ser bingeha mîmariya Oracle RAC û AccelStor Shared-Nothing, çareseriyek tolerant a xeletiyê ava kirin

Di vê rewşê de, performans ji ber ji nû veavakirina riyan çend saniyeyan jî daket, û dûv re vegeriya nîvê nirxa bingehîn. Ji ber dûrxistina serverek serîlêdanê ji xebatê, encam ji ya destpêkê nîvî bû. Di xizmetê de jî qut nebû.

Ger hewce be ku ji bo Oracle-ê bi lêçûnek maqûl û bi hewildanek piçûktir veguheztin/rêveberiyê çareseriyek hilanîna karesatê ya Cross-Rack-tolerant-qesûr were bicîh kirin, wê hingê Oracle RAC û mîmarî bi hev re dixebitin. AccelStor Shared-Tiştek dê bibe yek ji baştirîn vebijarkên. Li şûna Oracle RAC, dibe ku nermalava din hebe ku kombûnê, heman DBMS an pergalên virtualîzasyonê peyda dike, mînakî. Prensîba avakirina çareseriyê dê wek xwe bimîne. Û xeta jêrîn ji bo RTO û RPO sifir e.

Source: www.habr.com

Add a comment