Blog (48)
Komentarze (382)
Recenzje (0)
@karol221-10Kompendium wiedzy o bezpieczeństwie danych — cz.I — nośniki oraz RAID

Kompendium wiedzy o bezpieczeństwie danych — cz.I — nośniki oraz RAID

25.07.2016 22:11, aktualizacja: 25.07.2016 23:53

Kopia zapasowa – jest to, jak wszyscy dobrze wiemy, jedna z najpewniejszych możliwości odzyskania uszkodzonych lub straconych danych. Przydaje się bardzo, kiedy stracimy (np.: przez awarię sprzętu) projekt, program, czy cokolwiek innego, nad czym pracowaliśmy szmat czasu. Taki „uszczerbek” może być bardzo bolesny. Najboleśniejszą prawdą jest to, że każdy z nas kiedyś doceni istnienie tego wynalazku. Dzieje się to najczęściej w momencie, kiedy właśnie stracimy dane i nie mamy jak ich odzyskać. Wtedy człowiek zadaje sobie pytanie… „Dlaczego ja nie zrobiłem kopii bezpieczeństwa?” Niestety, wtedy jest już najczęściej za późno. Zresztą, najlepiej opisuje to poniższe stwierdzenie:

Użytkownicy komputerów dzielą się na dwie kategorie: tych, którzy robią kopie zapasowe i tych, którzy dopiero zaczną je tworzyć

Czy ja, autor artykułu, wykonuję kopie zapasowe? Niestety, poznałem smak utraty danych na własnej skórze. Dla przestrogi, przytoczę kilka przykładów:

Przykłady prozaicznych powodów utraty danych

Utrata danych nr 1: Działo się to w okresie VI klasy podstawówki/I gimnazjum. Tworzyłem swoją pierwszą grę z użyciem C++ i SDL. Nie miała to być jakaś zaawansowana produkcja, ale nie mniej, wymagała sporo pracy. Kilka tysięcy linijek kodu, kilka miesięcy pracy i paręnaście kilobajtów zajętego miejsca na dysku twardym. Co się stało? Mój ówczesny zasilacz nie posiadał złącza zasilania SATA. Dysk był więc podłączony przez chińską przejściówkę SATA->MOLEX. Wszystko było idealnie do momentu, kiedy nie zapragnąłem wyciągnąć tego podzespołu, gdyż był mi potrzebny do innego komputera. Po przeprowadzeniu wszystkich eksperymentów i powrocie twardziela na swoje miejsce nie zwróciłem uwagi na jeden szczegół. Teoretycznie Molexa zasilającego dysk nie da się podłączyć na odwrót. Chronią przed tym ścięte rogi na górnej krawędzi wtyczki i gniazda. Niestety, lipna jakość chińskiej przejściówki (i brak oznaczenia kolorów kabli!) doprowadziły do tego, że podłączyłem zasilanie na odwrót. Dysk poszedł z dymem, a wraz z nim jedyna kopia mojego projektu, do którego już nie wróciłem…

Utrata danych nr 2: Nauczony doświadczeniem kupiłem dysk twardy w kieszeni USB. Utraconymi danymi był znowu projekt C++ WinAPI. Tym razem chodziło o graficzny edytor template (RMG) generatora map losowych Heroes 3. Program był prawie skończony. Posiadałem dwie kopie, jedną na dysku twardym a drugą na twardzielu USB. Niestety, z powodu braku czasu nie dokończyłem tego projektu. Potem przyszedł czas na formatowanie (przecież mam kopię na dysku USB, co się złego może stać?). Niestety nie wziąłem pod uwagę, że w czasie nieobecności mój krnąbrny kot będzie miał ochotę powałęsać się po moim biurku. Jako zabawkę upatrzył sobie kabelek USB. Dysk niestety leżał na krawędzi stołu. Upadku z wysokości około 1,5m nie miał szans przeżyć. Z dwóch powyższych przykładów płynie jeden bardzo ważny morał: kopia zapasowa jest niezbędnym elementem umożliwiającym zwiększenie trwałości danych.

Przyczyny utraty danych

Taka ładna błyskawica może bez problemu usmażyć nasz komputer
Taka ładna błyskawica może bez problemu usmażyć nasz komputer

