Nowa architektura macierzy

Nowe systemy składowania danych nie przypominają urządzeń, z jakimi oswoiliśmy się przez lata. Wydajność, niezawodność i ochronę danych coraz częściej zapewniają rozwiązania programowe, a nie specjalistyczne procesory, kontrolery RAID czy serwery backupowe.

Rynek rozwiązań do przechowywania danych podlega szybkim zmianom. Część z nich ma związek z nowymi potrzebami klientów, dotyczącymi szczególnie środowisk o naprawdę dużej skali oraz wielkich ilości danych. Część zmian wynika z szybkiego dojrzewania technologii, które jeszcze niedawno uchodziły za nowinkę. Jeszcze inna część zmian wywodzi się z faktu, że składowanie i zarządzanie danymi gwałtownie zbliżają się do siebie – na skutek standaryzacji platform i coraz powszechniejszego wykorzystania oprogramowania w miejsce specjalizowanych układów scalonych.

Skala wymaga zmian

Choć danych przybywa, średnia częstotliwość sięgania po nie spada. Skrajnym przypadkiem mogą być serwisy społecznościowe, w których znakomita część zasobów jest zapisywana tylko po to, by nikt nigdy nie sięgnął do nich powtórnie... W tym wypadku żywotność medium w sensie liczby zapisów traci ważność na rzecz niskiego kosztu produkcji i małego poboru energii. Producenci pamięci Flash już pracują nad takimi rozwiązaniami. Może się okazać, że taśmy WORM o wielkiej pojemności zostaną ostatecznie wyparte przez tanie pamięci półprzewodnikowe.

Wraz z premierą systemów Exadata i Exalytics Oracle pokazał, że umieszczenie zaawansowanej logiki między składem danych i serwerami baz danych pozwala osiągać znaczące korzyści wydajnościowe. Patrząc szerzej, to jednak nie taka znów nowość. Bliskość aplikacji i składów danych zawsze służyła wydajności, tyle że szybko napotykała na poważne bariery w dziedzinie skalowania. Oracle wykorzystał postęp w dziedzinie oprogramowania klastrującego (kolejne wersje RAC) i technologie szybkich sieci (InfiniBand, RDMA), by te bariery przełamać – choć także tylko do pewnego stopnia.

Dalsze skalowanie wymaga kolejnych zmian w architekturze aplikacji, w tym wypadku mechanizmu zarządzającego synchronizacją danych między aplikacją i medium fizycznym: bazy danych, systemu plików lub repozytorium obiektowego. Z tych właśnie potrzeb wywodzą się bazy danych zoptymalizowane pod kątem odczytów NoSQL, nowoczesne systemy plików, np. ZFS czy Lustre, a także repozytoria obiektowe, lokalne (np. Atmos firmy EMC, CAStor firmy Caringo) i chmurowe (np. Google Cloud Storage, Amazon S3 czy Microsoft Azure). Składowanie danych jest tu niczym innym, jak jeszcze jedną usługą.

Mniej warstw, czyli szybciej

Równolegle mamy do czynienia z eliminowaniem warstw. Seagate wykorzystał obecne w specyfikacji SCSI od 2004 r., lecz dotychczas praktycznie osierocone funkcje zapisu obiektowego (OSD – Object-based Storage Device), do zaproponowania szerszej, interesującej architektury systemów składowania danych. Architektura zwana Seagate Kinetic Open Storage powstawała kilka lat i w momencie ujawnienia jej istnienia (w październiku 2013 r.) była już całkiem dojrzała. Seagate zdołał przy tym pozyskać dla swojej wizji ważnych partnerów branżowych. Są wśród nich m.in.: Dell, eVault, Huawei, Hyve, Rackspace, Sanmina, Supermicro, SwiftStack, Yahoo! i Xyratex.

W architekturze Seagate pojedyncze urządzenie składujące dane (dysk z kontrolerem, urządzenie SSD) jest samodzielnym elementem (serwerem?), zapisującym dane nie w formie plików, lecz obiektów wyposażonych w metadane aplikacji oraz sumy kontrolne. I teraz prawdziwa rewolucja. Kontroler dysku porozumiewa się bezpośrednio z aplikacjami za pośrednictwem 23 komend OSD obsługiwanych przez biblioteki API (Java, C, C++, Python, Erlang), które działają na poziomie systemu operacyjnego. Po drodze nie ma żadnych pośredników. W architekturze Seagate nie ma miejsca na tradycyjnie rozumianą sieć SAN czy kontroler macierzowy. Dysk komunikuje się bezpośrednio z serwerem przez Gigabit Ethernet. W ostatecznym rezultacie warstwę aplikacyjną i warstwę danych można skalować niezależnie i bez dodatkowych ograniczeń wynikających z topologii sieci SAN.


TOP 200