linux high availability cluster - kurakin · pranešimas “kodėl aš skaitau pranešimus?”: -...
TRANSCRIPT
![Page 1: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/1.jpg)
Linux High Availability Cluster
Pacemaker ir Corosync
Sergej Kurakin
![Page 2: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/2.jpg)
Sergej KurakinAmžius: 36
Dirbu: NFQ Technologies
Pareigos: Programuotojas
![Page 3: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/3.jpg)
NFQ Offline Day 2015 (2015-09-04)Pranešimas “Kodėl aš skaitau pranešimus?”:
- Pasidalinkime savo eksperimentais.
![Page 4: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/4.jpg)
Manau, jau atėjo laikas papasakoti apie vieną.
![Page 5: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/5.jpg)
Bet tai tik eksperimentas, labiau teorinis, kurio nesu pritaikęs realiam projekte.
![Page 6: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/6.jpg)
2007 - 2012Dirbau prie vieno didesnio projekto.
Ne viskas veikė puikiai.
Ne viskas buvo automatizuota.
Daugiausiai problemų kildavo su “failover” sprendimais.
![Page 7: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/7.jpg)
SituacijaTruputį “legacy” projektas.
Mes negalime keisti DNS įrašų.
Mes negalime migruoti į “Cloud”.
Yra limituotas kiekis techninės įrangos resursų.
Esant reikalui techninė įranga per tam tikrą laiką gali būti nupirkta, sumontuota ir pajungta.
![Page 8: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/8.jpg)
![Page 9: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/9.jpg)
Prieš 4+ metusJau dirbant prie kitų projektų kitoje vietoje aš radau laiko ir noro kažką išbandyti.
https://twitter.com/zaza_lt/status/287636375992422400
![Page 10: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/10.jpg)
CentOS + Linux-HA
![Page 11: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/11.jpg)
Tikslas: rasti sprendimą, kuris leis RHEL/CentOS OS pagrindu užtikrinti “High Availability” NGINX serveriui.
![Page 12: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/12.jpg)
Bet pradėkime nuo pradžių.
![Page 13: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/13.jpg)
Kas gali sulūžti?Tinklo šakotuvas (Switch)
Tinklo laidas
Tinklo korta (NIC)
Maitinimo šakotuvas (PDU)
Maitinimo blokas (PSU)
Maitinimo laidas
Diskas
Pagrindinė plokštė (Main board / Motherboard)
Diskų valdiklis
Ventiliatoriai
Atmintis (RAM)
Mikroprocesoriai (CPU)
Kiti specifiniai komponentai
![Page 14: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/14.jpg)
Kas yra “High Availability”?Sistemos savybė, kurios pagalba siekiama užtikrinti sutartą eksploatacinių savybių lygį.
Dažniausiai siekiama užtikrinti didesnį nenutrūkstamą sistemos veikimo laiką negu įprastai.
![Page 15: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/15.jpg)
Klasika be kurios nebūna HA prezentacijų
99% 3.65 dienas
99.9% 9 valandas
99.99% 52 minutes
99.999% 5 minutes
99.9999% 30 sekundžių
![Page 16: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/16.jpg)
Nenutrūkstamas sistemos veikimasĮjungtas serveris?
Veikianti operacinė sistema?
Atsakimas į “ping”?
Tam tikro TCP/UDP porto veikimas?
Tam tikro URL atidarymas?
Tam tikro funkcionalumo veikimo užtikrinimas?
![Page 17: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/17.jpg)
Nustatyti silpniausias sistemos dalisKas gali lūžti?
Ar sustos veikti visa sistema?
Ar nustos veikti svarbus sistemos funkcionalumas?
Nustatyti “Single Point of Failure”.
![Page 18: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/18.jpg)
Kas yra tas “Cluster”?Tai grupė kompiuterių, sujungtų tinklu, skirtų atlikti tą pačią funkciją ar užduotį.
Dažniausiai “iš išorės” jie atrodo kaip vienas kompiuteris.
![Page 19: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/19.jpg)
Image from https://en.wikipedia.org/wiki/High-availability_cluster
![Page 20: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/20.jpg)
Linux HA Cluster komponentai● Shared storage● Different networks● Bonded network devices● Multipathing● Fencing/STONITH
![Page 21: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/21.jpg)
Programinė įrangaCluster membership layer
corosync
cman
heartbeat
openais
Resource manager
pacemaker
![Page 22: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/22.jpg)
Pacemaker vidiniai komponentaiCIB - Cluster Information Base
crmd - Cluster resource manager daemon
pengine - Policy engine
lrmd - Local resource manager daemon
stonithd/fenced
![Page 23: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/23.jpg)
“Cluster” veikimo režimaiActive / Active
Active / Passive
N+1
N+M
N-to-1
N-to-N
![Page 24: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/24.jpg)
Kokie yra “resource agent”?Filesystem
IPaddr2
ProFTPd / proftpd
SphinxSearchDaemon
apache
mysql
mysql-proxy
nfsserver
nginx
pgsql
postfix
rabbitmq-cluster
redis
Jų yra žymiai daugiau.
![Page 25: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/25.jpg)
STONITH (Shoot The Other Node In The Head)Neveikiančio serverio izoliavimas, siekiant apsaugoti “Cluster” nuo jo neigiamo poveikio.
Dažniausiai tai išjungimas arba perkrovimas.
Įrankiai: IPMI, APC, DRAC, Virtualization Management, SSH, Meatware
![Page 26: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/26.jpg)
Tai yra pagrindiniai Linux High Availability Cluster dalis
![Page 27: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/27.jpg)
Diegimo principasĮ visus narius diegiama ir konfigūruojama reikalinga programinė įranga.
Į visus narius diegiamas ir konfigūruojamas “membership layer”.
Į visus narius narius diegiamas “resource manager”.
Viename iš narių konfigūruojami resursai per “resource manager”.
![Page 28: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/28.jpg)
Konfigūracinių failų valdymasKiekviename serveryje atskirai.Sunku suvaldyti, lengva suklysti. Automatizuoti sinchronizaciją?
“Shared storage”.Svarbu, kad netaptų SPOF.
![Page 29: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/29.jpg)
Tad grįžkime prie mano eksperimento.
![Page 30: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/30.jpg)
Sena sistema
![Page 31: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/31.jpg)
![Page 32: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/32.jpg)
Tai į ką aš taikiausi
![Page 33: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/33.jpg)
![Page 34: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/34.jpg)
Demo OneJei pavyks :-)
Mano pasirinktas ir sukurtas sprendimas turėtų perkelti IP į veikiantį serverį ir jame paleisti NGINX.
![Page 35: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/35.jpg)
Kas panaudotaVirtualBox
4 VM’ai viename “host-only” tinkle
Debian Jessie + Backports
Pacemaker + corosync
NGINX
PHP-FPM
![Page 36: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/36.jpg)
Demo TwoJei pavyks :-)
Mano pasirinktas ir sukurtas sprendimas turėtų perkelti IP į veikiantį serverį ir jame paleisti NFS Share.
![Page 37: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/37.jpg)
Kas panaudotaVirtualBox
2 VM’ai dvejuose “host-only” tinkluose
Debian Jessie + Backports
Pacemaker + corosync
DRBD
NFS
![Page 38: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/38.jpg)
Kas nepavykoNetwork bound - kažkaip neveikia man su VirtualBox.
NFS Cluster nevisada teisingai daro “failover”.
![Page 39: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/39.jpg)
TestavimasMigracijos ir resursų išjungimas
Staigus resurso išjungimas (pvz.: kill -9)
Elektros dingimas viename iš “node”
Tinklo sutrikimai
STONITH testai
![Page 40: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/40.jpg)
Daugiau įrangos != didesnis HANe, tai ne paradoksas!
Didesnis įrangos kiekis padidina reikiamas pastangas norint užtikrinti HA, nes atsiranda daugiau galimų trikčių vietų ir sudėtingėja įgyvendinimas.
![Page 41: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/41.jpg)
Manau, kad mano eksperimentas pavyko.
![Page 42: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/42.jpg)
IšvadosReikia labai gerai išmanyti programinę įrangą kuri keliama į “Cluster”.
Reikia labai gerai išmanyti “Cluster” programinę įrangą ir konfigūravimą.
Labai stipriai sudėtingėja projektų diegimas ir priežiūra.
Duomenų centras turi atitikti tam tikrus reikalavimus.
Techniniai įrangai (serveriai, tinklas) turi būti keliami specifiniai reikalavimai.
Prieš paleidimą reikia atlikti žymiai daugiau “Cluster” testavimo darbų.
Galbūt vertėjo naudoti RHEL/CentOS (Red Hat Cluster Suite), o ne Debian.
![Page 43: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/43.jpg)
Papildoma informacijahttps://en.wikipedia.org/wiki/High_availability
https://en.wikipedia.org/wiki/High-availability_cluster
https://wiki.debian.org/Debian-HA/ClustersFromScratch
http://www.linux-ha.org/wiki/Main_Page
http://clusterlabs.org/
https://ourobengr.com/ha/
![Page 44: Linux High Availability Cluster - Kurakin · Pranešimas “Kodėl aš skaitau pranešimus?”: - Pasidalinkime savo eksperimentais. Manau, jau atėjo laikas papasakoti apie vieną](https://reader033.vdocument.in/reader033/viewer/2022050216/5f61c819c1ef2336c3033cac/html5/thumbnails/44.jpg)
Knygos“Clusters from Scratch”http://clusterlabs.org/doc/
“Pro Linux High Availability Clustering”https://www.apress.com/la/book/9781484200803