Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Idadi kubwa ya programu za Biashara na mifumo ya uboreshaji ina mifumo yao wenyewe ya kuunda suluhisho zinazostahimili makosa. Hasa, Oracle RAC (Oracle Real Application Cluster) ni kundi la seva mbili au zaidi za hifadhidata za Oracle zinazofanya kazi pamoja kusawazisha mzigo na kutoa uvumilivu wa hitilafu katika kiwango cha seva/maombi. Ili kufanya kazi katika hali hii, unahitaji hifadhi ya pamoja, ambayo kwa kawaida ni mfumo wa kuhifadhi.

Kama tulivyokwishajadili katika moja ya yetu makala, mfumo wa hifadhi yenyewe, licha ya kuwepo kwa vipengele vilivyorudiwa (ikiwa ni pamoja na watawala), bado ina pointi za kushindwa - hasa kwa namna ya seti moja ya data. Kwa hivyo, ili kuunda suluhisho la Oracle na mahitaji yaliyoongezeka ya kuegemea, mpango wa "N seva - mfumo mmoja wa uhifadhi" unahitaji kuwa mgumu.

Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Kwanza, bila shaka, tunahitaji kuamua ni hatari gani tunajaribu kujiwekea bima. Katika makala haya, hatutazingatia ulinzi dhidi ya vitisho kama vile “kimondo kimefika.” Kwa hivyo kujenga suluhisho la kufufua maafa iliyotawanywa kijiografia itabaki kuwa mada kwa moja ya makala zifuatazo. Hapa tutaangalia kinachojulikana kama suluhisho la uokoaji wa maafa ya Cross-Rack, wakati ulinzi umejengwa kwa kiwango cha makabati ya seva. Makabati yenyewe yanaweza kuwa katika chumba kimoja au kwa tofauti, lakini kwa kawaida ndani ya jengo moja.

Makabati haya lazima yawe na seti nzima muhimu ya vifaa na programu ambayo itawawezesha uendeshaji wa hifadhidata ya Oracle bila kujali hali ya "jirani". Kwa maneno mengine, kwa kutumia suluhisho la uokoaji wa maafa ya Cross-Rack, tunaondoa hatari za kutofaulu:

  • Seva za Maombi ya Oracle
  • Mifumo ya kuhifadhi
  • Kubadilisha mifumo
  • Kushindwa kabisa kwa vifaa vyote kwenye baraza la mawaziri:
    • Kukataa kwa nguvu
    • Kushindwa kwa mfumo wa kupoeza
    • Mambo ya nje (binadamu, asili, n.k.)

Kurudiwa kwa seva za Oracle kunamaanisha kanuni ya uendeshaji ya Oracle RAC na inatekelezwa kupitia programu. Kurudia kwa vifaa vya kubadili pia sio tatizo. Lakini kwa kurudia mfumo wa uhifadhi, kila kitu sio rahisi sana.

Chaguo rahisi ni urudiaji wa data kutoka kwa mfumo mkuu wa uhifadhi hadi ule wa chelezo. Sawazisha au asynchronous, kulingana na uwezo wa mfumo wa kuhifadhi. Kwa urudufishaji wa asynchronous, swali linatokea mara moja la kuhakikisha uthabiti wa data kuhusiana na Oracle. Lakini hata ikiwa kuna ushirikiano wa programu na programu, kwa hali yoyote, katika tukio la kushindwa kwenye mfumo mkuu wa uhifadhi, uingiliaji wa mwongozo wa wasimamizi utahitajika ili kubadili nguzo kwenye hifadhi ya hifadhi.

Chaguo ngumu zaidi ni programu na / au uhifadhi wa vifaa "virtualizers" ambayo itaondoa matatizo ya uthabiti na uingiliaji wa mwongozo. Lakini ugumu wa kupeleka na utawala unaofuata, pamoja na gharama isiyofaa sana ya ufumbuzi huo, huwatisha wengi.

