ProHoster > Blog > Pangangasiwa > Bumuo ng fault-tolerant na solusyon batay sa Oracle RAC at AccelStor Shared-Nothing architecture
Bumuo ng fault-tolerant na solusyon batay sa Oracle RAC at AccelStor Shared-Nothing architecture
Ang isang malaking bilang ng mga Enterprise application at virtualization system ay may sariling mga mekanismo para sa pagbuo ng fault-tolerant na solusyon. Sa partikular, ang Oracle RAC (Oracle Real Application Cluster) ay isang kumpol ng dalawa o higit pang Oracle database server na nagtutulungan upang balansehin ang pagkarga at magbigay ng fault tolerance sa antas ng server/application. Upang gumana sa mode na ito, kailangan mo ng nakabahaging storage, na karaniwang isang storage system.
Gaya ng napag-usapan na natin sa isa sa atin Artikulo, ang sistema ng imbakan mismo, sa kabila ng pagkakaroon ng mga dobleng bahagi (kabilang ang mga controller), mayroon pa ring mga punto ng pagkabigo - pangunahin sa anyo ng isang solong hanay ng data. Samakatuwid, upang makabuo ng isang solusyon sa Oracle na may mas mataas na mga kinakailangan sa pagiging maaasahan, ang scheme ng "N server - isang sistema ng imbakan" ay kailangang kumplikado.
Una, siyempre, kailangan nating magpasya kung anong mga panganib ang sinusubukan nating i-insure laban. Sa artikulong ito, hindi natin isasaalang-alang ang proteksyon laban sa mga banta gaya ng “may dumating na meteorite.” Kaya't ang pagbuo ng isang geographically dispersed disaster recovery solution ay mananatiling paksa para sa isa sa mga sumusunod na artikulo. Dito ay titingnan natin ang tinatawag na Cross-Rack disaster recovery solution, kapag ang proteksyon ay binuo sa antas ng mga cabinet ng server. Ang mga cabinet mismo ay maaaring matatagpuan sa parehong silid o sa iba't ibang mga, ngunit kadalasan sa loob ng parehong gusali.
Ang mga cabinet na ito ay dapat maglaman ng buong kinakailangang hanay ng kagamitan at software na magpapahintulot sa pagpapatakbo ng mga database ng Oracle anuman ang estado ng "kapitbahay". Sa madaling salita, gamit ang Cross-Rack disaster recovery solution, inaalis namin ang mga panganib ng pagkabigo:
Mga Server ng Oracle Application
Mga sistema ng imbakan
Mga switching system
Kumpletong kabiguan ng lahat ng kagamitan sa cabinet:
Pagtanggi sa kapangyarihan
Pagkabigo ng sistema ng paglamig
Mga panlabas na kadahilanan (tao, kalikasan, atbp.)
Ang pagdoble ng mga server ng Oracle ay nagpapahiwatig ng mismong prinsipyo ng pagpapatakbo ng Oracle RAC at ipinapatupad sa pamamagitan ng isang application. Hindi rin problema ang pagdoble ng mga switching facility. Ngunit sa pagdoble ng sistema ng imbakan, ang lahat ay hindi gaanong simple.
Ang pinakasimpleng opsyon ay ang pagtitiklop ng data mula sa pangunahing sistema ng imbakan hanggang sa backup. Synchronous o asynchronous, depende sa mga kakayahan ng storage system. Sa asynchronous na pagtitiklop, ang tanong ay agad na bumangon sa pagtiyak ng pagkakapare-pareho ng data na may kaugnayan sa Oracle. Ngunit kahit na mayroong pagsasama ng software sa application, sa anumang kaso, sa kaganapan ng isang pagkabigo sa pangunahing sistema ng imbakan, ang manu-manong interbensyon ng mga administrator ay kinakailangan upang mailipat ang kumpol sa backup na imbakan.
Ang isang mas kumplikadong opsyon ay ang software at/o hardware storage na "mga virtualizer" na mag-aalis ng mga problema sa pare-pareho at manu-manong interbensyon. Ngunit ang pagiging kumplikado ng deployment at kasunod na pangangasiwa, pati na rin ang napakababastos na halaga ng naturang mga solusyon, ay nakakatakot sa marami.
Ang AccelStor NeoSapphire™ All Flash array solution ay perpekto para sa mga sitwasyon tulad ng Cross-Rack disaster recovery H710 gamit ang Shared-Nothing architecture. Ang modelong ito ay isang two-node storage system na gumagamit ng proprietary FlexiRemap® na teknolohiya upang gumana sa mga flash drive. Salamat kay FlexiRemap® Ang NeoSapphire™ H710 ay may kakayahang maghatid ng performance hanggang sa 600K IOPS@4K na random na pagsulat at 1M+ IOPS@4K na random na pagbabasa, na hindi matamo kapag gumagamit ng mga klasikong RAID-based na storage system.
Ngunit ang pangunahing tampok ng NeoSapphire™ H710 ay ang pagpapatupad ng dalawang node sa anyo ng magkahiwalay na mga kaso, bawat isa ay may sariling kopya ng data. Ang pag-synchronize ng mga node ay isinasagawa sa pamamagitan ng panlabas na interface ng InfiniBand. Salamat sa arkitektura na ito, posibleng ipamahagi ang mga node sa iba't ibang lokasyon sa layo na hanggang 100m, sa gayon ay nagbibigay ng Cross-Rack disaster recovery solution. Ang parehong mga node ay ganap na gumagana nang sabay-sabay. Mula sa panig ng host, ang H710 ay mukhang isang ordinaryong dual-controller storage system. Samakatuwid, hindi na kailangang magsagawa ng anumang karagdagang mga opsyon sa software o hardware o partikular na kumplikadong mga setting.
Kung ihahambing natin ang lahat ng Cross-Rack na solusyon sa pagbawi ng kalamidad na inilarawan sa itaas, kung gayon ang opsyon mula sa AccelStor ay kapansin-pansin mula sa iba:
Walang Ibinahagi na Arkitektura ang AccelStor NeoSapphire™
Sistema ng imbakan ng software o hardware na "virtualizer".
Replikasyon batay sa solusyon
Kakayahang magamit
Nabigo ang server Walang Downtime Walang Downtime Walang Downtime
Pagkabigo ng switch Walang Downtime Walang Downtime Walang Downtime
Pagkabigo ng sistema ng imbakan Walang Downtime Walang Downtime Paghinto
Buong cabinet failure Walang Downtime Walang Downtime Paghinto
Gastos at pagiging kumplikado
Gastos ng solusyon
mababa*
Mataas
Mataas
Pagiging kumplikado ng deployment
Mababang
Mataas
Mataas
*Ang AccelStor NeoSapphire™ ay isang All Flash array pa rin, na ayon sa kahulugan ay hindi nagkakahalaga ng “3 kopecks,” lalo na dahil mayroon itong double capacity na reserba. Gayunpaman, kapag inihambing ang panghuling halaga ng isang solusyon batay dito sa mga katulad na mula sa iba pang mga vendor, ang gastos ay maaaring ituring na mababa.
Ang topology para sa pagkonekta ng mga server ng application at Lahat ng Flash array node ay magiging ganito:
Kapag nagpaplano ng topology, lubos ding inirerekomenda na i-duplicate ang mga switch ng pamamahala at mga interconnect na server.
Dito at higit pa ay pag-uusapan natin ang tungkol sa pagkonekta sa pamamagitan ng Fiber Channel. Kung gagamit ka ng iSCSI, magiging pareho ang lahat, isasaayos para sa mga uri ng switch na ginamit at bahagyang magkakaibang mga setting ng array.
Paghahanda sa hanay
Kagamitan at software na ginamit
Mga Detalye ng Server at Switch
Piraso
Описание
Oracle Database 11g server
Dalawa
Operating system ng server
Oracle Linux
Bersyon ng database ng Oracle
11g (RAC)
Mga processor bawat server
Dalawang 16 core Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz
Pisikal na memorya bawat server
128GB
FC network
16Gb/s FC na may multipathing
FC HBA
Emulex Lpe-16002B
Nakatuon sa pampublikong 1GbE port para sa pamamahala ng kumpol
Intel ethernet adapter RJ45
16Gb/s FC switch
Brocade 6505
Nakalaang pribadong 10GbE port para sa pag-synchonize ng data
Intel X520
AccelStor NeoSapphire™ Lahat ng Detalye ng Flash Array
Piraso
Описание
Sistema ng imbakan
NeoSapphire™ high availability model: H710
Bersyon ng larawan
4.0.1
Kabuuang bilang ng mga drive
48
Laki ng drive
1.92TB
Uri ng drive
SSD
Mga target na port ng FC
16x 16Gb port (8 bawat node)
Mga port ng pamamahala
Ang 1GbE ethernet cable na kumukonekta sa mga host sa pamamagitan ng ethernet switch
Port ng tibok ng puso
Ang 1GbE ethernet cable na kumukonekta sa pagitan ng dalawang storage node
Port ng pag-synchronize ng data
56Gb/s InfiniBand cable
Bago ka makagamit ng array, dapat mo itong simulan. Bilang default, ang control address ng parehong mga node ay pareho (192.168.1.1). Kailangan mong kumonekta sa kanila nang paisa-isa at magtakda ng mga bagong (naiiba na) mga address ng pamamahala at mag-set up ng pag-synchronize ng oras, pagkatapos nito ay maaaring ikonekta ang mga port ng Pamamahala sa isang network. Pagkatapos, ang mga node ay pinagsama sa isang pares ng HA sa pamamagitan ng pagtatalaga ng mga subnet para sa mga koneksyon sa Interlink.
Pagkatapos makumpleto ang pagsisimula, maaari mong pamahalaan ang array mula sa anumang node.
Susunod, gumawa kami ng mga kinakailangang volume at i-publish ang mga ito sa mga server ng application.
Lubos na inirerekomenda na lumikha ng maraming volume para sa Oracle ASM dahil madadagdagan nito ang bilang ng mga target para sa mga server, na sa huli ay mapapabuti ang pangkalahatang pagganap (higit pa sa mga pila sa iba Artikulo).
Pagsubok ng configuration
Pangalan ng Dami ng Imbakan
Laki ng Dami
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
Gawin muli01
100GB
Gawin muli02
100GB
Gawin muli03
100GB
Gawin muli04
100GB
Gawin muli05
100GB
Gawin muli06
100GB
Gawin muli07
100GB
Gawin muli08
100GB
Gawin muli09
100GB
Gawin muli10
100GB
Ilang paliwanag tungkol sa mga operating mode ng array at ang mga prosesong nagaganap sa mga emergency na sitwasyon
Ang set ng data ng bawat node ay may parameter na "numero ng bersyon". Pagkatapos ng paunang pagsisimula, ito ay pareho at katumbas ng 1. Kung sa ilang kadahilanan ay iba ang numero ng bersyon, kung gayon ang data ay palaging naka-synchronize mula sa mas lumang bersyon hanggang sa mas bata, pagkatapos kung saan ang bilang ng mas batang bersyon ay nakahanay, i.e. nangangahulugan ito na ang mga kopya ay magkapareho. Mga dahilan kung bakit maaaring magkaiba ang mga bersyon:
Naka-iskedyul na pag-reboot ng isa sa mga node
Isang aksidente sa isa sa mga node dahil sa biglaang pagsara (supply ng kuryente, sobrang init, atbp.).
Nawala ang koneksyon ng InfiniBand na may kawalan ng kakayahang mag-synchronize
Isang pag-crash sa isa sa mga node dahil sa data corruption. Dito kakailanganin mong lumikha ng bagong pangkat ng HA at kumpletuhin ang pag-synchronize ng set ng data.
Sa anumang kaso, ang node na nananatiling online ay tataas ang numero ng bersyon nito ng isa upang ma-synchronize ang set ng data nito pagkatapos maibalik ang koneksyon sa pares.
Kung nawala ang koneksyon sa Ethernet link, pansamantalang lilipat ang Heartbeat sa InfiniBand at babalik ito sa loob ng 10 segundo kapag naibalik ito.
Pagse-set up ng mga host
Para matiyak ang fault tolerance at pagbutihin ang performance, dapat mong paganahin ang suporta ng MPIO para sa array. Upang gawin ito, kailangan mong magdagdag ng mga linya sa /etc/multipath.conf file, at pagkatapos ay i-restart ang multipath na serbisyo
Susunod, para gumana ang ASM sa MPIO sa pamamagitan ng ASMLib, kailangan mong baguhin ang /etc/sysconfig/oracleasm file at pagkatapos ay patakbuhin ang /etc/init.d/oracleasm scandisks
Nakatagong teksto
# ORACLEASM_SCANORDER: Pagtutugma ng mga pattern upang mag-order ng disk scan
ORACLEASM_SCANORDER="dm"
# ORACLEASM_SCANEXCLUDE: Pagtutugma ng mga pattern upang ibukod ang mga disk mula sa pag-scan
ORACLEASM_SCANEXCLUDE="sd"
Nota
Kung ayaw mong gumamit ng ASMLib, maaari mong gamitin ang mga panuntunan ng UDEV, na siyang batayan para sa ASMLib.
Simula sa bersyon 12.1.0.2 ng Oracle Database, ang opsyon ay magagamit para sa pag-install bilang bahagi ng ASMFD software.
Kinakailangang tiyakin na ang mga disk na ginawa para sa Oracle ASM ay nakahanay sa laki ng bloke na pisikal na gumagana ng array (4K). Kung hindi, maaaring mangyari ang mga problema sa pagganap. Samakatuwid, kinakailangan upang lumikha ng mga volume na may naaangkop na mga parameter:
sqlplus “/as sysdba”
baguhin ang mga proseso ng set ng system=2000 saklaw=spfile;
baguhin ang set ng system open_cursors=2000 saklaw=spfile;
baguhin ang set ng system session_cached_cursors=300 saklaw=spfile;
baguhin ang set ng system db_files=8192 saklaw=spfile;
Pagsubok sa pagkabigo
Para sa mga layunin ng pagpapakita, ginamit ang HammerDB upang tularan ang isang OLTP load. Configuration ng HammerDB:
Bilang ng mga Warehouse
256
Kabuuang Mga Transaksyon bawat User
1000000000000
Mga Virtual na Gumagamit
256
Ang resulta ay isang 2.1M TPM, na malayo sa limitasyon ng pagganap ng array H710, ngunit ito ay isang "ceiling" para sa kasalukuyang configuration ng hardware ng mga server (pangunahin dahil sa mga processor) at ang kanilang numero. Ang layunin ng pagsubok na ito ay upang ipakita ang fault tolerance ng solusyon sa kabuuan, at hindi upang makamit ang pinakamataas na pagganap. Samakatuwid, bubuo lang kami sa figure na ito.
Subukan para sa pagkabigo ng isa sa mga node
Nawala ng mga host ang bahagi ng mga landas patungo sa imbakan, na patuloy na nagtatrabaho sa mga natitira gamit ang pangalawang node. Bumaba ang performance sa loob ng ilang segundo dahil sa muling itinayong mga landas, at pagkatapos ay bumalik sa normal. Walang pagkaantala sa serbisyo.
Pagsubok sa pagkabigo ng gabinete sa lahat ng kagamitan
Sa kasong ito, bumaba rin ang pagganap sa loob ng ilang segundo dahil sa muling pagsasaayos ng mga landas, at pagkatapos ay bumalik sa kalahati ng orihinal na halaga. Ang resulta ay nahati mula sa una dahil sa pagbubukod ng isang server ng application mula sa operasyon. Wala ring naantala sa serbisyo.
Kung may pangangailangan na ipatupad ang isang fault-tolerant Cross-Rack disaster recovery solution para sa Oracle sa isang makatwirang halaga at may kaunting pagsisikap sa pag-deploy/administrasyon, ang Oracle RAC at ang arkitektura ay nagtutulungan AccelStor Shared-Wala ay magiging isa sa mga pinakamahusay na pagpipilian. Sa halip na Oracle RAC, maaaring mayroong anumang iba pang software na nagbibigay ng clustering, ang parehong DBMS o virtualization system, halimbawa. Ang prinsipyo ng pagbuo ng solusyon ay mananatiling pareho. At ang ilalim na linya ay zero para sa RTO at RPO.