Co może być przyczyną utraty danych? Wiele czynników:

  • Sprzęt elektroniczny, jak wszystko na świecie, ulega prędzej czy później awariom. Jednym z elementów, których prawdopodobieństwo uszkodzenia jest największe są dyski twarde.
  • Staramy pilnować swoich urządzeń. Jednakże, zawsze istnieje ewentualność że zostaniemy okradzieni. Strata sprzętu to jedno, ale strata ważnych danych (np.: pracy dyplomowej na kilka dni przed terminem oddania) może być o wiele bardziej bolesna.
  • Zawsze istnieje możliwość pomyłki. Istnieje ewentualność, że sami przez przypadek usuniemy pliki, których za wszelką cenę usuwać nie powinniśmy. W tym wypadku zdać egzamin mogą programy do odzyskiwania danych, aczkolwiek powinna to być raczej ostatnia deska ratunku.
  • Co prawda nie wierzę w skuteczność wszelakiego typu programów antywirusowych (uważam to tylko za wyłudzanie pieniędzy za złudne wrażenie absolutnego bezpieczeństwa), ale nie wyklucza to faktu istnienia szkodników takich jak CryptoLocker. Jeśli uruchamiamy każdy program, który nawinie nam się pod strzałkę to istnieje bardzo duża szansa na utratę danych właśnie w ten sposób.
  • Zdarzenia mniej lub bardziej losowe – zawsze się może zdarzyć, że nawet natura stanie przeciwko nam, np.: uderzając piorunem w linię energetyczną lub transformator. Odzyskanie danych z tak potraktowanego komputera może nie być proste.

Istnieje wiele programów, które umożliwiają nam tworzenie różnych typów kopii zapasowych: różnicowych, przyrostowych czy pełnych. Jednakże, równie istotną kwestią jak sam fakt tworzenia kopii danych jest nośnik, na którym je zapisujemy. Wszystko zależy od tego, czy zależy nam na czasie dostępu do danych, trwałości nośnika czy jego pojemności. Mamy do wyboru wiele możliwości: płyty DVD, dyski twarde (zarówno wewnętrzne jak i zewnętrzne), chmury internetowe, pamięci flash lub NAS. Każde z tych rozwiązań ma swoje zalety jak i wady. W tym artykule zajmiemy się głównie dyskami twardymi, a także powiązanymi z nimi macierzami RAID.

Nośniki danych

Płyty CD/DVD

Najstarszy z wymienionych wcześniej nośników danych. Pojemność dla standardowych płyt CD/DVD nie jest zbyt wielka, jak na dzisiejsze czasy. Co to jest 4,7GB DVD, kiedy pojedyncza aplikacja potrafi zająć więcej miejsca na nośniku, a pojedyncze zdjęcie nawet w JPG waży kilka/kilkadziesiąt megabajtów? Przy zapisywaniu ważnych plików na tym nośniku warto pamiętać o danych naprawczych. Wtedy, nawet jeśli nasza płyta zostanie porysowana, to i tak najprawdopodobniej nie wpłynie to na same dane. Dodatkowo, same nośniki optyczne (jeśli tylko są wykonane z porządnego materiału) są dość trwałe. Bez problemu przetrwają kilka lat leżenia na półce.

Dysk twardy, RAID

Zdecydowanie lepszą (lecz nie najlepszą) opcją wg mnie jest kupno zewnętrznego dysku twardego. Jeśli nie będziemy go chcieli zbyt często przenosić, możemy zdecydować się na dysk 3.5 cala. Dużą wadą w tego typu kieszeniach jest dodatkowy zasilacz (gdyż zwykły dysk twardy wymaga do pracy dwóch napięć: 12V do zasilania mechaniki oraz 5V dla obwodów logicznych. Prąd płynący z USB, którego maksymalne natężenie może wynosić najwyżej pół ampera jest po prostu zbyt mały). Zaletą – większa pojemność w stosunku do dysków 2.5 calowych oraz stosunkowo niższa cena za gigabajt.

Jeśli nasz nośnik nie będzie służył jedynie do przechowywania kopii zapasowych, lecz będziemy go często używali także w roli „pendrive-a” to zdecydowanie lepszym wyborem jest dysk w kieszeni 2.5 cala. Takie urządzenia z reguły zadowolą się prądem z gniazda USB oraz są lżejsze. Czyni je to o wiele łatwiejszymi w transporcie.

Ostatecznie możemy dodatkowy dysk zamontować we wnętrzu komputera. Oferuje to najwyższą wydajność, ale nie będziemy mieli możliwości łatwego podłączenia tego dysku do innego komputera (chyba, że przez sieć LAN).

