Red Hat Ceph Storage
 

Red Hat Ceph Storage to rozwijane od 2003 roku rozwiązanie SDS (Software-Defined Storage), które udostępnia funkcje jednolitej pamięci masowej (ang. Unified Storage). Potrafi zatem dostarczyć zarówno blokową, plikową, jak i obiektową przestrzeń danych. Do obsługi udostępnia API, CLI i WebUI oraz role Ansible.

 
Red Hat Ceph Storage jest rozwiązaniem o otwartym kodzie (ang. Open Source), które rozwijane jest w ramach projektu Ceph. Początkowo za rozwojem tego projektu, a także jego obsługą na rynku komercyjnym stała firma Inktank, którą założył Twórca projektu Sage Weil. W kwietniu 2014 roku firma Inktank została wykupiona i przejęta przez firmę Red Hat, gdzie obecnie też pracuje Sage Weil.

Na rynku od zawsze popularne były blokowe i plikowe przestrzenie danych, stąd spotkać je można prawie wszędzie. Te obiektowe miały dość wąskie i specjalistyczne zastosowania, stąd ich popularność zaczęła rosnąć dopiero niedawno. Powstaje coraz więcej aplikacji, które wymagają obiektowej przestrzeni danych, a dla wielu taka też o wiele lepiej się sprawdza. Również ilość zastosowań obiektowych przestrzeni danych ciągle rośnie.
 
Dzięki Red Hat Ceph Storage w jednym rozwiązaniu mamy blokową, plikową i obiektową przestrzeń danych, która najcześciej stosowana jest do składowania i przetrzymywania:
  • danych stosowanych w ML (Machine Learning), AI (Artificial Intelligence) i IoT (Internet of Things),
  • obrazów oraz dysków i urządzeń blokowych w Red Hat OpenStack (Glance, Cinder i Nova),
  • danych aplikacji uzyskujących dostęp z użyciem API (HTTP/HTTPS),
  • danych różnych aplikacji i środowisk chmurowych,
  • trwałej przestrzeni danych dla kontenerów (ang. persistent storage),
  • trwałej plikowej przestrzeni danych dla Red Hat OpenStack (Manila),
  • obrazów maszyn wirtualnych (VM) i kontenerów,
  • danych i stanu usług mikroserwisowych,
  • danych infrastruktury NFV (Network Function Virtualization),
  • dużych zbiorów danych do analizy i analityki danych (Big Data, Spark),
  • plików PDF, obrazków, skanów, grafik, nagrań wideo i dźwięku,
  • dokumentów tekstowych, prezentacji i arkuszy kalkulacyjnych,
  • logów, zdarzeń, kopii zapasowej i archiwów,
  • danych geoprzestrzennych w różnym formacie,
  • dużej ilości strumieni obrazu z kamer.

Działa na bazie systemu RHEL (Red Hat Enterprise Linux), obecnie RHEL8 i można uruchomić je bezpośrednio na węzłach fizycznych, wirtualnych oraz na bazie kontenerów. Jest zalecaną przestrzenią danych dla platform do kontenerów Red Hat OpenShift. Może zostać uruchomiony także wewnątrz Red Hat OpenShift Platform, której udostępnia przestrzeń danych. Wtedy dostępny jest w formie produktu o nazwie Red Hat Container Storage.

Red Hat Ceph Storage dostarcza przestrzeń dyskową dla wszystkich usług platformy Red Hat OpenStack, stąd jest preferowanym rozwiązaniem do budowy chmur prywatnych i w tym obszarze cieszy się największą popularnością.
 
 
Bardzo dobrze też sprawdza się jako przestrzeń danych dla platformy usług chmurowych Nextcloud. Jest jej niezbędnym elementem przy dużych wdrożeniach, gdzie składowana jest bardzo duża ilość plików.

Jesteśmy partnerem handlowym firmy Red Hat, stąd za naszym pośrednictwem można zakupić ich produkty na polskim rynku. Zapraszamy do This email address is being protected from spambots. You need JavaScript enabled to view it. zainteresowanych Red Hat Ceph Storage oraz innymi produktami Red Hat.

Klaster Red Hat Ceph Storage może składać się z tysięcy węzłów oraz obsługiwać miliardy obiektów i tysiące petabajtów (PB) danych. Umożliwia skalowalną rozbudowę zarówno w modelu scale-up, jak i scale-out.
 

