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 , 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.

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. 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 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:

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.

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.

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. ).
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

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 # ulah nyetel 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 , 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.

Uji gagalna salah sahiji titik


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


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 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