Dyski twarde, jest jedynym podzespołem mechanicznym. Jednocześnie jest jednym z najważniejszych dla bezpieczeństwa naszych danych. Raporty firmy Backbaze wskazują, że w ciągu dwóch lat pracy awarii uległo około 4% Seagate’ów i 7% dysków WD. Niby nie jest to dużo, fakt. Nie mniej, istnieje szansa na to, że pewnego dnia dysk sam z siebie będzie chciał już przejść na emeryturę i odmówi pracy, posyłając nasze dane do kosza. W takim wypadku jednym z lepszych rozwiązań, mogącym przynieść nie tylko większe bezpieczeństwo, ale i wydajność, jest macierz RAID. Istnieje wiele typów tego typu macierzy. Ogólnie idea polega na połączeniu ze sobą kilka dysków tak, aby mogły ze sobą współpracować. Zależnie od typu macierzy, współpraca ta może różnie wyglądać. Istnieje wiele poziomów macierzy. My zajmiemy się tylko tymi, które możemy zastosować w domowych warunkach. Są to:

  • RAID 0 – bezpieczeństwo danych w tym trybie jest dość niskie. Wystarczy awaria jednego dysku, abyśmy utracili dane ze wszystkich pozostałych. Pliki zapisywane są na zasadzie strippingu (paskowania). Co to oznacza? Załóżmy, że mamy plik o wielkości 4 megabajtów. 2 megabajty mogą zostać zapisane na pierwszym dysku, a następne 2 na drugim. Przy odczycie danych, obydwa dyski będą wczytywały fragmenty pliku równocześnie. W najlepszym wypadku przy dwóch dyskach osiągniemy dwa razy większą prędkość zapisu i odczytu w porównaniu do pojedynczego dysku. W rzeczywistości oczywiście nie jest tak pięknie. Nie mniej, RAID z tradycyjnych dysków twardych może bez problemu rywalizować z gorszymi dyskami SSD pod względem np.: sekwencyjnej prędkości odczytu. (Macierz RAID0 złożona z dwóch dysków ST3500413AS potrafiła osiągnąć prędkość odczytu na poziomie 250 MB/s, co było lepszym wynikiem niż osiągi SSD Kingston V300.). Pojemność, którą uzyskamy, to pojemność najmniejszego dysku pomnożona przez ilość dysków budujących macierz. Najlepiej więc używać nośników o takiej samej pojemności.
  • RAID 1 – tzw. mirroring – czyli odbicie lustrzane. Każdy plik zapisywany na jednym z dysków jest automatycznie kopiowany na pozostałe. Odporność na awarie jest bardzo duża. Abyśmy nie utracili danych, w jednym momencie może zostać uszkodzony N-1 dysków. Wadą jest duża utrata pojemności. Jeśli np.: posiadamy 3 dyski 500 GB spięte w macierz RAID1, to wynikową pojemnością macierzy będzie dalej 500 GB. Prędkość zapisu jest równa prędkości zapisu na najwolniejszym dysku. Prędkość odczytu w pewnych wypadkach może być porównywalna z wynikiem osiąganym przez RAID0.
  • RAID5 – macierz ta musi składać się z co najmniej trzech dysków. Dane zapisywane są podobnie jak w RAID0. Istotną różnicą są kody korekcyjne. Są one rozsiane po całej przestrzeni macierzy i umożliwiają odzyskanie danych w wypadku awarii jednego dysku. Prędkość porównywalna jest z osiągami RAID0. Pojemność wynosi N-1 dysków.

Z pewnością, jeśli interesowałeś się tym tematem, słyszałeś także o innym podziale macierzy RAID. A więc, macierze można dzielić także na sprzętowe i programowe. Sprzętowa macierz RAID wymaga specjalnego kontrolera. Niestety, w warunkach domowych sprzętowy RAID to wydatek mocno nieproporcjonalny do korzyści. Przez przypadek wszedłem w posiadanie dwóch takich kontrolerów, które zdobyłem za bezcen. Na targowisku miejskim wynegocjowałem za nie cenę 15 zł od faceta, który najprawdopodobniej nie wiedział, co to w ogóle jest.

598933