AccelStor NeoSapphire™ Suluhisho la safu zote za Flash ni kamili kwa hali kama vile uokoaji wa maafa ya Cross-Rack. H710 kwa kutumia usanifu wa Pamoja-Hakuna. Mtindo huu ni mfumo wa uhifadhi wa nodi mbili unaotumia teknolojia ya wamiliki FlexiRemap® kufanya kazi na viendeshi vya flash. Shukrani kwa FlexiRemap® NeoSapphire™ H710 ina uwezo wa kutoa utendakazi hadi 600K IOPS@4K bila mpangilio na kusoma bila mpangilio 1M+ IOPS@4K, ambayo haiwezi kufikiwa unapotumia mifumo ya hifadhi ya msingi ya RAID.

Lakini kipengele kikuu cha NeoSapphire™ H710 ni utekelezaji wa nodi mbili katika mfumo wa kesi tofauti, ambayo kila moja ina nakala yake ya data. Usawazishaji wa nodi unafanywa kupitia kiolesura cha nje cha InfiniBand. Shukrani kwa usanifu huu, inawezekana kusambaza nodes kwa maeneo tofauti kwa umbali wa hadi 100m, na hivyo kutoa suluhisho la kurejesha maafa ya Cross-Rack. Nodi zote mbili hufanya kazi sawasawa. Kutoka upande wa mwenyeji, H710 inaonekana kama mfumo wa kawaida wa uhifadhi wa vidhibiti viwili. Kwa hiyo, hakuna haja ya kufanya programu yoyote ya ziada au chaguzi za vifaa au mipangilio ngumu hasa.

Ikiwa tunalinganisha suluhisho zote za uokoaji wa maafa ya Cross-Rack zilizoelezewa hapo juu, basi chaguo kutoka kwa AccelStor inaonekana wazi kutoka kwa zingine:

AccelStor NeoSapphire™ Haikushiriki Usanifu wowote
Mfumo wa uhifadhi wa programu au maunzi "virtualizer".
Suluhisho la msingi wa kuiga

Upatikanaji

Kushindwa kwa seva
Hakuna Wakati wa Mapumziko
Hakuna Wakati wa Mapumziko
Hakuna Wakati wa Mapumziko

Kushindwa kwa kubadili
Hakuna Wakati wa Mapumziko
Hakuna Wakati wa Mapumziko
Hakuna Wakati wa Mapumziko

Kushindwa kwa mfumo wa uhifadhi
Hakuna Wakati wa Mapumziko
Hakuna Wakati wa Mapumziko
Downtime

Kushindwa kabisa kwa baraza la mawaziri
Hakuna Wakati wa Mapumziko
Hakuna Wakati wa Mapumziko
Downtime

Gharama na utata

Gharama ya suluhisho
Chini*
High
High

Utata wa upelekaji
Chini
High
High

*AccelStor NeoSapphire™ bado ni safu ya All Flash, ambayo kwa ufafanuzi haigharimu "kopeki 3," haswa kwa kuwa ina hifadhi ya uwezo maradufu. Hata hivyo, wakati wa kulinganisha gharama ya mwisho ya suluhisho kulingana na hayo na sawa kutoka kwa wauzaji wengine, gharama inaweza kuchukuliwa kuwa ya chini.

Topolojia ya kuunganisha seva za programu na nodi zote za safu ya Flash itaonekana kama hii:

Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Wakati wa kupanga topolojia, pia inashauriwa sana kurudia swichi za usimamizi na kuunganisha seva.

Hapa na zaidi tutazungumza juu ya kuunganisha kupitia Fiber Channel. Ikiwa unatumia iSCSI, kila kitu kitakuwa sawa, kurekebishwa kwa aina za swichi zinazotumiwa na mipangilio ya safu tofauti kidogo.

Kazi ya maandalizi kwenye safu

Vifaa na programu zinazotumiwa

Vipimo vya Seva na Badilisha

Vipengele
Description

Oracle Database 11g seva
Mbili

Mfumo wa uendeshaji wa seva
Oracle Linux

Toleo la hifadhidata ya Oracle
11g (RAC)

Wachakataji kwa kila seva
Cores mbili 16 Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz

Kumbukumbu ya kimwili kwa seva
128GB

Mtandao wa FC
16Gb/s FC yenye njia nyingi

FC HBA
Emulex Lpe-16002B

