Synnefo
Deweloperzy | GRNET |
---|---|
Wersja stabilna | 0.19.1 / 23 czerwca 2017
|
Magazyn | |
Napisane w | Pyton |
Typ | Chmura obliczeniowa |
Licencja | Powszechna Licencja Publiczna GNU |
Strona internetowa |
Synnefo to kompletny stos chmur typu open source napisany w Pythonie , który zapewnia usługi Compute , Network , Image , Volume i Storage , podobne do tych oferowanych przez AWS . Synnefo zarządza wieloma Google Ganeti w zapleczu , które obsługują operacje maszyn wirtualnych niskiego poziomu i używa Archipelago do ujednolicenia pamięci masowej w chmurze. Aby zwiększyć kompatybilność z innymi firmami, Synnefo udostępnia OpenStack API dla użytkowników.
Synnefo jest rozwijane przez GRNET (Grecka Sieć Badawczo-Technologiczna) i zasila dwie z jej publicznych usług w chmurze, usługę ~okeanos , która jest skierowana do greckiej społeczności akademickiej, oraz globalną usługę ~okeanos , która jest otwarta dla wszystkich członków sieci GÉANT .
Historia
W listopadzie 2006 r., starając się zapewnić greckim naukowcom i naukowcom zaawansowane usługi w chmurze, GRNET decyduje się na uruchomienie usługi przechowywania w chmurze , podobnej do Amazon S3 , o nazwie Pithos . Projekt jest zlecany na zewnątrz i otwiera się na publiczną wersję beta dla członków greckiej społeczności akademickiej i badawczej w maju 2009 roku.
W czerwcu 2010 GRNET decyduje o kolejnym kroku w tym kursie; stworzyć kompletną usługę chmurową podobną do AWS (Compute/Network/Volume/Image/Storage). Ta usługa, zwana ~okeanos , ma na celu zapewnienie greckiej społeczności akademickiej i badawczej dostępu do zwirtualizowanej infrastruktury, z której mogą korzystać różne projekty, np. eksperymenty, symulacje i laboratoria. Biorąc pod uwagę nieefemeryczny charakter zasobów, które zapewnia usługa, pojawia się zapotrzebowanie na trwałe serwery w chmurze. W poszukiwaniu rozwiązania, w październiku 2010 GRNET postanawia oprzeć usługę na Google Ganeti oraz zaprojektować i wdrożyć wszystkie brakujące części we własnym zakresie.
W maju 2011 r. starsza usługa Pithos została przepisana od podstaw wewnętrznie, z zamiarem zintegrowania jej z ~okeanos jako usługą przechowywania. Co więcej, nowy Pithos dodaje obsługę synchronizacji podobnej do Dropbox.
W lipcu 2011 r. ~okeanos osiąga fazę publicznej wersji alfa. Ta wersja (v0.5.2.1) zawiera usługi Tożsamość, Obliczenia, Sieć i prymitywną usługę obrazu. Wersja alfa nowego, przepisanego Pithos następuje wkrótce potem, w listopadzie 2011. Jest sprzedawany jako Pithos +, a stary Pithos pozostaje oddzielną usługą. Nowy Pithos+, choć nie jest jeszcze zintegrowany z ~okeanos, zapewnia funkcje synchronizacji i udostępniania plików, a także natywnych klientów synchronizacji dla systemów Mac OS X, iPhone, iPad i Windows.
W marcu 2012 r. ~okeanos wchodzi w fazę publicznej wersji alpha2. Ta wersja (v0.9) zawiera pełną integrację nowego Pithos jako część ~okeanos i działa teraz jako ujednolicony magazyn obrazów i plików. Mniej więcej w tym momencie, w kwietniu 2012 roku, zespół ~okeanos postanawia nazwać cały stos oprogramowania Synnefo i zaczyna pisać pierwszą wersję dokumentacji Synnefo.
W grudniu 2012 r., ze względu na zainteresowanie innych stron stosem Synnefo, GRNET decyduje się na koncepcyjne oddzielenie projektów ~okeanos i Synnefo. Synnefo zaczyna być neutralnym dla marki oprogramowaniem do przetwarzania w chmurze IaaS, podczas gdy ~okeanos staje się jego aplikacją w świecie rzeczywistym, IaaS dla greckiej społeczności akademickiej i badawczej.
W kwietniu 2013 r., po gruntownym czyszczeniu i refaktoryzacji kodu, zostaje wydana nowa wersja Synnefo (v.013). Wszystkie oddzielne komponenty są połączone w jednym repozytorium Synnefo. Jest to pierwsze wydanie jako ujednolicony projekt, zawierający wszystkie części (Compute/Network/Volume/Image/Storage).
W czerwcu 2013 zostaje wydany Synnefo v0.14. Od tej wersji Synnefo jest neutralne dla marki (wszystkie pozostałe odniesienia do ~okeanos zostały usunięte). Otrzymuje również mechanizm brandingu i odpowiednią dokumentację, dzięki czemu inni mogą dostosować go do swojej tożsamości brandingowej.
Przegląd
Synnefo zostało zaprojektowane do wdrożenia w dowolnym środowisku
składniki
Synnefo ma charakter modułowy i składa się z następujących komponentów:
Astakos (usługi tożsamości/konta)
Astakos to komponent do zarządzania tożsamością, który zapewnia wspólną bazę użytkowników dla reszty Synnefo. Astakos zajmuje się tworzeniem użytkowników, grupami użytkowników, rozliczaniem zasobów, limitami, projektami i problemami z tokenami uwierzytelniającymi używanymi w całej infrastrukturze. Obsługuje wiele metod uwierzytelniania:
Pithos (usługi przechowywania plików/obiektów)
Pithos jest komponentem przechowywania obiektów/plików Synnefo. Użytkownicy przesyłają pliki na Pithos za pomocą interfejsu internetowego, klienta wiersza poleceń lub natywnych klientów synchronizacji. Jest to cienka warstwa mapująca pliki użytkownika na bloki z możliwością adresowania zawartości, które są następnie przechowywane w zapleczu pamięci masowej. Pliki są dzielone na bloki o stałym rozmiarze, które są niezależnie haszowane w celu utworzenia unikalnego identyfikatora dla każdego bloku, dzięki czemu każdy plik jest reprezentowany przez sekwencję nazw bloków (mapę mieszającą). W ten sposób Pithos zapewnia deduplikację danych plików; bloki współdzielone między plikami są przechowywane tylko raz.
Bieżąca implementacja wykorzystuje bloki 4 MB zaszyfrowane za pomocą algorytmu SHA256. Adresowanie oparte na zawartości umożliwia również wydajną dwukierunkową synchronizację plików, z której mogą korzystać wszyscy klienci Pithos (np. klient wiersza poleceń kamaki lub natywni klienci Windows/Mac OS). Za każdym razem, gdy ktoś chce przesłać zaktualizowaną wersję pliku, klient miesza wszystkie bloki pliku, a następnie żąda od serwera utworzenia nowej wersji dla tej sekwencji bloków. Serwer zwróci odpowiedź o błędzie z listą brakujących bloków. Klient może następnie przesłać każdy blok jeden po drugim i ponowić próbę utworzenia pliku. Podobnie, gdy plik został zmieniony na serwerze, klient może poprosić o listę jego blokad i pobrać tylko te zmodyfikowane.
Pithos działa w warstwie chmury i udostępnia API OpenStack Object Storage światu zewnętrznemu, z niestandardowymi rozszerzeniami do synchronizacji. Każdy klient komunikujący się z OpenStack Swift może być również używany do przechowywania obiektów we wdrożeniu Pithos. Proces mapowania plików użytkownika na zaszyfrowane obiekty jest niezależny od rzeczywistego zaplecza pamięci masowej, które może wybrać administrator za pomocą dołączanych sterowników. Obecnie Pithos ma sterowniki dla dwóch backendów pamięci masowej:
- pliki na współdzielonym systemie plików, np. NFS, Lustre, GPFS lub GlusterFS
- obiektów w klastrze Ceph/RADOS.
Niezależnie od backendu magazynu, jest on odpowiedzialny za niezawodne przechowywanie obiektów, bez żadnego połączenia z interfejsami API chmury lub operacjami mieszania.
Cyklady (usługi obliczeniowe/sieciowe/obrazowe/wolumenowe)
Cyklady to komponent Synnefo, który implementuje usługi Compute, Network, Image i Volume. Udostępnia powiązane interfejsy API OpenStack REST: OpenStack Compute, Network, Glance, a wkrótce także Cinder. Cyklady to część, która zarządza wieloma klastrami Ganeti na zapleczu. Cyclades wydaje polecenia klastrowi Ganeti za pomocą Remote API (RAPI) Ganeti. Administrator może dynamicznie rozbudowywać infrastrukturę, dodając nowe klastry Ganeti, aby osiągnąć skalę centrum danych. Cyclades nic nie wie o operacjach zarządzania maszynami wirtualnymi niskiego poziomu, np. obsłudze tworzenia maszyn wirtualnych, migracji między węzłami fizycznymi i obsłudze przestojów węzłów; projektowanie i wdrażanie interfejsu API użytkownika końcowego jest zgodne z obsługą maszyny wirtualnej na zapleczu.
Istnieją dwie odrębne, asynchroniczne ścieżki interakcji między Synnefo i Ganeti. Ścieżka efektu jest aktywowana w odpowiedzi na żądanie użytkownika; Cyclades wydaje polecenia kontrolne VM Ganeti przez RAPI. Ścieżka aktualizacji jest uruchamiana za każdym razem, gdy zmienia się stan maszyny wirtualnej z powodu działań inicjowanych przez Synnefo lub administratora na poziomie Ganeti. W ścieżce aktualizacji monitorujemy kolejkę zadań Ganeti w celu wysyłania powiadomień do reszty infrastruktury Synnefo za pośrednictwem kolejki komunikatów.
Użytkownicy mają pełną kontrolę nad swoimi maszynami wirtualnymi: mogą tworzyć nowe, uruchamiać je, zamykać, uruchamiać ponownie i niszczyć. Do konfiguracji swoich maszyn wirtualnych mogą wybrać liczbę procesorów, rozmiar pamięci RAM i dysku systemowego oraz system operacyjny z predefiniowanych obrazów, w tym popularnych dystrybucji Linuksa (Debian, Ubuntu, CentOS, Fedora, Gentoo, Archlinux, OpenSuse), MS- Windows Server 2008 R2 i 2012 oraz FreeBSD.
Interfejs API REST do zarządzania maszynami wirtualnymi, zgodny z OpenStack, może współpracować z narzędziami innych firm i bibliotekami klienckimi.
Interfejs Cyclades jest napisany w Javascript/jQuery i działa całkowicie po stronie klienta dla maksymalnej responsywności. To tylko kolejny klient API; wszystkie operacje interfejsu użytkownika odbywają się z wywołaniami asynchronicznymi za pośrednictwem interfejsu API.
Funkcjonalność sieciowa obejmuje podwójną łączność IPv4/IPv6 dla każdej maszyny wirtualnej, łatwą, zapewnianą przez platformę zaporę ogniową za pośrednictwem szeregu wstępnie skonfigurowanych profili zapory ogniowej lub za pomocą własnej zapory ogniowej wewnątrz maszyny wirtualnej. Użytkownicy mogą tworzyć wiele prywatnych, wirtualnych sieci L2, aby konstruować dowolną topologię sieci, np. wdrażać maszyny wirtualne w konfiguracjach wielowarstwowych. Funkcjonalność sieciowa jest eksportowana od zaplecza do interfejsu API i interfejsu użytkownika.