Ceph (oprogramowanie) - Ceph (software)

Przechowywanie Ceph
Ceph logo.png
Pierwotny autor (autorzy) Magazyn atramentu ( Sage Weil , Yehuda Sadeh Weinraub, Gregory Farnum, Josh Durgin, Samuel Just, Wido den Hollander)
Deweloper(zy) Red Hat , Intel , CERN , Cisco , Fujitsu , SanDisk , Canonical i SUSE
Wersja stabilna
16.2.4 „Pacyfik” / 13 maja 2021 ; 4 miesiące temu ( 2021-05-13 )
Magazyn
Napisane w C++ , Python
System operacyjny Linux , FreeBSD
Rodzaj Rozproszony magazyn obiektów
Licencja LGPLv2.1
Strona internetowa cef .io

Cef (widoczny / s ɛ F / ) jest wolne oprogramowanie (oprogramowanie zdefiniowane danych) do przechowywania platformy , narzędzia obiekt pamięci na jednej rozproszonej zestawie komputerowym i dostarcza interfejs 3-w-1 object-, blokowych i przechowywanie na poziomie plików . Ceph ma na celu przede wszystkim całkowicie rozproszoną pracę bez pojedynczego punktu awarii , skalowalną do poziomu eksabajtów i swobodnie dostępną.

Ceph replikuje dane i czyni je odpornymi na awarie , używając standardowego sprzętu , Ethernet IP i nie wymagając specjalnego wsparcia sprzętowego. System Ceph oferuje odzyskiwanie danych po awarii i redundancję danych dzięki technikom takim jak replikacja, kodowanie wymazywania, migawki i klonowanie pamięci masowej. Dzięki swojej konstrukcji system jest zarówno samonaprawiający się, jak i samozarządzający , mając na celu zminimalizowanie czasu administracyjnego i innych kosztów.

W ten sposób administratorzy mają do dyspozycji jeden, skonsolidowany system, który omija silosy i gromadzi pamięć masową we wspólnej strukturze zarządzania. Ceph konsoliduje kilka przypadków użycia pamięci masowej i poprawia wykorzystanie zasobów. Pozwala także organizacji na wdrażanie serwerów tam, gdzie jest to potrzebne.

Projekt

Ogólny przegląd wewnętrznej organizacji Ceph

Ceph wykorzystuje pięć różnych rodzajów demonów :

  • Monitory klastrów ( ceph-mon ), które śledzą aktywne i uszkodzone węzły klastra, konfigurację klastra oraz informacje o rozmieszczeniu danych i globalnym stanie klastra.
  • Obiektowe urządzenia pamięci masowej ( ceph-osd ), które używają bezpośredniej, kronikowanej pamięci dyskowej (o nazwie BlueStore, która od wydania v12.x zastępuje FileStore, który używałby systemu plików)
  • Serwery metadanych ( ceph-mds ), które buforują i udostępniają brokera do i- węzłów i katalogów wewnątrz systemu plików CephFS.
  • Bramy HTTP ( ceph-rgw ), które udostępniają warstwę obiektowej pamięci masowej jako interfejs zgodny z API Amazon S3 lub OpenStack Swift
  • Menedżerowie ( ceph-mgr ) wykonujący zadania monitorowania, księgowania i konserwacji klastra oraz interfejs do zewnętrznych systemów monitorowania i zarządzania (np. balancer, dashboard, Prometheus , wtyczka Zabbix)

Wszystkie są w pełni rozproszone i mogą działać na tym samym zestawie serwerów. Klienci o różnych potrzebach mogą bezpośrednio wchodzić w interakcje z różnymi ich podzbiorami.

Ceph wykonuje paski pojedynczych plików w wielu węzłach, aby osiągnąć wyższą przepustowość, podobnie jak macierz RAID0 rozkłada partycje na wielu dyskach twardych . Obsługiwane jest adaptacyjne równoważenie obciążenia, dzięki czemu często używane obiekty są replikowane w większej liczbie węzłów. Od września 2017 r. BlueStore jest domyślnym i zalecanym typem pamięci masowej dla środowisk produkcyjnych. Jest to własna implementacja pamięci masowej firmy Ceph, zapewniająca lepsze opóźnienia i konfigurowalność niż zaplecze magazynu plików, a także pozwalająca uniknąć niedoskonałości pamięci masowej opartej na systemie plików, która wiąże się z dodatkowymi warstwami przetwarzania i buforowania. Backend magazynu plików jest nadal uważany za użyteczny i bardzo stabilny; XFS był zalecanym podstawowym typem systemu plików dla środowisk produkcyjnych, podczas gdy Btrfs był zalecany dla środowisk nieprodukcyjnych. Systemy plików ext4 nie były zalecane ze względu na wynikające z tego ograniczenia maksymalnej długości obiektów RADOS. Nawet używając BlueStore, XFS jest używany do małej partycji metadanych.

