Rozdział XIV Zabezpieczanie systemu plików
14.1. Metody zabezpieczania systemu plików
W wielu systemach komputerowych przechowywane są cenne dla użytkowników tych systemów i ich firm dane i często egzystencja firmy zależy od stałego do nich dostępu. Aby to zapewnić, system musi posiadać możliwość neutralizowania wszelkich awarii sprzętu i systemu plików. Podstawą jest niezawodne zasilanie elektryczne. Szacuje się, że połowa wszelkich przypadków utraty bądź uszkodzenia całości lub części danych jest spowodowana problemami z zasilaniem. Wśród nich większość spowodowana jest przez krótki zanik lub spadek napięcia, przerywający wprawdzie pracę systemu tylko na krótki czas, ale mogący doprowadzić do utraty części danych lub ich logicznej spójności. Z lego powodu zaleca się wyposażenie systemu komputerowego w urządzenie do ciąglego podtrzymywania napięcia (UPS), pozwalające systemowi na kontynuowanie pracy po awarii zasilania, a administratorowi na bezpieczne wyłączenie systemu bez utraty danych bądź podjęcie decyzji o dalszej pracy w nadziei, że w międzyczasie pojawi się zasilanie. Również awaria samego komputera lub dysku może spowodować utratę danych. Problemy awarii dysków można znacznie zminimalizować, stosując zapis na dwóch lustrzanych dyskach (ang. mirrormg) lub technikę RAID, korzystającą z tak zwanych macierzy dysków (rozdział 2. l).
Pomimo wysokiej niezawodności pamięci dyskowych, system plików dyskowych powinien być co pewien czas archiwizowany na nośniku zewnętrznym. Zabezpiecza go to przed skutkami awarii systemu oraz umożliwia odtworzenie wcześniejszych jego stanów. O ile problemy z zasilaniem są stosunkowo dość rzadkie, a trwałe awarie komputera i dysków mało prawdopodobne, to do utraty fragmentów danych może dojść również wskutek nieprawidłowej pracy oprogramowania aplikacyjnego bądź pewnych pomyłek operatorskich, na przykład nieprzemyślanego skasowania pewnych danych przez użytkownika. Do okresowego archiwizowania zawartości dysku wygodne w użyciu są kasety z taśmą magnetyczną, ze względu na wymienność nośnika, stosunkowo niskie ich ceny i duże pojemności. Najmniej wygodne w tym zakresie są dyskietki — ze względu na ich matą pojemność.
W zakupionym systemie komputerowym z preinstalowanym Unixem zwykle znajduje się urządzenie do archiwizowania systemu plików. Najczęściej jest to napęd kasety z taśmą magnetyczną, zwany z ang. streamerem.
Dla systemu Unix, szczególnie komputerów PC, istnieje obszerna rynkowa oferta streamerów. Jeżeli z danym urządzeniem nie jest dostarczane oprogramowanie instalacyjne, to zwykle instalację można wykonać odpowiednimi poleceniami Unixa, przykładowo w SCO UNIXie poleceniami:
mkdev tape lub
sysadmsh
i wybraniem:
System -> Hardware -?Tape-Add/Remove
14.2. Archiwizowanie systemu plików
We wszystkich odmianach Unixa do archiwizowania systemu plików mogą być stosowane polecenia Cpio. tar oraz w szczególnych przypadkach polecenie dd (rozdział 6). Obok nich w poszczególnych odmianach systemu spotykane są różne rodzaje poleceń typu backup, restore, recover itp., niekiedy dość znacznie różniące się zakresem swoich możliwości, opcji pracy i stosowanego formatu zapisu. W dalszej części rozdziału opisano polecenia fbackup i frecower w wersji dostępnej w systemie HP-UX. Zgrubne porównanie poleceń opisanych w podręczniku zamieszczono w tabeli 14.1.
Uwaga:
• Każde z poleceń wymienionych w tabeli 14.1 cechuje inny format zapisu.
• Wszystkie polecenia wymienione w tabeli 14.1 umożliwiają zapis zarówno w plikach zwykłych (dyskowych), jak i na urządzenich wskazanych przez nazwy plików specjalnych (na przykład taśmach magnetycznych). Ponadto, za wyjątkiem polecenia dd, umożliwiają selektywne zapisywanie i odtwarzanie plików z archiwum.
• Polecenie dd służy głównie do fizycznego kopiowania nośników, na przykład całych dysków i nie jest zalecane do archiwowania systemów plików.
• Polecenie Cpio jest zorientowane na przenoszenie plików pomiędzy różnymi systemami i jest poleceniem zalecanym przez większość podręczników.
• Polecenie tar używa domyślnie bloków o długości l KB, natomiast Cpio o długości 512 bajtów i organizuje zapis w pełni sekwencyjnie, co przy archiwowaniu krótkich plików powoduje większe upakowanie zapisu.
• Polecenie tar w większości systemów kończy pracę po stwierdzeniu błędu odczytu, natomiast pozostałe polecenia (przy odpowiednich opcjach wywołania) dają szansę kontynuowania odczytu.
• Warto poznać dokładniej polecenia używane przez programy administracyjne w danym systemie (SysAdmSh w SCO UNIXie używa polecenia Cpio. natomiast SAM w systemie HP-UX używa poleceń fbackup/frecovery).
Tabela 14.1. Porównanie poleceń archiwizujących
|
dd
|
tar
|
cpio
|
fbackup
|
Rodzaj kopii
|
fizyczny
|
logiczny
|
logiczny
|
logiczny
|
Przenaszalność zapisu
|
tylko HP-UX
|
Unix 1
|
Unix
|
Unix
|
Szybkość kopiowania
|
duża
|
średnia
|
duża
|
duża
|
Elastyczność użycia
|
mata
|
duża
|
średnia
|
duża
|
Kontynuowanie zapisu na kilku nośnikach
|
nie
|
SCO UNIX: tak HP-UX: nie
|
tak
|
tak
|
Kopiowanie plików specjalnych
|
patrz trzecia uwaga
|
nie
|
tak
|
tak
|
Aktualizacja, dopisywanie
|
nie
|
tak
|
nie
|
nie
|
Względne odtwarzanie katalogów
|
patrz trzecia uwaga
|
o ile były względnie zapisane, ponadto2
|
tak
|
1dla systemu DOS istnieje program pctar
2 przy odpowiednich opcjach wywołania
W dalszej części rozdziału uwagę poświęcono komputerom HP9000. Są one standardowo wyposażone w wysokiej jakości urządzenia pamięci taśmowej typu DAT/DDS. umożliwiające zapis na jednej kasecie kilka gigabajtów (GB) danych. Zapis ten może być dokonywany w różnych formatach, zależnie od używanych poleceń. Preferowanym w dokumentacji HP-UXa formatem jest format polecenia fbackup. używany również przez program administracyjny SAM. Charakteryzuje go duża szybkość zapisu i odtwarzania danych, wysoka niezawodność tego procesu oraz możliwość odtwarzania fragmentów zapisu z uszkodzonych kaset.
Terminologia poleceń fbackup i frecover
Poziom zabezpieczenia (ang. backup !evels) — mechanizm pozwalający realizować zabezpieczanie „przyrostowe" (ang. incremental backup). Każdy poziom posiada związane z nim dane, określające kiedy i z jakim poziomem tworzono ostatnie archiwum. Dane te są zapisane w pliku /iisr/adm/fbackupfiles/dates.
Dopuszczalnych jest 10 poziomów, zwykle stosuje się trzy poziomy:
• zapis pierwszego dnia miesiąca — całego systemu plików;
• zapis pod koniec tygodnia — plików, które uległy zmianie w aktualnym tygodniu;
• zapis pod koniec dnia — plików, które uległy zmianie w aktualnym dniu.
Zabezpieczenie przyrostowe (ang. incremenlal backup) — zapis na nośniku zewnętrznym, zawierający jedynie te pliki, które były modyfikowane po ostatnio wykonanym zabezpieczeniu.
Pliki włączane (ang. inctuded files) — pliki selektywnie wybrane do zapisu zabezpieczającego.
Pliki wyłączane (ang. excluded files) — pliki selektywnie wyłączone z zapisu zabezpieczającego.
Pliki opisu selektywnych zabezpieczeń (ang. graph files) — pliki, w których wymieniono katalogi systemu plików, wchodzące do kopii zabezpieczających jak i wyłączone z zabezpieczeń. Każdy taki katalog jest w pliku opisany w odrębnym wierszu i poprzedzony opcją:
i — włączyć (ang. include)',
e — wyłączyć (ang. exclude).
Jeżeli w poleceniach fbackup i frecover ma być używany taki plik selekcyjny, jego nazwę należy podać po opcji -g.
Sesja zabezpieczająca — proces przenoszenia plików na nośnik zabezpieczający, zainicjowany poleceniem fbackup (lub frecover).
fbackup _____________________
Przeznaczenie:
Tworzenie kopii systemu plików.
Składnia:
/etc/fbackup -f dev_path [-f dev_path]... [0-9] [-uvyAH] [-i path] [-e path] [-g graph] [-1 path] [-V path] [-c config]
/etc/fbackup -f dev_path [-f dev_path]... [-R restart] [-uvyAH] [-1 path] [-V path] [-c config]
Opis:
Polecenie fbackup jest kombinacją poleceń dump i ftio, przeznaczoną do bardzo szybkiego zapisu na nośniku zabezpieczającym kopii systemu plików lub jego fragmentów. Przenosi selektywnie pliki na urządzenie wyjściowe. Dla każdego pliku kopiowana jest jego zawartość i wszelkie związane z nim informacje, niezbędne do późniejszego odtworzenia jego stanu. Nośnikiem zabezpieczającym może być: taśma DAT/DDS (domyślnie), raw magnolie lape drive, dysk magnetooptyczny, plik lub standardowe wyjście.
Opcje:
•H — szuka ukrytych podkatalogów (kontekstowo zależnych plików lub plików CDFs); patrz: mań cdf;
-l path — path określa nazwę generowanego pliku indeksowego, zawierającego opis plików kopiowanych w czasie sesji zabezpieczającej;
-V path — po pomyślnym zakończeniu sesji zabezpieczającej nagłówek nośnika jest zapisywany w pliku wskazanym przez path;
-R restart — restartuje zabezpieczanie od punktu przerwania ostatniej sesji zabezpieczającej, wykorzystując niezbędne informacje zapisane w pliku restart;
-0 ... -9 — poziom zabezpieczenia (0 — pełny, czyli wszystkie wskazane pliki;
wyższe numery określają zabezpieczanie przyrostowe);
-C config — określą nazwę pliku konfiguracyjnego;
-d path — określa nazwę ścieżkową bazy danych, używanej przy zabezpieczaniu przyrostowym, zastępującej plik bazy domyślnej:
/usr/adm/fbackupfiles/dates;
-e path — (ang. exclude) określa katalog wyłączony z zabezpieczania. Katalog ten musi być podkatalogiem kopiowanego fragmentu systemu plików (na przykład podkatalogiem katalogu wskazanego po opcji -i). Opcja ta może wystąpić wielokrotnie;
-f dev_path — (ang. filc) nazwa pliku specjalnego, identyfikującego urządzenie, na którym będzie zapisywana zabezpieczająca kopia systemu plików. Dla HP 9000/8xxS domyślnym urządzeniem jest streamer DAT(DDS), identyfikowany przez nazwę /dey/rmt/Om. Jeżeli nazwa ta zostanie podana jako znak -, polecenie wyprowadza kopiowane pliki na standardowe wyjście.
-g graph — plik tekstowy z opisem selekcji zabezpieczenia, zawierający listę nazw plików i podkatalogów, które mają być włączone lub wyłączone z procesu zabezpieczania. Są one interpretowane analogicznie jak gdyby były podane z opcją -i lub -e. Plik ten składa się z linii zaczynających się od litery i lub e poprzedzającej odstęp, po którym występuje nazwa pliku lub podkatalogu. Przykładowo, aby przenieść całego katalogu /usr. za wyjątkiem /usr/lib na nośnik zabezpieczający, plik graph powinien zawierać dwa wiersze:
i /usr e /usr/lib
-i path — (ang. include) określa poddrzewo plików (path) włączone do zabezpieczania. Opcja ta może wystąpić wielokrotnie;
-n — (ang. netv,'ork) uwzględnia pliki sieciowe;
-S — (ang. symbolic links) uwzględnia obiekty wskazane przez dowiązania symboliczne',
-u — (ang. update) uaktualnienie pliku /usr/adm/fbackupfiles/dates, stanowiącego bazę danych opisujących ostatnią sesją zabezpieczającą (poziom zabezpieczenia, czas rozpoczęcia i zakończenia sesji) oraz plik graph używany w sesji zabezpieczającej;
-v — (ang. verbose) pracuje w trybie wyświetlania nazw przenoszonych plików;
-y — automatyczne Yes (tale) na wszystkie zapytania;
inne — patrz: mań fbackup.
Zmienne środowiskowe:
LC_COLLATE — określa kolejność w jakiej pliki z poszczególnych katalogów mają być zapamiętywane, a następnie odtwarzane:
LC_TIME — określa format i zawartość napisów daty i czasu;
LANG — określa język narodowy (na przykład LANG=polish), z uwzględnieniem którego wyświetlane są pewne komunikaty, na przykład słowa określające nazwy miesięcy, dni itp. (ta sama wartość tej zmiennej musi być ustawiona przy odtwarzaniu plików poleceniem frecover).
Przykład:
Przykład zapisu na taśmie streamera DAT(DDS):
/etc/fbackup -ł /dev/rmt/0m -i / — całego systemu plików;
/etc/fbackup -f /dev/rmt/0m -i /users — katalogu users.
Zapis całego katalogu /usr, za wyjątkiem /usr/lib:
/etc/fbackup -0i /usr -e /usr/lib -f /dev/rmt/0m
Przykład zapisu przyrostowego:
/etc/fbackup -f /dev/rmt/0m -5 -u -g /usr/adm/fbackupfiles/graphs/gl
Posługiwanie się zapisem przyrostowym wymaga dokładnej znajomości polecenia fbackup oraz przygotowania we właściwych katalogach odpowiednich plików konfiguracyjnych. Opis ten można znaleźć w dokumentacji systemu i w tekście podpowiedzi wyprowadzanym przez polecenie: mań fbackup.
Przykład selektywnego zapisu większej liczby podkatalogów:
fbackup -f /dev/rmt/0m -lidx_bckup -Vvol_bckup \
-i /users \
- za wyjątkiem:
-e /users/INFORMIX \
-e /users/sys \
-i /usr/twin \
-i /usr/eloquence \
-i /usr/informix \
-i /usr/jam \
-l /usr/reportwriter
frecover
Przeznaczenie:
Odtwarzanie kopii systemu plików.
Składnia:
/etc/frecover -r [-hosvyAFOX] [-c config] [-f dev_path] [-S skip]
/ełc/frecover -R path [-f devJpath]
/etc/frecover -x [-hosvyAFOX] [-c config] [-e path] [-f dev_path] [-g path] [-i path ] [-S skip]
/etc/frecover -l path [-vy] [-f dev_path] [-c config] /etc/frecover -V pałh [-vy] [-f dev_path] [-c config]
Opis:
Polecenie frecover czyta nośnik zapisany poleceniem fbackup i odtwarza zapisane w nim pliki. Jego akcje są określone przez opcje: -r, -R, -x, -l, -V.
Polecenie frecover jest wrażliwe na wartość zmiennej LANG, która była ustawiona w czasie wykonywania polecenia fbackup (spodziewa się identycznej wartości).
Opcje:
-f — (ang. recover) odtworzenie zawartości całego nośnika;
-l — (ang. Index) zapis wykazu plików w pliku path;
-x — (ang. extract) wyodrębnienie wskazanych plików;
-i — (ang. include) wskazanie odtwarzanego katalogu;
-o — (ang. overwrite) zastępowanie istniejących plików na dysku;
-v — (ang. verbose) wyświetlanie nazw odtwarzanych plików;
-g — (ang. graph file) wskazanie pliku z opisem odtwarzanych i pomijanych poddrzew plików;
-c — (ang. config file) wskazanie pliku konfiguracyjnego;
-X — odtworzenie względne w bieżącym katalogu;
-F — (ang. Flat) odtworzenie plików w bieżącym katalogu, z pominięciem ich ścieżek dostępu;
-O — (ang. Ownership) uczynienie właścicielem odtwarzanych plików — użytkownika wykonującego to polecenie;
-N — (ang. No files recovery) brak odtwarzanie plików (kontrola nośnika i katalogów);
-m — (ang. print marker information) wyprowadzenie znacznika informacyjnego (checksums. filemarks, setmarks);
-R — (ang. Resfari) kontynuacja przerwanej sesji, opisanej w pliku restart;
-V — (ang. Yolume header) zapis nagłówka wolumenu w podanym pliku;
-h — (ang. recover graph) odtworzenie szkieletu drzewa, bez plików;
-e — (ang. excluded path) wskazanie pomijanego poddrzewa plików;
-S — (ang. sporse file recovery)',
-y — (ang. yes) automatyczne Yes (tak) na wyprowadzane zapytania;
-f — (ang. input special device file) urządzenie wejściowe;
-S — (wg. file for "Skipped blocks") określenie pliku, w którym będą zapisywane fragmenty uszkodzonego pliku;
inne — patrz: mań frecovery i opis polecenia fbackup.
Przykład:
Przykłady dotyczą streamera DAT(DDS):
Wyprowadzenie na ekran opisu zawartości nośnika zabezpieczającego:
frecover -l /dev/tty0p2 -v -f /dev/rmt/0m frecover -l /dev/tty0p2 -v
obydwa polecenia są równoważne, ponieważ /dev7rmt/0in jest urządzeniem domyślnym.
Odtworzenie na dysku wybranych plików z taśmy, które w trakcie zapisu na nośniku zabezpieczającym znajdowały się w katalogu /users/picture:
cd/ /etc/frecover -f /dev/rmt/0m -x -i /users/picture
Odtworzenie /users/picture w nowym miejscu, w katalogu /tmp:
cd /tmp /etc/frecover -f /dev/rmt/0m -x -oF -i /users/picture
Odtworzenie wszystkich plików z nośnika, z zastępowaniem nowszych plików na dysku ich starszymi wersjami z nośnika:
/etc/frecover -f /dev/rmt/0m -r -o /etc/frecover -f /dev/rmt/0m -o
obydwa polecenia są tożsame, bowiem -r jest opcją domyślną.
Odtworzenie wszystkich plików z nośnika, bez zastępowania nowszych plików na dysku (pominięto opcję -O). /etc/frecover -f /dev/rmt/0m
Odtworzenie w katalogu bieżącym szkieletu poddrzewa plików (katalogów bez plików) zaczynającego się w katalogu /users:
frecover -f /dev/rmt/0m -x -X -h -i /users
Zapis w pliku backup.idx indeksu zawartości nośnika (listy nazw katalogów i plików):
frecover -l backup.idx Zapisanie nagłówka nośnika w pliku backup.vol:
frecover -f /dev/rmt/0m -V backup.vol