sobota, 11 września 2010

ISM - CAS - Content Addressed Storage

CAS, czyli Content Addressed Storage, jest to system przechowujący pewne specyficzne dane, których główną cechą jest to że nie ulegają zmianie. Ilość takich niezmienialnych danych (fixed content) rośnie bardzo gwałtownie. Dodatkowo zwykle wymagana jest ich ciągła dostępność i odczyt przez wielu użytkowników jednocześnie; powoduje to pewne trudności w zarządaniu nimi w "tradycyjny" sposób.
Przykładem fixed content są: Emaile , projekty CAD/CAM, kontrakty , fotografie , dane medyczne , video , audio, dane pomiarowe itd...


Tradycyjne rozwiązania dla archiwizacji danych:

Wyróżnić można 3 tradycyjne kategorie rozwiązań dla przechowywania danych archiwalnych: online , nearline , offline.
  • Online archive: Storage jest bezpośrednio połączony z hostem i dane są natychmiast dostępne.
  • Nearline archive: Strorage jest podpięty do hosta i dane są przechowywane lokalnie ale urządzenie musi zostać podmontowane lub załadowane zanim uzyskany zostanie dostęp do informacji
  • Offline archive: Storage nie jest bezpośrednio przyłączony do hosta. Wymagana jest ręczna interwencja zanim uzyskany zostanie dostęp do danych.
Archwa bardzo często przechowywane są na urządzeniach WORM (Write Once Read Many ) - np: CD-ROMie , dzięki temu można być pewnym że nie zostały zmodyfikowane.
Tradycyjne rozwiązania mają wady które powodują, utrudnienia w skutecznym zarządzaniu danymi niezmienialnymi:
  • Taśmy magnetyczne są bardzo wolne, dodatkowo często zmieniają się ich standardy
  • Nośniki optyczne są drogie i mało pojemne
  • Odzysk plików z taśm lub nośników optycznych jest bardzo czasochłonny
  • Zarówno taśma jak i nośniki optyczne są wrażliwe na uszkodzenia i wpływ czasu na ich jakość

CAS:

Odpowiedzią na rosnące zapotrzebowanie na przechowywanie danych niezmienialnych jest technologia CAS ( Content Addressed Storage ). CAS jest systemem dedykowanym do przechowywania danych typu "fixed content". Podstawową jednostką danych dla systemu CAS jest obiekt. Obiektem nazywamy w tym przypadku dane (plik) i jego atrybuty. Dla CASu ważne jest nie tyle położenie danego obiektu ( tak jak w tradycyjnym zarządzaniu storage) ale jego zawartość. Dodatkowo z każdego obiektu robiony jest tzw: hash , zwany także content adress (CA). CAS jest rozwiązaniem typu single-instance storage (SIS), który automatycznie wykrywa (poprzez porównywanie CA) i redukuje wszystkie zdublowane obiekty.


Zalety stosowania CASu:
  • Autentyfikacja i integralność treści : Ponieważ każdy obiekt ma przypisany do siebie unikalny skrót, który go identyfikuje, niemożliwa jest zmiana jego treści bez wykrycia tego faktu. Jeżeli obiekt został zmieniony na skutek uszkodzenia, to z kopii odzyskiwana jest oryginalna postać. Jeżeli była to zmiana zamierzona, to liczony jest nowy skrót , a przechowane zostają obydwie wersje obiektu (aktualna i zastąpiona)
  • Niezależność o położenia: Dostęp do obiektu odbywa jest niezależny od jego położenia, które jest transparentne dla aplikacji zgłaszającej zapotrzebowanie na dane. Adresowanie odbywa się bez podawania informacji o ścieżkach katalogów, URLach czy folderach.
  • Single-instance storage (SiS) : Dzięki temu, że adresem obiektu jest jego unikalny skrót, wygenerowany na podstawie zawartości, mamy gwarancję, że przechowywana jest tylko jedna kopia. Jeżeli na systemie zostaje zeskładowany obiekt o identycznej treści, niż istniejący już w systemie, to zamiast przydzielać mu dodatkowe miejsce, system skieruje wskaźnik ( skrót ) nowego obiektu do tego już obecnego.
  • Wymuszenie retencji: Obiekt, oprócz samych danych, zawiera także meta-date, opisujące jego atrybuty oraz polityki, które się do niego odnoszą. Między innymi jest tam zawarta informacja o retencji i czasie przez jaki obiekt ma być przechowywany. Przed upłynięciem tego okresu niemożliwe jest usunięcie obiektu.
  • Niezależność od technologii
  • Szybkość działania

Architektura rozwiązań CAS:

Klient uzyskuje dostęp do macierzy typu CAS poprzez połączenie siecią LAN i wykorzystując do tego serwer z uruchomionym CAS API. Server ten umożliwia, aplikacji na kliencie, magazynowanie i przeglądanie danych z macierzy CAS.

CAS działa w strukturze nazywanej RAIN ( Redundant Array of Independent Nodes ). Składają się na nią węzły storage i węzły dostępu do sieci, połączone w cluster i komunikujące się za pomocą wewnętrznej sieci LAN. Klienci łączą się do systemu CAS używając niezależnej, zewnętrznej sieci LAN.

Węzły storage zwierają tanie i o dużej pojemności dyski ATA. Każdy węzeł ma także swój system operacyjny, z oprogramowaniem udostępniającym funkcjonalność CAS.

Podczas instalowania CAS clustra, każdemu z węzłów zostaje przypisana rola. Węzeł może być węzłem storage, access lub dual.
Węzły storage przechowują dane, czasem nazywa je się węzłami back-end. Zadaniem węzłów access jest udostępnić serwerowi dostęp do węzłów storage, poprzez wewnętrzny LAN. Ilość węzłów access zależy od ilości użytkowników, którzy będą korzystali z zasobów CAS. Pamięć dyskowa węzła skonfigurowanego jako access jest niewykorzystana. Takie węzły zwykle występują w instalacja CAS starszego typu.
Węzeł dual działa jak węzeł storage i access jednocześnie. Jest spotykany w konfiguracjach typu "pure node access".


Terminologia CAS:
  • API ( Application Programming Interface ) - implementacja interfejsu, która określa w jaki sposób klienci wysyłają swoje zapytania do serwera. CAS API jest umieszczone na serwerze aplikacji i odpowiada za przechowywanie i pobieranie objektów z systemu CAS.
  • BLOB ( Binary Large Object ) - dane bez opisu (metadanych).
  • CA ( Content Address ) - adres obiektu wygenerowany za pomocą algorytmu haszującego wykonanego na binarnej reprezentacji obiektu. Zmiana nawet pojedyńczego znaku w obiekcie powoduje całkowitą zmianę CA , dlatego też może być ona używana do jako "odcisk palca" obiektów. CA jest używane przez serwer do zlokalizowania obiektu na macierzy CAS
  • C-Clip - Wirtualna paczka zawierająca dane (BLOB) i powiązane z nim CDF. C-Clip ID to CA wysyłane do aplikacji klienta.
  • CDF ( C-Clip Descriptor File ) - Plik XMLowy tworzony przy tworzeniu C-Clipa , zawiera CA oraz wszyskie metadane związane z obiektem (wielkość, format , data wygaśnięcia itd.)


Proces składowania obiektów przez CAS:

  1. Użytkownik za pośrednictwem aplikacji wysyła do CAS API informację o danych do zarchiwizowania
  2. API oddziela dane (BLOB) od metadanych, CA jest liczone
  3. CA i metadane objektu są umieszczane w CDF . C-Clip ( BLOB+CDF) zostaje przesłany do CAS 
  4. System CAS jeszcze raz przelicza CA i porównuje go z tym które otrzymał (weryfikacja poprawności)
  5. Tworzone są kopie CDF i BLOB , a następnie do API wysyła się potwierdzenie zeskładowania obiektu. Do API wysyła się takżę C-Clip ID, które będzie przechowywane na serwerze aplikacji.
  6. Aplikacja używając C-Clip ID może odczytać dane z CAS

Proces odczytu obiektów z CAS:
  1. Użytkownik lub aplikacja wysyła żądanie dostępu do obiektu
  2. Aplikacja przeszukuje tablicę C-Clip ID w poszukiwaniu C-Clip ID obiektu którego dotyczyło zapytanie
  3. Za pośrednictwem API , żądanie jest wysyłane razem z C-Clip ID do systemu CAS
  4. CAS dostarcza obiekt.






W kolejnych wpisach zmienimy nieco tematykę i zajmiemy się wirtualizacją.

5 komentarzy:

  1. "Ponieważ każdy obiekt ma przypisany do siebie unikalny skrót, który go identyfikuje, niemożliwa jest zmiana jego treści bez wykrycia tego faktu."

    Jakiego faktu? Że ma skrót, który go indentyfikuje?
    Czy chodzi o to ze zmiana treści powoduje zmianę skrótu?

    OdpowiedzUsuń
  2. Już chyba wiem o co chodzi :) Każda zmiana treści będzie wykryta, dobrze myślę?

    OdpowiedzUsuń
  3. "może być ona używana do jako "odcisk palca" obiektów"

    O co chodzi? Co to jest odciska palca?

    OdpowiedzUsuń
  4. Odcisk palca jest to coś co pozwala nam na jednoznaczne zidentyfikowanie danej osoby.
    "Odcisk palca" obiektu działa w ten sam sposób - mamy jakiś ciąg kilkudziesięciu bajtów który pozwala nam jednoznacznie zidentyfikowanie danego obiektu.

    Jak to działa.
    Kiedy jakiś obiekt zostaje zapisany na macierzy CAS, od razu tworzony jest jego skrót (zwany też "odciskiem palca"). Kiedy po jakimś czasie chcemy sprawdzić czy ten obiekt nie jest zmieniony - należy jeszcze raz wyznaczyć z niego "odcisk palca" i sprawdzić czy zgadza się on z tym wyznaczonym za pierwszym razem.
    Podobną sytuację można wyobrazić sobie z ludźmi ;) Zostawiasz w banku swój odcisk palca i po 5 latach bez żadnych dokumentów przychodzisz i chcesz wypłacić pieniądze. Jeżeli bank jeszcze raz pobierze Twoje odciski i sprawdzi z tymi zapisanymi kilka lat temu to gdy będą identyczne będzie miał dużą pewność, że Ty to Ty ;)

    OdpowiedzUsuń