Warto powiedzieć jedną ważną rzecz: RAID nie zastępuje kopii zapasowej! Jeśli przypadkowo usuniemy jakiś plik, RAID nie pomoże nam go odzyskać. Głównym zadaniem RAID jest ochrona danych przed awarią sprzętową i z tego zadania wywiązuje się wyśmienicie. RAID stanowi więc niejako dodatkowe zabezpieczenie i możliwość szybkiego powrotu do pracy po uszkodzeniu dysku.

Co do wydajności, wyników testów nie przedstawię, gdyż obecnie nie mam warunków do przeprowadzenia tego testu (jeden z moich Segeate’ów, budujących macierz RAID odszedł na wysłużoną emeryturę). Nie mniej, jedyną zaletą nad programowym RAID’em było mniejsze zużycie procesora podczas operacji wejścia/wyjścia oraz nieco lepsze osiągi. Jednakże, nie można kontrolerowi sprzętowemu zabrać jednej bardzo ważnej zalety, której nie posiada żaden inny rodzaj RAIDU. Mowa o tzw. „przezroczystości”. Fake RAID (czyli RAID programowy, obsługiwany przez większość głównych, mający udawać sprzętowy wariant) stawia czasami dość duże problemy przy próbie instalacji systemów GNU/Linux. Jeśli nawet instalator wykryje nasze dyski bez dodatkowych przełączników, to najprawdopodobniej będzie czekała nas później potężna batalia z GRUBem. Sprzętowy RAID nie ma tej wady. Jest on całkowicie przezroczysty dla komputera. Co to oznacza? Komputer widzi macierz RAID jako zwykły, pojedynczy dysk twardy podpięty do komputera. Sugerować to mogą nawet oznaczenia partycji w Linuksie. O ile dla Fake RAID ścieżka do pierwszego dysku może wyglądać np.: tak: /dev/mapper/pdc_cjaagjahdg, o tyle dla sprzętowego RAIDu będzie to po prostu /dev/sda.

Zajmijmy się teraz RAIDami typowo programowymi. O ile na RAIDzie sprzętowym, lub prawie-sprzętowym (Fake RAID), możemy zainstalować system operacyjny (ba, możemy zainstalować nawet systemy z różnej rodziny, jeśli się uprzemy) to na RAIDzie całkowicie programowym sprawa wygląda trochę inaczej. Zarówno Linux jak i Windows posiadają własne implementacje programowej macierzy. Jednak tylko w tym pierwszym wypadku na takiej macierzy będziemy mogli zainstalować system operacyjny. Windows potrafi stworzyć taką przestrzeń tylko do przechowywania danych. Nie da się na niej zainstalować systemu operacyjnego.

Dodatkowo, jeśli zdecydujemy się na programowy RAID to możemy (prawie) zapomnieć o posiadaniu dwóch systemów operacyjnych na tej samej macierzy.

Konfiguracja Fake RAID

Konfiguracja Fake RAID jest niezwykle prosta. Najpierw musimy zmienić tryb pracy portów SATA. W nowszych płytach głównych do wyboru są zwykle trzy opcje: starożytny IDE, nowszy i wydajniejszy AHCI lub RAID. Abyśmy mogli utworzyć macierz, musimy wybrać tą ostatnią opcję.

598940
598941

Następnie uruchamiamy ponownie komputer. Do uruchomienia ekranu konfiguracji macierzy najczęściej jest wymagana jakaś kombinacja, która jest zwykle wyświetlana tuż po pierwszym ekranie BIOS. Po wciśnięciu odpowiednich klawiszy naszym oczom ukaże się menu, w którym możemy obejrzeć nasze dotychczasowe macierze RAID, utworzyć nową lub skasować starą.

598943

Ekran może wyglądać różnie. Wszystko zależy od tego, jaki posiadamy BIOS. Na etapie tworzenia macierzy musimy wybrać jej typ, nazwę oraz niektóre dodatkowe opcje konfiguracji. W przypadku RAID0 jedną z najważniejszych jest tzw. Stripe Block. Wielkość ta to, w uproszczeniu, najmniejszy segment pamięci na jaki dzielone są dane zapisywane na dyskach. Na końcu musimy wybrać, jakie dyski mają uczestniczyć w macierzy.

Windows XP najprawdopodobniej będzie wymagał zintegrowania z dyskiem instalacyjnym specjalnych sterowników do macierzy RAID. Można je pobrać ze strony producenta płyty głównej. Integrację natomiast najłatwiej przeprowadzić programem typu nLite. Windows Vista i nowsze poradzą sobie z Fake RAID bez problemu.

