Nowe metryki magazynów obiektowych

Nowe metryki magazynów obiektowychFlying Fortress autorstwa Nele-Diel

Zespół magazynu obiektowego S3 Magazyn w chmurze Mail.ru przetłumaczyła artykuł o tym, jakie kryteria są ważne przy wyborze magazynu obiektowego. Poniżej tekst z perspektywy autora.

Gdy mowa o magazynie obiektowym, zazwyczaj ludzie myślą tylko o jednej charakterystyce — cenie za TB/GB. Oczywiście, ta metryka jest ważna, ale ogranicza podejście i równoważenie magazynu obiektowego jako narzędzia do przechowywania archiwów. Takie podejście zmniejsza również znaczenie magazynu obiektowego w stosie technologicznym przedsiębiorstwa.

Wybierając magazyn obiektowy, warto zwrócić uwagę na pięć charakterystyk:

  • wydajność;
  • skalowalność;
  • kompatybilność z S3;
  • reakcja na awarie;
  • integralność.

Te pięć charakterystyk to nowe metryki magazynu obiektowego, obok kosztów. Przyjrzyjmy się wszystkim.

Wydajność

Tradycyjne magazyny obiektowe nie różnią się wydajnością. Dostawcy usług nieprzerwanie poświęcali ją w pogoni za niskimi cenami. Jednak z nowoczesnymi magazynami obiektowymi jest inaczej.

Prędkość różnych magazynów zbliża się do Hadoop lub nawet ją przewyższa. Nowoczesne wymagania dotyczące prędkości odczytu i zapisu: od 10 GB/s dla dysków twardych, do 35 GB/s dla NVMe. 

Taka przepustowość jest wystarczająca dla Spark, Presto, Tensorflow, Teradata, Vertica, Splunk i innych nowoczesnych frameworków obliczeniowych w stosie analitycznym. Fakt, że bazy danych MPP są dostosowywane do magazynów obiektowych, świadczy o tym, że coraz częściej są one używane jako główne magazyny.

Jeśli Twój system magazynowania nie zapewnia potrzebnej prędkości, nie możesz używać danych i czerpać z nich wartości. Nawet jeśli wyciągasz dane z magazynu obiektowego do struktury przetwarzania w pamięci, nadal potrzebna będzie przepustowość do przesyłania danych do pamięci i z powrotem. Przestarzałe magazyny obiektowe nie mają jej wystarczająco.

To kluczowy punkt: nowy wskaźnik wydajności — przepustowość, a nie opóźnienie. Jest ona potrzebna do skalowalnych danych, i to jest norma w nowoczesnej infrastrukturze danych.

Chociaż testy wydajności są dobrym sposobem na określenie wydajności, nie można jej dokładnie zmierzyć przed uruchomieniem aplikacji w środowisku. Dopiero po tym można powiedzieć, gdzie dokładnie występuje wąskie gardło: w oprogramowaniu, dyskach, sieci lub na poziomie obliczeń.

Skalowalność

Skalowalność odnosi się do ilości petabajtów, które mogą pomieścić w jednej przestrzeni nazw. Dostawcy ogłaszają łatwą skalowalność, ale milczą na temat tego, że w miarę skalowania masywne monolityczne systemy stają się kruchymi, złożonymi, niestabilnymi i drogimi.

Nowym wskaźnikiem skalowalności jest liczba przestrzeni nazw lub klientów, których możesz obsługiwać. Metryka ta pochodzi bezpośrednio od hiperskalowców, gdzie bloczki magazynowe są małe, ale skalowalne do miliardów jednostek. Ogólnie rzecz biorąc, jest to metryka chmurowa.

Kiedy standardowe bloki mają małe rozmiary, łatwiej je optymalizować, co oznacza zabezpieczenie, kontrolę dostępu, zarządzanie politykami, cyklem życia i aktualizacjami bez przerywania działania. A w rezultacie zapewnienie wydajności. Rozmiar bloku budowlanego jest funkcją zarządzalności obszaru awarii, w ten sposób budowane są systemy o wysokiej dostępności.

Multitenancy ma wiele cech. Chociaż parametr odnosi się do tego, jak organizacje zapewniają dostęp do danych i aplikacji, dotyczy on również samych aplikacji oraz ich logiki izolacji.

Cechy nowoczesnego podejścia do multitenancy:

  • W krótkim czasie liczba klientów może wzrosnąć z kilkuset do kilku milionów.
  • Klienci są całkowicie od siebie izolowani. Umożliwia im to uruchamianie różnych wersji tego samego oprogramowania oraz przechowywanie obiektów z różnymi konfiguracjami, pozwoleniami, funkcjami, poziomami bezpieczeństwa i wsparcia. To jest niezbędne, gdy skalowane są nowe serwery, aktualizacje i regiony geograficzne.
  • Magazyn elastycznie się skaluje, zasoby są dostarczane na żądanie.
  • Każda operacja jest zarządzana przez API i automatyzowana bez udziału człowieka.
  • Oprogramowanie można umieszczać w kontenerach i korzystać ze standardowych systemów orkiestracji, takich jak Kubernetes.

Kompatybilność z S3

Amazon S3 API — de facto standard dla obiektowych pamięci masowych. Każdy dostawca oprogramowania dla obiektowego przechowywania deklaruje zgodność z nim. Zgodność z S3 jest binarna: albo jest w pełni wdrożona, albo jej nie ma.

W praktyce mogą wystąpić setki i tysiące scenariuszy brzegowych, w których coś idzie nie tak podczas korzystania z obiektowego przechowywania. Szczególnie u dostawców oprogramowania i usług własnościowych. Główne scenariusze użycia to archiwizacja lub backup, więc powodów do wywołania API jest niewiele, a zastosowania są jednorodne.

