Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

Huomattavalla osalla Enterprise-sovelluksia ja virtualisointijärjestelmiä on omat mekanisminsa vikasietoisten ratkaisujen rakentamiseen. Tarkemmin sanottuna Oracle RAC (Oracle Real Application Cluster) on kahden tai useamman Oracle-tietokantapalvelimen klusteri, jotka toimivat yhdessä tasapainottaakseen kuormitusta ja tarjotakseen vikasietoisuutta palvelin/sovellustasolla. Tässä tilassa työskentelyyn tarvitaan jaettu tallennustila, joka on yleensä tallennusjärjestelmä.

Kuten olemme jo keskustelleet yhdessä meidän artikkelit, itse tallennusjärjestelmässä on päällekkäisistä komponenteista huolimatta (mukaan lukien ohjaimet) edelleen vikakohtia - pääasiassa yhden tietojoukon muodossa. Siksi "N palvelinta - yksi tallennusjärjestelmä" -mallin on oltava monimutkainen, jotta voidaan rakentaa Oracle-ratkaisu, jolla on korkeammat luotettavuusvaatimukset.

Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

Ensin meidän on tietysti päätettävä, mitä riskejä vastaan ​​yritämme vakuuttaa. Tässä artikkelissa emme harkitse suojaa sellaisilta uhilta kuin "meteoriitti on saapunut". Joten maantieteellisesti hajallaan olevan katastrofipalautusratkaisun rakentaminen jää aiheeksi johonkin seuraavista artikkeleista. Tässä tarkastellaan ns. Cross-Rack-katastrofipalautusratkaisua, kun suojaus rakennetaan palvelinkaappien tasolle. Itse kaapit voivat sijaita samassa huoneessa tai eri tiloissa, mutta yleensä samassa rakennuksessa.

Näiden kaappien tulee sisältää kaikki tarvittavat laitteet ja ohjelmistot, jotka mahdollistavat Oraclen tietokantojen toiminnan "naapurin" tilasta riippumatta. Toisin sanoen käyttämällä Cross-Rack-katastrofipalautusratkaisua eliminoimme epäonnistumisriskit:

  • Oracle-sovelluspalvelimet
  • Varastointijärjestelmät
  • Kytkentäjärjestelmät
  • Kaikkien kaapin laitteiden täydellinen vika:
    • Vallan kieltäytyminen
    • Jäähdytysjärjestelmän vika
    • Ulkoiset tekijät (ihminen, luonto jne.)

Oracle-palvelimien monistaminen edellyttää Oracle RAC:n toimintaperiaatetta, ja se toteutetaan sovelluksen kautta. Vaihtomahdollisuuksien päällekkäisyys ei myöskään ole ongelma. Mutta tallennusjärjestelmän päällekkäisyydellä kaikki ei ole niin yksinkertaista.

Yksinkertaisin vaihtoehto on tietojen replikointi päätallennusjärjestelmästä varmuuskopiojärjestelmään. Synkroninen tai asynkroninen tallennusjärjestelmän ominaisuuksien mukaan. Asynkronisessa replikaatiossa herää heti kysymys tietojen johdonmukaisuuden varmistamisesta Oraclen suhteen. Mutta vaikka ohjelmisto on integroitu sovelluksen kanssa, päätallennusjärjestelmän vian sattuessa järjestelmänvalvojat tarvitsevat manuaalisia toimia klusterin vaihtamiseksi varmuuskopiotallennustilaan.

Monimutkaisempi vaihtoehto ovat ohjelmisto- ja/tai laitteistotallennusvirtualisoijat, jotka poistavat johdonmukaisuusongelmat ja manuaaliset toimenpiteet. Mutta käyttöönoton ja myöhemmän hallinnon monimutkaisuus sekä tällaisten ratkaisujen erittäin kohtuuttomat kustannukset pelottavat monia.