Jeśli chodzi o systemy rodziny GNU/Linux, to nowsze wersje powinny sobie z Fake RAID poradzić bez problemu. Jeśli instalator nie widzi macierzy RAID, to należy tuż po załadowaniu płyty instalacyjnej nacisnąć klawisz Tab. Jako dodatkowy parametr dla jądra należy przekazać ciąg: dmraid=true. Dzięki temu dysk powinien zostać bez problemu wykryty.

598947

Może się okazać, że bootloader GRUB nie zostanie zainstalowany poprawnie. W takim wypadku należy uruchomić komputer z Live CD i przejść do trybu ratunkowego (w przypadku płytki CD z Debianem: Advanced options->Rescue mode). Może być konieczne dodanie ciągu „dmraid=true” do linii poleceń jądra.

Najczęściej będziemy musieli odpowiedzieć na podobny zestaw pytań, jak podczas instalacji systemu. Komputer będzie od nas żądał podania m.in. języka, układu klawiatury, konfiguracji sieci itp. Na samym końcu będziemy musieli wybrać urządzenie, które ma służyć jako nasz główny system plików. W przypadku Fake RAID urządzenie powinno mieć nazwę zaczynającą się od /dev/mapper/. Ewentualnie może to być oznaczenie /dev/dm-x. Jeśli nie widzimy takiego systemu plików na liście, powinniśmy wybrać opcję – nie używaj głównego systemu plików. Następnie zostaniemy zapytani o to, czy uruchomić powłokę w środowisku instalatora, na co powinniśmy się zgodzić.

598950

Pierwszym poleceniem, które powinniśmy wydać, jest:

dmraid –ay

Dzięki temu niewykryta wcześniej macierz BIOSowa powinna już być widoczna. Powinniśmy ją zamontować, np.: za pomocą polecenia:

mount /dev/mapper/pdc_cjaagjahdg /mnt

. Następnie należy zamontować podstawowe wirtualne katalogi, takie jak proc i sys oraz dev. Możemy to zrobić za pomocą poleceń:

mount –o bind /dev /mnt/dev
mount –t proc none /mnt/proc
mount –t sysfs none /mnt/sys

Ostatecznie możemy przejść do środowiska zainstalowanego systemu za pomocą polecenia:

chroot /mnt

. Teraz wystarczy już tylko wydanie polecenia grub-install, jako argument podając nazwę naszej macierzy RAID (bez cyfry na końcu). Np.:

grub-install /dev/mapper/pdc_cjaagjahdg

Na zakończenie możemy jeszcze wydać polecenie: update-grub, które doda nam do konfiguracji programu rozruchowego wszystkie systemy, które mamy aktualnie zainstalowane na komputerze.

Konfiguracja RAIDu programowego w systemach Windows

Windows wspiera RAID programowy od przełomu wieków, roku 2000. Od tamtego czasu proces konfigurowania tej funkcjonalności w zasadzie nie uległ zmianie. Jest to bardzo proste. Należy wejść do panelu sterowania. Następnie wybieramy kategorię System i zabezpieczenia. Spośród dostępnych opcji następnym krokiem będą Narzędzia Administracyjne. Dwukrotnie klikamy na ikonkę: Zarządzanie komputerem. Z listy opcji po lewej stronie wybieramy Zarządzanie dyskami. Przykładowa konfiguracja będzie polegała na stworzeniu macierzy RAID z następujących dwóch dysków:

598966

Klikamy prawym przyciskiem myszki na niepodzieloną przestrzeń drugiego dysku. Będziemy mieli do wyboru następujące opcje:

598968

Pierwsza opcja – New Simple Volume (Nowy wolumin prosty) to po prostu utworzenie nowej partycji. Nie ma tu nic tajemniczego. Używamy tej opcji, kiedy chcemy utworzyć zwykłą, najzwyklejszą partycję. Opcje ciekawe dla nas zaczynają się dopiero dalej:

  • New Spanned Volume – Nowy wolumin łączony – nie jest to w zasadzie RAID. Wolumin utworzony w wyniku działania tej opcji łączy szeregowo (jeden za drugim) przestrzenie dyskowe wybranych urządzeń. Co to oznacza? Np.: pliki są zapisywane na drugim dysku automatycznie, lecz dopiero wtedy gdy przestrzeń pierwszego się wyczerpie. Nie zyskujemy ani na prędkości działania ani na bezpieczeństwie.
  • New Stripped Volume – Nowy wolumin rozłożony – odpowiednik tradycyjnego RAID0. Dane zapisywane są w pasach na co najmniej dwóch dyskach. Zyskujemy zarówno pojemność jak i prędkość. Tracimy natomiast na bezpieczeństwie danych.
  • New Mirrored Volume – Nowy wolumin dublowany – odpowiednik tradycyjnego RAID1. Dane zapisywane na jednym dysku są natychmiastowo kopiowane na drugi. Zyskujemy prędkość odczytu i bezpieczeństwo danych. Tracimy pojemność.

Należy pamiętać, że po utworzeniu programowego RAIDu Windows, dyski, które w nim biorą udział zostaną skonwertowane z dysków podstawowych na dyski dynamiczne. Na takim dysku nie zainstalujesz innego systemu operacyjnego (nawet Windows!), a widoczność takich napędów pod Linuksem jest mocno ograniczona (ale możliwa, o czym powiemy sobie w dalszej części artykułu).

Jeśli w naszym programowym RAIDzie ma brać udział dysk systemowy, to musimy go najpierw ręcznie skonwertować na dysk dynamiczny. Nie zostanie to przeprowadzone automatycznie, jak w przypadku dwóch pustych dysków. Aby to zrobić, należy kliknąć prawym przyciskiem myszy na napis Disk 0. Z dostępnych opcji powinniśmy wybrać: Konwertuj na dysk dynamiczny. Potem postępujemy tak, jak wyżej zostało to opisane, postępując zgodnie z instrukcjami kreatora.

Instalacja systemu Linuks na mdadm – RAIDzie programowym

Windows może zostać zainstalowany tylko na RAIDzie sprzętowym lub BIOS-owym (Fake RAID). RAID programowy może służyć zarówno jako dysk z danymi, jak i dysk systemowy. Utworzenie go podczas instalacji jest bardzo proste. Konfigurację opiszę na podstawie instalatora Debian Wheezy, ale podobne kroki należy podjąć w przypadku każdej innej dystrybucji.

Etap partycjonowania przedstawia się następująco:

598976

Najpierw musimy utworzyć partycje RAID na dyskach, które zamierzamy przyłączyć do macierzy. RAID programowy nie musi zajmować całej przestrzeni dysku. Możemy wybrać dowolną wielkość partycji. Partycje RAID tworzymy tak samo, jak zwykłe. Tyle tylko, że w polu Użyj jako, zamiast konkretnego systemu plików wybieramy opcję: fizyczny wolumin dla RAID.

598978

Ekran partycjonowania po utworzeniu partycji RAID będzie przedstawiał się następująco:

598980

Następnie należy wybrać opcję: Konfiguruj programowy RAID. Kolejnym krokiem będzie wybranie opcji: Utwórz urządzenie wielodyskowe. Będziemy musieli wybrać typ tego urządzenia (do wyboru najprawdopodobniej będziemy mieli RAID 0,1,5,6,10). Potem będziemy musieli przeprowadzić konfigurację macierzy, która będzie przebiegać różnie, w zależności od wybranego poziomu macierzy. Wybranie macierzy RAID0 to najprostsza możliwa opcja, która nie wymaga dodatkowego myślenia. Każda z pozostałych opcji zmusi nas do dodatkowego wysiłku umysłowego. Najpierw będziemy musieli określić ilość urządzeń aktywnych, czyli takich, które na bieżąco będą uczestniczyć w macierzy RAID. Minimalna wartość to 2. Na następnym ekranie zostaniemy zapytani o ilość zapasowych urządzeń. Jeśli któryś z dysków w aktywnej macierzy zostanie uszkodzony, to wtedy automatycznie do danej macierzy zostanie dołączony dysk z puli urządzeń zapasowych, a dane na nim zostaną automatycznie odbudowane. Kolejny ekran, to już tylko wybór aktywnych urządzeń RAID.

598982

Potem utworzeniu urządzenia wielodyskowego cofniemy się do ekranu partycjonowania. Zauważymy nowe urządzenie: RAID, urządzenie wielodyskowe nr x.

598984

Teraz już możemy utworzyć normalną partycję w wolnej przestrzeni dyskowej tego urządzenia. System zostanie wtedy już bez zbędnych pytań zainstalowany na właśnie skonfigurowanej macierzy.

Zarządzanie linuksowym RAIDem programowym z poziomu linii poleceń

