Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Bacula – rozproszony system kopii zapasowych

10 października 2013, 18:01 | Narzędzia | komentarzy 26

Czym jest Bacula

W sieci można wyszukać wiele narzędzi służących do wykonywania kopii zapasowych. Jakiś czas temu sam stanąłem przed zadaniem wybrania jednego z nich. Ponieważ jestem wielkim zwolennikiem Linuksa, zacząłem szukać wśród darmowych i ogólnodostępnych narzędzi działających na tym systemie. Moje wymagania były raczej standardowe:

  • wykonywanie sieciowych kopii zapasowych,
  • wsparcie dla systemów z rodziny MS oraz Linux,
  • kopie pełne, przyrostowe oraz różnicowe,
  • kompresja danych,
  • zapisywanie na dysk lub taśmy,
  • łatwe zarządzanie.

Po zapoznaniu się z kilkoma narzędziami takimi jak BackupZilla, Amanda czy CloneZilla wybrałem Baculę. Oto powody mojej decyzji.

1. Zalety Baculi

  • Rozwiązanie open source – darmowe oprogramowanie z dostępnym kodem źródłowym.
  • Bardzo dobre wsparcie techniczne – w tym świetne polskie strony Baculi (http://www.bacula.pl, http://www.bacula.com.pl), a na nich bardzo dużo ciekawych artykułów, oczywiście dodatkowo dokumentacja w samym oprogramowaniu i na oficjalnej stronie jego twórców.
  • Wysoka wydajność – porównywalna z najpopularniejszymi komercyjnymi rozwiązaniami.
  • Deduplikacja archiwizowanych plików – eliminowanie powtarzających się plików w kopiach zapasowych.
  • Duża niezawodność.
  • Łatwa do wdrożenia oraz wysoce skalowalna dzięki swojej architekturze.
  • Możliwość wykonywania kopii zapasowej na różnych nośnikach.
  • Wspieranie szyfrowania zarówno transmisji danych, jak i kopii zapasowych – wymaga to pakietu OpenSSL. Dane są szyfrowane po stronie klienta i wysyłane do directora. Po szczegółowe informacje na temat szyfrowania w Baculi odsyłam tutaj.
  • Wykonywanie kilku kopii zapasowych w tym samym czasie, niestety tylko po jednej kopi na jedno urządzenie.

 2. Wspierane systemy i urządzenia

Wsparcie Baculi dla systemów operacyjnych możemy podzielić na dwie kategorie: wsparcie dla serwerów oraz wsparcie dla klientów. Serwery Baculi można zainstalować praktycznie na każdej dystrybucji Linuxa oraz FreeBSD, Solaris i OpenSolaris. Kopię zapasową możemy wykonywać na takich systemach jak:

  • Linux,
  • Windows (od 98 do Visty),
  • Mac OS,
  • FreeBSD, NetBSD, OpenBSD,
  • Solaris.

Głównym założeniem moich poszukiwań było wsparcie dla serwerów, więc taka lista obsługiwanych klientów była dla mnie wystarczająca. Zależało mi głównie na wykonywaniu kopii zapasowej serwerów opartych na systemie Linux oraz Windows. Przyglądałem się też rodzajom kopii zapasowych, chciałem bowiem wykonywać pełną kopię w czasie weekendu, a w pozostałe dni tygodnia tylko kopie różnicowe (oszczędność miejsca i łącza, inne obciążenie OS). Bacula świetnie spełniała wszystkie wymienione powyżej założenia.

Program ten wspiera następujące rodzaje urządzeń do zapisywania kopii zapasowych:

  • dyski,
  • taśmy,
  • biblioteki taśmowe,
  • CD/DVD.

3. Architektura

Architektura Baculi jest dość nietypowa jak na narzędzia do wykonywania kopii zapasowych. Składa się z pięciu elementów:

  • Dyrektor (Bacula director) – nadzór i koordynacja pozostałych komponentów.
  • Baza katalogowa – serwer MySQL do przechowywania informacji, np. o kopiach zapasowych.
  • Serwer przechowywania (Storage Daemon) – organizacja i dostęp do nośników danych.
  • Klient (File daemon) – oprogramowanie instalowane na klientach/serwerach.
  • Konsola zarządzająca – zarządzanie centralnym serwerem (dyrektorem) z możliwością obsługi za pomocą konsoli tekstowej (bconsole), nakładki graficznej (B.A.T.) lub interfejsu WWW (BWeb).
bacula_schema

Opracowanie własne z wykorzystaniem narzędzia: https://www.gliffy.com.

 4. Zarządzanie

Wspomniałem już, że zarządzać Baculą można na kilka sposobów. Przyjrzyjmy się tym możliwościom.

4.1. Konsola tekstowa (bconsole)

To podstawowe narzędzie do zarządzania Baculą w trybie tekstowym. Polecałbym ją raczej linuksowym użytkownikom, bardziej obeznanym z shellem. Dostępna jest w osobnych paczkach dla Linuxa i z pośród wszystkich omawianych tutaj narzędzi daje chyba najwięcej możliwości.

4.2. Nakładka graficzna B.A.T. (Bacula Administration Tool)

Narzędzie dostarczane wraz z Baculą, które dostępne jest dla systemu MS Windows jako okienkowa nakładka na bconsole (więcej informacji tutaj). Większość rzeczy można w łatwy sposób „wyklikać”.

4.3. Interfejs WWW (Bweb)

To graficzny interfejs do zarządzania Baculą napisany w perlu i obsługiwany jako skrypty cgi.  BWeb komunikuje się z bconsole oraz z bazą danych Baculi.

4.4. Webmin

Narzędzie do zarządzania systemami Linux i Unix, także napisane w perlu, posiada modułową budowę. Obsługę Baculi można realizować za pomocą specjalnego pluginu o nazwie Bacula Backup Module.

5. Sposoby wykonywania kopii zapasowej

Główny sposób tworzenia kopii zapasowej z którego korzystam w Baculi to „zabieranie” plików i katalogów z serwerów z zainstalowanym pluginem. Niemniej możliwe jest podpinanie własnych skryptów (ClientRunBeforeJob, ClientRunAfterJob), które mogą z pomocą  narzędzi systemowych, np. dd, zrzucać dysk do pliku, a następnie plik ten można dołączyć do kopii zapasowej.

Dzięki dołączaniu własnych skryptów możliwości Baculi są praktycznie nieograniczone. Dodatkowo, dzięki dostępnym w sieci pluginom, Bacula może wykonywać też kopie zapasowe baz danych (MySQL, Oracle, PostgreSQL itp.), LDAP, Active Directory, VMWare i wielu innych.  Więcej informacji na ten temat można znaleźć na stronie poświęconej pluginom.

 

Wrażenia z wdrożenia

W moim przypadku wdrożenie przebiegło raczej bezproblemowo i w miarę szybko. Oczywiście na początku trzeba poczytać dokumentację i kilka artykułów na stronach poświęconych temu oprogramowaniu. Jeszcze raz polecam przede wszystkim bardzo dobre polskie strony http://www.bacula.pl i http://www.bacula.com.pl. Zawarte tam informacje powinny w zupełności wystarczyć do rozpoczęcia swojej przygody z Baculą.

Po zakończeniu wdrożenia, czyli instalacji i konfiguracji serwerów Baculi oraz usług na klientach, przyszedł czas na zarządzanie.

O ile kontrolowanie Baculi za pomocą bconsole nie jest zajęciem trudnym i można się tego szybko nauczyć, to wsparcia będą potrzebowali ci użytkownicy Baculi, którzy na widok konsoli mają mieszane uczucia i wolą użyć myszki.

Przetestowałem BWeb, ale wdrożenie tej nakładki nie do końca mi wychodziło. Następnie wypróbowałem BATa, niestety interfejs nie spodobał mi się tak samo, jak potrzeba instalowania dodatkowego oprogramowania na swojej stacji roboczej. Postanowiłem dać szansę Webminowi z Bacula Backup Module i to dopiero okazało się strzałem w dziesiątkę. Nie przeprowadzam jednak konfiguracji za pomocą tego narzędzia, ponieważ zautomatyzowałem sobie proces dodawania nowych serwerów za pomocą skryptów shellowych i zmiany wolę jednak sam wprowadzać w plikach tekstowych. Do monitoringu działania systemu, utrzymania Webmin to narzędzie świetnie się nadaje.

Po pewnym czasie zapomniałem, że Bacula działa u mnie w sieci i że jest odpowiedzialna za bardzo ważne zadanie, ale chyba w tego rodzaju systemach właśnie o to chodzi. A gdy już zdarzy się sytuacja, że jakiś backup się nie wykona, to mogę liczyć na Nagiosa z pluginem do Baculi, który powiadomi mnie o tym incydencie i wyśle SMS-a lub e-maila. Nagios może również posłużyć jako archiwum informacji o kopiach zapasowych wraz z ładnymi wykresami, które urozmaicą raporty.

 

 Bibliografia:

 

OiSiS [oisis<at>o2.pl]

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. soal

    Tak, Bacula zdecydowanie jest świetnym oprogramowaniem, choć dosyć skomplikowanym – przynajmniej na początku. Ale gdy już porządnie wykona się konfigurację, to faktycznie łatwo można o niej zapomnieć;) Jednak mimo automatyzacji to IMHO tak czy inaczej powinno się regularnie weryfikować prawidłowość wykonanych backupów.
    Artykuł całkiem przyzwoity, dzięki za przypomnienie o tym sofcie ;)

    Odpowiedz
  2. pcs

    Twierdzenie, że może wykonać kopię LDAP, to jest strasznie mnie drażniący skrót myślowy…

    Odpowiedz
  3. OiSiS

    @soal
    Z tego co pamiętam weryfikację kopii zapasowych można zautomatyzować w Baculi i ustawić jako zadania. Pewnie da się to spiąć z Nagiosem i problem z głowy. Ja raczej ufam Baculi, jeszcze się na niej nie zawiodłem. Oczywiście raz na jakiś czas jak się człowiekowi o niej przypomni to warto się w około niej chwilę pokręcić :).
    @pcs
    A co nie tak z kopią LDAP? Tutaj jest opis pluginu: http://www.bacula.com.pl/bacula/ldap-plugin ale sam go nie testowałem, brak takiej potrzeby.

    Odpowiedz
  4. MateuszM

    @OiSiS, odzyskanie backupu to nie kwestia zaufania – bardziej pewności, że w krytycznym momencie (utrata danych zawsze jest krytyczna i podwyższa ciśnienie) można przywrócić dane w krótkim czasie. Lepiej zawczasu się pobawić i mieć gotowy scenariusz niż robić inaugurację oprogramowania do backupu w najgorętszym okresie dla firmy (taki przykład).

    Artykuł fajny i zorganizowany, dobrze się go czyta. Widzę go w cyklu z innymi dotyczącymi pozostałych popularnych rozwiązań.

    Odpowiedz
  5. OiSiS

    @MateuszM:
    Trochę się źle zrozumieliśmy :), o sofcie który dobrze działa można zapomnieć i mu zaufać, backupy oczywiście trzeba sprawdzać i weryfikować, tak samo jak nośniki na których je zapisujemy. Póki co nie zawiodłem się na Baculi.

    Odpowiedz
  6. Kuba

    Super artykuł! Trzeba zacząć robić backupy :)

    Odpowiedz
  7. Sebastian

    Robic backupy to jedno, kto z was sprawdza mozliwosc odtworzenia systemu? NIe chodzi mi o zaznaczenie – zweryfikuj.

    Odpowiedz
  8. Adik

    Dobry tekst, ale bardzo skrótowy. Osobiście używam Baculi od kilku lat na środowisku testowym. O ile wykonywanie i odtwarzanie backupów nie stanowi problemu, o tyle zarządzanie taśmami jest niesamowicie utrudnione. Brak automatycznego montowania taśm, brak możliwości wysunięcia taśmy po zakończeniu backupu i kilka innych niedogodności powoduje utratę zaufania do tego systemu .

    Odpowiedz
  9. OiSiS

    @Adik
    Tekst miał być krótki i tylko przedstawić Bacule, taka reklamówka :). Z taśmami w połączeniu z Baculą nie mam doświadczenia, robię backupy tylko na macierz.

    Odpowiedz
  10. Krzysiek

    Panowie, a jaki (darmowy, najchętniej otwartoźródłowy zamiennik Norton Ghosta czy jak to tam teraz Symantec nazwał) program do zrobienia „najprostszej na świecie” kopii zapasowej dysku systemowego Windows 8? Nie potrzebuję żadnych serwerów/klientów, itd.
    Następująca sytuacja:
    1. Dysk SSD 120 GB (jedna partycja) z zainstalowanym Windows 8.
    2. Dysk HDD z (między innymi) partycją 125 GB przeznaczoną jako kopia zapasowa dysku nr 1.

    Najchętniej kopie pełne, przyrostowe i różnicowe. Będę wdzięczny za informacje.

    Odpowiedz
  11. OiSiS
    Odpowiedz
  12. dagosk

    Fajny tekst, prosimy o więcej praktycznych porad, prostych i tych bardziej skomplikowanych.

    Odpowiedz
  13. #PollyPocket#

    Potem te kopie często lądują na niezabezpieczonych serwerach ftp …

    Odpowiedz
  14. OiSiS

    @#PollyPocket#
    Jak włączysz szyfrowanie kopii zapasowych w Baculi to co z tego, że wylądują na niezabezpieczonym serwerze. Nie wiem czy tak łatwo będzie to odszyfrować gdy użyjesz odpowiednio mocnego algorytmu szyfrowania, ważne żeby hasła/klucze zabezpieczyć dobrze. Jeżeli są to duże backupy a musisz je wysłać gdzieś w świat to niestety FTP jest chyba najszybszym protokołem, ewentualnie możesz użyć Bernardyna i płyt DVD. Tutaj zadanie do policzenia :) :
    „Pies bernardyn biegnie z prędkością 10 km/h i niesie pudełko 10 płytek DVD o pojemności 4,7 GB każda. Czy będzie on przesyłał dane szybciej niż sieć Fast Ethernet (100 Mb/s) na odcinku 8 km?”

    Odpowiedz
  15. pcs

    @OiSiS
    A to, że jak sama nazwa wskazuje LDAP jest protokołem dostępu do usług katalogowych, więc trudno wykonać kopię protokołu :)
    Opisu na stronie się nie przyczepię. Skrót myślowy rozumiem, ale mnie drażni. Pytam potem ludzi na rozmowie kwalifikacyjnej co to jest LDAP, a oni jednomyślnie, że to jest usługa katalogowa… Zrezygnowałem z tego pytania, bo bym nikogo nie zatrudnił ;)

    Odpowiedz
  16. Michał

    Witam,

    Nie polecam zapisywania się na szkolenia z Bacula pod wskazanymi adresami. Zgłosiłem się na szkolenie i wypełniłem wszystkie potrzebne dane. Czekałem na potwierdzenie cały miesiąc i się nie doczekałem. Więc zgłosiłem się ponownie i czekałem kolejny miesiąc tylko po to żeby się dowiedzieć, że za mało osób się zgłosiło i nie będzie szkolenia. Polecam natomiast samemu pouczyć się w.w. zagadnienia.

    Pozdrawiam

    Odpowiedz
  17. OiSiS

    @pcs
    No ok za bardzo skrocone, przyznaje sie do bledu. Protokul faktycznie ciezko zbackupowac :).

    Odpowiedz
  18. Mateusz

    @Michał
    Co sądzisz o tej bezpłatnej konferencji? – http://bacula-konferencja.pl/?page=main

    Opcja wydaje się ciekawa, zwłaszcza dla informatyków z firm, bo pasjonaci o tej porze siedzą raczej w pracy czy szkole.

    Ciekawe tylko czy to opcja raczej dla osób, które z Baculą nie miały do tej pory do czynienie, czy raczej dla zaawansowanych użytkowników?

    Odpowiedz
  19. OiSiS

    @Mateusz
    Po agendzie wnioskuję że tak pół na pół, trochę zaawansowanych rzeczy np: „Implementacja deduplikacji w Bacula Enterprise”, i trochę dla początkujących: „Warsztaty – Backup różnych środowisk”, „Bacula GUI” i moje ulubione: „Przerwa kawowa”, „Lunch” – oczywiście żartuje hehehe.

    Odpowiedz
  20. Michał

    @Mateusz
    @OiSiS

    Również uważam, żę przerwa kawowa i lunch to bardzo ciekawe zagadnienia. Dodam jeszcze program rozpoczynający się wg. agendy o 16:30.
    Tak serio to nie uważam, żeby była to konferencja przewidziana do nauki czegokolwiek. Skłaniam się bardziej do wersji, że to reklama produktu i tyle.

    Odpowiedz
  21. Konferencja nie jest szkoleniem, więc nie służy do nauki ale do poznania nowych funkcjonalności i możliwości. Jest to także sposobność do wymiany doświadczeń, czy dowiedzenia się wielu wartościowych rzeczy z bezpośredniego kontaktu z uczestnikami i prelegentami. Konferencja nie będzie marketingowa tylko techniczna, więc nawet dla entuzjastów warta odwiedzenia.

    Odpowiedz
  22. OiSiS

    Ja mam w planie się wybrać. Jak @Radek napisał zawsze można czegoś nowego się dowiedzieć. No i ta przerwa kawowa oraz lunch bardzo kusi hahaha.

    Odpowiedz
  23. @pcs
    Odniosę się do wykonywania kopii LDAP. Biorąc pod uwagę jak działa ten plugin, to jak najbardziej można wykonać backup LDAP, korzystając z dostępu do danych za pomocą tego protokołu. Masz to dokładnie opisane na wskazanej stronie dotyczącej pluginu. Podobnie mamy plugin NDMP. W obu tych przypadkach wykonujemy backup danych korzystając ze wskazanych protokołów.

    Odpowiedz
  24. pcs

    @Radek
    100% zgody – wykonujemy backup korzystając z tych protokołów. Właśnie o to mi chodziło :)
    Bo w moim rozumieniu, wykonie kopii LDAP jest jak wykonanie kopii http, co nie oznacza, że nie możemy wykorzystać LDAP do backupu obiektów katalogu.

    Skoro już wracamy do tematu, to zauważmy, że korzystając z LDAP możemy wykonać kopię obiektów w katalogu, ale też tylko w taki sposób, w jaki zostanie on zamapowany dla zgodności z tym protokołem. Musiałbym przetestować dokładnie działanie pluginu, ale obawiam się, że trudno będzie wykorzystać go do wykonania pełnej kopii katalogu.
    Przykładowo, jeżeli będę chciał wykonać kopię eDirectory, to mapowanie atrybutów jest zapisywanie w obiekcie w katalogu. Przy odtwarzaniu muszę mieć zapewnione takie samo mapowanie, czyli obiekt przechowujący konfiguracje mapowania musi już istnieć i musi z niego korzystać usługa.
    W żadnym razie nie dyskwalifikuje to pluginu, po prostu planując backup i odtwarzanie, musimy zdawać sobie sprawę z takich ograniczeń.

    Nie chcę tu wyjść na bardzo czepiającego się szczegółów, ale mieszanie katalogu i protokołu dostępu do katalogu jest jedną z niewielu rzeczy które mnie drażnią. Może dlatego, że kilku pseudo-fachowców z którymi miałem nieprzyjemność pracować, nie widziało tej różnicy, ale fachowcami nie byli raczej z powodu większych braków w wiedzy :)

    Odpowiedz
  25. @pcs
    > Bo w moim rozumieniu, wykonie kopii LDAP jest jak wykonanie kopii http (…)
    Czyli kwestia definicji.

    > Skoro już wracamy do tematu, to zauważmy, że korzystając z LDAP możemy wykonać kopię obiektów w katalogu, ale też tylko w taki sposób, w jaki zostanie on zamapowany dla zgodności z tym protokołem. (…)
    Dokładnie i dlatego właśnie jest to plugin LDAP a nie eDirectory / OpenLDAP / RHDS / inny… zapewnia backup obiektów poprzez LDAP a nie samej usługi.

    Backup usługi katalogowej, a dokładniej aplikacji zapewniającej zarządzanie bazą danych (backend) jest całkowicie czymś innym i jest specyficzny dla konkretnego backendu. Dla przykładu OpenLDAP może mieć zarówno backend oparty o BDB, LMDB czy nawet SQL.

    Odpowiedz
  26. OiSiS

    A właśnie byłem na konferencji o Baculi do której linka podał: Mateusz i trochę zapomniałem już o niej. Niemniej konferencja była dość ciekawa i polecam w przyszłości. Trochę daleko od centrum ale było warto.

    Odpowiedz

Odpowiedz