Znaczną przewagę mają aplikacje z otwartym kodem źródłowym. Pokrywają większość scenariuszy brzegowych, uwzględniając rozmiar i różnorodność aplikacji, systemów operacyjnych oraz architektury sprzętowej.

To wszystko jest istotne dla programistów aplikacji, dlatego warto przetestować działanie aplikacji z dostawcami pamięci masowej. Otwarty kod źródłowy upraszcza ten proces — łatwiej zrozumieć, która platforma jest odpowiednia dla twojej aplikacji. Dostawca może być używany jako jednolity punkt dostępu do pamięci masowej — więc zaspokoi twoje potrzeby. 

Otwarty kod źródłowy oznacza: aplikacje nie są uzależnione od dostawcy i są bardziej przejrzyste. To zapewnia długi cykl życia aplikacji.

I jeszcze kilka uwag na temat otwartego kodu źródłowego oraz S3. 

Jeśli uruchamiasz aplikację do analizy dużych danych, S3 SELECT znacznie zwiększa wydajność i efektywność. Dzieje się tak poprzez użycie SQL do wyciągania z pamięci tylko tych obiektów, które są ci potrzebne.

Kluczowym punktem jest wsparcie powiadomień o kubełkach. Powiadomienia kubełkowe upraszczają obliczenia bezserwerowe — ważny komponent każdej architektury mikroserwisowej, która jest dostarczana jako usługa. Ponieważ obiektowe przechowywanie to w zasadzie chmura, ta możliwość staje się decydująca, gdy obiektowe przechowywanie jest używane przez aplikacje chmurowe.

Wreszcie, implementacja S3 powinna wspierać interfejsy API szyfrowania po stronie serwera Amazon S3: SSE-C, SSE-S3, SSE-KMS. Jeszcze lepiej, jeśli S3 wspiera zabezpieczenia przed nieautoryzowanym dostępem, które są naprawdę bezpieczne. 

Reakcja na awarie

Wskaźnik, który prawdopodobnie często umyka uwadze, to sposób, w jaki system radzi sobie z awariami. Awaria zdarza się z różnych powodów, a obiektowe przechowywanie danych musi je wszystkie obsługiwać.

Na przykład, istnieje pojedynczy punkt awarii, a jego metryka wynosi zero.

Niestety, wiele systemów przechowywania obiektów korzysta ze specjalnych węzłów, które muszą być aktywowane, aby klaster działał poprawnie. Należą do nich węzły nazwane lub serwery metadanych — to tworzy pojedynczy punkt awarii.

Nawet tam, gdzie przewidziano kilka punktów awarii, kluczowe jest, aby system potrafił wytrzymać katastrofalne awarie. Dyski psują się, serwery padają. Kluczowym zagadnieniem jest stworzenie oprogramowania zaprojektowanego do obsługi awarii jako normalnego stanu. Kiedy dysk lub węzeł ulegnie awarii, takie oprogramowanie będzie działać bez zmian.

Wbudowana ochrona przed usunięciem i degradacją danych zapewnia: możesz stracić tyle dysków lub węzłów, ile masz bloków parzystości — zazwyczaj połowę dysków. Tylko wtedy oprogramowanie nie będzie w stanie przywrócić danych.

Awaria rzadko jest testowana pod obciążeniem, ale takie testy są niezbędne. Symulacja awarii pod obciążeniem pokaże całkowite koszty poniesione po awarii.

Spójność

Wskaźnik spójności na poziomie 100% nazywa się również ścisłą spójnością. Spójność jest kluczowym elementem każdego systemu pamięci masowej, ale ścisła spójność występuje dość rzadko. Na przykład, Amazon S3 ListObject nie jest ściśle spójny, jest spójny tylko na końcu.

Co to znaczy mieć ścisłą spójność? Po każdej potwierdzonej operacji PUT muszą być spełnione następujące warunki:

  • Zaktualizowana wartość jest widoczna przy odczycie z dowolnego węzła.
  • Aktualizacja jest chroniona przez rezerwowanie przed awarią węzła.

Oznacza to: jeśli wyciągniesz wtyczkę w trakcie zapisu, nic nie zostanie utracone. System nigdy nie zwraca uszkodzonych lub przestarzałych danych. To wysoka poprzeczka, która ma znaczenie w wielu scenariuszach: od aplikacji transakcyjnych po backupy i przywracanie.

Podsumowanie

To są nowe metryki obiektowego przechowywania, które odzwierciedlają modele wykorzystania w nowoczesnych organizacjach, gdzie wydajność, spójność, skalowalność, domeny awarii oraz zgodność z S3 stanowią fundamenty dla aplikacji chmurowych i analityki wielkich danych. Zalecam korzystanie z tej listy jako uzupełnienia ceny przy tworzeniu nowoczesnych stosów danych. 

O obiektowym przechowywaniu Mail.ru Cloud Solutions: Architektura S3. 3 lata ewolucji Mail.ru Cloud Storage.

Co jeszcze przeczytać:

  1. Przykład aplikacji opartej na zdarzeniach z wykorzystaniem webhooków w obiektowym przechowywaniu S3 Mail.ru Cloud Solutions.
  2. Więcej niż Ceph: blokowe przechowywanie w chmurze MCS 
  3. Praca z obiektowym przechowywaniem S3 Mail.ru Cloud Solutions jak z systemem plików.
  4. Nasz kanał na Telegramie z wiadomościami o aktualizacjach przechowywania S3 i innych produktach

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster