ZASADY PRZECHOWYWANIA DANYCH Wymienić można następujące powody utraty lub szkodliwej modyfikacji danych: przypadkowe ich usunięcie (np. przez roztargnionego pracownika), uszkodzenie nośnika, awaria systemu czy oprogramowania (np. zanik zasilania), w skutek działania intruza (osoby lub złośliwego programu). Właściwa ochrona wymaga: przestrzeganie właściwego dostępu użytkowników do danych, nadawanie plikom określonych atrybutów,umieszczanie ich w określonych lokalizacjach, stosowanie stabilnych systemów i programów, udaremnienie dostępu do danych osobom niepowołanym, uniemożliwienie działania złośliwym programom, tworzenie i właściwe przechowywanie kopii zapasowych.
KOREKCJA BŁĘDÓW W systemach pamięci półprzewodnikowych występują błędy. Można je podzielić na błędy stałe i przypadkowe. Błąd stały jest permanentnym defektem fizycznym powodującym, że uszkodzona komórka lub komórki pamięciowe nie są w stanie niezawodnie przechowywać danych, lecz pozostają w stanie 0 lub l, albo błędnie przeskakują między 0 a 1. Błąd przypadkowy jest losowym i nieniszczącym zjawiskiem, które zmienia zawartość jednej lub wielu komórek pamięciowych, bez uszkadzania samej pamięci. Zarówno błędy stałe, jak i przypadkowe są oczywiście niepożądane i większość współczesnych systemów pamięci głównych zawiera układy logiczne wykrywające i korygujące błędy.
KODY KOREKCYJNE Gdy dane mają być wczytane do pamięci, przeprowadza się na tych danych obliczenia w celu utworzenia kodu do korekty błędów. Zarówno kod, jak i dane są przechowywane. Gdy uprzednio zmagazynowane słowo jest odczytywane, kod jest wykorzystywany do wykrywania i ewentualnej korekty błędów. Generowany jest nowy zestaw K bitów kodowych z M bitów danych, po czym porównuje się go z pobranymi bitami kodowymi. Porównanie prowadzi do jednego z trzech wyników: Nie wykryto żadnych błędów. Pobrane bity danych są wysyłane. Wykryto błąd, którego korekta jest możliwa. Bity danych i bity korekty błędu są doprowadzane do układu korektora, który tworzy poprawiony zestaw M bitów Wykryto błąd niemożliwy do poprawienia. Stan ten jest zgłaszany.
KODY HAMMINGA M=4 W przypadku trzech krzyżujących się okręgów mamy do czynienia z siedmioma przedziałami. Przypisujemy 4 bity danych przedziałom wewnętrznym (a). Pozostałe przedziały są wypełniane tzw. bitami parzystości. Bit parzystości jest wybierany tak, że całkowita liczba jedynek w okręgu jest parzysta (b) Jeśli teraz błąd spowoduje zmianę jednego z bitów danych (c), jest on łatwy do wykrycia. Sprawdzając bity parzystości, wykrywamy sprzeczności w okręgach A i C, ale nie w B. Tylko jeden z 7 przedziałów znajduje się w A i C, ale nie w B. Błąd może więc być poprawiony przez zmianę tego bitu (d).
DŁUGOŚĆ SŁOWA A KOREKCJA Liczba bitów danych Poprawianie pojedynczego błędu Poprawianie pojedynczego błędu, wykrywanie podwójnego błędu Bity kontrolne % wzrostu Bity kontrolne % wzrostu 8 4 50 5 62,5 16 5 31,25 6 37,5 32 6 18,75 7 21,875 64 7 10,94 8 12,5 128 8 6,25 9 7,03 256 9 3,52 10 3,91
PRZECHOWYWANIE DANYCH W celu zapisu lub odczytu głowica musi być ustawiona nad pożądaną ścieżką i na początku pożądanego sektora na tej ścieżce. Wybór ścieżki polega na przesunięciu głowicy w przypadku systemu z ruchomą głowicą lub na elektronicznym wyborze jednej głowicy w systemie z nieruchomymi głowicami. W systemie z ruchomą głowicą czas pozycjonowania głowicy nad ścieżką nosi nazwę czasu przeszukiwania (ang. seek time). W każdym przypadku po dokonaniu wyboru ścieżki system czeka, aż odpowiedni sektor znajdzie się pod głowicą. Czas osiągnięcia głowicy przez sektor jest nazywany opóźnieniem obrotowym (ang. rotational latency).
STRUKTURA RAID Uzgodniono znormalizowany schemat projektowania baz danych dla pamięci wielodyskowych, znany jako redundancyjna tablica niezależnych dysków - RAID (ang. Redundant Array of Independent Disks). Schemat RAID składa się z sześciu poziomów, od zerowego do piątego. Poziomy te nie implikują zależności hierarchicznej, lecz wyznaczają różne architektury, które mają trzy cechy wspólne: RAID jest zespołem fizycznie istniejących napędów dyskowych widzianych przez system operacyjny jako pojedynczy napęd logiczny. Dane są rozproszone w tych napędach, tworzących tablicę. Redundancyjna pojemność dysków jest wykorzystywana do przechowywania informacji o parzystości, co gwarantuje odzyskiwanie danych w przypadku uszkodzenia dysku.
STRUKTURA RAID POZIOM 0 Jeśli dwa różne żądania wejścia-wyjścia dotyczą dwóch różnych bloków danych, istnieje duże prawdopodobieństwo, że potrzebne bloki znajdują się na różnych dyskach. Dzięki temu oba zapotrzebowania mogą być przetwarzane równolegle, co skraca oczekiwanie w kolejkach. Wszystkie dane użytkownika i systemowe mogą być postrzegane jako przechowywane na jednym dysku logicznym. Dysk jest podzielony na paski; paski te mogą być fizycznymi blokami, sektorami lub innymi jednostkami. Paski są odwzorowywane cyklicznie na kolejnych dyskach tablicy.
STRUKTURA RAID POZIOM 1 W przypadku RAID 1 redundancja jest osiągana po prostu przez duplikowanie wszystkich danych Żądanie odczytu może być obsługiwane przez ten spośród dwóch dysków zawierających potrzebne dane, który wymaga mniejszego czasu przeszukiwania plus opóźnienie obrotowe. Żądanie zapisu wymaga aktualizacji obu odpowiednich pasków, jednak może to być wykonywane równolegle. Wobec tego wydajność zapisu jest dyktowana przez wolniejszy z dwóch zapisów (tzn. ten, który zajmuje dłuższy czas przeszukiwania plus opóźnienie obrotowe). W razie awarii rozwiązanie jest proste. Gdy napęd ulega uszkodzeniu, dane mogą być uzyskane z drugiego napędu.
STRUKTURA RAID POZIOM 2 RAID 2 i 3 wykorzystują metodę dostępu równoległego. W przypadku tablicy o dostępie równoległym wszystkie dyski uczestniczą w realizacji żądania wejścia-wyjścia. Zwykle poszczególne napędy są synchronizowane tak, że w dowolnym momencie każda głowica znajduje się w tej samej pozycji nad każdym dyskiem. W RAID 2 kod korekcji błędów jest obliczany na podstawie odpowiednich bitów na każdym dysku danych, a bity kodu są przechowywane w odpowiednich pozycjach bitowych zlokalizowanych na wielu dyskach parzystości. Zwykle jest wykorzystywany kod Hamminga, który umożliwia korygowanie błędów jednobitowych i wykrywanie dwubitowych.
STRUKTURA RAID POZIOM 3 RAID 3 jest zorganizowany podobnie do RAID 2. Różnica polega na tym, że wymaga on tylko jednego dysku redundancyjnego, niezależnie od wielkości matrycy dysków. Zamiast kodu korekcyjnego jest obliczany bit parzystości dla zespołu indywidualnych bitów znajdujących się w tej samej pozycji na wszystkich
RAID 3 REDUNDANCJA W przypadku uszkodzenia napędu sięga się do napędu parzystości, po czym następuje rekonstrukcja danych na podstawie danych zawartych na pozostałych urządzeniach. Rozważmy tablicę złożoną z pięciu napędów, w której dyski XO do X3 zawierają dane, natomiast X4 jest dyskiem parzystości. Rekonstrukcja (znak + oznacza operację EXOR) Parzystość i-tego bitu jest obliczana następująco: X4(i) = X3(i) + X2(i) + X1(i) + X0(i) Załóżmy, że został uszkodzony napęd X1. Jeśli dodamy X4(i) + X1(i) do obu stron powyższego równania, to otrzymamy X1(i) = X4(i) + X3(i) + X2(i) + X0(i) Wobec tego zawartość dowolnego paska danych na dowolnym dysku danych w tablicy może być zregenerowana na podstawie zawartości odpowiednich pasków na pozostałych dyskach tablicy. Zasada ta jest prawdziwa dla poziomów RAID 3,4 i 5.
STRUKTURA RAID POZIOM 4 Podobnie jak w przypadku pozostałych poziomów RAID, w RAID 4 wykorzystuje się paskowanie danych. Paski są tu stosunkowo duże. Pasek parzystości tworzony bit po bicie jest obliczany na podstawie odpowiednich pasków na każdym dysku danych, a bity parzystości są przechowywane w odpowiednim pasku na dysku parzystości. W schemacie RAID 4 występuje pogorszenie wydajności zapisu, jeśli realizowane jest żądanie zapisu małej ilości danych. Za każdym razem, gdy następuje zapis, oprogramowanie zarządzania tablicą musi zaktualizować nie tylko dane użytkownika, ale również odpowiednie bity parzystości.
RAID 4 REDUNDANCJA Rozważmy tablicę złożoną z pięciu napędów, w której dyski XO do X3 zawierają dane, natomiast X4 jest dyskiem parzystości. Załóżmy, że dokonywany jest zapis obejmujący tylko pasek na dysku X1. Początkowo dla każdego i-tego bitu zachodzi następująca zależność: X4(i) = X3(i) + X2(i) + X1(i) + X0(i) Jeśli potencjalnie zmienione bity oznaczymy primem, to po aktualizacji zachodzi: X4'(i) = X3(i) + X2(i) + Xl (i) + X0(i) = = X3(i) + X2(i) + Xl (i) + X0(i) + X1(i) + X1(i) = = X4(i) + X1(i) + X1 (i) W celu obliczenia nowego bitu parzystości oprogramowanie zarządzania tablicą musi odczytać stary pasek użytkownika i stary pasek parzystości. Następnie musi ono zaktualizować te oba paski za pomocą nowych danych oraz na nowo obliczonej parzystości. Tak więc każdy zapis paska powoduje dwa odczyty i dwa zapisy.
STRUKTURA RAID POZIOM 5 RAID 5 jest zorganizowany podobnie jak RAID 4. Różnica polega na tym, że w przypadku RAID 5 paski parzystości są rozproszone na wszystkich dyskach. Typowo wykorzystuje się schemat cykliczny (ang. round-robin). W przypadku tablicy n-dyskowej pasek parzystości jest umieszczany na różnych dyskach w odniesieniu do pierwszych n pasków danych, po czym schemat ten jest powtarzany.
STRUKTURA RAID POZIOM 6 RAID 6 jest zorganizowany podobnie jak RAID 5. Różnica polega na tym, że w przypadku RAID 6 zapisywane są po 2 paski parzystości i są one rozproszone na wszystkich dyskach. Umożliwia to odtworzenie danych w przypadku awarii dwóch dysków
KOPIE ZAPASOWE Aktualne kopie zapasowe pozwalają doprowadzić system do stanu z przed awarii. Należy zastanowić się: co powinno być archiwizowane, jak często dokonywać archiwizacji, jakie wybrać nośniki na archiwa. Musimy przy tym rozważyć : koszty pewność prędkość dostępność użyteczność
PRZECHOWYWANIE KOPII ZAPASOWYCH Kopia zapasowa powinna być umieszczona: na tyle daleko, by nie uległa uszkodzeniu wraz z systemem na tyle blisko, by czas jej sprowadzenia nie był zbyt długi. Dobrą praktyką jest wykonywanie dwóch kopii zapasowych i przechowywanie ich w dwóch różnych miejscach. Rodzaje i częstotliwość tworzenia kopii proste (pełne, normalne), różnicowe, przyrostowe, codzienne.
KOPIE PROSTE Proces wykonywania kopii, podczas którego kopiowane są wszystkie wybrane pliki. Poszczególne pliki są oznaczane jako pliki, których kopie zapasowe wykonano (mówiąc inaczej, atrybut archiwizacji jest czyszczony). W przypadku normalnej kopii zapasowej, aby przywrócić wszystkie pliki, wystarczy posiadać tylko ostatnią kopię pliku kopii zapasowej lub taśmę zawierającą kopię zapasową. Normalną kopię zapasową wykonuje się zwykle wtedy, gdy po raz pierwszy jest tworzony zestaw kopii zapasowych. 19
KOPIE PRZYROSTOWE Proces wykonywania kopii zapasowych, podczas którego kopiowane są tylko pliki utworzone lub zmienione od chwili wykonania ostatniej normalnej lub przyrostowej kopii zapasowej. Pliki oznaczane są jako takie, których kopie zapasowe zostały wykonane (atrybut archiwizacji jest czyszczony). Jeżeli używane jest połączenie normalnej i przyrostowej kopii zapasowej, to do przywrócenia danych potrzebna jest ostatnia normalna kopia zapasowa oraz wszystkie zestawy kopii zapasowych typu przyrostowego.
KOPIE RÓŻNICOWE Proces wykonywania kopii zapasowych, podczas którego kopiowane są pliki utworzone lub zmienione od czasu wykonywania ostatniej normalnej lub przyrostowej kopii zapasowej. Pliki nie są oznaczane jako takie, których kopie zapasowe wykonano (atrybut archiwizacji nie jest czyszczony). W przypadku wykonania kombinacji normalnych i różnicowych kopii zapasowych podczas przywracania plików i folderów należy dysować zarówno ostatnią normalną, jak i ostatnią różnicową kopią zapasową.
KOPIE CODZIENNE Proces wykonywania kopii zapasowych, podczas którego kopiowane są wszystkie wybrane pliki, które zostały zmodyfikowane w dniu wykonania kopii zapasowej. Pliki, których kopie zapasowe wykonano, nie są oznaczane jako pliki, których kopie zapasowe wykonano (innymi słowy, atrybut archiwizacji nie jest czyszczony). Schematy tworzenia kopii - przykład: taśma nr 1 kopia normalna (piątek) taśmy nr 2-5 kopie przyrostowe (iedziałek - czwartek) taśma nr 6 ownie kopia normalna (piątek) Nie należy nadpisywać taśmy 1 do czasu stworzenia pełnej kopii na taśmie 6. Jeżeli jest dostępnych więcej niż 6 taśm możemy dodatkowe z nich wykorzystać do tworzenia kopii pełnych.
PRZYKŁAD TWORZENIA KOPII odtwarzanie na koniec m-ca nr taśmy poziom 0 1 2 1 3 4 5 2 6 3 4 1 5 6 3 4 2 dzień 1 8 15 22 29 1 5 13 20 27 1 4 11 18 25 1 taśmy 1 i 2 kopie miesięczne (I piątek miesiąca) taśmy 3 6 kopie tygodniowe (inne piątki, może być 5 pt.) taśmy 7 10 kopie codzienne (iedziałek - czwartek)