środa, 12 stycznia 2011

Deduplikacja - kopie idą precz! (Część 1 - podstawy)

       W ostatnich latach obserwujemy bardzo intensywny przyrost ilości gromadzonych i składowanych danych, zjawisko te doczekało się nawet swojej nazwy: "data explosion". Przyczyny takiego stanu rzeczy to po pierwsze, coraz większy "apetyt" firm i przedsiębiorstw na informacje, a po drugie łatwość w tworzeniu dużych ilości danych ( filmy w jakości HD , zdjęcia cyfrowe itd...). Dodatkowo, jeżeli chodzi o wymagania dotyczące składowań i odtworzeń danych, to niezależnie od wzrostu ich wolumenu, bardzo często zaostrzają się także wymagania dotyczące parametrów związanych z czasami wykonywania tych operacji  - skróceniu ulegają okna backupowe, a odtworzenia także powinny odbywać się dużo szybciej. Wymagany jest coraz mniejszy RTO (Recovery Time Obejctive).
  
        Biorąc pod uwagę te wymagania, standardowy backup danych na taśmę, może nie spełnić swojego zadania, a bezpośrednie składowanie danych na dyskach twardych jest dość kosztowne. Jednym z rozwiązań pozwalającym spełnić wymagania dotyczące szybkości wykonywania składowań/odtworzeń a jednocześnie utrzymać koszty na dość niskim poziomie (porównywanym lub nawet niższym niż backup na taśmach) jest DEDUPLIKACJA.


Czym jest deduplikacja?

Jest to metoda polegająca na usunięciu wszystkich powtarzających się danych i zastąpieniu ich wskaźnikami do jednego "oryginalnego" egzemplarza. Dzięki takiemu podejściu eliminujemy nadmiarowość w składowanych danych, co może przynieść znaczące oszczędności. Jest to związane z faktem, że bardzo często zapisujemy wielokrotnie dokładnie te same dane (np: wykonując co miesiąc pełny backup jakiegoś zasobu), a dodatkowo poszczególne składowania także zawierają wiele zwielokrotnionych informacji (np: w zasobie będącym katalogiem z dokumentami, informacje dotyczące struktury i budowy samych plików - *.doc , *.pdf są takie same dla każdego z nich ).


Jaka jest różnica pomiędzy deduplikacją a kompresją?

          Podstawowa różnica pomiędzy deduplikacją a kompresją to fakt, że kompresja działa "lokalnie" natomiast deduplikacja "globalnie". Pisząc lokalnie i globalnie nie mam na myśli żadnej formalnej definicji tych pojęć, jest to pewien "skrót myślowy", który postaram się dokładniej wytłumaczyć.
Kompresja zminiejsza wielkość pliku usuwając w nim nadmiarowe fragmenty. Często występujące ciągi danych są eliminowane, wszystko to jednak odbywa się w obrębie jednego obiektu (np: pliku). Kompresowanie wielu plików naraz, daje ten sam rezultat co ich kompresowanie oddzielne.
Deduplikacja, w przeciwieństwie do tego podejścia, dotyczy całości objętych nią danych. Proces ten sprawdza, na różnym poziomie, czy dane, które za jego pomocą są przetwarzane (składowane), nie powtórzyły się już wcześniej - jeżeli taka sytuacja ma miejsce, to cały powtarzający się fragment jest usuwany, i zastępowany wskaźnikiem do już istniejącego zeskładowanego egzemplarza.
Obrazowo różnicę (i przewagę) deduplikacji nad kompresją można pokazać na dwóch przykładach:

  1. Składowanie zasobu na którym znajduje się kilkadziesiąt maszyn wirtualnych. Kompresja - usunie nadmiarowość z każdej z tych maszyn osobno, powodując redukcję wielkości każdej z nich ( i sumarycznie wszystkich danych po zeskładowaniu) o jakieś 20 do 50%. Deduplikacja - usunie wszystkie duplikacje danych w całym zasobie. Ponieważ maszyny wirtualne są do siebie bardzo podobne ( ta sama struktura i większość danych wewnątrz) tak więc zachowanie jedynie pojedynczych egzemplarzy każdej informacji spowoduje, że wielkość zdeduplikowanego zasobu zostanie zmniejszona kilkunastoktrotnie - do wielkości jednej maszyny wirtualnej + niewielki dodatek zawierający unikalne dane z każdej z VMek.
  2. Wykonanie kilku pełnych backupów (np: w tygodniowych odstępach czasu) z tego samego zasobu. Przy kompresji otrzymujemy kilkudziesięcio procentową oszczędność na każdym ze składowań ( wykorzystując np zapis na taśmy możemy uzyskać kompresję 2:1 lub 3:1 w zależności od wykorzystanego napędu). Stosując deduplikację - mimo iż wykonujemy składowania pełne, zapisywane są jedynie zmienione i unikalne fragmenty (podobnie, choć nie całkiem tak samo jak przy backupach inkrementalnych)



Jak działa deduplikacja?

         Sam proces deduplikacji może być wykonywany wieloma sposobami, jednak idea i główny schemat działanie pozostaje ten sam. Utrzymywane są dwie struktury - pierwsza z nich to zdeduplikowane dane , druga to tzw: tabela skrótów (lub hashy). Z każdej porcji danych (chunk) wpadająca do systemu deduplikującego, liczony jest tzw skrót - jest on generowany za pomocą funkcji hashujących i ma długość kilkudziesięciu bajtów. Skrót ten jest czymś w rodzaju "odcisku palca" konkretnej porcji danych - jeżeli jest identyczny dla dwóch ciągów danych, oznacza to, ze te ciągi także są identyczne. Jeżeli skrót, z danych które przybyły do systemu deduplikującego, nie został znaleziony w tablicy skrótów, to jest on tam dopisywany, a dane zostają zeskładowane. Jeżeli jednak skrót już był obecny w systemie, to dane nie są składowane a jedynie zastępowane wskaźnikiem do już istniejącejącego w systemie deduplikacyjnym ich egzemplarza.