W Windowsie mamy bardzo ograniczone możliwości monitorowania stanu macierzy. Nie wpłyniemy też na jej zaawansowaną konfigurację, taką jak wielkość paska (stripe size). Mdadm posiada bardzo wiele ciekawych przełączników. My zajmiemy się tylko tymi najciekawszymi.

Monitorowanie macierzy

Istnieją dwa sposoby na monitorowanie macierzy RAID. Pierwszym z nich jest odczyt z pliku /proc/mdstat. Da on nam ogólne pojęcie na temat tego, jakie macierze są skonfigurowane w naszym systemie, jakie dyski/partycje uczestniczą w poszczególnych macierzach, a także jaki jest typ tych macierzy. Zobaczmy jak może wyglądać zawartość pliku  /proc/mdstat.

598990

Co możemy odczytać? Wielkość macierzy (52393984 bloków), partycje budujące macierz (sdc1, sdb1), ilość dysków, które aktualnie pracują w macierzy, oraz które powinny pracować w macierzy ([2/2]). Możemy odczytać także poziom RAID (RAID1). Innym poleceniem, które daje nam o wiele więcej szczegółowych informacji na temat pracy macierzy, jest polecenie:

mdadm –detail /dev/mdx (gdzie x to numer macierzy)

Przykładowy wynik polecenia przedstawiony został na screenie poniżej:

598994

Zastanówmy się teraz, co się stanie, gdy nasza macierz zostanie uszkodzona (np.: w wyniku awarii dysku)? Jeśli akurat pracujemy w wierszu poleceń, prawdopodobnie zostaniemy powiadomieni komunikatami podobnymi jak na screenie poniżej:

598996

Utratę jednego dysku będziemy także mogli odczytać z poleceń diagnostycznych wymienionych wcześniej. Poniżej wynik polecenia mdadm –detail /dev/mdx przy uszkodzeniu jednego z dysków:

598998

Jak zauważyliśmy, wynik polecenia się zmienił. Posiadamy obecnie jedno aktywne i pracujące urządzenie. Macierz ma status degraded, co oznacza, że została uszkodzona. W przypadku większości rodzajów RAID mających zabezpieczyć nasze dane (np.: RAID1 czy RAID5) praca będzie dalej możliwa. Jednakże, nasze dane już nie będą chronione. Wydajność także będzie mniejsza. Wymieniamy dysk. Co zrobić, aby odbudować macierz? Same podłączenie urządzenia nie wystarczy. Będzie konieczne wydanie kilku prostych poleceń.

Musimy dodać nowy dysk do macierzy. Możemy to zrobić za pomocą polecenia:

mdadm –manage /dev/md0 –a /dev/sdc1

Dzięki temu nasz system operacyjny będzie wiedział, że właśnie na tej partycji/tym dysku ma odbudować macierz. Wynik czytania z pliku /proc/mdstat mówi nam, że właśnie trwa odbudowywanie macierzy. W zależności od poziomu RAID i ilości zajętego miejsca, ponowna synchronizacja może zająć od kilku minut do kilku godzin.

599003

Stworzenie macierzy mdadm z linii poleceń

Stworzenie RAID z linii poleceń jest dość proste. Najpierw musimy na dysku utworzyć odpowiednie partycje. Możemy to zrobić np.: za pomocą cfdisk. Ważne, abyśmy zmienili typ partycji z Linux (83) na Linux raid autodetect (fd).

599006

Układ partycji może wyglądać np.: tak:

599008

Następnie tworzymy macierz. Służy do tego polecenie:

mdadm –create –verbose /dev/md0 –level=mirror –raid-devices=2 /dev/sdb2 /dev/sdc1

Omówmy sobie składnię tego polecenia. Pierwszy argument –create występuje zawsze przy tworzeniu macierzy i oznacza, jak sama nazwa wskazuje, że chcemy tworzyć macierz. Drugi argument jest opcjonalny i mówi o tym, że chcemy obserwować to, co się dzieje podczas tworzenia macierzy. Trzeci ciąg to nazwa naszej macierzy. Parametr –level oznacza typ RAIDu. Może on przyjmować następujące wartości:

  • Linear – odpowiednik woluminu łączonego z systemu Windows
  • Stripe – RAID0
  • Mirror – RAID1
  • 5 – RAID4/5/6

