Prijeđi na sadržaj

Corosync

Izvor: Wikipedija
Corosync
Izdavačzajednica Corosync
Datum izdavanja5. studenoga 2023.
Datum najave2008.
Zadnja inačica3.1.8
Operacijski
sustav
Linux, Windows, macOS, FreeBSD, NetBSD, OpenBSD
PlatformaLinux, Windows, macOS, FreeBSD, NetBSD, OpenBSD
ŽanrCluster
LicencijaNew BSD License
Internetska
stranica
corosync.github.io/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.

Primjena

[uredi | uredi kôd]

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.

Značajke

[uredi | uredi kôd]

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:

Izvori

[uredi | uredi kôd]
  1. Christine Caulfield. New quorum features in Corosync 2 - 2012-2016
  2. Linux Cluster next generation, LVEE, 2013
  3. https://www.kronosnet.org/
  4. 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
  5. 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.
  6. Dake, S. Srpanj 2009. The Corosync High Performance Shared Memory IPC Reusable C Library (PDF). Proceedings of the Linux Symposium: 61–68