Poziomy działania deduplikacji:

Podstawowa kwestia to na jakim poziomie szukamy kopii danych do usunięcia. Można wyróżnić kilka wariantów:


  • Deduplikacja na poziomie pliku - sprawdzenie odbywa się, jak sama nazwa wskazuje, na poziomie pliku. Jeżeli znajdowane są indentyczne co do zawartości i uprawnień pliki to przechowywany jest jedynie jeden egzemplarz. Często systemy stosujące ten typ deduplikacji nazywa się SIS (Single Instance Storage). Jest to najmniej efektywny, ale jednocześnie najprostszy i wymagający najmniejszych nakładów sprzętowych mechanizm deduplikacji.
  •  Deduplikacja na poziomie bloku stałej wielkości (fixed block level) - w tej metodzie jednostką danych, co do której generuje się skrót i sprawdza czy jest unikalna, jest blok. Im krótszy blok jest używany, tym większa ilość kopii może być odnaleziona i większy uzysk na przestrzeni. Deduplikacja na poziomie bloku wykorzystuje fakt, że bardzo wiele plików różni się od siebie tylko w małej części (np: wspomniane już pliki maszyn wirtualnych, czy dwóch plików doc).
  • Deduplikacja na poziomie bloku o zmiennej wielkości (variable block level) - wykorzystuje podobny mechanizm jak metoda nr 2 , jednak w tym przypadku bloki, na jakie dzielone są dane, nie mają stałej wielkości, ale są dopasowywane tak aby wyłapać jak najwięcej i jak największych ciągów danych do zdeduplikowania - dzięki temu metoda deduplikacji zmiennym blokiem jest bardziej efektywna niż jej wersja operująca blokiem o stałej wartości
  • Deduplikacja na pozimie bajtów (byte-level deduplication) - polega na porównywaniu bajt po bajcie przychodzącego do silnika deduplikacyjnego strumienia danych i wyszukiwania wszystkich powtarzających się fragmentów. Zwykle taka metoda jest połączona z tzw deduplikacją "content-aware" - czyli przystosowaną i zoptymalizowaną do pracy z pewnymi typami danych ( pliki .jpg , .doc itd...)


Współczynnik deduplikacji:

Efektywność samego procesu jest opisywana jednym współczynnikiem zwanym, po prostu, współczynnikiem deduplikacji. Jest to stosunek pojemności danych oryginalnych, do pojemności zajmowanej przez dane zdeduplikowane. Przykładowo jeżeli 100GB zasób danych po zddeduplikowaniu zajmuje 10GB , to współczynnik deduplikacji jest równy 10:1
Wartość tego współczynnika zależy zarówno do algorytmu który wyszukuje kopie i duplikaty, jak i od poziomu na jakim deduplikcja przebiega (plik, blok , itd...) a także (a raczej przede wszystkim) od samych danych jakie temu procesowi podlegają.
Biorąc pod uwagę tą ostatnią zależność, bardzo ciężko jest precyzyjnie wyznaczyć współczynnik deduplikacji dal konkretnych danych, inaczej niż po prostu je deduplikując i sprawdzając. Dlatego też należy z dużą dawką ostrożności podchodzić do podawanych przez producentów wartości tego parametru dla stworzonych przez nich produktów.


Warianty deduplikacji:

Oprócz rozróżnienia bazującego na poziomie, na którym usuwane są kopie , systemy deduplikujące można także podzielić wegug kilku innych kryteriów:

Podział ze względu na miejsce deduplikacji:

  • Deduplikacja na celu (target dedupliaction) - w tej metodzie proces deduplikacji odbywa się na urządzeniu przechowujących dane. Zwykle takie urządzenie  (appliance) ma także funkcję wirtualnej biblioteki taśmowej (VTL), przez co serwery backupowe składujące dane, widzą to jako zwykłą bibliotekę. Dane są przesyłane w normalny sposób ( np: po sieci LAN lub SAN) a potem deduplikowane i zapisywane na dyskach. Zaletą tego typu rozwiązania jest fakt, że proces deduplikacji nie obciąża samych klientów. Dodatkowo tego typu rozwiązanie może bardzo łatwo zostać zintegrowane z istniejącą infrastrukturą i używanym oprogramowaniem backupującym.
  • Deduplikacja na źródle (source deduplication) - w tym wariancie, dane są deduplikowane na kliencie, jeszcze przed wysłaniem ich do urządzenia na którym będą zeskładowane. Jeżeli chodzi o słabe strony to przede wszystkim to rozwiązanie wymaga zaangażowania dodatkowych zasobów po stronie CPU i pamieci do przeprowadzenie deduplikacji. Po drugie musi ono być wspierane przez agentów programu backupującego, którzy są zainstalowani na składowanych hostach. To drugie ograniczenie jest szczególnie istotne w środowiskach, gdzie aplikacja backupowa nie wspiera tego rodzaju deduplikacji - wtedy albo aplikację zmieniamy (co jest dość skomplikowane ) albo decydujemy się na rozwiązanie deduplikujące na celu. Jeżeli chodzi o zalety deduplikcji na źródle to podstawową jest otrzymanie uzysku, nie tylko na przestrzeni dyskowej, ale także na zużyciu łącza przez które przesyłamy dane - ponieważ są one już zdeduplikowane, więc wysłaniu podlega jedynie ich niewielka część. Rozwiązania tego typu są szczególnie korzystne przy wykonywaniu backupów poprzez sieć WAN lub Internet ( np: centralnie przechowywane backupy z regionalnych jednostek danej firmy)


