Kopia niejedno ma imię

Kopia na płytę

Jako medium backupowe system Linux może z powodzeniem wykorzystywać płyty CD/DVD. Wykonuje się to zwykle dwuetapowo - za pomocą programu tar przygotowuje się archiwum, a potem, za pomocą programów mkisofs i cdrecord, nagrywa się je na płytę.

Są też rozwiązania gotowe, np. cddump (http://www.joat.ca/software/cddump.html ), K3B czy gnometoaster, ale nie umożliwiają one całkowitej automatyzacji poprzez skrypt. Przy małych serwerach do wykonywania okresowych kopii można wykorzystać program mkCDrec (http://mkcdrec.ota.be ), który tworzy płyty bootowalne, przez co idealnie nadające się do wykonywania kopii bezpieczeństwa systemu Linux. Odtwarzanie z nich systemu jest naprawdę proste.

Przy niewielkich instalacjach albo też w zastosowaniach typu router/firewall kluczowe jest zabezpieczenie plików konfiguracyjnych urządzenia. Te pliki zajmują mało miejsca, można z powodzeniem użyć przenośnych "dysków" USB z pamięcią Flash. Operacja trwa krótko i doskonale się nadaje do okresowych kopii firewalli.

Najprostszym sposobem na wykonanie kopii całej partycji jest wykorzystanie programu dd. Ten program jest jak żyletka, szybki i użyteczny, ale można się skaleczyć. Jak przy każdym programie wykonującym kopie na poziomie bloków, korzystanie z programu dd wymaga szczególnej uwagi - błąd w użyciu może spowodować uszkodzenie danych. Programem dd najlepiej posłużyć się do kopiowania zawartości całego dysku na inne urządzenie tego samego typu/pojemności.

Są jeszcze rozwiązania "kombinowane". Chodzi o programy wykorzystujące któreś z powyższych narzędzi systemowych, uzupełniające ich braki innym programem. Dość ciekawym narzędziem działającym na powyższej zasadzie jest fsbackup - program napisany w języku skryptowym, który potrafi wykonać kopię bezpieczeństwa zarówno pełną, jak i przyrostową. Używa systemowych narzędzi typu tar, gzip, ssh oraz aplikacji kryptograficznej GnuPG (http://www.opennet.ru/dev/fsbackup/index_eng.shtml ). Ponadto bardzo dobry skrypt backupowy jest zawarty w projekcie flexbackup (http://flexbackup.sourceforge.net/ ). Wyczerpującą listę gotowych narzędzi skryptowych do kopiowania danych można znaleźć na witrynie:http://www.linux-backup.net/App/ .

Gdy potrzeby rosną

Nieco inaczej mają się sprawy w przypadku, gdy zamiast kilku serwerów czy stacji roboczych backup ma być wykonywany dla większej liczby urządzeń. Najprostszy sposób na uzyskanie takich kopii to lokalne zamontowanie zdalnych systemów plików przez NFS lub SMB i wykonanie kopii na zasadzie podobnej, jak w przypadku kopii lokalnej. Takie rozwiązanie można zwykle polecić do backupu co najwyżej kilkunastu komputerów pracujących w sieci lokalnej. Tylko w takich warunkach można sobie pozwolić na eksport całego systemu plików oraz uruchomienie na każdym z serwerów usług NFS czy SMB. Zaletą takiego podejścia jest oszczędność miejsca, wadą - zależność wykonania kopii od połączenia z serwerem przez cały czas backupu.

Jeśli wykonuje się kopię małego serwera WWW umieszczonego poza siecią wewnętrzną, można wykonać kopię dwuetapowo. Najpierw za pomocą skryptu na serwerze WWW należy stworzyć archiwum tar.gz, zawierające wszystkie pliki publikowanych dokumentów oraz zrzut wszystkich baz MySQL. Następnie z poziomu serwera backupowego trzeba pobrać to archiwum za pomocą programu wget. Bardzo ważne w takim przypadku jest zabezpieczenie backupu poprzez odpowiednią konfigurację serwera WWW oraz zaszyfrowanie pliku archiwum, np. za pomocą GnuPG.

Ten pomysł sprawdza się znakomicie, ponieważ nie wymaga instalacji żadnej dodatkowej usługi na serwerze WWW . Ponadto program wget daje się skompilować dla wielu środowisk, wliczając także Windows. Dzięki temu można kopiować w ten sposób zawartość serwera WWW pracującego na Linuxie (na adresach publicznych) na dysk serwera lub stacji roboczej Windows wewnątrz sieci lokalnej. Nie trzeba też zmieniać konfiguracji firewalla.

Pewnym mankamentem tej metody są szczególne wymagania odnośnie do konfiguracji serwera WWW. Chodzi zwłaszcza o prawa dostępu do katalogów skonfigurowane tak, by dane można było pobrać, a jednocześnie, aby nie zaszkodziło to bezpieczeństwu serwera WWW . Zamiast programu wget można, dla podwyższenia bezpieczeństwa, wykorzystać program scp pracujący z parą odpowiednio wygenerowanych i dostatecznie długich kluczy SSH.

Można przeznaczyć na serwerze dodatkowe miejsce dyskowe i dokonać synchronizacji katalogów i plików za pomocą programu rsync (lub podobnego), a po synchronizacji skopiować wszystkie dane z serwera na taśmę. To dobre rozwiązanie do kopiowania dokumentów z różnych hostów. Istnieją wersja rsync dla Windows oraz projekt open source mający na celu umożliwienie kopiowania plików na dowolny (Windows, Solaris) zgodny z rsync serwer, jest to więc rozwiązanie wieloplatformowe.

Program rsync jest dobrze udokumentowany i dostępny praktycznie w każdej dystrybucji Linuxa. Różni się od poprzedniego rozwiązania tym, że na dyskach serwera backupowego przechowuje komplet dokumentów w oryginalnej postaci, a nie spakowane archiwum, co pozwala np. szybciej odtworzyć środowisko serwera poprzez resynchronizację. Rozwiązanie z użyciem mirrora na serwerze backupowym ma jedynie tę wadę, że wymaga co najmniej dwukrotnie większych zasobów dyskowych.

Jego zaletą jest lepsze bezpieczeństwo wykonywania kopii, ponieważ wszystkie dane z centralnego serwera kopii bezpieczeństwa są kopiowane na taśmę lokalnie, a nie przez sieć. W porównaniu z rozwiązaniami polegającymi na kopiowaniu całej partycji użycie synchronizacji zmniejsza ruch w sieci. To zaś sprawia, że serwer backupowy może być umieszczony w zdalnej lokalizacji bez konieczności ponoszenia dużych opłat za pasmo.

Bacula - lider wśród kopistów

Najbardziej zaawansowanym systemem wykonywania kopii bezpieczeństwa dostępnym na licencji open source jest Bacula. Program obsługuje kolejkowanie zadań wraz z priorytetami, bardzo łatwe odzyskiwanie danych z kopii, kopie przyrostowe i różnicowe bez modyfikacji atrybutów, weryfikację zmian plików, rotację taśm, automatyczne utrzymywanie bazy, kopię wielu maszyn o różnych systemach operacyjnych na ten sam wolumin, wzajemne uwierzytelnianie agentów i serwera za pomocą CRAM-MD5, opcjonalne obliczanie haszy każdego pliku, kompresję danych przed przesyłaniem przez sieć, automatyczne nadawanie etykietek taśmom, obliczanie sum kontrolnych każdego bloku taśmy oraz kopiowanie i odtwarzanie surowych partycji (RAW). Przy tym wszystkim Bacula działa bardzo wydajnie.

Lustra i migawki

Jako system stabilny i niezawodny, Linux jest coraz częściej stosowany do uruchamiania aplikacji działających w trybie ciągłym. W takich zastosowaniach nie można wyłączyć ani bazy danych, ani aplikacji na czas wykonywania kopii. Gdy jest to rozwiązanie krytyczne, kopię bezpieczeństwa można wykonać za pomocą mechanizmów działających na poziomie macierzy dyskowych. Na Linuxie nie ma na razie otwartego rozwiązania w rodzaju usług VSS dostępnych w Windows Server 2003.

Aby skopiować bardzo dużą ilość danych, trzeba czasami uciec się do zainstalowania dwóch kompletów urządzeń - gdy jedno jest online, dane z drugiego są kopiowane na taśmy. To jedyny sposób wykonania kopii bezpieczeństwa serwerów zawierających bardzo duże ilości danych (rzędu terabajta), gdyż napędy taśmowe nie mają jeszcze wystarczającej wydajności i back-up mógłby trwać dosyć długo.


TOP 200