Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Sajumlah ageung aplikasi Enterprise sareng sistem virtualisasi gaduh mékanisme sorangan pikeun ngawangun solusi anu teu toleran. Khususna, Oracle RAC (Oracle Real Application Cluster) mangrupikeun gugusan dua atanapi langkung server database Oracle anu damel babarengan pikeun nyaimbangkeun beban sareng nyayogikeun kasabaran kasalahan dina tingkat server / aplikasi. Pikeun damel dina modeu ieu, anjeun peryogi panyimpenan anu dibagi, anu biasana mangrupikeun sistem panyimpen.

Salaku urang geus dibahas dina salah sahiji urang artikel, Sistim gudang sorangan, sanajan ayana komponén duplikat (kaasup controller), masih boga titik gagal - utamana dina bentuk hiji set data. Ku alatan éta, pikeun ngawangun solusi Oracle kalayan syarat reliabilitas anu ningkat, skéma "N server - hiji sistem panyimpen" kedah rumit.

Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Mimiti, tangtosna, urang kedah mutuskeun naon résiko anu urang badé nanggungkeun asuransi. Dina artikel ieu, urang moal nganggap panyalindungan ngalawan ancaman sapertos "meteorit parantos sumping". Janten ngawangun solusi pamulihan bencana anu sumebar sacara geografis bakal tetep janten topik pikeun salah sahiji tulisan di handap ieu. Di dieu urang baris nempo nu disebut Cross-rak solusi recovery musibah, nalika panyalindungan diwangun dina tingkat cabinets server. Kabinét sorangan tiasa ditempatkeun di kamar anu sami atanapi di kamar anu béda, tapi biasana dina wangunan anu sami.

cabinets ieu kudu ngandung sakabéh set diperlukeun pakakas sarta software anu bakal ngidinan operasi database Oracle paduli kaayaan "tatangga". Kalayan kecap sanésna, nganggo solusi pamulihan bencana Cross-Rack, urang ngaleungitkeun résiko gagal:

  • Server Aplikasi Oracle
  • Sistem gudang
  • Sistem switching
  • Gagal lengkep sadaya alat dina kabinet:
    • Panolakan kakuatan
    • Gagalna sistem cooling
    • Faktor éksternal (manusa, alam, jsb)

Duplikasi server Oracle nunjukkeun prinsip operasi Oracle RAC sareng dilaksanakeun ngaliwatan aplikasi. Duplikasi fasilitas switching ogé henteu masalah. Tapi kalayan duplikasi sistem panyimpen, sadayana henteu saderhana.

Pilihan pangbasajanna nyaéta réplikasi data tina sistem panyimpen utama ka cadangan. Sinkron atanapi asinkron, gumantung kana kamampuan sistem panyimpenan. Kalayan réplikasi asynchronous, patarosan langsung timbul pikeun mastikeun konsistensi data dina hubungan Oracle. Tapi sanajan aya integrasi software jeung aplikasi, dina sagala hal, lamun aya kagagalan dina sistem gudang utama, intervénsi manual ku pangurus bakal diperlukeun pikeun pindah klaster kana gudang cadangan.

Pilihan anu langkung kompleks nyaéta parangkat lunak sareng / atanapi panyimpen hardware "virtualizers" anu bakal ngaleungitkeun masalah konsistensi sareng campur tangan manual. Tapi pajeulitna panyebaran sareng administrasi salajengna, kitu ogé biaya anu teu sopan pikeun solusi sapertos kitu, nyingsieunan seueur.

Solusi array AccelStor NeoSapphire™ All Flash sampurna pikeun skenario sapertos pamulihan bencana Cross-Rack. H710 ngagunakeun arsitéktur Shared-Euweuh. Modél ieu mangrupikeun sistem panyimpen dua titik anu ngagunakeun téknologi FlexiRemap® proprietary pikeun damel sareng flash drive. Hatur nuhun ka FlexiRemap® NeoSapphire™ H710 sanggup nganteurkeun kinerja nepi ka 600K IOPS@4K random write jeung 1M+ IOPS@4K random read, nu teu bisa kahontal lamun ngagunakeun sistem panyimpenan basis RAID klasik.