Podział ze względu na czas deduplikacji:

  • Deduplikacja inline - w tej metodzie dane są deduplikowane natychmiast po dotarciu do urządzenia na którym są składowane - silnik deduplikujący robi to "w locie" i na dyski zapisywane są jedynie dane unikalne, już po usunięciu duplikatów. Zaleta takiego podejścia to przede wszystkim niższy koszt związany z mniejszą ilością potrzebnych dysków( nie ma cache dyskowego na który zapisuje się dane przed ich zdeduplikowaniem). Wadą jest zagrożenie spowolnienia działania całego systemu, gdy baza skrótów urośnie i jej przeszukanie zacznie zabierać więcej czasu. System może wtedy nie być w stanie deduplikować nowo przychodzących danych z prędkością z jaką są one wysyłane przez klientów.
  • Deduplikcja post-proces - w tej metodzie, dane przychodzące do urządzenia, są najpierw zapisywane na dysk, a dopiero potem przetwarzane i zapisywane w formie zdeduplikowanej. Zaletą jest wydajność takiego rozwiązania, którą ogranicza jedynie wydajność dysków - nie ma potrzeby przeprowadzania dodatkowych czynności przed zapisaniem danych. Wada to większy koszt związany z potrzebą utrzymania dodatkowych przestrzeni na oryginalne dane.


Sam temat deduplikacji jest bardzo obszerny i niemożliwy do wyczerpania w pojedyńczym wpisie - to co opisałem to pewna baza i podstawy aby wgłębić się w zagadnienie.
Sprawy związane z deduplikacją będą kontynuowane w tym blogu.

Do poczytania:

Deduplikacja: sposob na duze oszczednosci
Deduplikacja, czyli backup na diecie
Data deduplication
Data deduplication tutorial


wtorek, 11 stycznia 2011

Cisza przed burzą

Długo nie pojawiało się tu nic nowego, więc czas przygotować chociaż króciutki wpis:

Kończę powoli powtórkę materiału do ISMa , lada dzień zapisuję się na egzamin i mam nadzieję, że już niedługo będę mógł pochwalić się tytułem EMC Proven Assosiate ;)

Co się z tym wiąże to sprawa tego blogu, który rozpoczął się jako blog o sprawach związanych ze storage, potem przeszedł w zbiór wpisów-notatek przygotowujących do jednego z certyfikatów EMC , a potem "zamarł" na okres kiedy odłożyłem pisaninę i zająłem się powtórkami przed egzaminem.

Nie zarzuciłem jednak całkowicie blogowania i powolutku, z małym priorytetem, przygotowywałem się do podjęcia kolejnych tematów. Na dniach pokaże się wpis dotyczący deduplikacji i temat ten będzie kontynuowany w co najmniej jeszcze dwóch kolejnych odsłonach.

Potem czas pokaże co dalej.

niedziela, 14 listopada 2010

ISM - Zarządzanie infrastrukturą storage

Podobnie jak sprawy związane z monitoringiem, tak samo zarządzanie storage można podzielić na cztery obszary:
  • Avaliablity
  • Capacity
  • Performance
  • Security

Avaliability Management:

Podstawowy zadaniem z działki zarządzania dostępnością urządzeń storage jest zapewnienie im braku tzw: SPOFów (Single Point of Failure), których obecność jest zagrożeniem dla ciągłości działania danego urządzenia.

Metody zapobiegania SPOFów to między innymi:
  • Dwie lub więcej niezależnych kart HBA po stronie hosta
  • Używanie oprogramowania do multipathingu
  • Używanie struktur RAID
  • Używanie dwóch niezależnych fabriców
Poprawne skonfigurowanie replikacji oraz polityki tworzenia backupów także wchodzi w skład zarządzania dostępnością. Technologie wirtualizacji mogą być pomocne przy tworzeniu architektury oraz planów działania podczas awarii (dynamiczne przydzielanie/usuwanie zasobów)


Capacity Management:

Głównym zadaniem zarządzania Capacity jest zapewnienie, że zapewniona będzie wystarczająca ilość zasobów. Podstawowe metody sprawdzania i zapewniania wystarczającej ilości zasobów to:

  • Analiza trendów zużycia zasobów
  • Odpowiednie przydzielanie (provisioning) zasobów

Performance Management:

Prawidłowe zarządzanie wydajnością jest potrzebne aby optymalnie i z maksymalna efektywnością wykorzystać dostępne zasoby, dzięki niemu możemy wykrywać wąskie gardła w naszym systemie.

Główne zadania zarządzania wydajnością to:
  • po stronie hosta: zarządzanie wolumenami, oraz architekturą bazy danych i aplikacji
  • po stronie sieci SAN: Zapewnienie wystarczającej ilości ISL z odpowiednią przepustowością
  • po stronie macierzy: Wybór typów struktur RAI , wybór rozłożenia LUNów po portach front-end


Security Management:

Pozwala na kontrolowanie dostępu do urządzeń storage.

Główne zadania:
  • po stronie hosta: tworzenie kont użytkowników, zarządzanie dostępami
  • po stronie sieci SAN: konfiguracja zoningu
  • po stronie macierzy: tworzenie kont do zarządzania macierzą, konfiguracja maskowania


Wyzywania w zarządzaniu infrastrukturą storage:

Głównym problemem w kompleksowym zarządzaniu pamięciami masowymi jest fakt, że ich środowisko może obejmować wiele różnych warstw ( bazy danych, serwery, sieć, urządzania storage ), a w każdej z nich możliwe są rozwiązania multi-vendor, w czasem bardzo skomplikowanych konfiguracjach. Macierze mogą po sieciach (zarówno SAN jak i IP ) wystawiać zasoby do najróżniejszych systemów takich jak: UNIX, Windows czy nawet komputerów klasy mainframe. Całe te, działające na różnych poziomach, środowisko, jest bardzo trudne do zarządzania i zwykle używanych jest do tego celu wiele niezależnych narzędzi.