Bandari maalum za 1GbE za umma kwa usimamizi wa nguzo
Adapta ya ethaneti ya Intel RJ45

16Gb/s kubadili FC
6505

Lango maalum za kibinafsi za 10GbE kwa ulandanishi wa data
Intel X520

Uainisho wa Mkusanyiko Wote wa Kiwango cha AccelStor NeoSapphire

Vipengele
Description

Mfumo wa kuhifadhi
Muundo wa upatikanaji wa juu wa NeoSapphire™: H710

Toleo la picha
4.0.1

Jumla ya idadi ya viendeshi
48

Ukubwa wa Hifadhi
1.92TB

Aina ya Hifadhi
SSD

Bandari zinazolengwa na FC
16x 16Gb bandari (8 kwa nodi)

Bandari za usimamizi
Kebo ya ethaneti ya 1GbE inayounganisha kwa seva pangishi kupitia swichi ya ethaneti

Bandari ya mapigo ya moyo
Kebo ya ethaneti ya 1GbE inayounganisha kati ya nodi mbili za hifadhi

Mlango wa kusawazisha data
Kebo ya 56Gb/s ya InfiniBand

Kabla ya kutumia safu, lazima uanzishe. Kwa default, anwani ya udhibiti wa nodes zote mbili ni sawa (192.168.1.1). Unahitaji kuunganisha kwao moja kwa moja na kuweka anwani mpya za usimamizi (tayari tofauti) na kuanzisha maingiliano ya wakati, baada ya hapo bandari za Usimamizi zinaweza kushikamana na mtandao mmoja. Baadaye, nodi zinaunganishwa kuwa jozi ya HA kwa kugawa subnets kwa viunganishi vya Interlink.

Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Baada ya uanzishaji kukamilika, unaweza kudhibiti safu kutoka kwa nodi yoyote.

Ifuatayo, tunaunda kiasi kinachohitajika na kuzichapisha kwa seva za programu.

Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Inapendekezwa sana kuunda juzuu nyingi za Oracle ASM kwani hii itaongeza idadi ya malengo ya seva, ambayo hatimaye itaboresha utendakazi wa jumla (zaidi kwenye foleni katika nyingine. Ibara ya).

Usanidi wa jaribio

Jina la Kiasi cha Hifadhi
Saizi ya Kiasi

Takwimu01
200GB

Takwimu02
200GB

Takwimu03
200GB

Takwimu04
200GB

Takwimu05
200GB

Takwimu06
200GB

Takwimu07
200GB

Takwimu08
200GB

Takwimu09
200GB

Takwimu10
200GB

Grid01
1GB

Grid02
1GB

Grid03
1GB

Grid04
1GB

Grid05
1GB

Grid06
1GB

Rudia 01
100GB

Rudia 02
100GB

Rudia 03
100GB

Rudia 04
100GB

Rudia 05
100GB

Rudia 06
100GB

Rudia 07
100GB

Rudia 08
100GB

Rudia 09
100GB

Rudia 10
100GB

Baadhi ya maelezo kuhusu njia za uendeshaji za safu na taratibu zinazotokea katika hali za dharura

Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Seti ya data ya kila nodi ina kigezo cha "nambari ya toleo". Baada ya uanzishwaji wa awali, ni sawa na sawa na 1. Ikiwa kwa sababu fulani nambari ya toleo ni tofauti, basi data daima inasawazishwa kutoka kwa toleo la zamani hadi la mdogo, baada ya hapo idadi ya toleo ndogo inalingana, i.e. hii ina maana kwamba nakala zinafanana. Sababu kwa nini matoleo yanaweza kuwa tofauti:

  • Kuanzisha upya kwa moja ya nodi zilizopangwa
  • Ajali kwenye moja ya nodes kutokana na kuzima ghafla (ugavi wa umeme, overheating, nk).
  • Muunganisho wa InfiniBand umepotea na kutoweza kusawazisha
  • Kuacha kufanya kazi kwenye mojawapo ya nodi kutokana na uharibifu wa data. Hapa utahitaji kuunda kikundi kipya cha HA na ulandanishi kamili wa seti ya data.

