Przyrost ilości danych
Zarówno w naszych domowych komputerach, jak i w systemach biznesowych możemy zaobserwować ciągle przyspieszający rozrost ilości danych. Filmy, które zapisujemy mają coraz większą rozdzielczość, przepustowość łączy rośnie, możemy wysyłać i odbierać coraz większe ilości danych.
Problemem w dużej ilości danych jest wyszukiwanie informacji. Zapewne nieraz szukaliście w swoich komputerach dokumentów, zdjęć, filmów, które kiedyś zostały zapisane w systemie plików.
W przypadku dokumentów tekstowych i innych ustrukturyzowanych danych możemy przeszukiwać np. zawartość plików sprawdzając czy zawierają określone słowo. W przypadku zdjęć i obrazów oraz innych nie ustrukturyzowanych danych zadanie jest trudniejsze. Niektóre pliki multimedialne mogą zawierać metadane (dane o danych) ułatwiające odnalezienie informacji (np. EXIF zawarty w zdjęciach lub dane w filmach zawierające datę a czasami współrzędne GPS rejestracji materiału, a także informacje o utworze i artystach zawarte np. w plikach MP3).
Przyrost danych kojarzy się z zakupem coraz pojemniejszych dysków twardych, jednak prawdziwym problemem jest zapewnienie możliwości efektywnego korzystania ze zgromadzonych danych.
Pamięć obiektowa - alternatywa dla bloków i plików?
Jesteśmy przyzwyczajeni do przechowywania danych w postaci plików na dysku komputera lub w bezpieczniejszej wersji na macierzy dyskowej udostępniającej zasoby CIFS, NFS itp. Cechą pamięci zorganizowanej w hierarchicznej strukturze jest system plików, w którym zakładamy katalogi i pliki. Hierarchiczna struktura systemu plików wydaje się być logiczna, możemy np. zakładać katalogi z poszczególnych lat i np. w katalogu '2015' umieścić katalog ze styczniem '01' i dniem, a następnie umieścić pliki (np. pliki logu). Katalogi można posegregować tematycznie i w większości przypadków pozwoli to na uporządkowanie plików na domowym komputerze.
Innym podejściem jest udostępnianie przez macierz dyskową zasobów blokowych, np. iSCSI, FCP itp. w skrócie urządzenie udostępnia nam fragment pamięci dyskowej, w systemie operacyjnym widoczny jako kolejny dysk. System operacyjny 'rozmawia' z macierzą o blokach pamięci zapisując tam dane w dowolnej formie. Najczęściej będzie to system plików, jednak równie dobrze może to być pojedynczy plik, np. bazy danych.
Podłączając do komputera dysk interfejsem SATA, SAS itp. również wykorzystujemy pamięć blokową, dysk 'rozmawia' z kontrolerem w komputerze o blokach, a nie o katalogach, plikach. System operacyjny pozwala na interpretację danych zapisanych w blokach na dysku twardym i pozwala aplikacjom na poruszanie się po drzewie katalogów i dostęp do plików.
Pamięć obiektowa
Czy można zapisywać dane inaczej niż w blokach pamięci lub systemie plików?
Ciekawym pomysłem jest pamięć obiektowa, najprościej możemy wyobrazić sobie taką pamięć jako czarną skrzynkę, do której wrzucamy dane np. zdjęcie wraz z jego nazwą oraz dodatkowymi informacjami, system generuje dodatkowe metadane o naszym pliku, możemy otrzymać także jego unikalny numer identyfikacyjny.
Co ciekawe, nie mamy dostępnego tradycyjnego systemu plików, tylko skrzynkę, do której wrzucamy dane i metadane, a także otrzymujemy metadane wygenerowane przez system. Całość procesów, jakie dzieją się w "czarnej skrzynce" może zostać przed nami (przed aplikacjami) ukryta.
Wyobraźmy sobie serwer WWW, który udostępnia strony z dużą ilością obrazków. W podejściu plikowym otwieramy kolejne pliki np. /obrazki/2015/02/news/intro.jpg. W przypadku pamięci obiektowej prosimy o zdjęcie numer 15 i otrzymujemy dane zdjęcia numer 15.
Metadane pozwalają także na kontrolę spójności zapisanych danych (funkcja skrótu).
Wygoda, skalowalność, replikacja, wyszukiwanie.
Jeżeli kiedykolwiek przenosiliście zasoby np. serwera WWW, zapewne spotkaliście się z problemem uszkodzonych linków - po prostu pewne ścieżki w systemie plików nie zostały prawidłowo zmienione i nie trafiamy w odpowiednie dane. W przypadku pamięci obiektowej, zdjęcie numer 15 zawsze będzie dostępne pod numerem 15. Takie podejście daje ciekawe możliwości, zobaczcie jak szybko można napisać aplikację do wykonywania kopii zapasowych. Chcąc zapisać dane, podajemy np. datę, numer systemu, jaki kopiujemy, możemy dodać metadane np. do kiedy kopia ma być przechowywana. Podczas odtwarzania podajemy interesujące nas parametry i otrzymujemy plik kopii zapasowej.
Co się stanie jeżeli zapomnimy metadane pliku? Wystarczy poszukać... Poza danymi mamy rozbudowane metadane, których wyszukiwanie jest szybkie i sprawne. Możemy np. podać przedział czasowy lub nazwę maszyny i otrzymamy listę plików kopii zapasowej.
Co z replikacją, czyli kopiowaniem danych do innego systemu w innej lokalizacji?
Nie jesteśmy związani systemem plików, replikowane są obiekty i niezależnie, w której lokalizacji systemu (np. oddziale firmy lub kontynencie) zapytamy o zdjęcie numer 15, otrzymamy ten sam obiekt.
System pamięci obiektowej możemy łatwo skalować. Operujemy na obiektach i niekoniecznie interesuje nas, gdzie są składowane. Można umieszczać kolejne węzły pamięci masowej z kolejnymi węzłami obliczeniowymi, co zapewnia skalowanie pojemności i wydajności systemu.
Co dzieje się w "czarnej skrzynce"?
Procesy wewnątrz pamięci obiektowej mogą być dla naszej wygody schowane wewnątrz "czarnej skrzynki". Podczas zapisu obiektu można policzyć skrót z bloków danych i porównać z już istniejącymi, dzięki czemu dane będą zdeduplikowane (nie będziemy zapisywać tych samych danych wielokrotnie). Wewnątrz macierzy obiektowej dane mogą podlegać kompresji, dzięki czemu pewne rodzaje danych będą zajmować mniej miejsca, a dostęp do nich będzie wydajniejszy. Wymienione procesy pomagają w oszczędzaniu przepustowości łączy podczas replikacji pomiędzy lokalizacjami z pamięciami obiektowymi. Pamięć obiektowa dba o dostępność danych (np. mechanizmy ochrony w postaci RAID), a także wydajność (np. pule pamięci flash, cache kontrolerów itp.).
Jak zrobiona jest pamięć obiektowa?
Oczywiście nie ma tu żadnej magii i obiektowych dysków (na razie dostępne są dyski dedykowane do obiektowego składowania danych). Najczęściej w systemie znajdują się wydajne macierze dyskowe udostępniające przestrzeń dyskową protokołami blokowymi lub plikowymi. Z dostępnej przestrzeni korzysta aplikacja pamięci obiektowej, która otrzymuje nasze żądania i realizuje je zapisując i odczytując dane na macierzach. Całość działa dzięki bazie danych (metadanych), która wiąże bloki/pliki zapisane na dyskach z definicjami metadanych. System pamięci masowej może działać jako wysokodostępna maszyna wirtualna. Odrywamy się w tym momencie od tradycyjnego przywiązania do sprzętu i mamy wirtualną maszynę (maszyny) działającą w środowisku wirtualizacji opartym o określone zasoby (serwery z CPU i RAM). Maszyna wirtualna pamięci obiektowej potrzebuje jeszcze dostępi do pamięci masowej, na której będzie zapisywać nasze dane. Takie podejście do architektury rozwiązania pozwala na łatwe przenoszenie i skalowanie rozwiązania.
Obecnie pamięć obiektowa znajduje zastosowanie głównie w aplikacjach biznesowych przetwarzających duże ilości danych, co nie oznacza, że nie korzystamy z niej na co dzień (np. używając popularnych serwisów WEB). Wygląda na to, że pamięć obiektowa na razie nie pojawi się w naszych domach, jednak czy ktoś spodziewał się obecnej popularyzacji urządzeń NAS dla zastosowań domowych?
Warto wiedzieć, że można przechowywać dane inaczej niż w postaci bloków lub systemie plików. Czy korzystaliście z pamięci obiektowej?
Materiał przygotowany we współpracy z firmą Arrow ECS www.arrowecs.pl
Fajne? Ranking DIY