Zbliżamy się już ku końcowi … -‑raid-devices=2 oznacza, że w naszej macierzy będą brały udział 2 dyski/woluminy logiczne. Następnie podajemy nazwy tych woluminów. Jeśli mamy wystarczająco dużo twardzieli, możemy jeszcze dołożyć –spare-devices, a następnie ściezki dysków/woluminów dysków hot spare. Jaką one mają rolę? Jeśli jakiś dysk naszej macierzy zostanie uszkodzony, rolę denata przejmuje jedno z urządzeń Hot‑Spare. I Voila! Nasza macierz powinna działać poprawnie.

Jeśli będziesz chciał zatrzymać macierz RAID – nic prostszego. Wystarczy wydać polecenie:

mdadm –stop /dev/md0

Problem może pojawić się, kiedy będziesz chciał ją ponownie uruchomić. W mdadm nie ma żadnego polecenia typu start czy run. Co więc robić? Tworzyć od nowa? W pewnym sensie. Musimy tę macierz od nowa złożyć i zsynchronizować. Wystarczy, po słówku –assemble podać najpierw nazwę macierzy, a potem ścieżki wszystkich uczestniczących w niej woluminów.

mdadm –assemble /dev/md0 /dev/sdb2 /dev/sdc1

Została nam do omówienia przedostatnia rzecz. Jak sformatować takie urządzenie? Nic prostszego. Wydajemy odpowiednie polecenie, za ścieżkę do dysku podstawiając nazwę macierzy. Np.:

mkfs.ext4 /dev/md0

tworzy system plików ext4

mkfs.btrfs /dev/md0

– tworzy system plików btrfs

Na koniec, zastanówmy się, co zrobić, jak RAID nam się znudzi? Najpierw upewnijmy się, że wszystkie ważne dane z macierzy skopiowaliśmy na zapasowy nośnik (wszak, o tym jest ta seria). Następnie zatrzymaj macierz RAID poleceniem:

mdadm –stop /dev/md0

Gdy urządzenie zostanie dezaktywowane, usuńmy je

mdadm –remove /dev/md0

Gdy tylko usuniemy urządzenie, wystarczy wyzerować superbloki i po macierzy nie zostanie ani śladu:

mdadm –zero-superblock /dev/sdb2 /dev/sdc1

Ldmtool – Windowsowe woluminy dynamiczne w Linuksie

Niedawno pojawiła się możliwość odczytu i zapisu danych na windowsowym programowym RAIDzie. Służy do tego program ldmtool. Dostępny jest w repozytorium, więc instalacja jest banalnie prosta. Służy do tego polecenie:

apt-get install ldmtool

Po zainstalowaniu pakietu wystarczy wydać dwa polecenia, a windowsowe dyski dynamiczne będą widziane jako zwykłe partycje zwykłych dysków. Te polecenia to:

ldmtool scan
ldmtool create all

Niestety, będziemy musieli je wydawać za każdym razem po starcie systemu. Istnieje na to pewien sposób. Jeśli nasz system oparty jest na systemd, wystarczy stworzenie poniższego skryptu i jego włączenie. Plik powinien znajdować się w lokalizacji: /etc/systemd/system/ldmtool.service


[Unit]
Description=Windows Dynamic Disk Mount
Before=local-fs-pre.target
DefaultDependencies=no
[Service]
Type=simple
User=root
ExecStart=/usr/bin/ldmtool create all
[Install]
WantedBy=local-fs-pre.target

Włączyć usługę możemy za pomocą polecenia:

systemd enable ldmtool.service

Dzięki temu woluminy będą automatycznie znajdowane a odpowiednie pliki w folderze dev tworzone, przy każdym starcie systemu. W tym momencie, aby wolumin był automatycznie montowany, wystarczy dodać odpowiedni wpis do pliku /etc/fstab.

Podsumowanie

To już koniec tego przydługiego artykułu. W następnej części zajmiemy się programami i skryptami do tworzenia kopii zapasowych, zarówno szyfrowanych jak i nieszyfrowanych. Zastanowimy się także nad pozostałymi miejscami do przechowywania danych – chmurami publicznymi (Onedrive, Google Drive) oraz ich domowymi odpowiednikami (NAS). Na koniec powtarzam, warto być zabezpieczonym na wszelkie sposoby i chronić się przed utratą danych. Wbrew pozorom, nawet zwykła utrata zapisów stanu gry może być bolesna, nie mówiąc o poważniejszych rzeczach.

Wybrane dla Ciebie
Komentarze (39)