Si të konfiguroni disponueshmërinë e lartë Nginx me Pacemaker, Corosync dhe Crmsh në Ubuntu 16.04
Në këtë tutorial, unë do t'ju tregoj hap pas hapi se si të krijoni një server të uebit Nginx të grupuar me disponueshmëri të lartë me Pacemaker, Corosync dhe Crmsh. Ne do të krijojmë një server në internet Cluster-Pasiv ose Failover-Cluster Nginx duke përdorur Pacemaker në Ubuntu 16.04.
Pacemaker është një softuer i menaxhimit të grupeve me burim të hapur që arrin disponueshmërinë maksimale të lartë të shërbimeve tuaja. Është një menaxher i avancuar dhe i shkallëzuar i grupeve HA i zhvilluar nga ClusterLabs që nga viti 2007.
The Corosync Cluster Engine është një projekt me burim të hapur që rrjedh nga projekti OpenAIS në 2008 dhe i lëshuar nën licencën BSD. Është një sistem komunikimi në grup me veçori shtesë për zbatimin e Disponueshmërisë së Lartë brenda aplikacioneve.
Ekzistojnë disa aplikacione të disponueshme për ndërfaqen Pacemaker dhe Crmsh është një prej tyre. Është një ndërfaqe e linjës së komandës së stimuluesit kardiak për të menaxhuar grupin e disponueshmërisë së lartë të stimuluesit kardiak. Crmsh është shkruar në python. Ne mund të krijojmë, konfigurojmë dhe zgjidhim problemet e stivës së stimuluesit HA me mjetin e linjës së komandës Crmsh.
Kushtet paraprake
- Tre serverë Ubuntu 16.04
- web01 10.0.15.11
- web02 10.0.15.12
- web03 10.0.15.13
Çfarë do të bëjmë?
- Hartëzimi i skedarit të hosteve.
- Instaloni dhe konfiguroni Nginx.
- Instaloni Pacemaker, Corosync dhe Crmsh.
- Konfiguro tastin Corosync.
- Filloni të gjitha shërbimet.
- Krijoni dhe konfiguroni një grup.
- Testimi.
Hapi 1 - Hartimi i skedarit të hosteve
Shënim:
Ekzekutoni hapin 1 - 3 në të tre serverët web01, web02, web03.Në këtë tutorial, unë do të përdor 3 serverë Ubuntu 16.04 dhe secili prej tyre ka një emër unik pritës: web01, web02 dhe web03. Çdo server mund të lidhet me serverët e tjerë me emrin e hostit të serverit.
Për ta arritur këtë, modifikoni skedarin/etc/hosts në të gjithë serverët me vim.
vim /etc/hosts
Ngjitni konfigurimin /etc/hosts më poshtë.
10.0.15.11 web01
10.0.15.12 web02
10.0.15.13 web03
10.0.15.15 ha-web.coRuani skedarin dhe dilni nga vim.
Më pas, testoni të gjithë serverët duke pinguar serverët e tjerë përmes çdo emri të hostit.
ping -c 3 web01
ping -c 3 web02
ping -c 3 web03Hapi 2 - Instaloni dhe konfiguroni Nginx
Tani fillojmë të krijojmë konfigurimin e disponueshmërisë së lartë të serverit të internetit Nginx duke krijuar grupin Failover me Pacemaker. Së pari duhet të instalojmë Nginx në secilën prej nyjeve të serverit.
Instaloni Nginx me komandën apt më poshtë.
apt install -y nginx
Kur të përfundojë instalimi, zëvendësoni faqen e paracaktuar të nginx me një faqe unike në secilin server duke ekzekutuar komandat më poshtë, në mënyrë që më vonë të mund të identifikojmë se cili server ka dorëzuar një faqe.
#Run Command on 'web01'
echo '<h1>web01 - hakase-labs</h1>' > /var/www/html/index.html
#Run Command on 'web02'
echo '<h1>web02 - hakase-labs</h1>' > /var/www/html/index.html
#Run Command on 'web03'
echo '<h1>web03 - hakase-labs</h1>' > /var/www/html/index.htmlTani ndaloni serverin në internet.
systemctl stop nginx
Instalimi dhe konfigurimi i Nginx ka përfunduar.
Hapi 3 - Instaloni Pacemaker, Corosync dhe Crmsh
Pacemaker është një aplikacion i menaxhimit të grupeve me burim të hapur. Corosync është një Cluster Engine për Pacemaker, dhe Crmsh është një mjet i bazuar në python për të menaxhuar një grup stimulues stimulues. Të gjitha këto aplikacione janë të disponueshme në depon e Uubuntu.
Instaloni Pacemaker, Corosync dhe crmsh me komandën apt më poshtë.
apt install -y pacemaker corosync crmsh
Pas instalimit, të gjitha këto shërbime funksionojnë automatikisht në sistem. Ndaloni ato me komandat systemctl më poshtë.
systemctl stop corosync
systemctl stop pacemakerËshtë instaluar grupi i softuerit që ofron disponueshmëri të lartë për Nginx.
Hapi 4 - Konfiguro Corosync
Shënim:
Ekzekutoni hapin 4 vetëm në serverin web01.Meqenëse nuk po përdornim pcsd për Ubuntu, ne duhet të konfigurojmë Corosync manualisht. Ne do të gjenerojmë çelësin Corosync për vërtetimin e grupit dhe do të krijojmë një skedar të ri konfigurimi Corosync në serverin web01, më pas do të kopjojmë çelësin dhe konfigurimin në serverët e tjerë web02 dhe web03.
Përpara se të gjenerojmë çelësin Corosync, duhet të instalojmë paketën e re haveged. Përdoret për marrjen e numrave më të mirë të rastit për gjenerimin e çelësave Corosync.
Instaloni haveged nga depoja me komandën apt.
apt install -y haveged
Tani krijoni një çelës të ri Corosync me komandën më poshtë.
corosync-keygen
Kur të përfundojë gjenerimi i çelësit, mund të shihni çelësin e ri të authkeys në drejtorinë /etc/corosync/.
ls -lah /etc/corosync/
Më pas, shkoni te drejtoria /etc/corosync dhe bëni kopje rezervë të skedarit të konfigurimit të paracaktuar corosync.conf.
cd /etc/corosync/
mv corosync.conf corosync.conf.bekupMë pas krijoni një skedar të ri konfigurimi corosync.conf me vim.
vim corosync.conf
Ngjitni konfigurimin më poshtë në atë skedar.
# Totem Protocol Configuration
totem {
version: 2
cluster_name: hakase-cluster
transport: udpu
# Interface configuration for Corosync
interface {
ringnumber: 0
bindnetaddr: 10.0.15.0
broadcast: yes
mcastport: 5407
}
}
# Nodelist - Server List
nodelist {
node {
ring0_addr: web01
}
node {
ring0_addr: web02
}
node {
ring0_addr: web03
}
}
# Quorum configuration
quorum {
provider: corosync_votequorum
}
# Corosync Log configuration
logging {
to_logfile: yes
logfile: /var/log/corosync/corosync.log
to_syslog: yes
timestamp: on
}
service {
name: pacemaker
ver: 0
}Ruani skedarin dhe dilni nga redaktori.
Më pas, kopjoni çelësin e vërtetimit dhe skedarin e konfigurimit nga serveri web01 në serverin web02 dhe web03.
scp /etc/corosync/* :/etc/corosync/
Kur gjithçka të ketë përfunduar, shkoni te serverët web02 dhe web03, më pas kontrolloni skedarët.
ssh
cd /etc/corosync/
ls -lahKonfigurimi i Corosync ka përfunduar.
Hapi 5 - Filloni të gjitha shërbimet e grupimit
Shënim:
Ekzekutoni hapin 5 në të gjithë serverët.Nisni grumbullin e softuerit të grupit HA, stimuluesin kardiak dhe korosinkronizimin, në të gjithë serverët. Pastaj aktivizoni që të fillojë automatikisht në kohën e nisjes.
Nisni Corosync dhe shtoni atë për të filluar automatikisht në nisje.
systemctl start corosync
systemctl enable corosyncTani nisni stimuluesin kardiak dhe aktivizoni që të fillojë në nisje.
systemctl start pacemaker
update-rc.d pacemaker defaults 20 01
systemctl enable pacemakerTë gjitha shërbimet janë nisur, kontrolloni të gjitha nyjet dhe sigurohuni që statusi i serverit të jetë Online në të gjitha.
crm status
Ose mund të kontrolloni statusin duke kontrolluar anëtarët e Corosync me komandën corosync-cmapctl më poshtë.
corosync-cmapctl | grep members
Do të shihni të gjitha adresat IP të serverit.
Hapi 6 - Krijoni dhe konfiguroni grupin
SHËNIM:
Ekzekutoni hapin 6 vetëm në serverin web01Në këtë hap, ne do të konfigurojmë grupin Nginx Active-Passive duke përdorur veglën e linjës së komandës crmsh. Meqenëse nuk përdorim një pajisje STONITH, duam të çaktivizojmë STONITH dhe të injorojmë politikën e Kuorumit në grupin tonë.
Ekzekutoni komandat crm më poshtë për të çaktivizuar STONITH dhe Injoroni politikën e Kuorumit.
crm configure property stonith-enabled=false
crm configure property no-quorum-policy=ignoreTani kontrolloni statusin e STONITH dhe politikën e kuorumit me komandën crm më poshtë.
crm configure show
Do ta shihni rezultatin si më poshtë.
Më pas, ne duhet të krijojmë disa burime të reja për grupin. Pacemaker mbështet llojet e mëposhtme të agjentëve të burimeve (RA).
- LSB (Linux Standard Based) - Ofrohet nga distribucioni Linux. p.sh.: /etc/init.d/skripti i shërbimit.
- OCF (Open Cluster Framework) - Një grup mjetesh për llogaritjen e grupeve. Projekti është pjesë e Fondacionit Linux.
Për serverin tonë të internetit Nginx HA, duhet të krijojmë dy burime OCF: virtual_ip për IP-në lundruese dhe serverin në internet për shërbimin nginx.
Krijo një burim të ri virtual_ip për konfigurimin e IP-së lundruese me komandën crm më poshtë.
sudo crm configure primitive virtual_ip \
ocf:heartbeat:IPaddr2 params ip="10.0.15.15" \
cidr_netmask="32" op monitor interval="10s" \
meta migration-threshold="10"Dhe për uebserverin nginx, krijoni burimin me komandën më poshtë.
sudo crm configure primitive webserver \
ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf \
op start timeout="40s" interval="0" \
op stop timeout="60s" interval="0" \
op monitor interval="10s" timeout="60s" \
meta migration-threshold="10"Kur kjo të bëhet, kontrolloni burimet e reja virtual_ip dhe serverin në internet me komandën më poshtë. Sigurohuni që të gjitha burimet të kenë statusin e nisur.
crm resource status
Së fundi, duhet të shtojmë një grup për konfigurimin e ri të shërbimit IP Failover. Ne duam të migrojmë shërbimin Nginx në një burim webserver me një IP lundrues në një burim virtual_ip.
Ne krijuam tashmë IP-në Floating dhe Shërbimin, tani shtoni ato burime në një grup të ri të quajtur hakase_balancing me komandën më poshtë. Ju mund të zgjidhni emrin e grupit tuaj natyrisht këtu, thjesht sigurohuni që ta zëvendësoni emrin kudo që të përdoret.
sudo crm configure group hakase_balancing virtual_ip webserver
Është përcaktuar një grup i ri burimesh me emrin hakase_balancing. Mund ta kontrolloni me komandën e mëposhtme.
crm resource show
Ju do të merrni një grup të quajtur hakase_balancing me anëtarë virtual_ip dhe burime të serverit në internet.
Konfigurimi i grupit ka përfunduar.
Hapi 7 - Testimi
Testimi i statusit të nyjës dhe statusit të grupimit.
crm status
Weve 3 nyje me status Online.
Ne kemi një grup burimesh të quajtur hakase_balancing, dhe tani funksionon në nyjen web01.
Testimi i serverit të internetit Nginx nga një shfletues në internet. Vizitoni adresën IP lundruese, emri i serverit tim të testimit është - ha-web.co. Përdorni emrin që keni zgjedhur për serverin tuaj këtu.
Të gjitha burimet janë në web01 node.
Testimi i grupit aktiv-pasiv ose i dështimit
Ndaloni grupin në serverin web01 duke ekzekutuar komandën më poshtë në nyjen web01.
crm cluster stop
Do të merrni rezultatin INFO: Shërbimet e grupit u ndaluan.
Tani identifikohuni në nyjen web02 dhe kontrolloni statusin e grupit.
crm status
Tani ju merrni rezultatin që nyja web01 është Offline dhe burimet e virtual_ip dhe serverit të uebit kalojnë në nyjen web02.Kur të vizitoni përsëri IP-në lundruese ha-web.co, do të merrni faqen web02.
Disponueshmëria e lartë Nginx me Pacemaker, Corosync dhe Crmsh në Ubuntu 16.04 është instaluar dhe testuar me sukses.
Referenca
- http://linuxlasse.net/linux/howtos/Pacemaker_and_Corosync_HA_-_2_Node_setup