Rozwiązaniem problemów ze zbytnią złożonością i wielością narzędzi używanych do zarządzania storage jest zintegrowanie ich w jeden centralny system zarządzania i monitorowania.
System ten powinien spełniać następujące wymagania:

  • musi zbierać informacje z wszystkich komponentów i być w stanie zarządzać nimi za pomocą jednego interfejsu
  • musi być w stanie przeprowadzić analizę wpływu awarii jednego komponentu na działania pozostałych
  • musi mieć zaimplementowany mechanizm powiadamianie (np: poprzez email lub SNMP) o zaistnieniu pewnych zdefiniowanych wydarzeń, musi być także w stanie generować raporty ogólne i per komponent
Aby ułatwić stworzenie tego rodzaju oprogramowania SNIA (Storage Networking Industry Association) stworzyła tzw: SMI-S ( Storage Management Initiative Specification), który jest abstrakcyjnym modelem opisującym sposoby zarządzania i monitorowania zasobów strorage. Model ten może być adaptowany następnie do konkretnych rozwiązań. Pozwala to na stworzenie jednego oprogramowania do zarządzania całością zasobów storage, a jednocześnie zgodność z modelem SMI-S sprawia, że sprzęt i oprogramowanie różnych  (ale przestrzegający wytycznych tego modelu) producentów będzie dobrze współpracowało z takim centralnym systemem.

Takie centralne aplikacje stworzone do zarządzania i monitorowania całej infrastruktury używanej w danym przedsiębiorstwie noszą nazwę EMP ( Enterprise Management Platform) - przykładem takiego systemu jest EMC ControlCenter.



I w ten sposób dotarliśmy do końca kursu przygotowującego do egzaminu ISM (e20-001)
Co dalej?
Najpierw powtórzę sobie cały ten materiał raz albo i dwa razy, potem przystępuję do egzaminu i mam nadzieję zostanę EMC Proven :D
Co dalej z blogiem?
W tej chwili raczej skupię się na przygotowaniach do certyfikatu, więc pisał będę mniej, pewnie pojawia się jakieś wpisy nie związane z samymi egzaminami EMC, tylko ogólnie na tematy "metastorage"-owe, ale nie wiem ile ich będzie i jak często będą publikowane.
Jeżeli uda mi się certyfikować, to od razu siłą rozpędu zaczynam przygotowywać się do kolejnego certu, najprawdopodobniej z Clariiona - ale to jeszcze daleka przyszłość.


sobota, 13 listopada 2010

ISM - Monitorowanie infrastruktury storage

Monitorowanie urządzeń storage powinno dotyczyć czterech obszarów:

  • Dostępności (Accessibility)
  • Zasobów (Capacity)
  • Wydajności (Performance)
  • Bezpieczeństwa (Security)
Dostępność (Accessibility)

O dostępności komponentu mówimy kiedy pracuje on prawidłowo, bez żadnych zakłóceń i awarii. Monitorowanie dostępności zwykle opiera się na ustawieniu pewnych predefiniowanych alarmów, dotyczących prawidlowego działania. Alarmy te definiuje na samym urządzeniu (SAN device, HBA, port, dysk, macierz, element oprogramowania) i są one przechwytywane wystąpienia. Szybkie wykrywanie i naprawa niedostępnych z powodu awarii komponentów, chroni nas przed uszkodzeniem i utratą ciągłości działania całego systemu.


Zasoby (Capacity)

Capacity odnosi się do ilości zasobów storage jakie są dostępne. Przykładami monitorowania Capacity jest np. sprawdzanie ilości wolnego miejsca na systemie plikow lub zużycie quoty na skrzynce pocztowej. Brak monitorowania Capactiy może doprowadzić do problemów wydajnościowych lub nawet dostępności danej aplikacji (przepełnienie). Zwykle dane uzyskane z monitoringu Capacity analizuje się pod względem trendów i według nich planuje przyszłą strategię zakupową dla obszaru storage.


Wydajność(Performance)

Monitorowanie wydajności jest to sprawdzanie jak efektywnie pracują nasze zasoby i w których miejscach mamy tzw "wąskie gardła". Pomiary wydajności, zwykle, polegają na cyklicznym sprawdzaniu różnych parametrów i porównywaniu ich do predefiniowanych wartości. Przykłady zasobów i parametrów jakie można objąć monitoringiem wydajnści to np: Ilość I/O do dysków , czas odpowiedzi aplikacji , utylizacja sieci itd...


Bezpieczeństwo (Security)

Monitorowanie bezpieczeństwa pozwala na wykrycie i zapobieganie nieautoryzowanych prób dostępu. Pomaga także przy śledzeniu nieplanowancyh/nieautoryzowanych zmian wykonywanych w elementach infrastruktury storage. Monitorowanie bezpieczeństwa zapewnia, że nasze dane pozostają poufne, spójne i dostępne. Może ono odbywać się na poziomie software ( np: śledzenie zmian w konfiguracji storage ) jak i  być monitorowaniem fizycznym ( czytniki kart, kamery w halach z macierzami itd...)


Monitorowanie hostów:

Serwery szczególnie te z aplikacjami typu mission-critical powinny być stale monitorowane.
Poszczególne zakresy monitoringu hostów obejmując:

  • Accessibility ( komponenty hardware: HBA,NIC,dyski wewnętrzne ; status kluczowych procesów i usług)
  • Capacity (utylizacja systemu plików, użycie table spaców i log space w bazach , zużycie quoty )
  • Performance ( Utylizacja CPU i pamięci , czasy odpowiedzi )
  • Security ( Autoryzacje i czasy logowań - szczególnie na konta root/administrator )

Monitorowanie sieci SAN:

