![8 Open Source/Komercijalne platforme za naplatu za pružatelje usluga hostinga](/f/2a12023f2b15d3f1222cbdd745cff3e1.png?width=100&height=100)
Visoka dostupnost (HA) jednostavno se odnosi na kvalitetu sustava za neprekidan rad bez greške tijekom duljeg vremenskog razdoblja. HA rješenja mogu se implementirati pomoću hardvera i/ili softvera, a jedno od uobičajenih rješenja za implementaciju HA je klasteriranje.
U računarstvu se klaster sastoji od dva ili više računala (općenito poznata kao čvorova ili članovi) koji zajedno rade na izvršavanju zadatka. U takvom postavljanju samo jedan čvor pruža uslugu sa sekundarnim čvorovima koji preuzimaju ako ne uspije.
Grupe se dijele na četiri glavne vrste:
Još jedno široko korišteno rješenje za pružanje usluga HA je replikacija (posebno replikacije podataka). Replikacija je postupak kojim se jedna ili više (sekundarnih) baza podataka može sinkronizirati s jednom primarnom (ili glavnom) bazom podataka.
Za postavljanje klastera potrebna su nam najmanje dva poslužitelja. Za potrebe ovog vodiča koristit ćemo dva Linux poslužitelja:
U ovom članku pokazat ćemo osnove kako implementirati, konfigurirati i održavati visoku dostupnost/grupiranje u Ubuntu 16.04/18.04 i CentOS 7. Pokazat ćemo kako dodati Nginx HTTP uslugu u klaster.
Kako bi dva poslužitelja međusobno komunicirala, moramo konfigurirati odgovarajuće lokalne DNS postavke u /etc/hosts datoteku na oba poslužitelja.
Otvorite i uredite datoteku koristeći svoj omiljeni uređivač naredbenog retka.
$ sudo vim /etc /hosts
Dodajte sljedeće unose sa stvarnim IP adresama vaših poslužitelja.
192.168.10.10 node1.example.com. 192.168.10.11 node2.example.com.
Spremite promjene i zatvorite datoteku.
Sada instalirajte Nginx web poslužitelj pomoću sljedećih naredbi.
$ sudo apt install nginx [Na Ubuntuu] $ sudo yum install epel-release && sudo yum install nginx [Na CentOS 7]
Nakon dovršetka instalacije pokrenite uslugu Nginx za sada i omogućite joj automatsko pokretanje u vrijeme pokretanja, a zatim provjerite radi li i pomoću naredbe systemctl.
Na Ubuntuu uslugu bi trebalo pokrenuti automatski odmah nakon dovršetka predkonfiguracije paketa, jednostavno je možete omogućiti.
$ sudo systemctl omogući nginx. $ sudo systemctl pokreće nginx. $ sudo systemctl status nginx.
Nakon pokretanja usluge Nginx, moramo stvoriti prilagođene web stranice za identificiranje i testiranje operacija na oba poslužitelja. Promijenit ćemo sadržaj zadane stranice Nginx indeksa kako je prikazano.
$ echo "Ovo je zadana stranica za node1.example.com" | sudo tee /usr/share/nginx/html/index.html #VPS1. $ echo "Ovo je zadana stranica za node2.example.com" | sudo tee /usr/share/nginx/html/index.html #VPS2.
Zatim moramo instalirati Pejsmejker, Corosync, i Kom na svakom čvoru kako slijedi.
$ sudo apt install corosync pacemaker pcs #Ubuntu $ sudo yum install corosync pacemaker pcs #CentOS
Nakon što je instalacija dovršena, provjerite da li je tako kom daemon radi na oba poslužitelja.
$ sudo systemctl omogući pcsd. $ sudo systemctl start pcsd. $ sudo systemctl status pcsd.
Tijekom instalacije pozvao je korisnik sustava “Hacluster” je stvoren. Stoga moramo postaviti potrebnu provjeru autentičnosti kom. Počnimo stvaranjem nove lozinke za “Hacluster” korisniče, moramo koristiti istu lozinku na svim poslužiteljima:
$ sudo passwd hacluster.
Zatim na jednom od poslužitelja (Node1) pokrenite sljedeću naredbu za postavljanje potrebne provjere autentičnosti kom.
$ sudo pcs cluster auth node1.example.com node2.example.com -u hacluster -p lozinka_ovdje --force.
Sada stvorite klaster i napunite ga nekim čvorovima (naziv klastera ne može prelaziti 15 znakova, u ovom primjeru smo koristili primjer klastera) na poslužitelju Node1.
$ sudo pcs postavljanje klastera -naziv primjerklaster čvor1.example.com node2.example.com
Sada omogućite klaster pri pokretanju i pokrenite uslugu.
$ sudo pcs cluster enable --all. $ sudo pcs cluster start --all.
Sada provjerite radi li usluga klastera pomoću sljedeće naredbe.
$ sudo pcs status. ILI. $ sudo crm_mon -1.
Iz izlaza gornje naredbe možete vidjeti da postoji upozorenje o br STONIT uređaji još STONIT je još uvijek omogućen u klasteru. Osim toga, nisu konfigurirani resursi/usluge klastera.
Prva je mogućnost onemogućiti STONIT (ili Pucajte u drugi čvor u glavu), implementacija ograde uključena Pejsmejker.
Ova komponenta štiti vaše podatke od oštećenja istodobnim pristupom. U svrhu ovog vodiča onemogućit ćemo ga jer nismo konfigurirali nijedan uređaj.
Isključiti STONIT, pokrenite sljedeću naredbu:
$ sudo pcs set svojstava stonith-enabled = false.
Zatim, također zanemarite Kvorum politike pokretanjem sljedeće naredbe:
$ sudo pcs set svojstava no-quorum-policy = ignore.
Nakon postavljanja gornjih opcija, pokrenite sljedeću naredbu da biste vidjeli popis svojstava i osigurali da gornje opcije, stonit i politika kvoruma su onemogućeni.
$ sudo popis nekretnina.
U ovom odjeljku ćemo pogledati kako dodati resurs klastera. Konfigurirat ćemo plutajući IP koji je IP adresa koja se može odmah premjestiti s jednog poslužitelja na drugi unutar iste mreže ili podatkovnog centra. Ukratko, plutajući IP je tehnički zajednički izraz, koji se koristi za IP -ove koji nisu vezani samo za jedno sučelje.
U ovom će se slučaju koristiti za podršku pri prebacivanju pri prebacivanju u klaster visoke dostupnosti. Imajte na umu da plutajući IP -ovi ne služe samo za prebacivanje u pogrešno stanje, već imaju i nekoliko drugih slučajeva uporabe. Moramo konfigurirati klaster na takav način da samo aktivni član klastera "posjeduje" ili odgovara na plutajući IP u bilo kojem trenutku.
Dodati ćemo dva resursa klastera: izvor plutajuće IP adrese pod nazivom „plutajući_ip”I resurs za web poslužitelj Nginx pod nazivom„http_server”.
Prvo počnite dodavanjem floating_ip na sljedeći način. U ovom primjeru naša plutajuća IP adresa je 192.168.10.20.
$ sudo pcs resurs kreira floating_ip ocf: heartbeat: IPaddr2 ip = 192.168.10.20 cidr_netmask = 24 op monitor monitor = 60s.
gdje:
Zatim dodajte drugi resurs, nazvan http_server. Ovdje je resursni agent usluge ocf: otkucaji srca: nginx.
$ sudo pcs resurs kreira http_server ocf: heartbeat: nginx configfile = "/etc/nginx/nginx.conf" op monitor timeout = "20s" interval = "60s"
Nakon što dodate usluge klastera, izdajte sljedeću naredbu za provjeru statusa resursa.
$ sudo pcs statusni resursi.
Gledajući izlaz naredbe, dva su dodatna resursa: "Plutajući_ip" i "Http_server" su navedene. Usluga floating_ip isključena je jer je primarni čvor u funkciji.
Ako imate uključen vatrozid na svom sustavu, morate omogućiti sav promet Nginx i sve usluge visoke dostupnosti kroz vatrozid za pravilnu komunikaciju između čvorova:
CentOS 7 $ sudo firewall-cmd --permanent --add-service = http. $ sudo firewall-cmd --permanent --add-service = visoka dostupnost $ sudo firewall-cmd --reload Ubuntu $ sudo ufw dopusti http $ sudo ufw dopusti visoku dostupnost $ sudo ufw ponovno učitavanje
Posljednji i važan korak je provjeriti radi li naša postavka visoke dostupnosti. Otvorite web preglednik i idite do adrese 192.168.10.20 trebali biste vidjeti zadanu stranicu Nginx iz node2.example.com kao što je prikazano na snimci zaslona.
Da biste simulirali kvar, pokrenite sljedeću naredbu da biste zaustavili klaster na node2.example.com.
$ sudo pcs klaster zaustavlja http_server.
Zatim ponovno učitajte stranicu na 192.168.10.20, sada biste trebali pristupiti zadanoj Nginx web stranici s node1.example.com.
Alternativno, možete simulirati pogrešku govoreći usluzi da se zaustavi izravno, bez zaustavljanja klastera na bilo kojem čvoru, pomoću sljedeće naredbe na jednom od čvorova:
$ sudo crm_resource --resource http_server --force-stop
Tada morate trčati crm_mon u interaktivnom načinu rada (zadano), unutar intervala monitora od 2 minute, trebali biste moći vidjeti obavijest klastera da http_server nije uspio i premjestiti ga na drugi čvor.
Za učinkovito funkcioniranje usluga klastera možda ćete morati postaviti neka ograničenja. Možete vidjeti kom man stranica (man pcs) za popis svih naredbi za upotrebu.
Za više informacija o Corosync -u i Pacemaker -u pogledajte: https://clusterlabs.org/
U ovom smo vodiču pokazali osnove načina implementacije, konfiguriranja i održavanja visoke dostupnosti/grupiranja/replikacije u Ubuntu 16.04/18.04 i CentOS 7. Pokazali smo kako dodati Nginx HTTP uslugu u klaster. Ako imate pitanja za podijeliti ili imate pitanja, upotrijebite donji obrazac za povratne informacije.