ProHoster > Dienoraštis > Administravimas > Sukurti gedimams atsparų sprendimą, pagrįstą Oracle RAC ir AccelStor Shared-Nothing architektūra
Sukurti gedimams atsparų sprendimą, pagrįstą Oracle RAC ir AccelStor Shared-Nothing architektūra
Nemažai įmonių taikomųjų programų ir virtualizacijos sistemų turi savo mechanizmus, skirtus gedimams atspariems sprendimams kurti. Tiksliau, „Oracle RAC“ („Oracle Real Application Cluster“) yra dviejų ar daugiau „Oracle“ duomenų bazės serverių, veikiančių kartu, kad subalansuotų apkrovą ir užtikrintų atsparumą gedimams serverio / programos lygiu, grupė. Norėdami dirbti šiuo režimu, jums reikia bendros saugyklos, kuri paprastai yra saugojimo sistema.
Kaip jau aptarėme viename iš mūsų straipsniai, pati saugojimo sistema, nepaisant pasikartojančių komponentų (įskaitant valdiklius), vis dar turi gedimo taškų – daugiausia vieno duomenų rinkinio pavidalu. Todėl norint sukurti Oracle sprendimą su padidintais patikimumo reikalavimais, schema „N serveriai – viena saugojimo sistema“ turi būti sudėtinga.
Pirmiausia, žinoma, turime nuspręsti, nuo kokių rizikų bandome apsidrausti. Šiame straipsnyje mes nenagrinėsime apsaugos nuo tokių grėsmių kaip „meteoritas atvyko“. Taigi geografiškai išsklaidyto atkūrimo sprendimo po nelaimės kūrimas išliks vieno iš šių straipsnių tema. Čia pažvelgsime į vadinamąjį Cross-Rack nelaimingų atsitikimų atkūrimo sprendimą, kai apsauga kuriama serverių spintų lygiu. Pačios spintos gali būti toje pačioje patalpoje arba skirtingose, bet dažniausiai tame pačiame pastate.
Šiose spintelėse turi būti visas reikalingas įrangos ir programinės įrangos rinkinys, kuris leistų valdyti Oracle duomenų bazes nepriklausomai nuo „kaimyno“ būsenos. Kitaip tariant, naudodami Cross-Rack atkūrimo sprendimą nelaimės atveju pašaliname gedimo riziką:
„Oracle“ taikomųjų programų serveriai
Saugojimo sistemos
Perjungimo sistemos
Visiškas visos spintoje esančios įrangos gedimas:
Galios atsisakymas
Aušinimo sistemos gedimas
Išoriniai veiksniai (žmogus, gamta ir kt.)
Oracle serverių dubliavimas reiškia patį Oracle RAC veikimo principą ir yra įgyvendinamas naudojant programą. Perjungimo įrenginių dubliavimas taip pat nėra problema. Tačiau dubliuojant saugojimo sistemą viskas nėra taip paprasta.
Paprasčiausias variantas yra duomenų replikavimas iš pagrindinės saugojimo sistemos į atsarginę. Sinchroninis arba asinchroninis, priklausomai nuo saugojimo sistemos galimybių. Naudojant asinchroninį replikavimą, iškart kyla klausimas, kaip užtikrinti duomenų nuoseklumą, palyginti su „Oracle“. Bet net jei programinė įranga yra integruota su programa, bet kokiu atveju, pagrindinės saugojimo sistemos gedimo atveju, norint perkelti klasterį į atsarginę saugyklą, reikės rankinio administratorių įsikišimo.
Sudėtingesnė parinktis yra programinės ir (arba) aparatinės įrangos saugojimo „virtualizatoriai“, kurie pašalins nuoseklumo problemas ir rankinį įsikišimą. Tačiau diegimo ir vėlesnio administravimo sudėtingumas, taip pat labai nepadori tokių sprendimų kaina daugelį atbaido.
AccelStor NeoSapphire™ All Flash masyvo sprendimas puikiai tinka tokiems scenarijams kaip Cross-Rack atkūrimas po nelaimingų atsitikimų H710 naudojant Shared-Nothing architektūrą. Šis modelis yra dviejų mazgų saugojimo sistema, kuri naudoja patentuotą FlexiRemap® technologiją darbui su „flash drives“. Ačiū FlexiRemap® „NeoSapphire™ H710“ gali užtikrinti iki 600 K IOPS@4K atsitiktinio rašymo ir 1 M+ IOPS@4K atsitiktinio skaitymo našumą, o tai nepasiekiama naudojant klasikines RAID pagrįstas saugojimo sistemas.
Tačiau pagrindinė NeoSapphire™ H710 savybė yra dviejų mazgų vykdymas atskirų atvejų pavidalu, kurių kiekvienas turi savo duomenų kopiją. Mazgų sinchronizavimas atliekamas per išorinę InfiniBand sąsają. Dėl šios architektūros mazgus galima paskirstyti skirtingose vietose iki 100 m atstumu, taip suteikiant Cross-Rack atkūrimo sprendimą nelaimės atveju. Abu mazgai veikia visiškai sinchroniškai. Iš pagrindinio kompiuterio pusės H710 atrodo kaip įprasta dviejų valdiklių saugojimo sistema. Todėl nereikia atlikti jokių papildomų programinės ar techninės įrangos parinkčių ar ypač sudėtingų nustatymų.
Jei palyginsime visus aukščiau aprašytus Cross-Rack atkūrimo sprendimus, tada „AccelStor“ parinktis pastebimai išsiskiria iš kitų:
„AccelStor NeoSapphire™“ bendro naudojimo architektūra
Programinės ar aparatinės įrangos „virtualizatoriaus“ saugojimo sistema
Replikacija pagrįstas sprendimas
Prieinamumas
Serverio gedimas Nėra prastovų Nėra prastovų Nėra prastovų
Jungiklio gedimas Nėra prastovų Nėra prastovų Nėra prastovų
Saugojimo sistemos gedimas Nėra prastovų Nėra prastovų Prastovos
Viso kabineto gedimas Nėra prastovų Nėra prastovų Prastovos
Kaina ir sudėtingumas
Sprendimo kaina
Žemas*
Aukštas
Aukštas
Diegimo sudėtingumas
Žemas
Aukštas
Aukštas
*AccelStor NeoSapphire™ vis dar yra „All Flash“ masyvas, kuris pagal apibrėžimą nekainuoja „3 kapeikų“, juolab kad turi dvigubą talpos rezervą. Tačiau lyginant galutinę juo paremto sprendimo kainą su panašiais kitų tiekėjų sprendimais, kaina gali būti laikoma maža.
Programų serverių ir visų „Flash“ masyvo mazgų sujungimo topologija atrodys taip:
Planuojant topologiją, taip pat labai rekomenduojama dubliuoti valdymo jungiklius ir sujungti serverius.
Toliau kalbėsime apie ryšį per Fibre Channel. Jei naudosite iSCSI, viskas bus taip pat, pritaikyta naudojamų jungiklių tipams ir šiek tiek kitokiems masyvo parametrams.
Parengiamieji masyvo darbai
Naudota įranga ir programinė įranga
Serverio ir jungiklio specifikacijos
Komponentai
aprašymas
Oracle Database 11g serveriai
Du
Serverio operacinė sistema
„Oracle Linux“
Oracle duomenų bazės versija
11 g (RAC)
Procesoriai vienam serveriui
Du 16 branduolių Intel® Xeon® CPU E5-2667 v2 @ 3.30 GHz
„AccelStor NeoSapphire™“ visos „Flash Array“ specifikacijos
Komponentai
aprašymas
Saugojimo sistema
NeoSapphire™ didelio prieinamumo modelis: H710
Vaizdo versija
4.0.1
Bendras diskų skaičius
48
Pavaros dydis
1.92TB
Važiavimo tipas
VSD
FC tiksliniai prievadai
16x 16Gb prievadai (8 viename mazge)
Valdymo prievadai
1GbE eterneto kabelis, jungiantis prie pagrindinio kompiuterio per eterneto jungiklį
Širdies plakimo uostas
1GbE eterneto kabelis, jungiantis du saugojimo mazgus
Duomenų sinchronizavimo prievadas
56Gb/s InfiniBand laidas
Prieš naudodami masyvą, turite jį inicijuoti. Pagal numatytuosius nustatymus abiejų mazgų valdymo adresai yra vienodi (192.168.1.1). Prie jų reikia prisijungti po vieną ir nustatyti naujus (jau skirtingus) valdymo adresus bei nustatyti laiko sinchronizaciją, po kurios valdymo prievadus galima prijungti prie vieno tinklo. Vėliau mazgai sujungiami į HA porą, priskiriant potinklius tarpsavio ryšiams.
Baigę inicijuoti, galite valdyti masyvą iš bet kurio mazgo.
Tada sukuriame reikiamus tomus ir paskelbiame juos programų serveriuose.
Labai rekomenduojama sukurti kelis Oracle ASM tomus, nes tai padidins serverių taikinių skaičių, o tai galiausiai pagerins bendrą našumą (daugiau apie eiles kitame straipsnis).
Bandymo konfigūracija
Saugyklos tūrio pavadinimas
Tūrio dydis
Duomenys01
200GB
Duomenys02
200GB
Duomenys03
200GB
Duomenys04
200GB
Duomenys05
200GB
Duomenys06
200GB
Duomenys07
200GB
Duomenys08
200GB
Duomenys09
200GB
Duomenys10
200GB
„Grid01“
1GB
„Grid02“
1GB
„Grid03“
1GB
„Grid04“
1GB
„Grid05“
1GB
„Grid06“
1GB
Pakartoti 01
100GB
Pakartoti 02
100GB
Pakartoti 03
100GB
Pakartoti 04
100GB
Pakartoti 05
100GB
Pakartoti 06
100GB
Pakartoti 07
100GB
Pakartoti 08
100GB
Pakartoti 09
100GB
Pakartoti 10
100GB
Kai kurie paaiškinimai apie masyvo veikimo režimus ir procesus, vykstančius avarinėse situacijose
Kiekvieno mazgo duomenų rinkinys turi parametrą „versijos numeris“. Po pirminio inicijavimo jis yra toks pat ir lygus 1. Jei dėl kokių nors priežasčių skiriasi versijos numeris, tada duomenys visada sinchronizuojami iš senesnės versijos į jaunesnę, po to lygiuojamas jaunesnės versijos numeris, t.y. tai reiškia, kad kopijos yra identiškos. Priežastys, kodėl versijos gali skirtis:
Suplanuotas vieno iš mazgų paleidimas iš naujo
Nelaimingas atsitikimas viename iš mazgų dėl staigaus išjungimo (maitinimas, perkaitimas ir kt.).
Nutrūko „InfiniBand“ ryšys ir nepavyko sinchronizuoti
Viename iš mazgų gedimas dėl duomenų sugadinimo. Čia turėsite sukurti naują HA grupę ir užbaigti duomenų rinkinio sinchronizavimą.
Bet kokiu atveju mazgas, kuris lieka prisijungęs, padidina savo versijos numerį vienu, kad sinchronizuotų savo duomenų rinkinį po to, kai ryšys su pora atkurtas.
Jei nutrūksta ryšys per Ethernet ryšį, Heartbeat laikinai persijungia į InfiniBand ir grįžta per 10 sekundžių, kai bus atkurtas.
Šeimininkų nustatymas
Norėdami užtikrinti atsparumą gedimams ir pagerinti našumą, turite įjungti masyvo MPIO palaikymą. Norėdami tai padaryti, prie /etc/multipath.conf failo turite pridėti eilučių ir iš naujo paleisti kelių kelių tarnybą
Paslėptas tekstasprietaisai {
įrenginys {
pardavėjas "AStor"
path_grouping_policy "group_by_prio"
path_selector "eilės ilgis 0"
path_checker "tur"
funkcijos "0"
hardware_handler "0"
prieš "konst"
nedelsiant
fast_io_fail_tmo 5
dev_loss_tmo 60
vartotojui draugiški_vardai taip
detect_prio taip
rr_min_io_rq 1
no_path_retry 0
}
}
Tada, kad ASM veiktų su MPIO per ASMLib, reikia pakeisti /etc/sysconfig/oracleasm failą ir paleisti /etc/init.d/oracleasm scandisks
Paslėptas tekstas
# ORACLEASM_SCANORDER: modelių suderinimas pagal disko nuskaitymo užsakymą
ORACLEASM_SCANORDER="dm"
# ORACLEASM_SCANEXCLUDE: suderinami šablonai, kad diskai nebūtų nuskaitomi
ORACLEASM_SCANEXCLUDE="sd"
Atkreipti dėmesį
Jei nenorite naudoti ASMLib, galite naudoti UDEV taisykles, kurios yra ASMLib pagrindas.
Pradedant nuo 12.1.0.2 „Oracle Database“ versijos, šią parinktį galima įdiegti kaip ASMFD programinės įrangos dalį.
Būtina užtikrinti, kad Oracle ASM sukurti diskai būtų suderinti su bloko dydžiu, su kuriuo masyvas fiziškai veikia (4K). Priešingu atveju gali kilti veikimo problemų. Todėl būtina sukurti tomus su atitinkamais parametrais:
Duomenų bazių paskirstymas sukurtuose tomuose mūsų bandymo konfigūracijai
Saugyklos tūrio pavadinimas
Tūrio dydis
Tūrio LUN kartografavimas
ASM garsumo įrenginio informacija
Paskirstymo vieneto dydis
Duomenys01
200GB
Susiekite visus saugojimo tomus su saugojimo sistemos visais duomenų prievadais
Atleidimas: normalus
Vardas: DGDATA
Paskirtis: duomenų failai
sqlplus "/as sysdba"
keisti sistemos rinkinio procesus=2000 apimtis=spfile;
pakeisti sistemos rinkinį open_cursors=2000 apimtis=spfile;
pakeisti sistemos rinkinį session_cached_cursors=300 apimtis=spfile;
pakeisti sistemos rinkinį db_files=8192 apimtis=spfile;
Nesėkmės testas
Demonstravimo tikslais „HammerDB“ buvo naudojamas OLTP apkrovai emuliuoti. HammerDB konfigūracija:
Sandėlių skaičius
256
Bendras operacijų skaičius vienam vartotojui
1000000000000
Virtualūs vartotojai
256
Rezultatas buvo 2.1 mln. TPM, o tai toli nuo masyvo našumo ribos H710, bet yra dabartinės serverių aparatinės įrangos konfigūracijos (pirmiausia dėl procesorių) ir jų skaičiaus „lubos“. Šio testo tikslas vis tiek yra parodyti viso sprendimo atsparumą gedimams, o ne pasiekti maksimalų našumą. Todėl mes tiesiog remsimės šia figūra.
Patikrinkite vieno iš mazgų gedimą
Pagrindiniai kompiuteriai prarado dalį kelių į saugyklą ir toliau dirbo per likusius su antruoju mazgu. Našumas kelioms sekundėms sumažėjo dėl takų atstatymo, o tada grįžo į normalią būseną. Paslauga nenutrūko.
Spintelės gedimo testas su visa įranga
Šiuo atveju našumas taip pat sumažėjo kelioms sekundėms dėl kelių pertvarkymo, o tada grįžo į pusę pradinės vertės. Rezultatas buvo perpus mažesnis nei pradinis, nes vienas programų serveris buvo pašalintas iš darbo. Paslauga taip pat nenutrūko.
Jei reikia įdiegti gedimams atsparų Cross-Rack atkūrimo sprendimą Oracle už priimtiną kainą ir mažai diegiant / administruojant, tada Oracle RAC ir architektūra dirba kartu. „AccelStor“ bendrinamas – nieko bus vienas geriausių variantų. Vietoj „Oracle RAC“ gali būti bet kokia kita programinė įranga, teikianti grupavimą, pavyzdžiui, tos pačios DBVS ar virtualizacijos sistemos. Sprendimo konstravimo principas išliks toks pat. Ir apatinė eilutė yra nulis RTO ir RPO.