Pamięci masowe

Prawie żaden system komputerowy nie może obyć się bez wydajnej, niezawodnej, a także bezpiecznej pamięci masowej. Przez wiele lat postęp technologiczny przejawiał się w zwielokrotnianiu wydajności poszczególnych elementów systemów informatycznych, przede wszystkim prędkości pracy procesorów (CPU), prędkości pracy pamięci o dostępie swobodnym (RAM), przepustowości magistral różnego typu. Jednak stosunkowo najwolniejszy postęp dokonywał się w prędkościach pracy dysków.

Dyski, co prawda, zwiększały swoje pojemności, zmniejszały swoje wymiary, obniżały zużycie prądu, zwiększały swoje prędkości obrotowe, były wyposażane w pamięć podręczną (cache), zmieniały się interfejsy i rosły ich przepustowości, jednak mechaniczna konstrukcja napędów dyskowych cały czas limitowała możliwą do uzyskania prędkość pracy. Można bez większego błędu stwierdzić, że większość systemów informatycznych posiadała swoje pierwszoplanowe wąskie gardła w systemach dyskowych. Właśnie w systemach dyskowych, gdyż pojedyncze dyski były zbyt zawodne i zbyt mało wydajne.

W mniejszych systemach informatycznych w pojedynczym komputerze realizowano zadania za pomocą specjalnych adapterów tzw. RAID-y (Redundant Array of Independent Disks), które pozwalały na uzyskanie przez system operacyjny wrażenia, że przestrzeń dyskowa jest sumą pojemności (choć nie zawsze wszystkich) dysków wchodzących w skład takiego RAID-a. Także możliwe do uzyskania transfery danych były wielokrotnością parametrów transferu pojedynczego dysku. Jeśli wspomniane adaptery były wyposażane w pamięć podręczną do zapisu i podtrzymanie bateryjne, to w wielu wypadkach pozwalało to na znakomite przyspieszenie pracy systemu dyskowego nawet niewielkiego systemu informatycznego. Co nie bez znaczenia, poprawiała się także niezawodność systemu, gdyż system dyskowy nadal pracował, gdy awarii ulegał pojedynczy dysk, a w niektórych wypadkach system pracował nadal, gdy awarii ulegało wiele dysków. Pojawiła się naturalna potrzeba, aby dyski mogły być wymieniane w tzw. „locie”, czyli bez przerywania pracy systemu dyskowego tylko z powodu konieczności wymiany uszkodzonego dysku na sprawny. Na to zapotrzebowanie odpowiadają obudowy i dyski typu hot-swap.

Jeśli chodzi o większe systemy informatyczne, stosowano w ich przypadku te same metody konstrukcji RAID-ów, jednak na większą skalę. Nierzadko zespoły takich RAID-ów składały się z kilkuset dysków, a łączone w systemy nawet z tysięcy. Zyskały one nazwy macierzy dyskowych. Szybko okazało się, że takie macierze dyskowe, to w istocie specjalizowane komputery z bardzo rozbudowanym oprogramowaniem. Także szybko okazało się, że są one na tyle kosztowne, że powinny z nich korzystać nie pojedyncze komputery, lecz wiele komputerów na raz. Wymusiło to wprowadzenie i rozwijanie specjalnych standardów transmisji danych, przystosowanych do charakterystyk dostosowanych do przesyłania danych pomiędzy pamięcią masową a komputerem.

Były to już czasy bardzo dobrze znanych i szeroko stosowanych sieci komputerowych LAN (Local Area Network). Ponieważ z punktu widzenia architektury udostępnianie pamięci masowej komputerom nie różni się od udostępniania np. plików przez serwery stacjom roboczym, sieci dedykowane do udostępniania nośników pamięci masowej zostały nazwane przez analogię SAN (Storage Area Network). Do użytku wszedł standard Fibre Channel (F/C). Zaczynał on od wersji o przepustowości 1Gb/s (standard został opublikowany w 1997 roku). Kolejne jego wersje mają przepustowości 2, 4, 8, 10 i 16 Gb/s, a w przygotowaniu jest standard o prędkości 32Gb/s.

Elementy wchodzące w skład SAN-ów z protokołem Fibre Channel, to adaptery znajdujące się w komputerach, tzw. HBA (Host Bus Adapter), switch’e F/C (przynajmniej dwa –  w celu zapewnienia nadmiarowości) oraz macierz lub macierze dyskowe z interfejsami F/C na przynajmniej dwóch niezależnych od siebie kontrolerach (także w celu zapewnienia nadmiarowości). W niektórych przypadkach konieczne jest uzupełnienie infrastruktury F/C o dodatkowe switche, np. w celu zapewnienia komunikacji z macierzami komputerów znajdujących się w odległych lokalizacjach. Warto wspomnieć, że w najprostszych wypadkach można pod pewnymi warunkami zrezygnować ze switchów F/C w ogóle.

Przy okazji konstruowania nadmiarowych systemów SAN nie może umknąć uwadze, że komputer z macierzą dyskową jest połączony wieloma różnymi ścieżkami, z których każda może przesyłać dane. Dlatego też zaawansowane macierze dyskowe pozwalają na wykorzystanie tej nadmiarowości nie tylko do zapewnienia bezpieczeństwa, ale także do zwiększenia przepustowości.

Innym rodzajem protokołu, który niekiedy bywa wykorzystywany do przesyłania danych pomiędzy macierzami dyskowymi, a komputerami to protokół iSCSI (Internet Small Computer System Interface). Bazuje on zazwyczaj na protokole Ethernet i wykorzystuje wszystkie jego komponenty – adaptery sieciowe LAN oraz switche Ethernet. Macierze dyskowe często oferują jako jedną z możliwości wyposażenie swoich kontrolerów w porty Ethernet. Zaś najprostsze rozwiązania posiadają wyłącznie porty Ethernet. Dzięki temu są bardzo tanie. Infrastruktura bazująca na iSCSI jest zazwyczaj wykorzystywana pomocniczo w ramach istniejącej lub nieznacznie zmodyfikowanej infrastruktury LAN. Gdy jednak zbudować ją od podstaw z wykorzystaniem wersji 10Gb Ethernet i w oparciu o macierze z takimi interfejsami może się okazać dobrą alternatywą dla infrastruktury SAN zbudowanej o protokół Fibre Channel.

Warto wspomnieć także o udostępnianiu danych w sieciach komputerowych LAN. Rolę tą „od zawsze” pełniły serwery, które swoje zasoby dyskowe udostępniały innym komputerom w sieci. Z czasem powstały i upowszechniły się standardy, takie jak np. NFS (Network File System) lub SMB/CIFS (Server Message Block/Common Internet File System). Obecnie trudno znaleźć system operacyjny, który by nie potrafił obsługiwać któregoś z tych standardów. Okazało się, że także dedykowany komputer (serwer) to zbyt wiele do obsługi wyłącznie plików. Dlatego też coraz częściej powstają dedykowane urządzenia spełniające rolę sieciowych repozytoriów plikowych. Zawierają one co najmniej 2 dyski i są wyposażone w mechanizmy ochrony dostępu, a niekiedy także i backup’u. Te rozwiązania noszą nazwę NAS-ów (Network Attached Storage). Bardzo często oprócz udostępniania plików za pomocą protokołów NFS i SMB/CIFS potrafią one także obsługiwać protokół iSCSI i tym samym część lub wszystkie swoje zasoby dyskowe udostępnić komputerom w ten właśnie sposób, jak macierz dyskowa. Mając na uwadze, że w jednej obudowie np. mieści się kilkanaście dysków po kilka TB, to obsługiwane pojemności są naprawdę spore.

