ProHoster > Blogi > antaminen > Oracle RAC- ja AccelStor Shared-Nothing -arkkitehtuuriin perustuvan vikasietoisen ratkaisun rakentaminen
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.
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ä:
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
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.
Kun alustus on valmis, voit hallita taulukkoa mistä tahansa solmusta.
Seuraavaksi luomme tarvittavat taltiot ja julkaisemme ne sovelluspalvelimille.
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
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:
# 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.
Testaa jonkin solmun vika
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
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.