Jego rdzeniem jest RADOS (Reliable Autonomic Distributed Object Store), który zajmuje się bezpiecznym i niezawodnym składowaniem danych w formie obiektów. Do ich rozmieszczania oraz uzyskiwania do nich dostępu wykorzystywany jest algorytm CRUSH (Controlled Replication Under Scalable Hashing), który potrafi dynamicznie dostosowywać się do zmian wewnątrz klastra. Korzystać z niego może zarówno RADOS, jak i dowolny klient.
 
Dzięki temu klienci mogą komunikować się bezpośrednio z węzłami Ceph, a do tej komunikacji nie są potrzebne im żadne dodatkowe serwery z metadanymi czy informacjami o położeniu danych. Lokalizacja danych wewnątrz klastra Ceph wskazywana jest przez algorytm CRUSH.

Taka architektura sprawia, że klienci mogą uzyskiwać równoległy i bezpośredni dostęp do danych znajdujących się na wielu węzłach klastra Ceph. Dzięki temu zwiększa się sumaryczna przepustowość od klientów do klastra i co za tym idzie szybkość w dostępie do danych.

Bezpieczeństwo i wysoka dostępność danych zapewniana jest poprzez obsługę replikacji, EC (Erasure Coding) 8+3, 8+4 i 4+2, a także georeplikację danych pomiędzy różnymi klastrami. W przypadku obiektowych puli danych, możliwa jest także replikacja obiektów do chmur publicznych z obsługą protokołu S3.

W ramach jednego klastra Red Hat Ceph Storage mamy dostępne wszystkie typy pamięci masowych (block, file, object). U ich spodu działa RADOS, gdzie dane zawsze składowane są w formie obiektów. Do interakcji z RADOS stosowane jest RBD, CephFS, RGW/RADOSGW lub API (librados).
 
RBD (RADOS Block Device) dostarcza wirtualne urządzenia blokowe oraz typowe dla nich funkcjonalności, jak klonowanie (ang. cloning) i migawki (ang. snapshots) z obsługą COW (Copy-on-Write), możliwość migracji obrazów bez wyłączania ich systemów (ang. live migration) czy izolacji i różnicowania dostępu z użyciem przestrzeni nazw (ang. namespaces). Obrazy dla blokowej przestrzeni danych działają w trybie "Sparse", co oznacza, że alokują przestrzeń w klastrze dopiero kiedy faktycznie jest ona zajmowana przez dane. Obiekty składające się na obraz RBD przynależą do różnych PG, stąd dostęp do obrazu realizowany jest równolegle poprzez wiele węzłów, co za tym idzie z dużą wydajnością. Dostęp do nich może być realizowany poprzez mechanizmy dostępne w jądrze systemu GNU/Linux, QEMU/KVM, Red Hat OpenStack Platform i Red Hat Virtualization (CinderLib) lub iSCSI Gateway.
 
CephFS (Ceph FileSystem) dostarcza rozproszony, zgodny z POSIX system plików. Daje możliwość tworzenia migawek (ang. snapshots) zarówno całego systemu plików, jak i indywidualnych katalogów. Obsługuje limity dyskowe (ang. quota) i możliwość montowania całego systemu plików lub wybranego podkatalogu. Stosowany często z Manila w Red Hat OpenStack do udostępniania trwałej przestrzeni RWX (ReadWriteMany) lub SAMBA Gateway do udostępniania udziałów sieciowych z obsługą m.in. POSIX ACL, WORM (Write Once Ready Many) czy rozszerzeń Apple (tagi, kolory, Apple Time Capsule). Używany może być też bezpośrednio w systemach GNU/Linux.
 
RGW/RADOSGW (RADOS Gateway) dostarcza obiektową przestrzeń danych, która kompatybilna jest z S3 (Simple Storage Service) oraz OpenStack Swift. Klaster może posiadać nielimitowaną ilość RGW, która znajdować się może za load balancer-ami HTTP/HTTPS, jak m.in. Red Hat Load Balancer. W ten sposób można zapewnić dużą wydajność, rozkład obciążenia oraz wysoką dostępność. Obsługuje dostęp z wykorzystaniem kont i różnicowania uprawnień, obsługę wielu wiader (ang. buckets) z obiektami i poziomów danych (ang. data levels), strefy i regiony (ang. zones and regions), limity (ang. quota), a także funkcje billingu.
 
W ramach klastra Red Hat Ceph Storage może działać iSCSI Gateway z obsługą Multipath, SAMBA Gateway z obsługa CTDB (Clustered Trivial Database) i NFS Ganesha, dzięki którym możliwe jest zachowanie wysokiego dostępu do danych klastra za pomocą protokołów iSCSI, CIFS/SMB/AFP czy NFS/pNFS. W ten sposób z takiego klastra może korzystać praktycznie wszystko, włączając w to stacje końcowe i platformę VMware vSphere.