Przechowywanie obiektów S3

Schemat architektury przedstawiający relacje między komponentami platformy pamięci masowej Ceph

Ceph wdraża rozproszoną pamięć obiektową - BlueStore. Brama RADOS (ceph-rgw) eksponuje warstwę obiektowej pamięci masowej jako interfejs zgodny z Amazon S3.

Są to często dyski pojemnościowe, które są powiązane z obiektową pamięcią masową Ceph S3 do zastosowań: Big Data (datalake), Backup & Archives, IOT, media, nagrywanie wideo itp.

Biblioteki oprogramowania Ceph zapewniają aplikacjom klienckim bezpośredni dostęp do niezawodnego, opartego na obiektach autonomicznego magazynu obiektów rozproszonych (RADOS), a także stanowią podstawę dla niektórych funkcji Ceph, w tym RADOS Block Device (RBD), RADOS Gateway i Ceph System plików . W ten sposób administratorzy mogą utrzymywać swoje urządzenia pamięci masowej jako zunifikowany system, co ułatwia replikację i ochronę danych.

Biblioteki oprogramowania „librados” zapewniają dostęp w językach C , C++ , Java , PHP i Python . Brama RADOS udostępnia również składnicę obiektów jako interfejs RESTful , który może prezentować się zarówno jako natywne API Amazon S3, jak i OpenStack Swift .

Zablokuj przechowywanie

System magazynowania obiekt cef pozwala użytkownikom zamontować cef postaci cienkich zabezpieczony urządzenia blokowego . Gdy aplikacja zapisuje dane do Ceph przy użyciu urządzenia blokowego, Ceph automatycznie rozpina i replikuje dane w całym klastrze. Urządzenie blokowe RADOS (RBD) firmy Ceph integruje się również z maszynami wirtualnymi opartymi na jądrze (KVM).

Są to często szybkie dyski (NVMe, SSD), które są powiązane z pamięcią blokową Ceph dla przypadków użycia, w tym baz danych, maszyn wirtualnych, analizy danych, sztucznej inteligencji i uczenia maszynowego.

Ceph-RBD współpracuje z tym samym systemem obiektowej pamięci masowej Ceph, który zapewnia interfejs librados i system plików CephFS, a także przechowuje obrazy urządzeń blokowych jako obiekty. Ponieważ RBD jest oparty na librados, RBD dziedziczy zdolności librados, w tym migawki tylko do odczytu i powrót do migawki. Rozkładając obrazy w klastrze, Ceph poprawia wydajność dostępu do odczytu dla dużych obrazów urządzeń blokowych.

Ceph-iSCSI to brama, która umożliwia dostęp do rozproszonej, wysoce dostępnej pamięci blokowej z dowolnego systemu Microsoft Windows i serwera vmware vsphere lub klienta obsługującego protokół iSCSI. Używając ceph-iscsi na jednym lub więcej hostach bramy iSCSI, obrazy Ceph RBD stają się dostępne jako jednostki logiczne (LU) powiązane z obiektami docelowymi iSCSI, do których można uzyskać dostęp w opcjonalnie zrównoważonym, wysoce dostępnym sposobie.

Ponieważ cała konfiguracja ceph-iscsi jest przechowywana w magazynie obiektów Ceph RADOS, hosty bramy ceph-iscsi są z natury bez stanu trwałego i dlatego mogą być dowolnie zastępowane, rozszerzane lub zmniejszane. W rezultacie Ceph Storage umożliwia klientom korzystanie z prawdziwie rozproszonej, wysoce dostępnej, odpornej i samonaprawiającej się technologii pamięci masowej dla przedsiębiorstw na powszechnie dostępnym sprzęcie i platformie całkowicie otwartej.

Urządzenie blokowe można zwirtualizować, zapewniając blokową pamięć masową maszynom wirtualnym, na platformach wirtualizacyjnych takich jak OpenStack , Kubernetes , OpenNebula , Ganeti , Apache CloudStack i Proxmox Virtual Environment .

Pamięć systemu plików