AccelStor NeoSapphire™ All Flash array -ratkaisu sopii täydellisesti skenaarioihin, kuten Cross-Rack-katastrofipalautukseen H710 käyttämällä Shared-Nothing-arkkitehtuuria. Tämä malli on kahden solmun tallennusjärjestelmä, joka käyttää patentoitua FlexiRemap®-tekniikkaa työskennelläkseen flash-asemien kanssa. Kiitokset FlexiRemap® NeoSapphire™ H710 pystyy tarjoamaan jopa 600 4 IOPS@1K satunnaisen kirjoituksen ja 4 M+ IOPS@XNUMXK satunnaislukumäärän, mikä ei ole saavutettavissa käytettäessä klassisia RAID-pohjaisia ​​tallennusjärjestelmiä.

Mutta NeoSapphire™ H710:n pääominaisuus on kahden solmun suorittaminen erillisissä tapauksissa, joista jokaisella on oma kopio tiedoista. Solmujen synkronointi tapahtuu ulkoisen InfiniBand-liitännän kautta. Tämän arkkitehtuurin ansiosta on mahdollista jakaa solmut eri paikkoihin jopa 100 metrin etäisyydelle, mikä tarjoaa Cross-Rack-katastrofipalautusratkaisun. Molemmat solmut toimivat täysin synkronisesti. Isäntäpuolelta H710 näyttää tavalliselta kahden ohjaimen tallennusjärjestelmältä. Siksi ei tarvitse suorittaa mitään lisäohjelmisto- tai laitteistovaihtoehtoja tai erityisen monimutkaisia ​​asetuksia.

Jos vertaamme kaikkia edellä kuvattuja Cross-Rackin katastrofipalautusratkaisuja, niin AccelStorin vaihtoehto erottuu huomattavasti muista:

AccelStor NeoSapphire™ Shared Nothing Architecture
Ohjelmiston tai laitteiston "virtualisointi" -tallennusjärjestelmä
Replikointiin perustuva ratkaisu

saatavuus

Palvelinvirhe
Ei seisokkeja
Ei seisokkeja
Ei seisokkeja

Kytkimen vika
Ei seisokkeja
Ei seisokkeja
Ei seisokkeja

Tallennusjärjestelmän vika
Ei seisokkeja
Ei seisokkeja
Seisokkeja

Koko kaappivika
Ei seisokkeja
Ei seisokkeja
Seisokkeja

Kustannukset ja monimutkaisuus

Ratkaisun hinta
Matala*
Korkea
Korkea

Käyttöönoton monimutkaisuus
alhainen
Korkea
Korkea

*AccelStor NeoSapphire™ on edelleen All Flash -taulukko, joka ei määritelmän mukaan maksa "3 kopekkaa", varsinkin kun siinä on kaksinkertainen kapasiteettireservi. Kuitenkin, kun verrataan siihen perustuvan ratkaisun lopullista hintaa muiden valmistajien vastaaviin ratkaisuihin, kustannuksia voidaan pitää alhaisena.

Sovelluspalvelimien ja kaikkien Flash-ryhmän solmujen yhdistämisen topologia näyttää tältä:

Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

Topologiaa suunniteltaessa on myös erittäin suositeltavaa monistaa hallintakytkimiä ja yhdistää palvelimia.

Täällä ja edelleen puhumme yhteyden muodostamisesta kuitukanavan kautta. Jos käytät iSCSI:tä, kaikki on sama, mukautettu käytettyjen kytkimien tyyppeihin ja hieman erilaisiin matriisiin.

Taulukon valmistelutyöt

Käytetyt laitteet ja ohjelmistot

Palvelimen ja kytkimen tekniset tiedot

Компоненты
Kuvaus

Oracle Database 11g -palvelimet
kaksi

Palvelimen käyttöjärjestelmä
Oracle Linux

Oracle-tietokannan versio
11g (RAC)

Prosessorit per palvelin
Kaksi 16 ydintä Intel® Xeon® CPU E5-2667 v2 @ 3.30 GHz

Fyysinen muisti per palvelin
128GB