Oprócz tego do obiektów można odwoływać się poprzez librados z wykorzystaniem API dla języków C, C++, Java, Go, Python, Ruby, Erlang czy PHP, co przydatne jest tam gdzie zależy nam na bardzo dużej wydajności.
 
 
RADOS korzysta z kilku demonów (ang. daemon), które są rozrzucone w ramach klastra i mogą być odpowiednio skalowane o dodatkowe instancje (scale-out), przy jego rozroście. Należy do nich MON, MGR, OSD i MDS.
 
Ceph MONs (Monitors) utrzymują mapy odzwierciedlające stan i konfigurację klastra oraz koordynują działanie OSD. Gwarantują, że OSD kooperują ze sobą poprawnie. Zmiana w konfiguracji klastra wymaga spełnionego kworum (łac. quorum), czyli dostępności większej połowy MON. Najczęściej uruchamia się ich nieparzystą ilość (3-7 per klaster).
 
Ceph MGRs (Managers) śledzi i gromadzi różne metryki i statystyki klastra, a następnie udostępnia je poprzez interfejs webowy i API (Prometheus/Grafana), udostępnia m.in. WebUI i API do zarządzania i monitorowania klastra oraz zajmuje się wykonywaniem w tle niektórych zadań optymalizacji klastra. Dla redundancji uruchamia się najczęściej minimum dwa per klaster (1 active/1+ standby).
 
Ceph OSDs (Object Storage Devices) składują dane i zajmuje się ich replikacją, odtwarzaniem i rebalansowaniem. W tym celu kooperują bezpośrednio z innymi OSD. Dla każdego nośnika danych działa jeden OSD, który też bezpośrednio obsługuje jego operacje I/O.
 
Ceph MDSs (Metadata Servers) przetrzymują hierarchię katalogów, blokady i dzierżawy plikowe oraz metadane plików, jak m.in. właściciel, uprawnienia czy znaczniki czasowe dla danych udostępnianych za pośrednictwem CephFS. Dla redundancji i większej skalowalności obsługuje wielu instancji w trybie active oraz standby per system plików. Nie pośredniczą one w transmisji danych.

Jesteśmy partnerem handlowym firmy Red Hat, stąd za naszym pośrednictwem można zakupić ich produkty na polskim rynku. Zapraszamy do This email address is being protected from spambots. You need JavaScript enabled to view it. zainteresowanych Red Hat Ceph Storage oraz innymi produktami Red Hat.

Nazwa Ceph wzięła się od głowonoga (ang. cephalopod), który przypomina jego architekturę. RADOS konwertuje dane do obiektów, które to trafiają do określonych puli (ang. pool). Klaster Ceph może obsługiwać wiele puli o różnych konfiguracjach replikacji lub EC oraz algorytmu CRUSH.

W ten sposób algorytm CRUSH jest w stanie dla wybranych pól składować dane tylko na nośnikach danego typu (HDD lub SSD) i/lub trzymać je w różnych domenach awarii czy lokalizacjach (różne dyski, węzły, szafy, pomieszczenia lub centra danych). Do tego celu stosowana jest 
CRUSH Map, która definiuje topologię klastra oraz reguły definiujące jak ma się odbywać składowanie i pobieranie danych.

Każda pula składa się z wielu PG (Placement Group), a do każdej z PG przynależy odpowiednia ilość OSD (Object Storage Device), na których docelowo składowane są obiekty. Ich ilość dostosowana jest do wymaganego poziomu niezawodności, dostępności i bezpieczeństwa danych (replikacja/EC). Każdy OSD odpowiada jednemu nośnikowi danych i może być współdzielony przez wiele puli o różnej konfiguracji oraz zastosowaniu.

Śledzenie i kalkulacja położenia każdego z obiektów oddzielnie nie jest realna na większą skalę. Dlatego CRUSH mapuje obiekty na PG, a dopiero PG definiuje dokładną lokalizację tych obiektów.

Obiekt zawsze trafia do PRIMARY OSD, który dopiero go replikuje do pozostałych OSD lub w przypadku EC dzieli na kawałki i tworzy sumy parzystości, a następnie rozsyła do pozostałych OSD. Działa to podobnie do tego, jak realizowana jest replikacja w typowych macierzach dyskowych. Przy czym wewnętrznie jeden duży plik może zostać podzielony (ang. striping) na wiele obiektów, a każdy z obiektów może mieć inny PRIMARY OSD.
 
 
Dzięki temu, że każdy z obiektów posiada inny PRIMARY OSD, klienci czy nawet pojedynczy klient mogą korzystać z wielu węzłów klastra równolegle dla zapisu i/lub odczytu. W ten sposób też z każdym kolejnym węzłem klastra Red Hat Ceph Storage rośnie jego wydajność i sumaryczna przepustowość do danych.

Dawniej Ceph obsługiwał tylko FileStore, gdzie przy writeahead zalecane jest stosowanie dziennika (ang. journal) w postaci dodatkowego nośnika, najlepiej szybkiego SSD. W ten sposób operacja najpierw jest wykonywana do szybszego nośnika, a potem do tego docelowego. Podobnie jak to jest w VMware vSAN. Brak tego dodatkowego nośnika powoduje przy każdej operacji podwójną ilość IOPS na tym samym nośniku (najpierw do dziennika, a potem do miejsca docelowego). Ma to negatywny wpływ na wydajność (około dwukrotnie zmniejsza prędkość). Stosowanie FileStore ma też minusy wynikające z ograniczeń czy też dodatkowego narzutu stosowanego systemu plików.

Dlatego w nowym wydaniu Red Hat Ceph Storage stosowany jest BlueStore, gdzie dane składowane są bezpośrednio na urządzeniu blokowym (bez żadnego systemu plików). WAL (Write-Ahead Logging) oraz metadane obiektów w formie omap (object map) trzymane są w RocksDB. Jest to baza składającą się z kluczy i przyporządkowanym im wartości (ang. key/value database). Przykładem takich metadanych jest m.in. powiązanie nazwy obiektu (klucz) z zajmowanymi blokami urządzenia blokowego, czy całkowitym rozmiarem obiektu. RocksDB wymaga niewielkiego systemu plików, stąd na fragmencie tego samego nośnika tworzony jest bardzo okrojony system plików BlueFS, który dostosowany i zoptymalizowany jest do tego jednego zastosowania. O ile wszystkie te komponenty mogą być składowane bezpośrednio na jednym urządzeniu blokowym, to zarówno RocksDB, jak i RocksDB WAL może zostać umiejscowiony na całkiem innych, zwykle szybszych nośnikach. 
Dzięki BlueStore dane zapisywane są raz, od razu bezpośrednio i asynchronicznie na nośniku. Następnie aktualizowane są metadane obiektu w RocksDB, które wskazują ich dokładną lokalizację. Plusem jest także pozbycie się narzutu systemu plików, jego fragmentacji oraz podwójnego dziennika i metadanych (na poziomie Ceph oraz stosowanego systemu plików). BlueStore zapewnia także dobrą obsługę Copy-on-Write (COW), dzięki czemu świetnie sprawdza się przy klonowaniu (ang. cloning) i tworzeniu migawek (ang. snapshot).

WAL (Write-Ahead Logging) wprowadza tu mechanizm transakcji, który dba o poprawność i integralność informacji o obiektach. Wszystkie operacje na ich metadanych są wprowadzane do szybkiego dziennika, dzięki czemu w razie awarii wiadomo które ze zleconych operacji udało się wykonać, a których nie.

BlueStore obsługuje także wbudowany mechanizm kompresji danych, które opcjonalnie można aktywować. O ile wprowadza on niewielki narzut na wydajności, to w niektórych przypadkach zastosowanie go może być sensowne.

Jesteśmy partnerem handlowym firmy Red Hat, stąd za naszym pośrednictwem można zakupić ich produkty na polskim rynku. Zapraszamy do This email address is being protected from spambots. You need JavaScript enabled to view it. zainteresowanych Red Hat Ceph Storage oraz innymi produktami Red Hat.

Poza funkcjami replikacji, EC czy tworzenia wielu migawek danych, Red Hat Ceph Storage obsługuje także funkcje georeplikacji do innych klastrów czy możliwość integracji z systemem kopii zapasowych Storware vProtect. W ten sposób dane mogą być składowane w wielu miejscach, na wiele sposobów, co poprawia ich bezpieczeństwo.
 
Zainteresowanych Red Hat Ceph Storage zachęcamy do obejrzenia dwóch wideo:
2. Storage dla każdego zastosowania

Red Hat Ceph Storage to przestrzeń danych do bardzo dużej ilości zastosowań. Nadaje się zarówno do miejsc gdzie potrzebny jest klasyczny dostęp oraz funkcjonalności blokowych i plikowych przestrzeni danych (ang. storage), jak i do miejsc gdzie stosowane są nowoczesne aplikacje korzystające z obiektowych zasobów.

Zapraszamy do kontaktu drogą mailową This email address is being protected from spambots. You need JavaScript enabled to view it. lub telefonicznie +48 797 004 932.