System plików Ceph (CephFS) działa na szczycie tego samego systemu obiektowej pamięci masowej, który zapewnia obiektową pamięć masową i interfejsy urządzeń blokowych. Klaster serwerów metadanych Ceph udostępnia usługę, która odwzorowuje katalogi i nazwy plików systemu plików na obiekty przechowywane w klastrach RADOS. Klaster serwerów metadanych może się rozszerzać lub kurczyć, a także dynamicznie równoważyć system plików w celu równomiernego rozmieszczenia danych między hostami klastra. Zapewnia to wysoką wydajność i zapobiega dużym obciążeniom na określonych hostach w klastrze.

Klienci montują system plików zgodny z POSIX przy użyciu klienta jądra Linux . Dostępny jest również starszy klient oparty na FUSE . Serwery działają jako zwykłe demony uniksowe .

Przechowywanie plików Ceph jest często związane z przypadkami użycia: zbieranie logów, przesyłanie wiadomości, magazyn plików ..

Historia

Cef został początkowo stworzony przez Sage Weil do swojej pracy doktorskiej , który został poinformowany przez profesora Scotta A. Brandt w Jack Baskin Szkoły Inżynierskiej , University of California, Santa Cruz (UCSC), a sponsorowany przez Advanced Simulation and Computing Program (ASC ), w tym Krajowe Laboratorium Los Alamos (LANL), Krajowe Laboratoria Sandia (SNL) oraz Krajowe Laboratorium Lawrence Livermore (LLNL). Pierwsza linia kodu, która stała się częścią Ceph, została napisana przez Sage'a Weila w 2004 roku podczas letniego stażu w LLNL, zajmującego się skalowalnym zarządzaniem metadanymi systemu plików (znanym dziś jako Ceph's MDS). W 2005 roku, w ramach letniego projektu zainicjowanego przez Scotta A. Brandta i kierowanego przez Carlosa Maltzahna, Sage Weil stworzył w pełni funkcjonalny prototyp systemu plików, który przyjął nazwę Ceph. Ceph zadebiutował Sage Weil, dając dwie prezentacje w listopadzie 2006, jedną na USENIX OSDI 2006, a drugą na SC '06.

Po ukończeniu studiów jesienią 2007 roku Weil kontynuował pracę nad Cephem w pełnym wymiarze godzin, a podstawowy zespół programistów powiększył się o Yehudę Sadeh Weinraub i Gregory'ego Farnuma. 19 marca 2010 r. Linus Torvalds połączył klienta Ceph z jądrem Linuksa w wersji 2.6.34, która została wydana 16 maja 2010 r. W 2012 r. Weil stworzył Inktank Storage dla profesjonalnych usług i wsparcia dla Ceph.

W kwietniu 2014 r. Red Hat kupił Inktank, przenosząc większość rozwoju Ceph we własnym zakresie, aby uczynić go wersją produkcyjną dla przedsiębiorstw ze wsparciem (hotline) i ciągłym utrzymaniem (nowe wersje).

W październiku 2015 r. utworzono Ceph Community Advisory Board, aby pomóc społeczności w kierowaniu kierunkiem technologii pamięci masowej definiowanej programowo. W skład rady doradczej ds. czarteru wchodzą członkowie społeczności Ceph z globalnych organizacji IT, którzy są zaangażowani w projekt Ceph, w tym osoby z Red Hat , Intel , Canonical , CERN , Cisco , Fujitsu , SanDisk i SUSE .

W listopadzie 2018 r. Linux Foundation uruchomiła Ceph Foundation jako następcę Ceph Community Advisory Board. Członkami założycielami Ceph Foundation byli Amihan, Canonical , China Mobile , DigitalOcean , Intel , OVH , ProphetStor Data Services, Red Hat , SoftIron, SUSE , Western Digital , XSKY Data Technology i ZTE .

W marcu 2021 r. firma SUSE wycofała swój produkt Enterprise Storage zawierający Ceph na rzecz Longhorn. a poprzednia witryna Enterprise Storage została zaktualizowana, stwierdzając: „SUSE skupiło wysiłki w zakresie pamięci masowej na obsłudze strategicznych klientów SUSE Enterprise Storage i nie prowadzi już aktywnej sprzedaży SUSE Enterprise Storage”.

Historia wydań