Poszczególne zakresy monitoringu dla sieci SAN obejmują przykładowo:
  • Accessibility ( Fizyczne elementy sieci SAN i ich komponenty - zasilacze, wentylatory w switchach itd ; błędy pojawiające się w komunikacji w fabricu i zonie )
  • Capacity ( Utylizacja ISL i portów )
  • Performance ( utylizacja portów , monitorowanie opóźnień w sieci i utraty pakietów )
  • Security ( Zoning i LUN Masking , monitorowanie bezpieczeństwa fizycznego środowiska SAN)

Monitorowanie macierzy dyskowych:
  • Accessibility ( Wszystkie elementy hardware maszyny + jej wewnętrzny system operacyjny)
  • Capacity ( surowa i skonfigurowana przestrzeń , ilość przestrzeni zaalokowanej )
  • Performance ( Utylizacja portów FE i BE , czasy odpowiedzi, zużycie cache )
  • Security ( Bezpieczeństwo fizyczne , monitorowanie logowania na macierze )



Sam temat zawierał jeszcze dość dużo przykładów i różnych scenariuszy ( np: analizę dla uszkodzenia portu, HBA, switcha dla monitoringu accessibility), ale były to materiały bardzo ciężkie do wykorzystania bez kopiowania powiązanych z nimi grafik(schematów).
Ogólnie nie było tam nic odkrywczego, tylko sprawy oczywiste typu: "uszkodzenie ścieżki powoduje, że dane są przesyłane drugą z nich"

Kolejny temat to zarządzanie infastrukturą storage.

poniedziałek, 8 listopada 2010

ISM - Rozwiązania zapewniające bezpieczeństwo dla sieci SAN , NAS i IP-SAN

Zapewnienie bezpieczeństwa w sieci SAN

W tradycyjnych sieciach SAN bezpieczeństwo było zapewniane przez odizolowanie jej od sieci LAN i świata zewnętrznego. Obecnie jednak sieci SAN są coraz bardziej zintegrowane z resztą infrastruktury i nie stanowią już odrębnego środowiska. Aby zmniejszyć negatywny wpływ na bezpieczeństwo, jaki ma taka połączenie tych środowisk, wprowadzono protokół FC-SP (Fibre Channel Security Protocol), implementujący mechanizmy zabezpieczenia na styku sieci IP i LAN.
Inną metodologią zabezpieczani sieci storage (SAN , IP-SAN, NAS) jest tzw "defense-in-depth" - polega to używaniu wielu współpracujących ze sobą warstw bezpieczeństwa. Kompromitacja i spenetrowanie przez intruzów jednej z takich warstw, nie ma wpływu na inne, które dalej chronią zasoby sieci storage.


Podstawowe mechanizmy ochrony sieci SAN:

Sposoby ochrony sieci SAN można podzielić na kilka podkategorii:
  • Array-based Volume Access Control
  • Security on FC Switch Port
  • Switch-wide and Fabric-wide Access Control
  • Logical Partitioning on a Fabric: VSAN


Array-based Volume Access Control:
Są to metody, które chronią przed niepowołanym dostępem do urządzeń storage. Dwa najbardziej popularne rozwiązania tego typu to: LUN Masking i mechanizmy Zoningu
Tworzenie zon w sieci  polega na dzieleniu (logicznym) sieci SAN na mniejsze kawałki. Urządzenia zarówno source( hosty) jaki i target (macierze) widzą i są w stanie wymienić informacje jedynie z urządzeniami w tej samej zonie.
Zoning może występować w dwóch odmianach:
  • Hard/port zoning - zony są zestawiane pomiędzy portami na hostach (lub switchach) a portami na macierzy. 
  • Soft/WWN zoning - zony są zestawiane pomiędzy urządzeniami o określonych adresach WWN. Jest to rozwiązanie nieco mniej bezpieczne niż hard zoning - można wyobrazić sobie, iż intruz udaje WWN jednego z członków zony, aby zostać uprawnionym do nasłuchiwania na ruch w niej. Dla porównania przy zastosowaniu hard zoningu musiałby fizycznie odpiąć hosta z zony i wpiąć się w jego miejsce.
Tak jak zoning pozwala kontrolować dostęp danych hostów do macierzy, tak LUN masking pozwala na kontrolę dostępu do poszczególnych LUNów, wystawianych z macierzy. Robi to filtrując listę LUNów do których danych HBA ma dostęp. Silniejszą wersją LUN Maskingu obecną w macierzach EMC Symmetrix jest S_ID Lockdown

Security on FC Switch Ports:
Jest to grupa zabezpieczeń związanych z ustawieniami portów na switchach. Można wśród nich wyróżnić:
  • Port Binding - ogranicza liczbę urządzeń, które mogą używać danego portu do logowania się do fabrica. Ogranicza to zagrożenie WWPN spoofingiem przy soft zoningu.
  • Port Lockdown, Port Lockout - metody ograniczające sposób w jaki dany port może być wykorzystany. Pożna np: wyłączyć możliwość stworzenia połączenia switch-switch albo podłączenia pętli FCAL.
  • Persistent Port Disable - zapobiega włączeniu portu po reboocie switcha.


Switch-wide and Fabric-wide Access Control:
Ta kategoria opisuje mechanizmy kontroli dostępu do sieci SAN i zawiera w sobie następujące rozwiązania:
  • Access control lists - kontroluje podłączenia do SANów i autoryzuje je na podstawie zdefiniowanych polityk. Reguły opisują które HBA i porty macierzy oraz switche mogą być częścią sieci SAN i odcinają urządzenia nieuprawnione.
  • Fabric binding - chroni przed nieautoryzowanym dołączeniem do fabrica zewnętrznego switcha
  • Role-based access control - określa jaki użytkownik i z jakimi uprawnieniami może logować się do poszczególnych urządzeń w fabricu.