Kwa hali yoyote, nodi iliyobaki mtandaoni huongeza nambari ya toleo lake kwa moja ili kusawazisha data iliyowekwa baada ya uunganisho na jozi kurejeshwa.

Ikiwa muunganisho kwenye kiungo cha Ethaneti utapotea, Mapigo ya Moyo hubadilika kwa muda hadi InfiniBand na kurudi ndani ya sekunde 10 inaporejeshwa.

Kuweka wapangishi

Ili kuhakikisha uvumilivu wa makosa na kuboresha utendakazi, lazima uwashe usaidizi wa MPIO kwa safu. Ili kufanya hivyo, unahitaji kuongeza mistari kwenye faili /etc/multipath.conf, na kisha uanze upya huduma ya njia nyingi.

Maandishi yaliyofichwavifaa {
kifaa {
muuzaji "Astor"
path_grouping_sera "group_by_prio"
kichagua njia "urefu wa foleni 0"
path_checker "tur"
vipengele "0"
kidhibiti_kifaa "0"
awali "const"
kushindwa mara moja
haraka_io_fail_tmo 5
dev_loss_tmo 60
user_friendly_majina ndiyo
gundua_prio ndio
rr_min_io_rq 1
hakuna_njia_jaribu tena 0
}
}

Ifuatayo, ili ASM ifanye kazi na MPIO kupitia ASMLib, unahitaji kubadilisha /etc/sysconfig/oracleasm faili na kisha kukimbia /etc/init.d/oracleasm scandisks

Maandishi yaliyofichwa

# ORACLEASM_SCANORDER: Miundo inayolingana ili kuagiza uchanganuzi wa diski
ORACLEASM_SCANORDER="dm"

# ORACLEASM_SCANEXCLUDE: Miundo inayolingana ili kutenga diski kutoka kwa kuchanganua
ORACLEASM_SCANEXCLUDE="sd"

Kumbuka

Ikiwa hutaki kutumia ASMLib, unaweza kutumia sheria za UDEV, ambazo ndizo msingi wa ASMLib.

Kuanzia toleo la 12.1.0.2 la Hifadhidata ya Oracle, chaguo linapatikana kwa usakinishaji kama sehemu ya programu ya ASMFD.

Ni muhimu kuhakikisha kuwa diski zilizoundwa kwa Oracle ASM zimelandanishwa na saizi ya kizuizi ambayo safu hufanya kazi nayo kimwili (4K). Vinginevyo, matatizo ya utendaji yanaweza kutokea. Kwa hivyo, ni muhimu kuunda kiasi na vigezo vinavyofaa:

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

Usambazaji wa hifadhidata kwa wingi iliyoundwa kwa ajili ya usanidi wetu wa majaribio

Jina la Kiasi cha Hifadhi
Saizi ya Kiasi
Upangaji wa ramani za LUN za kiasi
Maelezo ya Kifaa cha Kiasi cha ASM
Ukubwa wa Kitengo cha Mgao

Takwimu01
200GB
Weka idadi yote ya hifadhi kwenye mfumo wa hifadhi bandari zote za data
Upungufu: Kawaida
Jina: DGDATA
Kusudi: Faili za data

4MB

Takwimu02
200GB

Takwimu03
200GB

Takwimu04
200GB

Takwimu05
200GB

Takwimu06
200GB

Takwimu07
200GB

Takwimu08
200GB

Takwimu09
200GB

Takwimu10
200GB

Grid01
1GB
Upungufu: Kawaida
Jina: DGGRID1
Kusudi:Gridi: CRS na Upigaji Kura

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Upungufu: Kawaida
Jina: DGGRID2
Kusudi:Gridi: CRS na Upigaji Kura

4MB

Grid05
1GB

Grid06
1GB

Rudia 01
100GB
Upungufu: Kawaida
Jina: DGREDO1
Kusudi: Rudia logi ya nyuzi 1

4MB

Rudia 02
100GB

Rudia 03
100GB

Rudia 04
100GB

Rudia 05
100GB

Rudia 06
100GB
Upungufu: Kawaida
Jina: DGREDO2
Kusudi: Rudia logi ya nyuzi 2

