Obiektowe pamięci masowe to ostatnio gorący temat. Sama idea nie jest nowa, pojawiła się jeszcze w latach 90-tych, a w 2005 r. na rynek weszły pierwsze rozwiązania tego typu. Dotychczas jednak przegrywały w konkurencji z technologiami NAS i SAN. Za sprawą popularyzacji chmury ten stan rzeczy zmienił się.

Systemy obiektowe dobrze pasują do nowych środowisk – nieustrukturyzowanych zbiorów danych, które obejmują bardzo duże pliki medialne czy Big Data. Nieodłączną cechą tych systemów jest możliwość rozmieszczenia obiektów na różnych urządzeniach przechowujących dane. To umożliwia pozbycie się wad związanych z przechowywaniem danych w systemach plikowych lub blokowych, w których awaria urządzeń może prowadzić do chwilowego braku dostępności danych bądź ich całkowitą utratę.

Czym jest obiekt?

Obiekt to porcja danych z przypisanymi metadanymi, które mogą zawierać szereg informacji na temat tej porcji danych (np. indeksy, kontrola dostępu, relacje między danymi). Ta porcja danych może być czymkolwiek, np. dokumentem Word, rekordem bazy danych czy zbiorem danych pochodzących z czujników IoT. GUID (Global Unique Identifier) to z reguły suma kontrolna, która gwarantuje, że dane nie zostaną zmodyfikowane lub uszkodzone. W unikalny sposób identyfikuje także obiekt. Ponieważ obiekt może przechowywać dowolną strukturę danych, to oznacza, że pliki i bloki są jego podzbiorami. To istotne z punktu widzenia budowy uniwersalnych pamięci masowych.

Wydajność obiektowych pamięci masowych

Wczesne system obiektowe były dalekie od doskonałości i charakteryzowały się wysokim narzutem. Skutkowało to ich niską wydajnością. Dlatego przez lata znajdowały tylko niszowe zastosowania. Prace nad udoskonaleniem kodu przyniosły jednak efekty, a dodatkowo do użycia weszły nośniki SSD, które znacznie skróciły opóźnienia. Dzisiaj obiektowe pamięci masowe są równie szybkie, jak systemy plikowe i blokowe. Co więcej, gdy zaczniemy korzystać z technologii NVMe, wydajność ponownie znacznie się zwiększy. Najwięcej skorzystają na tym właśnie systemy blokowe.

Producenci object storage

Oprogramowanie systemów obiektowych oferuje szereg producentów. Wśród komercyjnych rozwiązań liderami są Caringo oraz Scality, ale konkurują z Ceph, projektem open source wspieranym przez Red Hat Software i dużą społeczność programistów. OpenStack również ma swój projekt open source – Swift. Jest on konkurencją dla Ceph we wdrożeniach OpenStack. Instalacja tego typu oprogramowania na standardowych serwerach x86 jest dość prosta.

Operatorzy duży chmur publicznych korzystają z własnych systemów obiektowych, ale dotychczas żaden nie zdecydował się na sprzedaż tych rozwiązań na rynku. Jest też wiele firm, m.in. producenci serwerów lub macierzy dyskowych, którzy oferują gotowe rozwiązania składające się z oprogramowania i sprzętu. Wśród startupów tym oprogramowaniem jest głównie Ceph.

Skalowalność

Mówiąc o skalowalności w kontekście pamięci masowych trzeba brać pod uwagę dwa czynniki. Pierwszym jest praktyczna możliwość obsłużenia ogromnej liczby obiektów. Wykorzystanie identyfikatora GUID spełnia to wymaganie. Drugim są wyzwania związane z wyszukiwaniem i zarządzaniem dużą liczbą identyfikatorów GUID. Jedną z koncepcji jest wykorzystanie centralnej bazy danych do ich przechowywania, ale to wiąże się dużymi opóźnieniami. Dlatego w praktyce, aby uniknąć wąskich gardeł, stosuje się specjalne algorytmy do rozmieszczania danych oraz specjalnych wskaźników informujących, w którym węźle jest zapisany początek danego obiektu. Dlatego skalowanie pamięci obiektowych wiąże się z koniecznością zwiększania mocy obliczeniowej.

Zastosowania obiektowych pamięci masowych

System obiektowy jest idealny do przechowywania danych, które są rzadko edytowane, np. plików multimedialnych czy stron internetowych. Jest również najlepszym wyborem dla systemów Big Data ze względu na dużą skalowalność i obsługę nieustrukturyzowanych danych. Tradycyjne systemy obiektowe służą również do przechowywania backupów, archiwów i innych statycznych danych. Internet Rzeczy jest źródłem ogromnej ilości nieustrukturyzowanych danych, np. z czujników. Tutaj również systemy obiektowe są najlepszym wyborem.

Software Defined Storage

SDS to sposób na oddzielenie warstwy kontrolnej pamięci masowej od sprzętu. Większość oprogramowania systemów obiektowych, które są stosunkowo nowe, można łatwo przemodelować, aby działały jak SDS. Uruchomienie obiektowej pamięci masowej jako wirtualnej puli usług oznacza, że możliwości skalowania i elastyczność stają się jeszcze większe. Ponadto system obiektowy często można wykorzystać do zbudowania klastra, w którego skład mogą wchodzi różne platformy sprzętowe.

Chmura

Większość usług typu cloud storage to systemy obiektowe. W ich przypadku techniki replikacji są znacznie łatwiejsze do wdrożenia, a służą one do rozmieszczenia danych w różnych lokalizacjach. Przykładowo, dwie kopie mogą być przechowywane w podstawowej lokalizacji, a trzecia kopia w lokalizacji zapasowej. Systemy obiektowe w chmurze są niedrogie, co spowodowało, że w ostatnich latach zyskały one w tych zastosowaniach bardzo dużą popularność. Wciąż jednak poprawy wymagają pewne aspekty, np. współdzielenie danych między chmurą prywatną i publiczną. Chodzi o to, żeby operacja na danych mogły jednocześnie obejmować oba środowiska.

Podziel się na:
  • Facebook
  • Google Bookmarks
  • LinkedIn