Logical Partitioning on a Fabric: VSAN
Mechanizm VSANów jest odpowiednikiem VLANów w sieci Ethernet - polega on na podzieleniu jednej fizycznej sieci SAN, na niezależne od siebie logiczne części. Ruch danych jest możliwy tylko w obrębie jednego VSANu; każdy port (switch, host, array) może należeć tylko do jednego VSANu.
Takie rozdzielenie urządzeń w sieci SAN pozwala na lepszą kontrolę nad dostępami i przepływem danych.


Zapewnienie  bezpieczeństwa w sieci NAS:

Sieć NAS może być narażona na wiele różnych niebezpieczeństwa takich jak na przykład: wirusy , nieuprawniony dostęp , podsłuchiwanie transmisji itd...
Pierwszym poziomem zabezpieczenia są tzw ACLs ( Access Control Lists) określające jakie uprawnienia mają poszczególni użytkownicy. Dane te są następnie uzupełniane o prawa i atrybuty powiązane z plikami i folderami w sieci. Kolejne poziomy bezpieczeństwa są zapewniane przez dodatkowe mechanizmy autoryzacji (np: Kerberos) i ochrony przed nieuprawnionym dostępem (np: firewalle)

Uprawnienia do plików w Windows:
Windows wspiera dwa rodzaje list ACL : discretionary access control lists (DACL) i system access control lists (SACL)
DACL - jest używany do wyznaczenia kto ma dostęp do plików , SACL określa jakiego rodzaju dostęp ma być audytowany (jeżeli audytowanie jest włączone). Dodatkowo w Windows istnieje pojęcie właściciela objektu - które to nadaje właścicielowi prawa do danego pliku nawet jeżeli listy DACL i SACL takiego dostępu zabraniają. Windows wspiera również dziedziczenie uprawnień, pomiędzy objektami przodkami a potomkami.
Każdy użytkownik i grupa jest identyfikowana po unikalnym numerze SID - przydzielanie i sprawdzanie uprawnień odbywa się bazując na tym atrybucie, nie na nazwie pod jaką dany user występuje w systemie.

Uprawnienia do plików w Unixie:
Podstawowymi prawami do plików w systemach Unix/Linux sa odczyt/zapis/wykonanie (Read/Write/Execute). Dla każdego pliku i folderu te prawa określone są na 3 poziomach: właściciel , właściciel grupowy , inni.

Autentyfikacja i autoryzacja współdzielonych plików:
Urządzenia NASowe używają dwóch standardowych protokołów do współdzielenia plików: NFS i CIFS. Autentyfikacja użytkownika próbującego się dostać do zasobów jest wykonywana przez pewien centralny system jak np Network Information System na systemach Unix czy Active Directory w Windowsach.
Autoryzacja określa czy dany (autentyfikowany) użytkownik ma prawo uzyskać dostęp do danego zasobu. Sposoby opisu dostępu do pliku różnią się w przypadku systemów Unixowych ( dostęp typu: rwxrwxrwx) a systemach Windowsowych (listy ACL). Jeżeli jedno urządzenie powinno wystawiać pliki zarówno dla hostów Windowsowych jak i Unixowych to musi ono obsługiwać mappowanie pomiędzy sposobami określania dostępu do zasobów.

Kerberos:
Kerberos jest to sieciowy protokół do autentyfikacji. Został zaprojektowany aby zapewnić bezpieczną autentyfikację dla aplikacji typu klient/serwer i opiera się na silnych algorytmach kryptograficznych. Jego założeniem jest umożliwić przeprowadzenie autentyfikacji klienta na serwerze poprzez niechronioną sieć.
W zastosowaniach związanych z NASami, Kerberos zwykle wykorzystywany jest przy autentyfikacji użytkowników z Active Directory.
Kerberos działa w architekturze klient-serwer. Klientem może być np: użytkownik lub host który otrzymuje service ticket. Kerberos serwer jest zwany także Key Distribution Center(KDC)

Przykładowy procesy autoryzacji z wykorzystaniem Kerberosa w środowisku skladającym się z 4 jednostek:
  • NAS Device (1)
  • Windows Client (2)
  • KDC (3)
  • Active Directory (4)
Proces autoryzacji:

Krok 1:
Użytkownik loguje się do stacji roboczej będącej częścią domeny, używając swojego ID i hasła. Następnie jego komputer wysyła do Autentication Service (AS) na KDC żadanie przesłania ticketu. KDC weryfikuje ID użytkownika w AD.
          
(2) -------ID Proof-------->(3)

Krok 2:
KDC odpowiada poprzez TGT (Ticket Granting Service). Transmisja składa się z dwóch części, jedna może być odkodowana przez klienta, druga przez KDC.

(2)<----------TGT-----------(3)

Krok 3:
Kiedy klient otrzyma TGT odsyła je do serwera KDC wzbogacone o informację na temat zasobu do którego się chce dostać.

(2)---------TGT+Server name----->(3)

Krok 4:
KDC sprawdza uprawnienia użytkownika do danego zasobu w AD

(3)-------------->(4)


Krok 5:
KDC wysyła service ticket do klienta.

(2) <--------Service Ticekt-------(3)

Krok 6:
Klient wysyła Service Ticket do zasobu z którego chce korzystać ( w naszym przypadku macierz NAS)

(2) ------Service Ticekt-------->(1)

Krok 7:
NAS udostępnia zasoby klientowi


Firewalle warstwy sieci:
NAS wykorzystuje sieć IP do przesyłu swoich danych, dlatego też zagrożenia występujące przy używaniu protokołu IP, odnoszą się także do wymiany danych poprzez macierzy NASową.
Jednym z podstawowych zabezpieczeń jest użycie firewalla i filtrowanie przychodzącego i wychodzącego ruchu bazując na adresie źródłowych, docelowym i numerze portu.
Częstą implementacją firewalli jest wykorzystanie ich do stworzenia tzw. Strefy zdemilitaryzowanej ( Demilitarized zone - DMZ).  W środowisku DMZ serwery które muszą być dostępne z sieci zewnętrznej (Intenet) znajdują się pomiędzy dwoma firewallami, natomiast serwery i macierze, które muszą być maksymalnie chronione znajdują się w sieci wewnętrznej.

