Corosync
Corosync | |
---|---|
Izdavač | zajednica Corosync |
Datum izdavanja | 5. studenoga 2023. |
Datum najave | 2008. |
Zadnja inačica | 3.1.8 |
Operacijski sustav | Linux, Windows, macOS, FreeBSD, NetBSD, OpenBSD |
Platforma | Linux, Windows, macOS, FreeBSD, NetBSD, OpenBSD |
Žanr | Cluster |
Licencija | New BSD License |
Internetska stranica | corosync |
Corosync Cluster Engine implementacija je otvorenog izvornog koda protokola Totem Single Ring Ordering and Membership. Izvorno je izveden od projekta OpenAIS i licenciran pod novom BSD licencom. Misija Corosync projekta je razviti, objaviti i podržati klaster otvorenog izvornog koda koji definira zajednica programera.
Projekt je službeno najavljen u srpnju 2008. godine putem konferencijskog rada na Linuxovom simpoziju u Ottawi. Izvorni kod OpenAIS-a refaktoriran je tako da su osnovne infrastrukturne komponente smještene u Corosync sustav, a API-ji definirani na tom forumu zadržani su u OpenAIS-u.[1]
U drugoj inačici Corosynca, objavljenoj 2012. godine, podsustav kvoruma je promijenjen i integriran u servis. Ova je inačica dostupna od Fedora Linuxa v.17 i Red Hat Enterprise Linuxa v.7.[2] Ova se inačica više ne razvija od 2022.godine.
U trećoj inačici Corosynca uveden je novi komunikacijski protokol (Kronosnet)[3] te druga poboljšanja koja su unaprijedila učinkovitost klastera:
- povećavajući brzinu komunikacije
- poboljšavajući pouzdanost
- nudeći veću skalabilnost: odnosno sposobnost rada većeg broja čvorova u klasteru.
Corosync cluster engine softversko je rješenje dizajnirano za upravljanje i održavanje visoko dostupnih (high-availability) klasterskih sustava. Sustav pruža ključne značajke koje omogućavaju skupini računala da surađuje kao jedna koordinirana jedinica, poboljšavajući time dostupnost i otpornost sustava na kvarove odnosno ispade.
Nekoliko glavnih značajki Corosync cluster enginea:
- Komunikacija u klasteru: Corosync omogućava komunikaciju između članova klastera, pružajući temelj za koordinaciju između čvorova klastera.
- Dinamičko otkrivanje čvorova: Sustav omogućava automatsko otkrivanje i praćenje čvorova u klasteru, što olakšava upravljanje klasterom s promjenama u dostupnosti resursa.
- Sinkronizacija podataka: Corosync pomaže u održavanju konzistentnosti podataka između čvorova klastera, što je ključno za osiguravanje integriteta podataka u visoko dostupnim okruženjima.
- Postizanje konsenzusa (engl. quorum): klasteri često zahtijevaju da se čvorovi slažu oko donošenja važnih odluka, poput odabira glavnog čvora (mastera) ili odabira aktivnog čvora za određenu uslugu. Corosync pomaže u postizanju konsenzusa unutar klastera.
- Održavanje visoke dostupnosti usluga: Corosync se često koristi u kombinaciji s alatima za upravljanje klasterom poput Pacemakera kako bi se osigurala visoka dostupnost aplikacija i usluga. To znači da u slučaju kvara na jednom čvoru, drugi čvorovi preuzimaju rad kako bi osigurali neprekidan rad sustava.
- Pratitelj resursa: Corosync prati resurse unutar klastera i omogućava dinamičko preuzimanje i puštanje resursa na različitim čvorovima kako bi se postigla ravnoteža opterećenja i poboljšala dostupnost.
U konačnici, Corosync cluster engine igra ključnu ulogu u izgradnji i održavanju visokodostupnih klastera, pružajući infrastrukturu za koordinaciju i upravljanje resursima u distribuiranim sustavima.
Corosync Cluster Engine grupni je komunikacijski sustav s dodatnim značajkama za implementaciju visoke dostupnosti unutar aplikacija, korištenjem sučelja za programiranje aplikacija (API).
Usluge koje pruža interni API Corosync Service Enginea jesu:
- Implementacija protokola Totem Single Ring Ordering and Membership,[4] koji pruža model proširene virtualne sinkronizacije za razmjenu poruka i članstvo u klasteru.[5]
- Coroipc IPC sustav zajedničke memorije visokih performansi.[6]
- Objektna baza podataka koja implementira model baze podataka u memoriji.
- Sustavi za usmjeravanje IPC i Totem poruka na ispravne servise Corosync sustrava.
Corosync softver je dizajniran za rad na UDP/IP i InfiniBand mrežama.
Neki od sustava koji koriste Corosync jesu:
- ↑ Christine Caulfield. New quorum features in Corosync 2 - 2012-2016
- ↑ Linux Cluster next generation, LVEE, 2013
- ↑ https://www.kronosnet.org/
- ↑ Amir, Y.; Moser, L.E.; Melliar-Smith, P.M.; Agarwal, D.A.; Ciarfella, P. Studeni 1995. The Totem Single Ring Ordering and Membership Protocol. ACM Transactions on Computer Systems. 13 (4): 311–342. doi:10.1145/210223.210224. S2CID 15165593
- ↑ Moser, L.E.; Amir, Y.; Melliar-Smith, P.M.; Agarwal, D.A. Studeni 1995. Extended Virtual Synchrony. ACM Transactions on Computer Systems. 13 (4): 311–342. doi:10.1145/210223.210224. S2CID 15165593 Also in Proceedings of DCS, pp. 56-65, 1994.
- ↑ Dake, S. Srpanj 2009. The Corosync High Performance Shared Memory IPC Reusable C Library (PDF). Proceedings of the Linux Symposium: 61–68