FC verkko
16 Gb/s FC monitieyhteydellä

FC HBA
Emulex Lpe-16002B

Julkiset 1GbE-portit klusterin hallintaan
Intel ethernet-sovitin RJ45

16Gb/s FC-kytkin
Brocade 6505

Yksityiset 10 GbE-portit tietojen synkronointia varten
Intel X520

AccelStor NeoSapphire™ All Flash Array -määritykset

Компоненты
Kuvaus

Varastointijärjestelmä
NeoSapphire™ korkean käytettävyyden malli: H710

Kuvan versio
4.0.1

Asemien kokonaismäärä
48

Aseman koko
1.92TB

Ajotyyppi
SSD

FC kohdeportit
16 x 16 Gb portit (8 solmua kohti)

Hallintaportit
1GbE-ethernet-kaapeli, joka liitetään isäntiin ethernet-kytkimen kautta

Sydämenlyöntiportti
1 GbE:n Ethernet-kaapeli, joka yhdistää kahden tallennussolmun välille

Tietojen synkronointiportti
56Gb/s InfiniBand-kaapeli

Ennen kuin voit käyttää taulukkoa, sinun on alustettava se. Oletuksena molempien solmujen ohjausosoite on sama (192.168.1.1). Niihin täytyy muodostaa yhteys yksitellen ja asettaa uudet (jo erilaiset) hallintaosoitteet ja aikasynkronointi, jonka jälkeen Management-portit voidaan liittää yhteen verkkoon. Myöhemmin solmut yhdistetään HA-pariksi määrittämällä aliverkot Interlink-yhteyksille.

Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

Kun alustus on valmis, voit hallita taulukkoa mistä tahansa solmusta.

Seuraavaksi luomme tarvittavat taltiot ja julkaisemme ne sovelluspalvelimille.

Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

On erittäin suositeltavaa luoda useita levyjä Oracle ASM:lle, koska tämä lisää palvelimien kohteiden määrää, mikä lopulta parantaa yleistä suorituskykyä (lisää jonoista toisessa статье).

Testaa konfiguraatiota

Tallennustilan nimi
Tilavuuden koko

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

Tee uudelleen01
100GB

Tee uudelleen02
100GB

Tee uudelleen03
100GB

Tee uudelleen04
100GB

Tee uudelleen05
100GB

Tee uudelleen06
100GB

Tee uudelleen07
100GB

Tee uudelleen08
100GB

Tee uudelleen09
100GB

Tee uudelleen10
100GB

Muutama selostus taulukon toimintatavoista ja hätätilanteissa tapahtuvista prosesseista

Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

Jokaisen solmun tietojoukossa on "versionumero"-parametri. Alkualustuksen jälkeen se on sama ja yhtä suuri kuin 1. Jos jostain syystä versionumero on eri, niin tiedot synkronoidaan aina vanhemmasta versiosta nuorempaan, minkä jälkeen nuoremman version numero tasataan, ts. tämä tarkoittaa, että kopiot ovat identtisiä. Syitä siihen, miksi versiot voivat olla erilaisia:

  • Yhden solmun ajoitettu uudelleenkäynnistys
  • Onnettomuus yhdessä solmussa äkillisen sammutuksen vuoksi (virtalähde, ylikuumeneminen jne.).
  • InfiniBand-yhteys katkesi, koska synkronointi ei onnistu
  • Kaatuminen yhdessä solmuista tietojen vioittumisen vuoksi. Täällä sinun on luotava uusi HA-ryhmä ja suoritettava tietojoukon synkronointi.

Joka tapauksessa online-tilassa oleva solmu kasvattaa versionumeroaan yhdellä synkronoidakseen tietojoukonsa, kun yhteys pariin on palautettu.

Jos yhteys Ethernet-linkin kautta katkeaa, Heartbeat vaihtaa tilapäisesti InfiniBandiin ja palaa takaisin 10 sekunnin kuluessa, kun se palautetaan.

Isäntien asettaminen

Vikasietoisuuden varmistamiseksi ja suorituskyvyn parantamiseksi sinun on otettava käyttöön MPIO-tuki ryhmälle. Tätä varten sinun on lisättävä rivejä /etc/multipath.conf-tiedostoon ja käynnistettävä sitten monitiepalvelu uudelleen.

Piilotettu tekstilaitteet {
laite {
myyjä "AStor"
path_grouping_policy "group_by_prio"
polun_valitsin "jonon pituus 0"
polun_tarkistus "tur"
ominaisuuksia "0"
hardware_handler "0"
ennen "const"
välitön epäonnistuminen
fast_io_fail_tmo 5
dev_loss_tmo 60
käyttäjäystävälliset_nimet kyllä
detect_prio kyllä
rr_min_io_rq 1
no_path_retry 0
}
}

Seuraavaksi, jotta ASM voisi toimia MPIO:n kanssa ASMLibin kautta, sinun on muutettava /etc/sysconfig/oracleasm-tiedosto ja suoritettava sitten /etc/init.d/oracleasm scandisks

Piilotettu teksti

# ORACLEASM_SCANORDER: Kuvioiden sovittaminen levyn skannauksen järjestykseen
ORACLEASM_SCANORDER="dm"

# ORACLEASM_SCANEXCLUDE: Vastaavat kuviot levyjen poissulkemiseksi tarkistuksesta
ORACLEASM_SCANEXCLUDE="sd"

Huomata

Jos et halua käyttää ASMLibia, voit käyttää UDEV-sääntöjä, jotka ovat ASMLibin perusta.

Oracle Databasen versiosta 12.1.0.2 alkaen vaihtoehto on saatavana asennettavaksi osana ASMFD-ohjelmistoa.

On välttämätöntä varmistaa, että Oracle ASM:lle luodut levyt on kohdistettu sen lohkokoon kanssa, jonka kanssa ryhmä fyysisesti toimii (4K). Muuten voi ilmetä suorituskykyongelmia. Siksi on tarpeen luoda volyymit sopivilla parametreilla:

parted /dev/mapper/device-name mklabel gpt mkpart ensisijainen 2048s 100 % align-check optimaalinen 1

Tietokantojen jakautuminen luotujen taltioiden kesken testikokoonpanoamme varten

Tallennustilan nimi
Tilavuuden koko
Volume LUN -kartoitus
ASM Volume Device Detail
Jakoyksikön koko

Data01
200GB
Yhdistä kaikki tallennustilastot tallennusjärjestelmän kaikki tietoportit
Redundanssi: Normaali
Nimi: DGDATA
Tarkoitus: Datatiedostot

4MB

Data02
200GB

Data03
200GB

Data04
200GB

Data05
200GB

Data06
200GB

Data07
200GB

Data08
200GB

Data09
200GB

Data10
200GB

Grid01
1GB
Redundanssi: Normaali
Nimi: DGGRID1
Tarkoitus: Verkko: CRS ja äänestys

4MB

Grid02
1GB

Grid03
1GB

Grid04
1GB
Redundanssi: Normaali
Nimi: DGGRID2
Tarkoitus: Verkko: CRS ja äänestys

4MB

Grid05
1GB

Grid06
1GB

Tee uudelleen01
100GB
Redundanssi: Normaali
Nimi: DGREDO1
Tarkoitus: Tee uudelleen säikeen 1 loki

4MB

Tee uudelleen02
100GB

Tee uudelleen03
100GB

Tee uudelleen04
100GB

Tee uudelleen05
100GB

Tee uudelleen06
100GB
Redundanssi: Normaali
Nimi: DGREDO2
Tarkoitus: Tee uudelleen säikeen 2 loki

4MB

Tee uudelleen07
100GB

Tee uudelleen08
100GB

Tee uudelleen09
100GB

Tee uudelleen10
100GB

Tietokannan asetukset

  • Lohkon koko = 8K
  • Vaihtotila = 16 Gt
  • Poista AMM (Automatic Memory Management) käytöstä
  • Poista läpinäkyvät valtavat sivut käytöstä

Muut asetukset

# vi /etc/sysctl.conf
✓ fs.aio-max-nr = 1048576
✓ fs.file-max = 6815744
✓ kernel.shmmax 103079215104
✓ kernel.shmal 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 # älä aseta tätä, jos käytät Linux x86
✓ vm.vfs_cache_pressure=200
✓ vm.nr_hugepages = 57000

# vi /etc/security/limits.conf
✓ grid soft nproc 2047
✓ Grid hard nproc 16384
✓ ruudukon pehmeä nofile 1024
✓ ruudukon kova nofile 65536
✓ ruudukon pehmeä pino 10240
✓ ruudukon kova pino 32768
✓ Oracle soft nproc 2047
✓ Oracle hard nproc 16384
✓ Oracle soft nofile 1024
✓ Oracle hard nofile 65536
✓ Oracle soft stack 10240
✓ Oracle hard pino 32768
✓ pehmeä memlock 120795954
✓ kova muistilukitus 120795954

sqlplus "/as sysdba"
muuta järjestelmäsarjan prosessit=2000 soveltamisala=spfile;
muuta järjestelmäjoukkoa open_cursors=2000 soveltamisala=spfile;
muuta järjestelmäjoukko session_cached_cursors=300 soveltamisala=spfile;
muuta järjestelmäjoukkoa db_files=8192 soveltamisala=spfile;

Epäonnistumisen testi

Esittelytarkoituksiin HammerDB:tä käytettiin emuloimaan OLTP-kuormaa. HammerDB-kokoonpano:

Varastojen lukumäärä
256

Tapahtumat yhteensä käyttäjää kohti
1000000000000

Virtuaaliset käyttäjät
256

Tuloksena oli 2.1 M TPM, mikä on kaukana taulukon suorituskyvyn rajasta H710, mutta se on "katto" palvelimien nykyiselle laitteistokokoonpanolle (johtuen ensisijaisesti prosessoreista) ja niiden lukumäärälle. Tämän testin tarkoituksena on edelleen osoittaa ratkaisun vikasietoisuus kokonaisuutena, eikä saavuttaa maksimaalista suorituskykyä. Siksi rakennamme vain tämän luvun pohjalta.

Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

Testaa jonkin solmun vika

Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

Isännät menettivät osan polkuista tallennustilaan ja jatkoivat jäljellä olevien läpivientiä toisen solmun kanssa. Suorituskyky heikkeni muutaman sekunnin, koska polkuja rakennettiin uudelleen, ja palasi sitten normaaliksi. Palvelussa ei ollut katkosta.

Kaapin vikatesti kaikilla laitteilla

Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen

Tässä tapauksessa suorituskyky laski myös muutaman sekunnin ajan polkujen uudelleenjärjestelyn vuoksi ja palasi sitten puoleen alkuperäisestä arvosta. Tulos puolittui alkuperäisestä, koska yksi sovelluspalvelin suljettiin pois toiminnasta. Palvelussa ei myöskään ollut katkosta.

Jos Oraclelle on tarpeen ottaa käyttöön vikasietoinen Cross-Rack-katastrofipalautusratkaisu kohtuullisin kustannuksin ja vähäisellä käyttöönotto-/hallintatyöllä, Oracle RAC ja arkkitehtuuri toimivat yhdessä. AccelStor jaettu - ei mitään tulee olemaan yksi parhaista vaihtoehdoista. Oracle RAC:n sijaan voi olla mikä tahansa muu ohjelmisto, joka tarjoaa klusteroinnin, esimerkiksi samat DBMS- tai virtualisointijärjestelmät. Ratkaisun rakentamisperiaate pysyy samana. Ja lopputulos on nolla RTO:lle ja RPO:lle.

Lähde: will.com

Lisää kommentti