Synnefo
Utvecklare | GRNET |
---|---|
Stabil frisättning | 0.19.1 / 23 juni 2017
|
Förvar | |
Skrivet i | Pytonorm |
Typ | Molntjänster |
Licens | GNU General Public License |
Hemsida |
Synnefo är en komplett molnstack med öppen källkod skriven i Python som tillhandahåller beräknings- , nätverks- , bild- , volym- och lagringstjänster , liknande de som erbjuds av AWS . Synnefo hanterar flera Google Ganeti- kluster i backend som hanterar VM- operationer på låg nivå och använder Archipelago för att förena molnlagring. För att öka kompatibiliteten från tredje part exponerar Synnefo OpenStack API:er för användare.
Synnefo utvecklas av GRNET (Greek Research and Technology Network), och driver två av sina offentliga molntjänster, ~okeanos -tjänsten, som riktar sig till det grekiska akademiska samhället, och ~okeanos globala tjänst, som är öppen för alla medlemmar i nätverket GÉANT .
Historia
I november 2006, i ett försök att tillhandahålla avancerade molntjänster för den grekiska akademiska och forskarvärlden, beslutar GRNET sig för att lansera en molnlagringstjänst, liknande Amazons S3 , kallad Pithos . Projektet har lagts ut på entreprenad och öppnas för offentlig beta för medlemmar av det grekiska akademiska och forskarsamhället i maj 2009.
I juni 2010 beslutar GRNET om nästa steg i denna kurs; för att skapa en komplett, AWS-liknande molntjänst (Compute/Network/Volume/Image/Storage). Denna tjänst, kallad ~okeanos , syftar till att ge det grekiska akademiska och forskarsamhället tillgång till en virtualiserad infrastruktur som olika projekt kan dra nytta av, t.ex. experiment, simuleringar och labb. Med tanke på den icke-efemära karaktären hos de resurser som tjänsten tillhandahåller, uppstår behovet av beständiga molnservrar. I sökandet efter en lösning beslutade GRNET i oktober 2010 att basera tjänsten på Google Ganeti och att designa och implementera alla saknade delar internt.
I maj 2011 skrivs den äldre Pithos-tjänsten om från grunden internt, med avsikten att integreras med ~okeanos som dess lagringstjänst. Dessutom lägger nya Pithos till stöd för Dropbox-liknande synkronisering.
I juli 2011 når ~okeanos sitt offentliga alfastadium. Denna version (v0.5.2.1) inkluderar Identity, Compute, Network och en primitiv bildtjänst. Alfa-releasen av den nya, omskrivna Pithos följer strax efter, i november 2011. Den marknadsförs som Pithos+ och den gamla Pithos finns kvar som en separat tjänst. Den nya Pithos+, även om den inte är integrerad med ~okeanos ännu, tillhandahåller synkroniserings- och delningsmöjligheter för filer, såväl som inbyggda synkroniseringsklienter för Mac OS X, iPhone, iPad och Windows.
I mars 2012 går ~okeanos in i den offentliga alfa2-fasen. Den här versionen (v0.9) inkluderar en fullständig integration av nya Pithos som en del av ~okeanos och fungerar nu som den enhetliga arkivet för bilder och filer. Runt denna punkt, i april 2012, beslutar ~okeanos-teamet att hänvisa till hela mjukvarustacken som Synnefo och börjar skriva den första versionen av Synnefo-dokumentationen.
I december 2012, på grund av intresse från andra parter till Synnefo-stacken, beslutar GRNET att konceptuellt separera ~okeanos- och Synnefo-projekten. Synnefo börjar bli ett varumärkesneutralt IaaS-molnprogramvara, medan ~okeanos blir dess verkliga applikation, en IaaS för den grekiska akademiska och forskarvärlden.
I april 2013 släpps en ny Synnefo-version (v.013) efter en enorm rensning och kodrefaktorering. Alla separata komponenter slås samman under det enda Synnefo-förrådet. Detta är den första utgåvan som ett enhetligt projekt, som innehåller alla delar (Compute/Network/Volume/Image/Storage).
I juni 2013 släpps Synnefo v0.14. Sedan den här versionen är Synnefo varumärkesneutral (alla återstående ~okeanos-referenser tas bort). Den får också en varumärkesmekanism och motsvarande dokumentation, så att andra kan anpassa den till sin varumärkesidentitet.
Översikt
Synnefo har designats för att kunna användas i alla miljöer
Komponenter
Synnefo är modulärt till sin natur och består av följande komponenter:
Astakos (identitets-/kontotjänster)
Astakos är identitetshanteringskomponenten som ger en gemensam användarbas för resten av Synnefo. Astakos hanterar användarskapande, användargrupper, resursredovisning, kvoter, projekt och utfärdar autentiseringstokens som används över hela infrastrukturen. Det stöder flera autentiseringsmetoder:
Pithos (tjänster för lagring av filer/objekt)
Pithos är objekt/fillagringskomponenten i Synnefo. Användare laddar upp filer på Pithos med antingen webbgränssnittet, kommandoradsklienten eller inbyggda synkroniseringsklienter. Det är ett tunt lager som mappar användarfiler till innehållsadresserbara block som sedan lagras på en lagringsbackend. Filer delas upp i block med fast storlek, som hashas oberoende för att skapa en unik identifierare för varje block, så varje fil representeras av en sekvens av blocknamn (en hashmap). På detta sätt tillhandahåller Pithos deduplicering av fildata; block som delas mellan filer lagras bara en gång.
Den nuvarande implementeringen använder 4MB block som hashas med SHA256. Innehållsbaserad adressering möjliggör också effektiv tvåvägs filsynkronisering som kan användas av alla Pithos-klienter (t.ex. kommandoradsklienten kamaki eller de inbyggda Windows/Mac OS-klienterna). Närhelst någon vill ladda upp en uppdaterad version av en fil hashar klienten alla block av filen och ber sedan servern att skapa en ny version för denna blocksekvens. Servern kommer att returnera ett felsvar med en lista över de saknade blocken. Klienten kan sedan ladda upp varje block ett efter ett och försöka skapa fil igen. På liknande sätt, närhelst en fil har ändrats på servern, kan klienten be om sin lista med block och bara ladda ner de modifierade.
Pithos körs i molnlagret och exponerar OpenStack Object Storage API för omvärlden, med anpassade tillägg för synkronisering. Alla klienter som pratar med OpenStack Swift kan också användas för att lagra objekt i en Pithos-distribution. Processen att mappa användarfiler till hashade objekt är oberoende av den faktiska lagringsbackend, som kan väljas av administratören med hjälp av pluggbara drivrutiner. För närvarande har Pithos drivrutiner för två lagringsbackends:
- filer på ett delat filsystem, t.ex. NFS, Lustre, GPFS eller GlusterFS
- objekt på ett Ceph/RADOS-kluster.
Oavsett lagringsbackend är det ansvarigt för att lagra objekt på ett tillförlitligt sätt, utan någon koppling till moln-API:erna eller till hash-operationerna.
Kykladerna (dator/nätverk/bild/volymtjänster)
Cyclades är Synnefo-komponenten som implementerar tjänsterna Compute, Network, Image och Volume. Det exponerar de associerade OpenStack REST API:erna: OpenStack Compute, Network, Glance och snart även Cinder. Kykladerna är den del som hanterar flera Ganeti-kluster i backend. Cyclades utfärdar kommandon till ett Ganeti-kluster med hjälp av Ganetis Remote API (RAPI). Administratören kan utöka infrastrukturen dynamiskt genom att lägga till nya Ganeti-kluster för att nå datacenterskala. Cyclades vet ingenting om VM-hantering på låg nivå, t.ex. hantering av VM-skapelser, migrering mellan fysiska noder och hantering av nodavbrott; Utformningen och implementeringen av slutanvändar-API:t är ortogonalt mot VM-hantering i backend.
Det finns två distinkta, asynkrona vägar i samspelet mellan Synnefo och Ganeti. Effektsökvägen aktiveras som svar på en användarförfrågan; Cyclades utfärdar VM-kontrollkommandon till Ganeti över RAPI. Uppdateringssökvägen utlöses närhelst tillståndet för en virtuell dator ändras, på grund av Synnefo- eller administratörsinitierade åtgärder som sker på Ganeti-nivå. I uppdateringssökvägen övervakar vi Ganetis jobbkö för att producera meddelanden till resten av Synnefo-infrastrukturen över en meddelandekö.
Användare har full kontroll över sina virtuella datorer: de kan skapa nya, starta dem, stänga av, starta om och förstöra dem. För konfigurationen av sina virtuella datorer kan de välja antal processorer, storlek på RAM och systemdisk, och operativsystem från fördefinierade bilder inklusive populära Linux-distros (Debian, Ubuntu, CentOS, Fedora, Gentoo, Archlinux, OpenSuse), MS- Windows Server 2008 R2 och 2012 samt FreeBSD.
REST API för VM-hantering, som är OpenStack-kompatibel, kan samverka med tredjepartsverktyg och klientbibliotek.
Cyclades UI är skrivet i Javascript/jQuery och körs helt på klientsidan för maximal respons. Det är bara en annan API-klient; alla UI-operationer sker med asynkrona anrop över API:et.
Nätverksfunktionaliteten inkluderar dubbla IPv4/IPv6-anslutningar för varje virtuell dator, enkel, plattformsförsedd brandvägg antingen genom en rad förkonfigurerade brandväggsprofiler eller genom en egen brandvägg inuti den virtuella datorn. Användare kan skapa flera privata, virtuella L2-nätverk, så att de konstruerar godtycklig nätverkstopologi, t.ex. för att distribuera virtuella datorer i flerskiktskonfigurationer. Nätverksfunktionaliteten exporteras hela vägen från backend till API och UI.