Innym rodzajem nośników pamięci masowej są dyski typu flash. Poza brakiem podatności na uszkodzenia mechaniczne i niskim poborem prądu, dyski typu flash stają się powoli alternatywą dla dysków bazujących na obracających się talerzach magnetycznych. Jednak ich główną zaletą jest prędkość działania. Zaś niewątpliwymi wadami wysokie ceny, stosunkowo niewielkie pojemności i dość szybki proces starzenia się. Dlatego na razie trudno mówić o dyskach opartych na technologii flash, jak o pełnoprawnych nośnikach pamięci masowej. Jednak coraz częściej istniejące macierze dyskowe można doposażyć w niewielkie dyski flash, nie tracąc przy tym fortuny. Korzystając z mechanizmów od dawna znanych i wykorzystywanych w macierzach można nawet za pomocą kilku dysków flash w znaczący sposób usprawnić działanie całej macierzy dyskowej. Należy także wspomnieć, że dla najbardziej wymagających użytkowników dostępne są całe systemy macierzowe oparte wyłącznie o dyski w technologii flash, jednak ich ceny są jeszcze bardzo wysokie.

Rozpoczęcie stosowania dysków flash zmusza projektantów do zwiększania prędkości wszelkiego rodzaju magistral. I tych pomiędzy sterownikami dysków a samymi dyskami oraz pomiędzy sterownikami a płytami głównymi. Bowiem przy stosowaniu dysków flash tam właśnie pojawiają się wąskie gardła. Najpopularniejszym standardem interfejsu pomiędzy sterownikami dysków a dyskami jest tzw. SAS (Serial Attached SCSI). Najnowsza wersja tego interfejsu pracuje z prędkością 12Gb/s.

Omawiając rozwiązania systemów pamięci masowej nie sposób wspomnieć o wirtualizacji ich zasobów storage, który jest trendem zyskującym na popularności do kilku lat. Pojęcie wirtualizacji jest bardzo znane i kojarzy się przede wszystkim z rozwiązaniami polegającymi na uruchomieniu na pojedynczej maszynie fizycznej wielu maszyn wirtualnych (VM), pracujących na różnych systemach operacyjnych. W przypadku wirtualizacji systemów pamięci masowej, mamy do czynienia z dość zbliżonym procesem, jednak o przeciwnym wektorze. Generalnie wirtualizacja pamięci masowych polega na wprowadzeniu warstwy pośredniej pomiędzy posiadanymi zasobami dyskowymi a korzystającymi z nich serwerami. Dzięki tej warstwie możemy udostępniać i zarządzać zasobami dyskowymi za pomocą jednego interfejsu, niezależnie od producenta systemu storage, technologii czy interfejsu za pomocą którego zasób jest udostępniany w ramach sieci SAN (FC, FCoE, iSCSI, SAS, IP). Niejako przy okazji uzyskujemy szereg, często niedostępnych wcześniej, funkcjonalności usprawniających bieżącą pracę. Są to między innymi kopie migawkowe, kopie lustrzane wolumenów różnych macierzy, replikacja, tiering zasobów dyskowych pomiędzy wolniejszymi dyskami (SATA) a szybszymi (SAS, SSD), deduplikacja i thin provisioning.

Dzięki wirtualizacji pamięci masowych mamy możliwość połączenia odrębnych „wysp” SAN (macierzy dyskowych) w jeden centralnie zarządzany zasób, ułatwiając jednocześnie zarządzanie i zapewniając wysoki poziom dostępności. Należy również podkreślić, że wirtualizacja SAN umożliwia zniesienie monopolu dostawców systemów w jednej organizacji, co było konieczne np. w przypadku konieczności replikacji danych pomiędzy macierzami. Umożliwia ona również łączenie w jeden organizm macierzy o różnej wydajności i poziomach funkcjonalności za pomocą wbudowanych w wirtualizator mechanizmów. Nasze realizacje systemów wirtualizacji pamięci masowych są oparte o IBM SAN Volume Controler (SVC).

 

W naszych projektach wykorzystujemy rozwiązania i technologie IBM Storwize V5000 i Storwize V7000 oraz systemy IBM FlashSystem 900 i FlashSystem V9000.

Nasze realizacje obejmują również systemy Hewlett Packard Enterprise 3PAR StoreServ i Modular Storage Array (MSA) oraz NetApp E2700/E5600 oraz systemy FAS2500/FAS8000.