
Zespół ds. pamięci masowej obiektów S3 przetłumaczono artykuł na temat kryteriów, które należy wziąć pod uwagę przy wyborze pamięci masowej obiektów. Poniższy tekst został napisany przez autora.
Kiedy myślimy o przechowywaniu obiektów, ludzie zazwyczaj biorą pod uwagę tylko jeden parametr: cenę za TB/GB. Oczywiście, ten wskaźnik jest ważny, jednak czyni podejście jednostronnym i stawia znak równości między przechowywaniem obiektów a narzędziem do przechowywania archiwalnego. Ponadto takie podejście zmniejsza znaczenie pamięci masowej obiektów w stosie technologicznym przedsiębiorstwa.
Przy wyborze pamięci masowej obiektów należy wziąć pod uwagę pięć cech:
- występ;
- skalowalność;
- Zgodny z S3;
- reakcja na awarie;
- uczciwość.
Te pięć cech, obok kosztów, stanowią nowe wskaźniki dla pamięci obiektowej. Rozważmy je wszystkie.
produktywność
Tradycyjne pamięci obiektowe nie słyną ze swojej wydajności. Dostawcy usług nieustannie poświęcają swoją ofertę w pogoni za niskimi cenami. Jednak w przypadku nowoczesnych systemów przechowywania obiektów sytuacja wygląda inaczej.
Prędkość różnych rozwiązań pamięci masowej zbliża się do Hadoop'a, a nawet go przewyższa. Współczesne wymagania dotyczące prędkości odczytu i zapisu: od 10 GB/s dla dysków twardych do 35 GB/s dla dysków NVMe.
Taka przepustowość jest wystarczająca dla Spark, Presto, Tensorflow, Teradata, Vertica, Splunk i innych nowoczesnych środowisk obliczeniowych w stosie analitycznym. Fakt, że bazy danych MPP są skonfigurowane do przechowywania obiektów, wskazuje, że jest ono coraz częściej wykorzystywane jako podstawowe miejsce przechowywania.
Jeśli Twój system pamięci masowej nie zapewnia wymaganej szybkości, nie będziesz w stanie wykorzystać danych i wyciągnąć z nich wartości. Nawet jeśli wyodrębnisz dane z pamięci obiektowej i przeniesiesz je do struktury przetwarzania w pamięci, nadal będziesz potrzebować przepustowości, aby przesyłać dane do i z pamięci. Tradycyjne pamięci masowe nie mają wystarczającej ilości tego materiału.
To jest kluczowa kwestia: nowym wskaźnikiem wydajności jest przepustowość, a nie opóźnienie. Jest to wymóg skalowalności danych i norma w nowoczesnej infrastrukturze danych.
Choć testy porównawcze są dobrym sposobem na określenie wydajności, nie można jej dokładnie zmierzyć, dopóki aplikacja nie zostanie uruchomiona w danym środowisku. Dopiero potem można stwierdzić, gdzie dokładnie znajduje się wąskie gardło: w oprogramowaniu, dyskach, sieci czy w obliczeniach.
Skalowalność
Skalowalność odnosi się do liczby petabajtów, które mieszczą się w pojedynczej przestrzeni nazw. Dostawcy zapewniają łatwą skalowalność, ale nie mówią, że w miarę skalowania ogromne, monolityczne systemy stają się kruche, złożone, niestabilne i drogie.
Nowym wskaźnikiem skalowalności jest liczba przestrzeni nazw lub klientów, którym można służyć. Dane te pochodzą bezpośrednio od hiperskalerów, gdzie bloki składowe pamięci masowej są małe, ale skalowalne do miliardów jednostek. Zasadniczo jest to wskaźnik chmury.
Małe bloki konstrukcyjne są łatwiejsze do optymalizacji, co oznacza, że można je zabezpieczać, kontrolować dostęp, zarządzać nimi za pomocą zasad, w ramach cyklu życia i uaktualniać bez zakłóceń. I ostatecznie zapewnić produktywność. Rozmiar bloku konstrukcyjnego jest funkcją możliwości kontrolowania domeny awarii, a w ten sposób buduje się systemy o wysokiej odporności.
Multi-klient ma wiele cech. Choć kontekst odnosi się do sposobu, w jaki organizacje udostępniają dostęp do danych i aplikacji, odnosi się również do samych aplikacji i logiki stojącej za ich izolowaniem od siebie.
Cechy nowoczesnego podejścia do zarządzania wieloma klientami:
- W krótkim czasie liczba klientów może wzrosnąć z kilkuset do kilku milionów.
- Klienci są całkowicie odizolowani od siebie. Dzięki temu mogą uruchamiać różne wersje tego samego oprogramowania i przechowywać obiekty z różnymi konfiguracjami, uprawnieniami, funkcjami, poziomami zabezpieczeń i usług. Jest to konieczne w przypadku skalowania nowych serwerów, aktualizacji i obszarów geograficznych.
- Pamięć masowa jest elastycznie skalowalna, zasoby są udostępniane na żądanie.
- Każda operacja jest obsługiwana przez API i zautomatyzowana bez ingerencji człowieka.
- Oprogramowanie można umieścić w kontenerach i wykorzystać standardowe systemy orkiestracji, takie jak Kubernetes.
Zgodność z S3
API Amazon S3 jest de facto standardem przechowywania obiektów. Każdy dostawca oprogramowania do przechowywania obiektów twierdzi, że jest z nim kompatybilny. Zgodność z S3 jest binarna: albo jest w pełni zaimplementowana, albo nie.
W praktyce zdarzają się setki lub tysiące przypadków skrajnych, w których podczas korzystania z pamięci masowej obiektów coś idzie nie tak. Zwłaszcza wśród dostawców zastrzeżonego oprogramowania i usług. Jego głównym zastosowaniem jest bezpośrednia archiwizacja i tworzenie kopii zapasowych, więc powodów wywoływania API jest niewiele, a przypadki użycia są jednorodne.
Oprogramowanie Open Source ma znaczące zalety. Obejmuje większość scenariuszy brzegowych, biorąc pod uwagę rozmiar i różnorodność aplikacji, systemów operacyjnych i architektury sprzętowej.
Wszystko to jest istotne dla twórców aplikacji, dlatego warto przetestować, jak Twoja aplikacja współpracuje z dostawcami pamięci masowej. Dzięki oprogramowaniu typu open source cały proces staje się prostszy — łatwiej jest zrozumieć, która platforma jest odpowiednia dla danej aplikacji. Dostawcę można używać jako pojedynczego punktu wejścia do repozytoriów, co oznacza, że spełni on Twoje potrzeby.
Oprogramowanie typu open source oznacza, że aplikacje nie są związane ze sprzedawcą i są bardziej przejrzyste. Zapewnia to długi cykl życia aplikacji.
Jeszcze kilka uwag na temat oprogramowania typu open source i S3.
Jeśli korzystasz z aplikacji przetwarzających duże zbiory danych, usługa S3 SELECT zwiększa wydajność i efektywność o rząd wielkości. Można to zrobić, używając języka SQL, aby pobrać z magazynu tylko te obiekty, których potrzebujesz.
Kluczową kwestią jest obsługa powiadomień dotyczących kontenerów. Powiadomienia dotyczące kontenerów upraszczają przetwarzanie bezserwerowe, które jest ważnym elementem każdej architektury mikrousług dostarczanej jako usługa. Biorąc pod uwagę, że przechowywanie obiektów jest w istocie przechowywaniem w chmurze, możliwość ta staje się kluczowa, gdy przechowywanie obiektów jest wykorzystywane przez aplikacje chmurowe.
Wreszcie implementacja S3 musi obsługiwać interfejsy API szyfrowania po stronie serwera Amazon S3: SSE-C, SSE-S3, SSE-KMS. Co więcej, S3 obsługuje ochronę przed manipulacją, która jest naprawdę bezpieczna.
Reakcja na awarie
Często pomijanym wskaźnikiem jest to, w jaki sposób system radzi sobie z awariami. Awarie zdarzają się z różnych powodów, a pamięci masowe obiektów muszą sobie z nimi radzić.
Na przykład, jeśli istnieje pojedynczy punkt awarii, jego metryka wynosi zero.
Niestety, wiele systemów przechowywania obiektów korzysta ze specjalnych węzłów, które muszą zostać aktywowane, aby klaster mógł działać prawidłowo. Należą do nich węzły nazw i serwery metadanych, co tworzy pojedynczy punkt awarii.
Nawet jeśli przewiduje się występowanie wielu punktów awarii, najważniejsza jest odporność na katastrofalne awarie. Dyski ulegają awarii, serwery ulegają awarii. Kluczem jest stworzenie oprogramowania, które będzie w stanie radzić sobie z awariami jako czymś normalnym. Jeśli dysk lub węzeł ulegnie awarii, oprogramowanie będzie nadal działać bez zmian.
Wbudowana ochrona przed usunięciem i degradacją danych gwarantuje, że możesz utracić tyle dysków lub węzłów, ile masz bloków parzystości — zazwyczaj połowę dysków. Dopiero wtedy oprogramowanie nie będzie mogło zwrócić danych.
Testy awarii przeprowadza się rzadko pod obciążeniem, jednak takie testy są obowiązkowe. Symulacja awarii pod obciążeniem pokaże skumulowane koszty poniesione po awarii.
Konsystencja
Wskaźnik spójności na poziomie 100% nazywany jest także ścisłą spójnością. Spójność jest kluczowym elementem każdego systemu przechowywania danych, ale całkowita spójność jest rzadkością. Na przykład obiekt ListObject usługi Amazon S3 nie jest ściśle spójny, jest spójny tylko na końcu.
Co oznacza ścisła spójność? W przypadku wszystkich operacji następujących po potwierdzonej operacji PUT muszą być spełnione następujące warunki:
- Zaktualizowana wartość jest widoczna podczas odczytu z dowolnego węzła.
- Aktualizacja jest zabezpieczona przed awarią węzła dzięki redundancji.
Oznacza to, że jeśli odłączysz wtyczkę w trakcie nagrywania, nic nie zostanie utracone. System nigdy nie zwraca uszkodzonych lub nieaktualnych danych. To wysoko postawiona poprzeczka, która ma znaczenie w wielu scenariuszach — od aplikacji transakcyjnych po tworzenie kopii zapasowych i odzyskiwanie danych.
wniosek
Są to nowe wskaźniki pamięci masowej obiektów, które odzwierciedlają wzorce użytkowania w nowoczesnych organizacjach, w których wydajność, spójność, skalowalność, domeny błędów i kompatybilność z usługą S3 stanowią podstawowe elementy aplikacji w chmurze i analiz dużych zbiorów danych. Zalecam korzystanie z tej listy w połączeniu z cennikiem przy tworzeniu nowoczesnych stosów danych.
O obiektowym magazynie Mail.ru Cloud Solutions: .
Co jeszcze przeczytać:
- .
- .
- .
Źródło: www.habr.com
