Įdiekite „Linux“ serverį didelio prieinamumo grupėje

Turinys

Kiek kartų mes turėjome turėti savo paslaugas, tiksliau, kad mūsų paslaugos visada būtų prieinamos, ir kiek kartų mums atsitiko, kad mūsų serverio kietasis diskas yra sugadintas ir mes neturime atsarginės kopijos, gerai, galvojame apie tai aplinkybėmis, nusprendžiau tai sukurti pamoka, skirta užtikrinti, kad mūsų serveriai ar veikiau mūsų paslaugos visada būtų prisijungę.

Atsižvelgiant į tai, kad pamoka skirta pažengusiems „Linux“ žmonėms, neliesiu tokių temų kaip bazinės sistemos, kurią naudosiu šį kartą, diegimas CentOS 6 64 bitų paskutiniame atnaujinime. Lygiai taip pat paminėsiu tik tai, kas yra būtina klasterio veikimui (didelio prieinamumo serveriai).

Taip pat komentuoju, kad šis vadovas skirtas būtinybei, kad žiniatinklio paslauga visada būtų aktyvi, nors sėkmingai naudojuosi su kitomis paslaugomis, manau, kad kaip pradžia ar geriau, kaip pradžia, paprasčiausias dalykas yra sukurti serverių grupių tinklą.

Be jokių papildomų veiksmų pereikime prie gerų dalykų.

Sistemos reikalavimai.1. RAM atmintis 1 GB
2. Kietasis diskas 80 GB
3. „Celeron“ procesorius
4. Klasterio duomenų skaidinys (kokio dydžio norite sukurti)
5. „CentOS 6“ operacinė sistema (naujausiame atnaujinime)

Jei atitiksite reikalavimus, pradėkime „Linux“ klasterio diegimas.

Kitas dalykas yra įdiegti DRBD, kad būtų galima sinchronizuoti skaidinius abiejuose serveriuose, tam būtina paleiskite apvalkalą šias instrukcijas:

1. Įtraukite ELRepo į sistemos saugyklų sąrašą

 [root @ node1 ~] rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

2. Įdiekite „drbd“ („Distributed Replicated Block Device“) ir komod paketus

 [root @ node1 ~] yum install -y kmod-drbd83 drbd83-utils
(Asmeniškai aš naudoju 8.3, nes 8.4 man sukėlė problemų dėl kai kurių paskirstymų)

3. Drbd pridedamas arba įterpiamas į sistemos branduolį

 [root @ node1 ~] modprobe drbd