Tapi fitur utama NeoSapphire™ H710 nyaéta palaksanaan dua titik dina bentuk kasus anu misah, anu masing-masing gaduh salinan data sorangan. Sinkronisasi titik dilumangsungkeun ngaliwatan panganteur InfiniBand éksternal. Hatur nuhun kana arsitektur ieu, kasebut nyaéta dimungkinkeun pikeun ngadistribusikaeun titik ka lokasi béda dina jarak nepi ka 100m, kukituna nyadiakeun solusi recovery musibah Cross-Rack. Duanana titik beroperasi lengkep sinkron. Ti sisi host, H710 Sigana mah sistem gudang dual-controller biasa. Ku alatan éta, teu perlu ngalakukeun sagala software tambahan atawa pilihan hardware atawa setelan utamana kompléks.

Upami urang ngabandingkeun sadaya solusi pamulihan bencana Cross-Rack anu ditétélakeun di luhur, maka pilihan tina AccelStor katingalina katingali tina anu sanés:

AccelStor NeoSapphire™ Dibagi Euweuh Arsitéktur
Parangkat lunak atanapi hardware "virtualizer" sistem panyimpen
Solusi dumasar réplikasi

kasadiaan

Gagalna server
Henteu Downtime
Henteu Downtime
Henteu Downtime

Gagalna switch
Henteu Downtime
Henteu Downtime
Henteu Downtime

Gagalna sistem gudang
Henteu Downtime
Henteu Downtime
downtime

Kasalahan kabinét sadayana
Henteu Downtime
Henteu Downtime
downtime

Biaya jeung pajeulitna

Biaya solusi
Rendah*
Высокая
Высокая

Pajeulitna panyebaran
saeutik
Высокая
Высокая

*AccelStor NeoSapphire™ masih mangrupa Asép Sunandar Sunarya Sadaya Flash, nu ku harti teu hargana "3 kopecks," utamana sabab boga cadangan kapasitas ganda. Nanging, nalika ngabandingkeun biaya ahir solusi dumasar kana éta sareng anu sami ti padagang sanés, biayana tiasa dianggap rendah.

Topologi pikeun nyambungkeun pangladén aplikasi sareng Sadaya titik Asép Sunandar Sunarya Flash bakal siga kieu:

Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Nalika ngarencanakeun topologi, éta ogé disarankeun pikeun duplikat saklar manajemén sareng server interkonéksi.

Di dieu sarta salajengna urang bakal ngobrol ngeunaan nyambungkeun via Fiber Channel. Lamun make iSCSI, sagalana bakal sarua, disaluyukeun pikeun jenis saklar dipaké sarta setélan Asép Sunandar Sunarya rada béda.

Karya préparasi dina Asép Sunandar Sunarya

Parabot sareng parangkat lunak anu dianggo

Server sareng Spésifikasi Switch

komponén
gambaran

Oracle Database 11g server
dua

Sistem operasi server
oracle linux

Vérsi database Oracle
11 g (RAC)

Prosesor per server
Dua 16 inti Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz

mémori fisik per server
128GB

Jaringan FC
16Gb/s FC kalawan multipathing

FC HBA
Emulex Lpe-16002B

Dedicated palabuhan 1GbE publik pikeun manajemén klaster
Intel Ethernet adaptor RJ45

16Gb/s FC switch
Brocade 6505

Port 10GbE swasta khusus pikeun sinkonisasi data
Intel X520

AccelStor NeoSapphire™ Sadaya Spésifikasi Array Flash

komponén
gambaran

Sistem panyimpenan
NeoSapphire™ modél kasadiaan luhur: H710

Vérsi gambar
4.0.1

Jumlah total drive
48

Ukuran drive
1.92TB

tipe Girang
SSD

palabuhan sasaran FC
16x 16Gb port (8 per node)

palabuhan manajemén
Kabel Ethernet 1GbE nyambungkeun ka host via switch Ethernet

port keteg jajantung
Kabel Ethernet 1GbE ngahubungkeun antara dua titik panyimpen

port sinkronisasi data
56Gb/s kabel InfiniBand

Sateuacan anjeun tiasa nganggo array, anjeun kedah ngamimitian. Sacara standar, alamat kontrol duanana titik sarua (192.168.1.1). Anjeun kudu nyambungkeun ka aranjeunna hiji-hiji tur nyetel anyar (geus béda) alamat manajemén jeung nyetél sinkronisasi waktos, nu satutasna palabuhan Manajemén bisa disambungkeun ka jaringan tunggal. Saatos éta, titik-titik digabungkeun kana pasangan HA ku netepkeun subnet pikeun sambungan Interlink.

Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Saatos initialization réngsé, anjeun tiasa ngatur Asép Sunandar Sunarya ti titik mana wae.