Sieć zewnętrzna <---> FIREWALL<--->DMZ<--->FIREWALL<--->SIEĆ WEWNĘTRZNA


Zabezpieczanie sieci IP SAN:

Challenge-Handshake Authentication Protocol (CHAP) - mechanizm autoryzacji używany w sieciach IP , za jego pomocą inicjator i target mogą potwierdzić wzajemnie swoją tożsamość, wymieniając pewne sekretne hasło. Jest ono losową sekwencją od 12 do 128 znakówi  nigdy nie jest przesyłane bezpośrednio poprzez sieć, transmituje się tylko jego skrót (hash) stworzony za pomocą funkcji MD5.
CHAP Authentication występuje w dwóch rodzając: one way authentication i two ways authentication

One-Way CHAP Authentication:
Służy do identyfikowania Initiatora poprzez Target.
Schemat działania:
1. Initiator wysyła logon request do targetu i zestawiane jest połaczenie
2. Target wysyła do inicjatora tzw: CHAP Challange
3. Initiator wykorzystuje CHAP Challange oraz znany sobie i targetowi klucz do stworzenia hasha.
4. Hash jest wysyłany do Targetu
5. Target sprawdza czy otrzymany hash jest tym, który był oczekiwany, jeżeli tak połączenie jest autoryzowane.

Two-Way CHAP Authorization:
W tym rodzaju CHAP-sa, najpierw inicjator autentyfikuje się targetowi (one-way CHAP) a następnie ten proces zostaje odwrócony i target autentyfikuje się inicjatorowi.

Zabezpieczanie sieci IP SAN za pomocą iSNS Discovery Domains
iSNS discovery domains pełni tą samą rolę w sieciach IP SAN co zoning w FC. Dzięki temu mechanizmowi możemy podzielić całą sieć na logiczne fragmenty. Jedynie urządzenia w tej samej discovery domain mogą się ze sobą komunikować.





Wpis dość długi i na dodatek dość długo (w porównaniu do poprzednich) przygotowywany. Po części jest to sprawa dość dużej partii materiału zawartego w tym rozdziale, ale również wynika z pewnych zmian jakie zaszły ostatnio w moim życiu zawodowym. W skrócie mówiąc, ilość wolnego czasu, jaki posiadam, z niewielkiego, zmniejszyła się do ekstremalnie małego, co nie pozostanie bez negatywnego wpływu na częstotliwość aktualizowania tego blogu.
Niestety, takie życie...


czwartek, 21 października 2010

ISM - Storage Security Domains

Środowisko urządzeń storage i dostęp do danych na nich składowanych poprzez sieć, rodzi zagrożenia pod postacią ataków i próby uzyskania nieautoryzowanego wejścia i zmiany danych, lub ich uszkodzenia. Aby dobrze zidentyfikować rodzaje zagrożeń dzielimy całą sieć storage na trzy domeny:
  • Appliaction access - domena zawierająca ten fragment sieci, który jest wykorzystywany do dostępu do danych. 
  • Management access - w tej domenie znajdują się wszystkie ścieżki i urządzenia, które wykorzystuje się przy zarządzaniu i konfigurowaniu storage.
  • BURA - obejmuje wszyskie ścieżki danych i urządzania uczestniczące w procesie backup/recovery.

Application Access Domain:

W skład tej domeny wchodzą te komponenty (aplikacje, hosty, urządzania w sieci SAN itd.) które współuczestniczą w ruchu danych z/do urządzeń storage. Przykładowe zagrożenia związane z domeną Application Access to np: podszywanie się jednego hosta za drugiego, w celu uzyskania dostępu do zasobów storage, podsłuchiwanie transmisji w sieci , przeprowadzanie ataku DoS itd... Metody zapobiegawcze to przede wszystkim autentyfikacja i autoryzacja użytkowników, ważne jest także aby macierz mogła widzieć jedynie te hosty które powinny z jej zasobów korzystać.
Przykłady zabezpieczenia i kontroli dostępu użytkownika do danych (ataki typu: podszywanie się pod użytkownika): Autentyfikacja hasłami , NAS: Access Control Lists
Przykłady zabezpieczenia i kontorli dostępu hostów do danych (ataki typu: podszywanie się pod hosta): Zony w sieci SAN , LUN Maskig, iSCSI autentyfikacja wykorzystująca CHAPa
Przykłady zabezpieczeń i ochrony infrastruktury (ataki DoS, podsłuchiwanie transmisji itd...): używanie bezpiecznych protokołów IPSec i FC-SP ( Fibre Channel Security Protocol)
Przykłady zabezpieczeń danych istniejących na macierzach i taśmach (ataki bezpośrednio skierowane w dane: fizyczna kradzież ): Szyfrowanie danych, bezpieczne usuwanie.


Management Access Domain:

Za pomocą komponentów tej domeny możliwe jest zarządzanie urządzeniami storage (monitoring, wystawianie LUNów , provisioning itd...). W większości przypadków sieć zarządzająca to sieć LAN, a dostęp do samych macierzy odbywa się za pomocą CLI (Command Line Interface) lub przeglądarki sieciowej. Zagrożenia związane z Management Access Domain wiążą się z podsłuchem ruchu pomiędzy macierzami, a konsolami zarządzającymi oraz na próbach nieautoryzowanego łączenia się i zarządzania urządzeniami storage. Przeciwdziałania to wprowadzenie dwustronnej autentyfikacji (macierz identyfikuje się hostowi i host macierzy) , używanie bezpiecznych protokołów komunikacyjnych (np: SSH) przy łączeniu się do macierzy. Wydzielenie sieci LAN zarządzającej, od pozostałej infrastruktury sieciowej ( fizyczne rozdzielenie lub zdefiniowanie VLANu )