4. Turi būti sukurtas drbd išteklių failas
Jis yra adresu /etc/drbd.d/mydrbd.res; kur mydrbd.res yra failo pavadinimas ir jį gali keisti visi norintys asmenys, jei tik išsaugosime plėtinį .res; Šis failas turėtų būti sukurtas abiejuose serveriuose arba, tinkamai sukonfigūravus failą, nukopijuojamas į antrąjį mazgą; konfigūracija būtų maždaug tokia:

 išteklius mydrbd {#tai C protokolo išteklių pavadinimas; paleidimas {wfc-timeout 180; degr-wfc-timeout 120;} # 180 sekundžių laukti verginio įrenginio, 120 sekundžių, jei jis neatsako, yra sugadintas ir lieka kaip antrinis diskas {on-io-error disach; } net {cram-hmac-alg "sha1"; Shared-secret "slaptas raktas";} #Šioje dalyje nurodytas raktas su sha1 šifravimu, šis raktas skirtas komunikacijai tarp dviejų mazgų. sinchronizatorius {rate 100M;} #sinchronizavimo greitis, nesvarbu, kad turime „Gigabit“ tinklo plokštę, ji neveikia esant 1000M, maksimalus rekomenduojamas greitis yra 100M (aš jį įdiegiau su 10M ir jis veikia puikiai, šiek tiek lėtai pirmoji sinchronizacija, bet tada nematote skirtumo) mazge1 {device / dev / drbd0; # čia mes nurodome, kuris įrenginys yra rezervuotas drbd, galime turėti kelis įrenginius skirtingiems duomenims arba įvairias paslaugas, pvz., SAMBA, MySQL, be kita ko, diskas / dev / md2; #patikslinkite skaidinį, kuris bus naudojamas drbd adresui 172.16.0.1:7788; # Mes nurodome IP, esantį už mūsų tinklo diapazono ribų, verta paminėti, kad tinklo kabelis turi būti prijungtas tiesiogiai tarp serverių, nepraeinant per jungiklį ar koncentratorių, jei jos yra naujausios modelio tinklo plokštės, kryžminis kabelis nėra būtinas. vidinis meta diskas; } mazge2 {# antrojo specifikacijos turi būti tokios pačios kaip ir pirmojo, keičiasi tik IP adresas, tai turi būti tas pats prievadas, nes jei turėsime 2 grupes kartu, jos prieštaraus ir neveiks jei norime turėti kelias grupes, rekomenduojama naudoti skirtingus prievadus, savaime suprantama, kad šie prievadai turi būti vienodi abiejuose mazguose. device / dev / drbd0; diskas / dev / md2; adresas 172.16.0.2:7788; vidinis meta diskas; }}

DIDELIS

5. Toliau pateikiama pagrindinio kompiuterio failo konfigūracijaTaip yra todėl, kad serverių būtų ieškoma per sinchronizavimo IP, o ne pagal vietinio tinklo IP, ir taip išvengtume konfliktų su paslaugomis:

 / etc / hosts 192.168.1.1 node1 #mazgo1 pavadinimas vietinio tinklo segmente 192.168.1.2 node2 #mazgo2 pavadinimas vietinio tinklo segmente 172.16.0.1 node1 #mazgo1 pavadinimas sinchronizavimo tinklo segmente 172.16.0.2 node2 #name iš mazgo2 sinchronizuojant tinklo segmentas

6. Inicializuojamas drbd saugojimo įrenginys

 [root @ node1 ~] drbdadm create-md disk1

7. Prasideda drbd paslauga arba deamon

 /etc/init.d/drbd start

8. Mazge, kuriame norime būti pagrindinis, vykdome šią komandą

 „drbdadm“-pirminio bendrojo disko duomenų perrašymas

9. Stebime abiejų mazgų sinchronizavimą
Tam mes vykdome:

 katė / proc / drbd
Atsakymas iš aukščiau pateiktos komandos yra maždaug toks:
 versija: 8.3.15 (api: 88 / proto: 86-97) GIT maiša: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c statyti pagal phil @ Build32R6, 2012-12-20 20:23:49 1: cs: SyncSource ro: Primary / Secondary ds: UpT / Nenuoseklus C rn- ns: 1060156 nr: 0 dw: 33260 dr: 1034352 al: 14 bm: 62 lo: 9 pe: 78 ua: 64 ap: 0 ep: 1 wo: f oos: 31424 [===== =============>.] sinchronizuotas: 97,3% (31424/1048508) K finišas: 0:00:01 greitis: 21,240 (15,644) K / sek. sinchronizavimas pasiekia 97,3% ir nurodoma, kad tai yra pagrindinis mazgas, o antrinis mazgas atrodo nenuoseklus, nes sinchronizavimas dar nebaigtas. #Kai baigsime, mes vėl paleidžiame katę / proc / drbd ir turime: versija: 8.3.15 (api: 88 / proto: 86-97) GIT-maiša: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c, pastatytas pagal phil @ Build32R6, 2012-12-20 20: 23: 49 1: cs: prijungtas ro: pirminis / antrinis ds: UpToDate / UpToDate C r- ns: 1081628 nr: 0 dw: 33260 dr: 1048752 al: 14 bm: 64 lo: 0 pe: 0 ua: 0 ap: 0 ep: 1 wo: f oos: 0 # Grąžinę UpToDate pranešimą, žinome, kad sinchronizavimas baigtas ir drbd skaidiniai yra lygiai tokie patys.

10. Kitas dalykas - formatuoti mūsų įrenginį drbdTam mes vykdome:

 mkfs.ext3 / dev / drbd1
Aš naudoju ext3, nes tai suteikė man gerą stabilumą, bet mes taip pat galėtume naudoti ext4, nerekomenduoju naudoti jokio tipo skaidinių žemiau ext3.

Iki šiol mes jau galime rankiniu būdu prijungti / dev / drbd1 skaidinį bet kurioje sistemos prijungimo vietoje, mano atveju aš naudoju / home montavimui, nes kiekvienas iš abiejuose mazguose registruotų vartotojų turi savo katalogus tinklalapiams, todėl Aš bėgu:

 mount -t ext3 / dev / drbd1 / home
Ir aš pradedu kurti naudotojus duomenų replikacijai abiejuose serveriuose, toliau širdies plakimo įrengimas, programa, naudojama stebėti serverius tarpusavyje ir kas bus atsakingas už atitinkamų pakeitimų atlikimą, jei pirminis dėl kokių nors priežasčių nukris ir pakeis antrinį į pagrindinį, kad užtikrintų sistemos funkcionalumą.

širdies plakimo įrengimas reikia atlikti tik šiuos veiksmus. Saugykla yra įdiegta atsisiųsti naudojant šią komandą:

 rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Redaguoti failą:
 epel.repo /etc/yum.repos.d/epel.repo 
pakeisti eilutę # 6 „Įgalinti = 1 įjungus = 0“; galite naudoti vi arba nano redaktorius, kaip norite.
 [epel] name = Papildomi paketai, skirti „Enterprise Linux 6“ - $ basearch # baseurl = http: //download.fedoraproject.org/pub/epel/6/$basearch mirrorlist = http: //mirrors.fedoraproject.org/metalink? repo = epel -6 & arch = $ basearch failovermethod = prioritetas įjungtas = 0 # Tai eilutė, kurią turime redaguoti iki: Įdiegta: širdies plakimas .i686 0: 3.0.4-1.el6 Baigtas! 
Kai diegimo procesas bus baigtas, kitas dalykas, kurį reikia padaryti, yra redaguoti 3 pagrindinius failus, kad širdies plakimas veiktų; yra /etc/ha.d
  • authkeys
  • ha.cf
  • kiškiai

Mes atidarome failą authkeys su tokia komanda:

 vi /etc/ha.d/authkeys
Pridedamos šios eilutės:
 auth 1 1 sha1 klavišas, jungiantis širdies plakimus # Šioje eilutėje mes apibrėžiame, kuris bus raktas kiekvieno mazgo širdies dūžiams bendrauti tarpusavyje, jis gali būti toks pat, kaip naudojamas drbd, arba skirtingas.
Mes keičiame failų teises authkeys kad ją būtų galima skaityti tik iš šaknies:
 chmod 600 /etc/ha.d/authkeys
Dabar redaguojame antrąjį failą:
 vi /etc/ha.d/ha.cf
Pridedame šias eilutes:
 logfile / var / log / ha-log # sistemos žurnalas įjungtas būsimoms klaidoms logfacility local0 keepalive 2 deadtime 30 # sistema laukia 30 sekundžių, kad mazgas1 būtų paskelbtas neveikiančiu initdead 120 # sistema laukia 120 sekundžių, kol mazgas paleidžiamas laukia kito . „bcast eth0 #“ yra nurodyta „Ethernet“ kortelė, per kurią bus perduodamas ryšys tarp serverių, labai svarbu atkreipti dėmesį, nes čia mes apibrėžiame, kuri tinklo plokštė eina į vietinį tinklą ir į kurią nukreipti sinchronizavimą udpport 694 # nurodytas sinchronizavimo prievadas , kaip ir „drbd“, mes galime turėti kelis serverius, o kiekviena pora su atitinkamu prievadu apibrėžta „auto_failback“ išjungta #, pažymėdami jį kaip išjungtą, neleidžiame, kad pažeistas ir sugadintas mazgas1 grįžtų kaip pirminis arba bandytų grįžti, taip sukeldamas konfliktą su kitu mazgo mazgu # nurodome abiejų mazgų pavadinimus. 

DIDELIS

Norėdami baigti konfigūraciją, turime redaguoti kiškių išteklių failą naudodami komandą:

 vi /etc/ha.d/haresources
Pridėkite šias eilutes:
 node1 192.168.1.10/24/eth0 drbddisk :: mydrbd Filesystem ::/ dev/ drbd0 ::/ home :: ext3 #ši eilutė yra atsakinga už duomenų skaidinio montavimą mazge, nurodytame kaip pagrindinis mazgas1 192.168.1.10/24/ eth0 httpd #ši eilutė yra atsakinga už „apache“ paslaugos ar žiniatinklio serverio apibrėžimą link mazgo, nurodomo kaip pagrindinis

DIDELIS

3 failai turi būti nukopijuoti į mazgą2, ši komanda pasirūpins:

 scp -r /etc/ha.d/root@node2:/etc/
Failas turi būti redaguojamas httpd.conf kad jis klausytų užklausų iš virtualiojo ip, šiuo atveju 192.168.1.10:
 vi /etc/httpd/conf/httpd.conf
Linija pridedama arba modifikuojama Klausyk 192.168.1.10:80
Pakeistas failas nukopijuojamas į antrąjį serverį:
 scp /etc/httpd/conf/httpd.conf root @ node2: /etc /httpd /conf /
Pradedame širdies plakimo paslaugą abiejuose mazguose:
 /etc/init.d/heartbeat start
Dėl to mes turime paruoštą didelio prieinamumo serverį, tereikia įeiti į mūsų interneto naršyklę ir įdėti ip 192.168.1.10 arba įdiegti pasirinktą skydelį domeno administravimui ir sugeneruoti atitinkamus vartotojus pasiekti registruotus puslapius ar domenus serveryje.

Didelio prieinamumo serveris gali būti naudojamas, kaip jau minėta šios pamokos pradžioje, kaip: el. Pašto serveris, žiniatinklio serveris, duomenų bazės serveris, samba serveris tarp kitų; Be to, tai padeda mums išvengti informacijos praradimo dėl aparatūros gedimų, ir mes galime ją labiau sustiprinti atlikdami reidus disko įrenginiuose, tiek aparatine, tiek programine įranga, niekada nėra per daug disko turėti reide sistemos priežiūrai.

Tačiau didelio prieinamumo serveris nėra atleistas nuo problemų ar klaidų, kai mazgas yra sugedęs, galime eiti į širdies plakimo žurnalą ir pamatyti, kas nutiko, tai pasiekiama pasiekus failą, priskirtą kišeninių išteklių konfigūracijoje /etc/ha.d

Lygiai taip pat gali atsitikti taip, kad iš naujo paleidus abu serverius dėl kokių nors priežasčių jie neprasideda kaip pirminiai / antriniai ir prasideda kaip pirminiai / nežinomi ir nežinomi / antriniai.

DIDELIS

Norėdami tai išspręsti, turime atlikti šiuos veiksmus.

Į nukritusio mazgo apvalkalą įvedame:

 drbdadm antrinis šaltinis
Vėliau:
 drbdadm atjungti išteklius
Ir tada:
 drbdadm---discard-my-data connect išteklius
Galiausiai, išlikusiame mazge arba pirminiame įvedame:
 „drbdadm connect“ išteklius
Dabar jis pradės mazgų sinchronizavimą iš išlikusio mazgo į nukritusį mazgą, kuris prasidės iškart paspaudus klavišą "Įeiti" instrukcijoje 4.

Tai, kas čia įvyko, yra žinoma kaip a Skaldytos smegenys, taip atsitinka, kai dėl kokių nors priežasčių pirminis mazgas sugenda ir yra pablogėjęs, kai tai atsitiks, labai rekomenduojama nuodugniai peržiūrėti ir išanalizuoti nukritusį mazgą ir prieš vėl įtraukiant jį į grupę, kad būtų išspręsta bet kokia esama problema. būtina iš naujo įdiegti visą šio mazgo operacinę sistemą ir be jokių problemų ją įtraukti į grupę kaip antrinį sinchronizavimui ir, jei būtų, sinchronizavus, pakeiskite ją į pagrindinę.

Galiausiai norėčiau pabrėžti ,. reguliariai peržiūrėti klasterio būklęMes gerai žinome, kad norint pasiekti aukštą našumą, visada gerai būti vienu žingsniu priekyje kompiuterinių nelaimių; Kadangi, kaip IT personalas, atsakomybė rūpintis įmonės ar įmonių, kurioms priklausome, duomenimis tenka mums, kaip papildoma pastaba, manau, kad verta rekomenduoti visada turėti atsarginę kopiją mazguose ir taip garantuojamas informacijos saugumas.

Įdiekite ir sukonfigūruokite „Ubuntu Server“

Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave