Installer Linux-server i klyngen med høy tilgjengelighet

{title}

Hvor mange ganger har vi krevd å ha tjenestene våre, eller rettere sagt, holde tjenestene våre alltid tilgjengelige, og hvor mange ganger har det skjedd med oss ​​at serverens harddisk er skadet og vi har ingen sikkerhetskopiering, vel, tenker jeg under disse omstendighetene, har jeg bestemt meg for å lage denne opplæringen for å sikre at serverne våre eller rettere sagt våre tjenester alltid er online .

Når jeg tar i betraktning at opplæringen er designet for avanserte mennesker i Linux, vil jeg ikke berøre problemer som installasjon av basesystemet som denne gangen vil bruke CentOS 6 64 biter i den siste oppdateringen. På samme måte vil jeg bare nevne hva som er strengt nødvendig for driften av klyngen (servere med høy tilgjengelighet).

Jeg kommenterer også at denne guiden er rettet mot behovet for å holde webtjenesten alltid aktiv, selv om jeg har brukt den med andre tjenester med suksess, tror jeg at som en start eller rettere sagt, som en igangsetting, er det enkleste å opprette en server nettklynge.

Uten videre, la oss gå videre til det gode.

Systemkrav

1. RAM-minne 1 GB
2. Harddisk 80 GB
3. Celeron-prosessor
4. Partisjonsdata for klyngen (størrelsen du vil opprette)
5. CentOS 6-operativsystem (i den siste oppdateringen)

Hvis du oppfyller kravene, la oss starte installasjonen av Linux-klyngen .

Følgende er å installere DRBD for å synkronisere partisjonene på begge serverne, for dette er det nødvendig å utføre følgende instruksjoner i Shell :

1. Legg ELRepo til listen over systemdatabaser

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

2. Installer drbd-verktøy (Distribuerte replikerte blokkeringsenheter) og kmod-pakker

 [ -postbeskyttet ~] yum install -y kmod-drbd83 drbd83-utils 
(Personlig bruker jeg 8.3 siden 8.4 ga meg problemer med noen distribusjoner)

3. Drbd legges eller settes inn i systemkjernen

 [ postbeskyttet ~] modprobe drbd 

4. Ressursfilen for drbd må opprettes
Den ligger på /etc/drbd.d/mydrbd.res; mydrbd.res er navnet på filen, og dette kan endres av alle vi ønsker, så lenge vi beholder utvidelsen .res; denne filen skal opprettes på begge servere, eller, når filen er konfigurert riktig, kopieres den til den andre noden; konfigurasjonen vil være mer eller mindre følgende:

 resource mydrbd {# dette er navnet på ressursprotokollen C; oppstart {wfc-timeout 180; degr-wfc-timeout 120;} # 180 sekunders ventetid på slaveenheten, 120 sekunder, hvis den ikke svarer, forringes den og forblir som en sekundær disk {on-io-feil løsne; } net {cram-hmac-alg "sha1"; delt-hemmelig "hemmelig nøkkel";} # I denne delen er en nøkkel med sha1-kryptering spesifisert, denne nøkkelen er for kommunikasjon mellom de to nodene. synkroniser {rate 100M;} # synkhastighet, det spiller ingen rolle om vi har et Gigabit nettverkskort, det fungerer ikke på 1000M, den maksimale anbefalte hastigheten er 100M (jeg installerte den med 10M og den fungerer bra, den første synkroniseringen er litt treg, men etter at forskjellen ikke er sett) på node1 {device / dev / drbd0; # Her spesifiserer vi hvilken enhet som er reservert for drbd, vi kan ha flere enheter for forskjellige data, eller forskjellige tjenester, for eksempel SAMBA, MySQL, blant andre disk / dev / md2; # partisjonen som skal brukes for drbd-adresse 172.16.0.1:7788 er spesifisert; # Vi spesifiserer en IP utenfor rekkevidden til vårt nettverk, det skal nevnes at nettverkskabelen må kobles direkte mellom servere, uten å gå gjennom en bryter eller hub, hvis de er nylige nettverkskort, er det ikke nødvendig med en crossover-kabel. meta-disk intern; } på node2 {# spesifikasjonene til det andre må være de samme som de første, bare endre ip-adressen, det må være den samme porten, dette er fordi hvis vi har 2 klynger sammen, vil de komme i konflikt og vil ikke fungere korrekt, hvis vi ønsker å ha flere klynger, anbefales det å bruke flere porter, det er verdt å nevne at disse portene må være de samme i begge nodene. enhet / dev / drbd0; disk / dev / md2; adresse 172.16.0.2:7788; meta-disk intern; }} 

{title}

5. Følgende er konfigurasjonen av vertsfilen

Dette er slik at serverne blir søkt gjennom synkroniserings-ip og ikke det lokale nettverket ip og dermed unngå konflikter med tjenestene:

 / etc / hosts 192.168.1.1 node1 #navn på node1 i lokalt nettverkssegment 192.168.1.2 node2 #navn på node2 i lokalt nettverkssegment 172.16.0.1 node1 # navn på node1 i synkroniseringsnettverkssegment 172.16.0.2 node2 #navn av node2 i segmentet for synkroniseringsnettverk 

6. Lagringsenheten for drbd er initialisert

 [ postbeskyttet ~] drbdadm create-md disk1 

7. Drbd-tjeneste eller deamon starter

 /etc/init.d/drbd start 

8. På noden som vi vil være den primære, utfører vi følgende kommando

 drbdadm - –skrive-data-of-peer primær disk1 

9. Vi overvåker synkroniseringen av begge nodene
For dette utfører vi:

 katt / proc / drbd 
Svaret fra forrige kommando er noe som følgende:
 versjon: 8.3.15 (api: 88 / proto: 86-97) GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build av, 2012-12-20 20:23:49 1: cs: SyncSource ro: Primary / Secondary ds: UpToDate / Inkonsekvent C r - 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 [== ================>.] synkronisert: 97, 3% (31424/1048508) K-finish: 0:00:01 hastighet: 21, 240 (15, 644) K / sek # Her kan vi se at synkroniseringen går til 97, 3% og det er spesifisert at dette er den primære noden og den sekundære vises som inkonsekvent siden synkroniseringen ikke er fullført ennå. #Når ferdig, kjører vi igjen cat / proc / drbd og vi har følgende: versjon: 8.3.15 (api: 88 / proto: 86-97) GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build av, 2012-12-20 20:23:49 1: cs: Tilkoblet ro: Primær / sekundær 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 # Når vi returnerer UpToDate-meldingen, er vi klar over at synkroniseringen er fullført og drbd-partisjonene er nøyaktig de samme. 

$config[ads_text5] not found

10. Følgende er å formatere drbd-enheten vår

For det utfører vi:

 mkfs.ext3 / dev / drbd1 
Jeg bruker ext3 fordi det har gitt meg god stabilitet, men vi kan også bruke ext4, jeg anbefaler ikke å bruke noen partisjon under ext3.

Til nå er vi allerede i stand til manuelt å montere / dev / drbd1-partisjonen på ethvert systemmonteringspunkt, i mitt tilfelle bruker jeg / home for montering siden hver av brukerne som er registrert i begge noder har sine egne kataloger for websider, derfor utfører jeg:

 montere –t ext3 / dev / drbd1 / home 
Og jeg begynner å lage brukere for replikering av data på begge servere, det følgende er installasjon av hjerteslag, applikasjon som brukes til å overvåke serverne og hvem som vil være ansvarlig for å gjøre de nødvendige endringene hvis primæren faller av en eller annen grunn og konverterer sekundær i primær for å sikre funksjonaliteten til systemet.

For installasjon av hjerteslag, er det bare følgende trinn som skal følges. Oppbevaringsstedet for nedlasting er installert med følgende kommando:

 rpm –ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 
Rediger filen:
 epel.repo /etc/yum.repos.d/epel.repo 
endre linje # 6 'enable = 1 to enable = 0'; Du kan bruke vi- eller nano-redaktører, etter ønske.
 [epel] name = Ekstra pakker for 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 = prioritering aktivert = 0 # Dette er linjen som vi må redigere Installer hjerteslag med følgende kommando: yum –enablerepo = epel installere hjerteslag Når installasjonen er ferdig vil den fortelle oss noe som ligner på: Installert: hjerteslag .i686 0: 3.0.4-1.el6 komplett! 
Når installasjonsprosessen er fullført, er følgende å redigere de 3 essensielle filene for drift av hjerteslag; lokalisert i /etc/ha.d
  • authkeys
  • ha.cf
  • haresources

Vi åpner autorisasjonsfilen med følgende kommando:

 vi /etc/ha.d/authkeys 
Følgende linjer er lagt til:
 autor 1 1 sha1 claveparaconexionentreheartbeats # I denne linjen definerer vi hva som vil være nøkkelen til å kommunisere med hverandre hjerteslaget til hver node, det kan være det samme som det som brukes i drbd eller annerledes. 
Vi endrer tillatelsene til autorisasjonsfilen slik at den bare kan leses av roten:
 chmod 600 /etc/ha.d/authkeys 
Nå redigerer vi den andre filen:
 vi /etc/ha.d/ha.cf 
Vi legger til følgende linjer:
 logfile / var / log / ha-log # system log er aktivert for fremtidige feil lokale logfacility 0 keepalive 2 deadtime 30 # System venter 30 sekunder for å erklære node1 som inoperable initdead 120 # System venter 120 sekunder ved nodeoppstart Å vente på den andre. bcast eth0 # Ethernet-kortet er spesifisert av hvilken kommunikasjon mellom servere som skal overføres, det er veldig viktig å være oppmerksom, siden vi her definerer hvilket nettverkskort som skal til det lokale nettverket og hvilken til direkte synkronisering udpport 694 # synkroniseringsporten er spesifisert, som i drbd kan vi ha flere servere og hvert par med sin respektive port definert auto_failback av # ved å merke det av, vi forhindrer at node1 en gang skadet og degradert skal returnere som primær eller prøve å returnere og dermed komme i konflikt med en annen node node node1 node2 # Vi spesifiserer navnene på begge nodene. 

{title}

For å fullføre konfigurasjonen, må vi redigere haresources-filen med kommandoen:

 vi /etc/ha.d/haresources 
Legg til følgende linjer:
 node1 192.168.1.10/24/eth0 drbddisk :: mydrbd Filesystem :: / dev / drbd0 :: / home :: ext3 # denne linjen er ansvarlig for å montere datapartisjonen på noden referert til som primær node1 192.168.1.10/24/ eth0 httpd # denne linjen er ansvarlig for å definere apache-tjenesten eller webserveren til den refererte noden som primær 

{title}

De tre filene må kopieres til node2, følgende kommando vil ta vare på dem:

 scp -r /etc/ha.d/ postbeskyttet : / etc / 
Httpd.conf- filen må redigeres for å lytte til virtuelle ip-forespørsler, i dette tilfellet 192.168.1.10:
 vi /etc/httpd/conf/httpd.conf 
Linjen Listen 192.168.1.10:80 er lagt til eller endret
Den endrede filen kopieres til den andre serveren:
 scp /etc/httpd/conf/httpd.conf postbeskyttet : / etc / httpd / conf / 
Vi starter hjerteslagstjenesten på begge noder:
 /etc/init.d/hjerteslag start 
Med dette har vi klar vår server med høy tilgjengelighet, det er bare et spørsmål om å gå inn i nettleseren vår og sette ip 192.168.1.10 eller installere et panel du ønsker for domeneadministrasjon og generere de tilsvarende brukerne for tilgang til sider eller domener registrert på serveren.

$config[ads_text5] not found

Serveren med høy tilgjengelighet kan brukes som jeg allerede hadde nevnt i begynnelsen av denne opplæringen som: e-postserver, webserver, databaseserver , samba server blant andre; På samme måte hjelper det oss å forhindre tap av informasjon på grunn av maskinvarefeil, og vi kan forsterke det mer med raid i diskstasjonene, verken av maskinvare eller programvare. Det er aldri mulig å ha raidskiver for å vedlikeholde systemet.

Imidlertid er serveren med høy tilgjengelighet ikke uten problemer eller feil, når en node blir degradert kan vi gå til hjerteslagloggen for å se hva som skjedde, dette oppnås ved å få tilgang til filen som er tilordnet i haresources-konfigurasjonen i / etc / ha.d

$config[ads_text6] not found

På samme måte kan det skje at når du starter på nytt av begge serverne av en eller annen grunn, begynner de ikke som primær / sekundær og starter som primær / uvitende og uvitende / sekundær.

$config[ads_text5] not found

{title}

For å løse dette må vi følge trinnene nedenfor.

I Shell of the drop node skriver vi inn:

 drbdadm sekundær ressurs 
senere:
 drbdadm koble fra ressursen 
Og så:
 drbdadm - - diskort-min-data koble ressurs 
Til slutt, i den overlevende noden, eller primær, skriver vi inn:
 drbdadm koble ressurs 
Nå starter du resynkroniseringen av nodene fra den overlevende noden til den droppet noden, og starter umiddelbart med å trykke "Enter" -tasten i instruksjon 4.

Det som skjedde her er kjent som en splittet hjerne, dette skjer når den primære noden av en eller annen grunn mislykkes og blir forringet, når dette først skjer, anbefales det på det sterkeste å gjennomgå og analysere den droppet noden i dybden, og før den gjeninnføres i klyngen. ethvert eksisterende problem, kan det også være nødvendig å installere hele operativsystemet til denne noden, og uten problemer innlemme det i klyngen som sekundær for synkronisering, og om nødvendig, når synkroniseres, endre den til primær.

$config[ads_text6] not found

Til slutt vil jeg legge litt vekt på den periodiske gjennomgangen av helsa til klyngen, som vi godt vet er for høy ytelse, det er alltid godt å være et skritt foran datakatastrofer; Siden det som IT-personell faller på oss ansvaret for å ta vare på dataene til selskapet eller selskapene vi tilhører, som en tilleggsnotat, tror jeg det ikke anbefales å alltid ha en sikkerhetskopi i en alternativ enhet til nodene og dermed ha informasjonssikkerhet garantert.

Installer og konfigurer Ubuntu Server

  • 0