Salajengna, urang nyiptakeun jilid anu diperyogikeun sareng nyebarkeunana ka server aplikasi.

Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Disarankeun pisan pikeun nyieun sababaraha jilid pikeun Oracle ASM sabab ieu bakal nambahan jumlah target pikeun server, anu pamustunganana bakal ningkatkeun kinerja sakabéh (langkung seueur ngeunaan antrian dina anu sanés. artikel).

Konfigurasi tés

Ngaran Volume Panyimpenan
Ukuran Volume

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

Ulang deui01
100GB

Ulang deui02
100GB

Ulang deui03
100GB

Ulang deui04
100GB

Ulang deui05
100GB

Ulang deui06
100GB

Ulang deui07
100GB

Ulang deui08
100GB

Ulang deui09
100GB

Ulang deui10
100GB

Sababaraha katerangan ngeunaan modeu operasi susunan sareng prosés anu lumangsung dina kaayaan darurat

Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Set data unggal titik boga parameter "nomer versi". Saatos initialization awal, éta sarua jeung sarua jeung 1. Lamun sababaraha alesan nomer versi béda, teras data sok nyingkronkeun ti versi heubeul ka hiji ngora, nu satutasna jumlah versi ngora ieu Blok, i.e. Ieu ngandung harti yén salinan idéntik. Alesan naha versi bisa jadi béda:

  • Dijadwalkeun reboot salah sahiji titik
  • Kacilakaan dina salah sahiji titik alatan pareum ngadadak (suplai kakuatan, overheating, jsb).
  • Leungit sambungan InfiniBand kalawan henteu mampuh pikeun nyingkronkeun
  • Kacilakaan dina salah sahiji titik kusabab korupsi data. Di dieu anjeun kudu nyieun grup HA anyar jeung sinkronisasi lengkep tina set data.

Dina naon waé, titik anu tetep online nambahan nomer vérsina ku hiji pikeun nyinkronkeun set datana saatos sambungan sareng pasangan dibalikeun.

Lamun sambungan ngaliwatan link Ethernet leungit, Keteg jajantung samentara pindah ka InfiniBand sarta balik deui dina 10 detik nalika eta dibalikeun.

Nyetél host

Pikeun mastikeun kasabaran sesar sareng ningkatkeun kinerja, anjeun kedah ngaktipkeun dukungan MPIO pikeun susunan. Jang ngalampahkeun ieu, anjeun kedah nambihan garis kana file /etc/multipath.conf, teras balikan deui jasa multipath.

téks disumputkeunalat {
alat {
padagang "AStor"
path_grouping_policy "group_by_prio"
path_selector "panjang antrian 0"
path_checker "tur"
fitur "0"
hardware_handler "0"
sateuacan "const"
failback geuwat
fast_io_fail_tmo 5
dev_loss_tmo 60
user_friendly_names enya
detect_prio enya
rr_min_io_rq 1
no_path_retry 0
}
}

Salajengna, supados ASM tiasa dianggo sareng MPIO via ASMLib, anjeun kedah ngarobih file /etc/sysconfig/oracleasm teras ngajalankeun /etc/init.d/oracleasm scandisks

téks disumputkeun

# ORACLEASM_SCANORDER: Pola anu cocog pikeun mesen scanning disk
ORACLEASM_SCANORDER="dm"

# ORACLEASM_SCANEXCLUDE: Pola anu cocog pikeun ngaluarkeun disk tina scan
ORACLEASM_SCANEXCLUDE="sd"

nyarios

Upami anjeun henteu hoyong nganggo ASMLib, anjeun tiasa nganggo aturan UDEV, anu mangrupikeun dasar pikeun ASMLib.

Dimimitian ku vérsi 12.1.0.2 Oracle Database, pilihan éta sayogi pikeun dipasang salaku bagian tina parangkat lunak ASMFD.

Penting pikeun mastikeun yén piringan anu diciptakeun pikeun Oracle ASM saluyu sareng ukuran blok anu dioperasikeun sacara fisik (4K). Upami teu kitu, masalah kinerja bisa lumangsung. Kituna, perlu nyieun volume kalawan parameter luyu:

parted /dev/mapper/alat-ngaran mklabel gpt mkpart primér 2048s 100% align-pariksa optimal 1

Distribusi pangkalan data dina jilid anu diciptakeun pikeun konfigurasi tés kami

Ngaran Volume Panyimpenan
Ukuran Volume
pemetaan volume LUNs
Rincian Alat Jilid ASM
Ukuran Unit Alokasi

Data01
200GB
Peta sadaya volume panyimpenan ka sistem panyimpenan sadaya palabuhan data
Redundansi: Normal
Ngaran: DGDATA
Tujuan: file data

4MB

Data02
200GB

Data03
200GB

Data04
200GB

Data05
200GB

Data06
200GB

Data07
200GB

Data08
200GB

Data09
200GB

Data10
200GB

Grid01
1GB
Redundansi: Normal
Ngaran: DGGRID1
Tujuan: Grid: CRS sareng Voting

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Redundansi: Normal
Ngaran: DGGRID2
Tujuan: Grid: CRS sareng Voting

4MB

Grid05
1GB

Grid06
1GB

Ulang deui01
100GB
Redundansi: Normal
Ngaran: DGREDO1
Tujuan: Redo log of thread 1

4MB

Ulang deui02
100GB

Ulang deui03
100GB

Ulang deui04
100GB

Ulang deui05
100GB

Ulang deui06
100GB
Redundansi: Normal
Ngaran: DGREDO2
Tujuan: Redo log of thread 2

4MB

Ulang deui07
100GB

Ulang deui08
100GB

Ulang deui09
100GB

Ulang deui10
100GB

Setélan pangkalan data

  • Ukuran blok = 8K
  • Swap spasi = 16GB
  • Pareuman AMM (Manajemén Mémori Otomatis)
  • Pareuman Kaca Gedé Transparan

Setélan séjén

# 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 # entong nyetél ieu upami anjeun nganggo Linux x86
✓ vm.vfs_cache_pressure=200
✓ vm.nr_hugpages = 57000

# vi /etc/security/limits.conf
✓ grid soft nproc 2047
✓ grid teuas nproc 16384
✓ grid soft nofile 1024
✓ grid nofile teuas 65536
✓ tumpukan lemes grid 10240
✓ tumpukan teuas grid 32768
✓ Oracle soft nproc 2047
✓ Oracle hard nproc 16384
✓ Oracle soft nofile 1024
✓ Oracle hard nofile 65536
✓ Oracle soft stack 10240
✓ Oracle hard tumpukan 32768
✓ memlock lemes 120795954
✓ memlock teuas 120795954

sqlplus "/ salaku sysdba"
ngarobah prosés set sistem = 2000 wengkuan = spfile;
ngarobah sistem set open_cursors = 2000 wengkuan = spfile;
ngarobah sistem set session_cached_cursors = 300 wengkuan = spfile;
ngarobah susunan sistem db_files = 8192 wengkuan = spfile;

Ujian gagal

Pikeun tujuan démo, HammerDB dianggo pikeun niru beban OLTP. Konfigurasi HammerDB:

Jumlah Gudang
256

Total Transaksi per Pamaké
1000000000000

Pamaké maya
256

Hasilna nyaéta 2.1M TPM, anu jauh tina wates kinerja arrays H710, tapi mangrupakeun "siling" pikeun konfigurasi hardware ayeuna tina server (utamana alatan prosesor) jeung jumlah maranéhanana. Tujuan tina tés ieu masih pikeun nunjukkeun kasabaran kasalahan tina solusi sacara gembleng, sareng henteu ngahontal prestasi maksimal. Ku alatan éta, urang ngan saukur bakal ngawangun dina inohong ieu.

Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Uji gagalna salah sahiji titik

Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Host leungit bagian tina jalur ka gudang, terus dianggo ngaliwatan sésana jeung titik kadua. Kinerja turun pikeun sababaraha detik kusabab jalan anu diwangun deui, teras balik deui ka normal. Henteu aya gangguan dina palayanan.

Uji gagal kabinet sareng sadaya alat

Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Ngawangun solusi toleran kasalahan dumasar kana Oracle RAC sareng AccelStor Shared-Nothing arsitéktur

Dina hal ieu, kinerja ogé turun pikeun sababaraha detik alatan restructuring sahiji jalur, lajeng balik ka satengah nilai aslina. Hasilna dikurangan satengah tina anu awal kusabab pangaluaran hiji server aplikasi tina operasi. Henteu aya gangguan dina jasa ogé.

Upami aya kabutuhan pikeun nerapkeun solusi pamulihan musibah Cross-Rack anu toleran pikeun Oracle kalayan biaya anu lumayan sareng kalayan sakedik usaha / administrasi, maka Oracle RAC sareng arsitéktur damel babarengan AccelStor Dibagi-Euweuh bakal salah sahiji pilihan pangalusna. Gantina Oracle RAC, bisa wae software lianna nu nyadiakeun clustering, DBMS sarua atawa sistem virtualization, contona,. Prinsip ngawangun solusi bakal tetep sami. Jeung garis handap enol pikeun RTO na RPO.

sumber: www.habr.com

Tambahkeun komentar