4MB

Rudia 07
100GB

Rudia 08
100GB

Rudia 09
100GB

Rudia 10
100GB

Mipangilio ya Hifadhidata

  • Ukubwa wa kuzuia = 8K
  • Badilisha nafasi = 16GB
  • Zima AMM (Usimamizi wa Kumbukumbu otomatiki)
  • Zima Kurasa Kubwa zenye Uwazi

Mipangilio mingine

# 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 # usiweke hii ikiwa unatumia Linux x86
✓ vm.vfs_cache_pressure=200
✓ vm.nr_hugepages = 57000

# vi /etc/security/limits.conf
✓ gridi laini nproc 2047
✓ gridi ngumu nproc 16384
✓ nofile laini ya gridi 1024
✓ nofile ngumu ya gridi 65536
✓ safu laini ya gridi 10240
✓ safu ngumu ya gridi 32768
✓ oracle laini nproc 2047
✓ oracle ngumu nproc 16384
✓ oracle laini nofile 1024
✓ oracle nofile ngumu 65536
✓ safu laini ya chumba 10240
✓ safu ngumu ya oracle 32768
✓ Memlock laini 120795954
✓ kumbukumbu ngumu 120795954

sqlplus "/kama sysdba"
badilisha michakato ya kuweka mfumo=2000 scope=spfile;
badilisha mfumo seti open_cursors=2000 scope=spfile;
badilisha seti ya mfumo session_cached_cursors=300 scope=spfile;
badilisha seti ya mfumo db_files=8192 scope=spfile;

Mtihani wa kushindwa

Kwa madhumuni ya onyesho, HammerDB ilitumiwa kuiga mzigo wa OLTP. Mpangilio wa HammerDB:

Idadi ya Maghala
256

Jumla ya Miamala kwa kila Mtumiaji
1000000000000

Watumiaji Mtandaoni
256

Matokeo yake yalikuwa 2.1M TPM, ambayo ni mbali na kikomo cha utendakazi cha safu H710, lakini ni "dari" kwa usanidi wa vifaa vya sasa vya seva (haswa kutokana na wasindikaji) na idadi yao. Madhumuni ya mtihani huu bado ni kuonyesha uvumilivu wa makosa ya suluhisho kwa ujumla, na sio kufikia utendaji wa juu. Kwa hiyo, tutajenga tu juu ya takwimu hii.

Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Mtihani wa kushindwa kwa nodi moja

Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Majeshi yalipoteza sehemu ya njia za kuhifadhi, kuendelea kufanya kazi kwa njia iliyobaki na node ya pili. Utendaji ulipungua kwa sekunde chache kutokana na njia zilizojengwa upya, na kisha kurudishwa katika hali ya kawaida. Hakukuwa na usumbufu katika huduma.

Mtihani wa kushindwa kwa baraza la mawaziri na vifaa vyote

Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Kuunda suluhisho la kuhimili makosa kulingana na Oracle RAC na usanifu wa AccelStor Shared-Nothing

Katika kesi hii, utendaji pia ulishuka kwa sekunde chache kutokana na urekebishaji wa njia, na kisha kurudi kwa nusu ya thamani ya awali. Matokeo yalipunguzwa kwa nusu kutoka kwa ile ya awali kwa sababu ya kutengwa kwa seva moja ya programu kufanya kazi. Hakukuwa na usumbufu katika huduma pia.

Iwapo kuna haja ya kutekeleza suluhisho la uokoaji wa maafa la Cross-Rack kwa Oracle kwa gharama inayokubalika na kwa juhudi kidogo ya kupeleka/kusimamia, basi Oracle RAC na usanifu hufanya kazi pamoja. AccelStor Ilishirikiwa-Hakuna itakuwa moja ya chaguo bora. Badala ya Oracle RAC, kunaweza kuwa na programu nyingine yoyote ambayo hutoa nguzo, DBMS sawa au mifumo ya virtualization, kwa mfano. Kanuni ya kujenga suluhisho itabaki sawa. Na msingi ni sifuri kwa RTO na RPO.

Chanzo: mapenzi.com

Kuongeza maoni