Historia wydań
Nazwa Uwolnienie Pierwsze wydanie Koniec
życia
Kamienie milowe
argonauta Stara wersja, nie jest już utrzymywana: 0,48 3 lipca 2012 Pierwsze duże „stabilne” wydanie
Krótko ucięty ogon Stara wersja, nie jest już utrzymywana: 0,56 1 stycznia 2013
Mątwa Stara wersja, nie jest już utrzymywana: 0,61 7 maja 2013 r. ceph-deploy jest stabilny
Kluska Stara wersja, nie jest już utrzymywana: 0,67 14 sierpnia 2013 r. maj 2015 przestrzeń nazw, region, monitorowanie REST API
cesarz Stara wersja, nie jest już utrzymywana: 0,72 9 listopada 2013 r. maj 2014 replikacja wielu centrów danych dla radosgw
Robaczek świętojański Stara wersja, nie jest już utrzymywana: 0,80 7 maja 2014 Kwiecień 2016 wymazywanie kodowania, warstwowanie pamięci podręcznej, podstawowe powinowactwo, klucz/wartość zaplecza OSD (eksperymentalne), autonomiczne radosgw (eksperymentalne)
Ogromny Stara wersja, nie jest już utrzymywana: 0,87 29 października 2014 Kwiecień 2015
Młotek Stara wersja, nie jest już utrzymywana: 0,94 7 kwietnia 2015 Sierpień 2017
Infernalis Stara wersja, nie jest już utrzymywana: 9.2.0 6 listopada 2015 Kwiecień 2016
Klejnot Stara wersja, nie jest już utrzymywana: 10.2.0 21 kwietnia 2016 2018-06-01 Stabilny CephFS, eksperymentalny backend RADOS o nazwie BlueStore
Kraken Stara wersja, nie jest już utrzymywana: 11.2.0 20 stycznia 2017 r. 2017-08-01 BlueStore jest stabilny
Świetlny Stara wersja, nie jest już utrzymywana: 12.2.0 29 sierpnia 2017 r. 2020-03-01
Imitować Stara wersja, nie jest już utrzymywana: 13.2.0 1 czerwca 2018 r. 2020-07-22 Migawki są stabilne, Bestia jest stabilna
Łodzik Starsza wersja, ale nadal utrzymywana: 14.2.0 19 marca 2019 r. 2021-06-01
Ośmiornica Starsza wersja, ale nadal utrzymywana: 15.2.0 23 marca 2020 r. 2022-06-01
Pacyfik Aktualna stabilna wersja: 16.2.0 31 marca 2021 2023-06-01
Legenda:
Stara wersja
Starsza wersja, nadal utrzymywana
Ostatnia wersja
Najnowsza wersja zapoznawcza
Przyszłe wydanie

Etymologia

Nazwa „Ceph” jest skrótem od „ głowonoga ”, klasy mięczaków, która obejmuje ośmiornicę. Nazwa (podkreślona przez logo) sugeruje wysoce równoległe zachowanie ośmiornicy i została wybrana do powiązania systemu plików z „Sammy”, maskotką ślimaka bananowego UCSC . Zarówno głowonogi, jak i ślimaki bananowe to mięczaki.

Kubernetes

Rook umożliwia wdrożenie Ceph w środowisku Kubernetes , aby zapewnić trwałą pamięć masową.

Kontenery Kubernetes są z zasady bezstanowe, ale dane nadal muszą być zarządzane, chronione i udostępniane innym usługom. Bezstanowe oznacza, że ​​kontener działa w izolacji bez wiedzy o przeszłych transakcjach, co ułatwia zastępowanie, usuwanie lub dystrybucję kontenera. Oznacza to jednak również, że bez trwałej pamięci masowej dane zostaną utracone w przypadku niektórych zdarzeń cyklu życia, takich jak ponowne uruchomienie lub usunięcie.

Rook to narzędzie do aranżacji pamięci masowej, które zapewnia natywne dla chmury rozwiązanie typu open source dla zróżnicowanego zestawu dostawców pamięci masowej. Rook wykorzystuje moc Kubernetes, aby przekształcić system pamięci masowej w samozarządzające się usługi, które zapewniają bezproblemową obsługę zapisywania aplikacji Kubernetes lub danych wdrożeniowych.

Ceph to wysoce skalowalne rozwiązanie pamięci rozproszonej, oferujące przechowywanie obiektów, bloków i plików. Klastry Ceph są zaprojektowane do działania na dowolnym sprzęcie przy użyciu algorytmu CRUSH (Controlled Replication Under Scalable Hashing) i zapewniają trwałą pamięć masową dla kontenerów Kubernetes.

Jedną z głównych korzyści tego wdrożenia jest to, że zapewnia wysoce skalowalne rozwiązanie pamięci masowej Ceph bez konieczności ręcznej konfiguracji za pomocą wiersza poleceń Ceph, ponieważ Rook automatycznie je obsługuje. Aplikacje Kubernetes mogą następnie montować urządzenia blokowe i systemy plików z Rooka, aby zachować i monitorować dane aplikacji.

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki