Pamięć masowa (ang. storage) jest niezbędnym elementem działania praktycznie każdego komputera, a co za tym idzie przedsiębiorstwa. O ile w przypadku komputerów osobistych nie zawsze istnieje konieczność dostępu do dysków sieciowych, tak w przypadku serwerów lub dużych zbiorów danych, w celu udostępnienia niezbędnego zasobu wykorzystuje się bardziej wyspecjalizowany sprzęt.

W ten sposób tworzy się szeroko pojęte rozwiązania SAN (ang. Storage Area Network, w wolnym tłumaczeniu sieć pamięci masowej), NAS (Network-Attached Storage) lub DAS (Direct-Attached Storage). Przy czym ostatni może być de facto realizowany przez połączenie sieciowe, co jest kwestią pewnych sporów dotyczących nomenklatury.

Ze względu na wagę zagadnienia, warto spojrzeć na temat pamięci masowej w ujęciu całościowym. Poniżej przedstawiamy wybrane wyzwania stojące przed organizacją, która ze względu na znaczną ilość danych (za dane można uznać nie tylko pliki, ale także na przykład dyski i obrazy maszyn wirtualnych) musi zaimplementować odpowiednie rozwiązanie. Kolejność ich omawiania nie jest przypadkowa. Wynika ona z następującego toku myślenia:

  • poszukiwanie czy wdrażanie rozwiązania technicznego bez uwzględnienia iż musi ono zaspokajać konkretną potrzebę biznesową byłoby nierozważne. Dlatego już na samym początku należy zrozumieć, czego oczekuje szeroko pojęty biznes względem rozwiązań pamięci masowej
  • następnie należy zwrócić uwagę na możliwości techniczne rozwiązań, spisać wymagania, a także zrozumieć kompromisy (ang. tradeoff), na które musimy się zgodzić w momencie planowania rozwiązania i jego architektury
  • na zakończenie należy zwrócić uwagę na czynnik ludzki – czy wewnątrz organizacji lub poza nią istnieją osoby, które są w stanie zrealizować cel biznesowy, działając w ramach pewnych ograniczeń technicznych.

Wyzwania biznesowe stawiane przed pamięcią masową:

  • ilość danych w przedsiębiorstwach nieustająco rośnie. Macierze, na których są one utrzymywane, muszą stale nadążać za tym wzrostem. Innymi słowy, nie mogą one być lub stać się wąskim gardłem
  • dane muszą być dostarczane w sposób pozwalający na konsumowanie ich nie tylko przez specjalistyczne programy, ale także przez szeroko rozumiane dojrzałe, otwarte lub zamknięte oprogramowanie oraz nowo powstające technologie, które ze względu na swoją dynamikę nie zawsze posiadają zdefiniowany oficjalny standard
  • zaproponowane rozwiązanie musi cechować się niezawodnością lub ograniczonym, najlepiej policzalnym, czasem przestojów
  • o ile to możliwe należy kategorycznie unikać oprogramowania „vendor lock-in”. Rozwiązania, z których „nie da się” zrezygnować lub zmienić ich dostawcy, mogą wywołać w dłuższej perspektywie niekontrolowany i gwałtowny wzrost kosztów.

Wyzwania techniczne:

  • od pewnego poziomu skalowania pionowego (ang. vertical scaling) zysk wydajności jest niewspółmierny do zainwestowanych środków. Skalowanie pionowe bardzo szybko dociera też do granicy swoich możliwości. Oznacza to, że należy poszukiwać rozwiązań skalujących się poziomo (ang. horizontal scaling), najlepiej (przynajmniej w teorii) liniowo
  • rozwiązania sieciowej pamięci masowej muszą zapewniać nie tylko odpowiednią wydajność, ale także być elastyczne i pozwalać na georeplikację
  • w przypadku wystąpienia drobnej usterki (np. awaria dwóch dysków w krótkim czasie), rozwiązanie, z reguły macierz, powinna nie wstrzymywać realizacji celu biznesowego i być w stanie dalej funkcjonować
  • w przypadku poważnej awarii (np. fragmentacja sieci niepozwalająca na uzyskanie quorum) dane muszą pozostać spójne (ang. consistent)
  • w przypadku katastrofy (np. pożar serwerowni lub uszkodzenie wielu dysków), macierz powinna dawać możliwość odzyskania jej z innego georeplikowalnego miejsca. Należy jednak pamiętać, że georeplikacja z potwierdzeniem zapisu ze względów wydajnościowych jest w praktyce rzadko stosowana. Oznacza to odzyskanie stanu sprzed zadanego okresu
  • w przypadku używania rozwiązań o zamkniętym kodzie źródłowym, nie mamy możliwości stworzenia poprawek lub przeprowadzenia procesu odpluskwiania we własnym zakresie
  • w przypadku rozwiązań o zamkniętym kodzie źródłowym , w szczególności opartych o „inteligentny sprzęt”, często nie ma możliwości dogłębnego zrozumienia mechanizmów podejmowania decyzji (np. miejsca zapisu danych lub sposobu balansowania macierzy) lub jest to bardzo utrudnione.

Ostatnim ważnym, a być może nawet najważniejszym aspektem, jest czynnik ludzki, bez którego żadna praca nie może zostać wykonana:

  • ludzie, szczególnie odpowiedzialni eksperci zarządzający pamięcią masową, są trudno dostępni. Znając swoje walory, wiedzą, iż specjalizując się w zamkniętej technologii, często degradują swoją wartość
  • w przypadku konieczności wyszkolenia lub ugruntowania wiedzy przez posiadane kadry, otwarte technologie mają olbrzymią przewagę. Każdy może bowiem w prosty sposób uruchomić własne laboratorium pozwalające na zapoznanie się z rozwiązaniem. Ponadto szkolenie (transfer wiedzy) może być realizowane przez innego dostawcę niż finalny dostawca oprogramowania.

Software-Defined Storage

Odpowiedzią na większość przedstawionych powyżej wyzwań jest idea pamięci masowej definiowanej przez oprogramowanie (ang. Software-defined StorageSDS). W dużym skrócie można ją przedstawić jako dodanie pewnej warstwy wirtualizacji lub abstrakcji do pamięci masowej.
Do największych zalet związanych z SDS można zaliczyć między innymi:

  • działanie na sprzęcie powszechnego użytku
    Węzłem w klastrze lub zwirtualizowanej macierzy z reguły może być dowolny serwer. Istnieje też możliwość działania na sprzęcie od różnych dostawców. Niemniej należy pamiętać, że dodanie wolniejszego (wolnego) serwera do efektywnego klastra, może negatywnie odbić się na wydajności
  • modularność rozwiązania
    Dzięki zdefiniowaniu oraz implementacji odpowiednich algorytmów i struktur danych, do działającego klastra można dodawać nowe węzły. Co więcej, z reguły istnieje możliwość wyłączenia wybranych węzłów. Pozwala to na spokojne i racjonalne przeprowadzanie zadań utrzymaniowo-konserwacyjnych oraz wymianę sprzętu w przypadku poważniejszej usterki
  • odporność na awarie
    SDS z reguły może definiować praktycznie nieograniczoną liczbę replik (w większości przypadków 3 repliki uznaje się za wartość wystarczającą). Na dodatek bardziej specjalistyczne algorytmy mogą tworzyć redundancje w sposób często nieosiągalny dla systemów wykorzystujących tradycyjne mechanizmy np. RAID. Przykładowo, istnieje możliwość stworzenia zbioru dysków, w którym utrata informacji następuje przy awarii 5 z 11 dysków
  • autonomiczne działanie i reagowanie na awarie
    SDS pozwala na automatyczne reagowanie na awarie np. autobalansowanie w celu utrzymania klastra w działaniu. Przykładowo, gdy awarii ulegnie kilka serwerów, posiadając zadaną replikę danych, oprogramowanie może zwiększyć redundancję jednych danych, jednocześnie zmniejszając redundancję innych, w celu ochrony spójności i działania klastra
  • znaczna redukcja kosztów
    Licencje SDS (szczególnie dla produktów typu Open Source z komercyjnym wsparciem) są z reguły tańsze niż rozwiązania dedykowane i zamknięte. Ta sama uwaga dotyczy wcześniej wspomnianego sprzętu
  • aktualizacja oprogramowania i jego możliwości
    Rozwiązania pamięci masowej definiowanej przez oprogramowanie działające na sprzęcie powszechnego użytku rzadziej wymagają wymiany sprzętu w przypadku instalacji nowej wersji oprogramowania, która czasami oprócz poprawek błędów zawiera także nowe możliwości i szeroko pojęte ulepszenia.