BURA Domain

BURA obejmuje sobą wszystkie urządzenia i ścieżki danych, które są wykorzystywane przez środowisko backupowe ( takie jak np: taśmy czy replikację ). Zabezpieczenie domeny BURA bazuje zwykle na specyfice działania aplikacji backupowej, gdyż musi bardzo ściśle z nią współpracować. Przykładami ataków w tej domenie to podszywanie się intruza pod serwer backupowy lub DR site, czy próba przechwycenia transmisji danych dla backupu, poprzez podsłuchiwanie kanału komunikacyjnego. Ochrona polega na wprowadzaniu szyfrowanej transmisji oraz mechanizmach autentyfikacji.





Tyle o domenach. W kolejnym odcinku telenoweli pt ISM , prześledzimy zagadnienia związane z konkretnymi
metodami zabezpieczeń w sieciach storage.

sobota, 16 października 2010

ISM - Budowa podstaw polityki bezpieczeństwa w obszarze storage

Czym jest bezpieczeństwo storage?

Jest to wdrożenie pewnych polityk, zasad i praktyk do technologii związanych ze storage. Główny nacisk jest kładziony na zapewnienie bezpiecznego(kontrolowanego) dostępu do informacji.
Podstawowy szkielet zasad i procedur ( tzw: framework ) bezpieczeństwa storage powinien obejmować następujące pojęcia:
  • Poufność (Confidentiality) - zapewnia, że jedynie upoważnieni użytkownicy mają dostęp do informacji. Każda osoba chcące przeczytać lub zapisać dane musi być zautentyfikowana i jej upoważnienia potwierdzone. Dane powinny być przechowywane i przesyłane wyłączenie w postaci zaszyfrowanej.
  • Integralność (Integrity) - zapewnia, iż dane nie zostaną niezauważalnie i bezprawnie zmodyfikowane. Dopusza zmianę jedynie dla uprawnionych do tego użytkowników.
  • Dostępność (Availability) - zapewnia że dane są dostępne zawsze i z odpowiednio dużą szybkością
  • Monitoring (Accountability) -  zapewnia, że wszystkie działania i operacje na danych będą zapisane i przechowywane w logach, w celach audytowych lub sprawdzenia w przyszłości.

Elementy wchodzące w skład bezpieczeństwa

Jednym z najważniejszych pojęć związanych z bezpieczeństwem (nie tylko storage) jest ryzyko (risk), które można opisać jako pewną miarę zagrożenia. Trzy pojęcia związane z ryzykiem to: Zasób (Asset) , Zagrożenie (Threat) i Wrażliwość (Vulnerability)

Elementy bezpieczeństwa: Zasoby
Najważniejszym zasobem jest informacja.
Inne rodzaje zasobów to hardware, software i infrastruktura sieciowa. Głównym zadaniem bezpieczeństwa jest chronienie zasobów. Planując zabezpieczenia należy pilnować dwóch rzeczy: Po pierwsze dane muszą być w łatwy sposób dostępne dla uprawnionych użytkowników i po drugie bardzo ciężko dostępne dla potencjalnych intruzów. Efektywność kosztową systemu zabezpieczeń także można ocenić za pomocą dwóch wskaźników: koszt implementacji systemu musi być nieduży, w stosunku do wartości danych w nim przechowywanych, a jednocześnie koszt przeprowadzenia ataku i uzyskanie nieuprawnionego dostępu powinien być dużo większy, niż wartość samych danych.

Elementy bezpieczeństwa: Zagrożenia
Zagrożenia są to potencjalne miejsca i sposoby ataku na naszą strukturę IT.
Można je podzielić na dwie grupy:
  • Ataki pasywne
    • Próby uzyskania nieautoryzowanego dostępu
    • Zagrożenia dla tajności informacji
  • Ataki aktywne
    • Modyfikacja danych , Denial of Service (DoS)
    • Zagrożenia dla integralności i dostępności danych

Elementy bezpieczeństwa: Wrażliwość
Należy pamiętać, że słaby punkt (wrażliwość) może wystąpić w każdym miejscu/elemencie naszego środowiska ( sieć, system operacyjny , użytkownicy , dostęp fizyczny itd.) i dodatkowo udany atak w tym miejscu może skompromitować cały system i dać intruzowi dowolny dostęp do danych.
Mówiąc o konkretnej wrażliwości systemu można przypisać jej 3 cechy:

  • Attack surface - jest związany z punktem w systemie, który intruz może wykorzystać do przeprowadzenia ataku. Przykładem może być każdy komponent infrastruktury sieciowej , taki jak np konkretny interfejs, protokół, usługa sieciowa itd...
  • Attack vector - to szereg kroków jakie muszą być wykonane aby atak się udał. 
  • Work factor - to ilość czasu i starań jakie są potrzebne aby przejść przez "attack vector"
Aby likwidować lub ograniczać wpływ wrażliwości należy stosować metody zapobiegawcze. Można je podzielić na dwie kategorie: techniczne i nie-techniczne (procedury bezpieczeństwa, fizyczna ochrona obiektów). Jeżeli chodzi o sposób działania to metody przeciwdziałania używają trzech sposobów:
  • Prewencja - likwidowanie wrażliwości lub zmniejszanie ich wpływu
  • Korekcja - usuwanie skutków ataku
  • Detekcja - wykrywanie ataków i uruchamianie mechanizmów prewencyjnych i korekcyjnych.





Już widzę, że ta sekcją będzie dla mnie najcięższa. Tematyka w miarę odległa od tego czym się zajmuję i dużo nowych pojęć. Na szczęście za niedługo już koniec ;)

Kolejny wpis będzie o: Storage Security Domains.