1. Na jakich systemach operacyjnych może pracować Bacula?
2. W jakim formacie przechowywane są dane na woluminach?
3. Jakie typy nośników danych są obsługiwane?
4. Z jakimi serwerami bazodanowymi współpracuje Bacula?
5. Jakie poziomy kopii bezpieczeństwa są obsługiwane?
6. Jak przygotować taśmę magnetyczną do pracy z Baculą?
7. Czy w plikach konfiguracyjnych istnieje możliwość dołączania plików?
8. Jak Bacula radzi sobie z zapisem backupu na kilku taśmach?
9. Czy Bacula wspiera szyfrowanie backupowanych danych?
10. Jak sprawdzić poprawność konfiguracji komponentów Baculi?
11. Czy autentykacja pomiędzy komponentami Baculi jest bezpieczna?
12. Czy Bacula obsługuje nazwy taśm zapisane kodem kreskowym na etykietach?
13. W jaki sposób obsłużyć taśmy czyszczące w Baculi?
14. Czy obsługiwany jest backup bardzo dużych plików?
15. Co ze wsparciem dla bardzo długich lokalizacji i nazw plików?
16. Czy jest możliwe odzyskiwanie pojedynczych plików?
17. Jak wygenerować hasło na potrzeby konfiguracji Bacula?
Na jakich systemach operacyjnych może pracować Bacula?
Poniższa lista systemów operacyjnych zawiera tylko te systemy, co do których twórcy Baculi przyznają pełne wsparcie. Kompletną listę możliwych do współpracy z Baculą systemów operacyjnych wraz z tymi, na których mimo braku oficjalnego wsparcia ze strony projektu Bacula, jest możliwość pracy, znaleźć można w dokumentacji na oficjalnej witrynie projektu Bacula.
- Daemon Nadzorcy (ang. Director) oraz Daemon Magazynowania (ang. Storage Director):
- GNU/Linux
- FreeBSD >= 5.0
- Solaris >= 8
- OpenSolaris
- Klient (ang. File Daemon):
- GNU/Linux
- FreeBSD >= 5.0
- Solaris >= 8
- OpenSolaris
- MS Windows 32bit:
- Win98/Me
- WinNT/2K
- XP
- 2008/Vista
- MS Windows 64bit:
- MacOS X/Darwin
- OpenBSD
- NetBSD
W jakim formacie przechowywane są dane na woluminach?
Format przechowywania danych nie jest standardowy, a taśmy stworzone przez narzędzie Bacula charakteryzują się unikalną strukturą, różną od choćby struktury archiwów takich programów jak tar czy dump. Takie rozwiązanie projektantów Baculi daje gwarancję kompatybilności nośników, bez względu na platformę, na której zostały stworzone. Informacje składowane na taśmie zapisywane są w blokach o domyślnej wielkości 64512 bajtów. Taśma oprócz zapisanych danych, przechowuje m. in. informacje o takich parametrach jak: pula (Pool), nazwa wolumena (Label), typ taśmy (Media Type). Dzięki tym informacjom, po awarii lub utraceniu bazy danych, użytkownik jest w stanie odtworzyć rekordy taśm przy pomocy dostarczanego z Baculą narzędzia bscan.
Jakie typy nośników danych są obsługiwane?
Istnieje możliwość wyboru pomiędzy dwoma typami nośników: dysk twardy oraz taśma magnetyczna. Obsługa ich nie jest ściśle powiązana z samą Bacula, ponieważ znaczna część operacji związanych z zarządzaniem tymi urządzeniami poprzez Bacula spoczywa na samym systemie operacyjnym, w którym pracuje daemon magazynowania (Storage Daemon). Dzieje się tak ponieważ wykorzystywane są systemowe programy dla urządzeń np. mt (dla napędów taśmowych) czy mtx (dla zmieniarek taśm). Dodatkowo dla dysków twardych istnieją dyrektywy umożliwiające definiowanie komend montowania i odmontowania urządzeń, dzięki czemu można użyć innych nośników jak np. pendrive czy zewnętrzne dyski.
Z jakimi serwerami bazodanowymi współpracuje Bacula?
Obecnie możliwy jest wybór pomiędzy jednym z trzech serwerów baz danych: PostgreSQL, MySQL oraz SQLite. Wybór którejś z nich leży w zakresie użytkownika.
Obsługa SQLite nie jest obecnie już rozwijana i projektanci Bacula zamknęli oficjalne wsparcie dla tego typu bazy danych (patrz [link]). Kod odpowiedzialny za działanie z SQLite nie został wycofany i istnieje możliwość użycia tego typu bazy danych wraz z Bacula.
Jakie poziomy kopii bezpieczeństwa są obsługiwane?
Użytkownik ma do dyspozycji trzy poziomy kopii bezpieczeństwa:
- kopia pełna - archiwizowane są wszystkie dane leżące w zakresie backupu
- kopia różnicowa - archiwizowane są dane, które zostały zmienione od czasu wykonania ostatniej kopii pełnej
- kopia przyrostowa - archiwizowane są wszystkie pliki, które zostały zmienione od czasu wykonania kopii dowolnego poziomu
Dodatkowo Bacula potrafi automatycznie upgradować kopię z jednej w inną np. przy pierwszej kopii przyrostowej lub różnicowej Job (backup) bez potrzeby ingerencji użytkownika zostanie przełączony w kopię pełną.
Jak przygotować taśmę magnetyczną do pracy z Baculą?
Jeśli ma się w zamiarze używanie napędu taśm magnetycznych do archiwizacji danych, potrzebne jest przygotowanie taśm przed nadaniem im etykiet przez Bacula. Jeśli któraś z taśm posiada już etykietę (label) nadaną przez Bacula, konieczne jest wyczyszczenie tej taśmy. W tym celu można posłużyć się dowolnym narzędziem do czyszczenia taśm. Twórcy oprogramowania Bacula zalecają użycie do tego programu mt w następujący sposób:
mt -f {plik_specjalny_urządzenia} rewind
mt -f {plik_specjalny_urządzenia} weof
np. jeśli plikiem urządzenia jest plik /dev/nst0
mt -f /dev/nst0 rewind
mt -f /dev/nst0 weof
Pierwsza komenda przewija taśmę do początku, druga natomiast zapisuje znacznik EOF (End Of File) na pierwszym bloku taśmy. Po tych operacjach taśma jest gotowa do nadania jej etykiety poprzez Baculę.
Czy w plikach konfiguracyjnych istnieje możliwość dołączania plików?
Tak. W plikach konfiguracyjnych Zarządcy (plik: bacula-dir.conf), Daemona Magazynowania (plik: bacula-sd.conf) jak i Klienta (plik: bacula.fd.conf) jest możliwość dołączania zewnętrznych plików konfiguracyjnych. Znakiem definiującym dołączanie plików jest znak @ (małpa).
Poniższy przykład obrazuje dołączenie do pliku konfiguracyjnego Zarządcy pliku zawierającego definicję zasobów Job oraz FileSet.
bacula-dir.conf: (fragment)
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Full
Client = darkstar-fd
Storage = File
Messages = Standard
Priority = 10
}
@/usr/local/bacula/etc/bacula-job-katalog-domowy.conf
Pool {
Name = PelneKopie
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 730 days
}
bacula-job-katalog-domowy.conf:
Job {
Name = "Katalog domowy"
Type = Backup
Level = Full
Pool = PelneKopie
Client = darkstar-fd
FileSet = HomeDir
Storage = DVD
Messages = Standard
Priority = 10
}
FileSet {
Name = HomeDir
Include {
Options {
signature = MD5
}
File = /home/dorian
}
Jak Bacula radzi sobie z zapisem backupu na kilku taśmach?
Z backupem na wielu taśmach Bacula radzi sobie doskonale. W przypadku zapisu na urządzenie wyposażone w zmieniarkę taśm, wymiana kolejnych nośników odbywa się automatycznie, bez potrzeby udziału użytkownika. Co ciekawe, zapis na wiele taśm możliwy jest również w wypadku używania pojedynczego napędu taśmowego. W takiej sytuacji, gdy skończy się miejsce na taśmie, Bacula wstrzyma backup i zgłosi żądanie wymiany taśmy. Po wymianie taśmy i podmontowaniu jej, backup zostanie kontynuowany.
Czy Bacula wspiera szyfrowanie backupowanych danych?
Tak. Od wersji Bacula 1.38 istnieje możliwość szyfrowania danych składowanych na woluminach. Konieczne do tego jest posiadanie w Bacula wsparcia dla biblioteki openssl (w przypadku kompilacji odpowiada za to przełącznik --with-openssl). Należy mieć jednak na uwadze następujące fakty:
- szyfrowane są dane składowane na woluminach, lecz ich metadane nie podlegają szyfrowaniu (np. lokalizacje, uprawnienia),
- jest to szyfrowanie na poziomie Klienta (File Daemon), a nie na poziomie transmisji danych (aczkolwiek Bacula wspiera również szyfrowanie transmisji).
Więcej informacji: Bacula Main Reference Guide -> Data Encryption
Jak sprawdzić poprawność konfiguracji komponentów Baculi?
Do sprawdzania poprawności konfiguracji zawartej w plikach konfiguracyjnych Bacula przeznaczony jest przełącznik -t dostępny dla wszystkich komponentów posiadających plik konfiguracyjny (bacula-dir, bacula-fd, bacula-sd, bconsole, bat, bacula-tray-monitor).
Przykład
Sprawdzenie poprawności konfiguracji daemon'a magazynowania oraz klienta:
/lokalizacja/bacula-sd -t -c /lokalizacja/bacula-sd.conf
/lokalizacja/bacula-fd -t -c /lokalizacja/bacula-fd.conf
gdzie w miejsce należy wstawić poprawne ścieżki do plików binarnych oraz plików konfiguracyjnych, np:
/usr/sbin/bacula-sd -t -c /etc/bacula/bacula-sd.conf
/usr/sbin/bacula-fd -t -c /etc/bacula/bacula-fd.conf
Jeżeli konfiguracja jest poprawna, powyższe wywołania nie zwrócą żadnego komunikatu oraz zakończą się z kodem błędu 0. W przypadku błędów w konfiguracji kod błędu wyniesie 1, a na standardowe wyjście zostanie zwrócony komunikat o błędnej konfiguracji.
Przykład z błędną konfiguracją
/usr/sbin/bconsole -t -c /etc/bacula/bconsole.conf
18-sty 19:23 bconsole: ERROR TERMINATION at parse_conf.c:954
Config error: Keyword "zaddress" not permitted in this resource.
Perhaps you left the trailing brace off of the previous resource.
: line 8, col 11 of file ./bconsole.conf
z address = darkstar
Ze zwróconego komunikatu widać, co jest źle i w której linii oraz kolumnie (litera "z" przed dyrektywą address).
Należy mieć na uwadze, że ten typ testu plików konfiguracyjnych sprawdza jedynie poprawność ich składni. Nie jest sprawdzana wzajemna zależność konfiguracji, więc np. błąd w którymś z haseł nie zostanie wykryty.
Czy autentykacja pomiędzy komponentami Baculi jest bezpieczna?
Choć hasła zapisywane są w plikach konfiguracyjnych Bacula otwartym tekstem, to nie są one nigdy w tej postaci wysyłane. W trakcie procesu autentykacji komponentów Bacula ze sobą hasła są zawsze wysyłane w postaci zaszyfrowanej.
Czy Bacula obsługuje nazwy taśm zapisane kodem kreskowym na etykietach?
Tak. Etykietowanie (ang. label) woluminów może odbywać się przy użyciu nazw zapisanych na etykietach taśm w postaci kodu kreskowego (tzw. barcode). Aby tego dokonać, należy do komendy etykietującej dodać słowo barcodes.
Przykład
W pierwszych trzech slotach urządzenia wyposażonego w zmieniarkę taśm znadują się taśmy oznaczone etykietami z kodem kreskowym. Etykietowanie (ang. label) można przeprowadzić przy użyciu komendy wydawanej w konsoli Bacula:
label storage=aaaa pool=bbbb slots=1-3 barcodes
gdzie:
aaaa - nazwa urządzenia zdefiniowana w pliku konfiguracyjnym Zarządcy (Director)
bbbb - nazwa puli taśm, do której mają trafić zaetykietowane woluminy
W jaki sposób obsłużyć taśmy czyszczące w Baculi?
Użytkownicy urządzeń taśm magnetycznych wyposażonych w czytnik kodów kreskowych mają możliwość zdefiniowania prefix'u jakiego używają dla oznaczenia taśm czyszczących przy pomocy etykiet z kodem kreskowym. Służy do tego dyrektywa definiowana dla zasobu puli taśm (Pool) w pliku konfiguracyjnym Zarządcy (Director):
Cleaning Prefix = "prefix taśm czyszczących"
Po zdefiniowaniu prefix'u, podczas etykietowania taśm z użyciem kodów kreskowych (label barcodes) w chwili gdy Bacula odczyta etykietę taśmy czyszczącej i jej nazwa będzie zaczynać się od znaków zdefiniowanych w dyrektywie Cleaning Prefix, taśma zostanie oznaczona statusem Cleaning. Bacula nigdy nie użyje taśm ze statusem Cleaning do wykonania kopii bezpieczeństwa.
Przykład
Dwie taśmy czyszczące maja zapisane przy pomocy kodu kreskowego nazwy CLN00001 oraz CLN00002. Odpowiadająca im definicja dyrektywy Cleaning Prefix może wyglądać następująco:
Cleaning Prefix = "CLN"
W tej konfiguracji każda taśma z nazwą zapisaną kodem kreskowym zaczynającą się od liter CLN (np. CLN00003, CLN00127) podczas próby etykietowania z opcją barcodes będzie oznaczana statusem Cleaning.
Czy obsługiwany jest backup bardzo dużych plików?
Tak. Niegdyś barierą dla wielu systemów plików był maksymalny rozmiar pliku określany na 2 GB. Bacula od wersji 1.26 (wydanej w 2002 roku) potrafi czytać i zapisywać pliki większe niż 2 GB.
Co ze wsparciem dla bardzo długich lokalizacji i nazw plików?
Dla klientów pracujących w środowisku UNIX'owych systemów operacyjnych (np. Linux, FreeBSD) długość zapisywanych lokalizacji (ścieżek) i nazw plików jest nielimitowana.
Dla klientów pracujących pod kontrolą systemu Windows istnieje ograniczenie przetwarzanych przez Bacula lokalizacji i nazw plików do 64 tysięcy znaków.
Czy jest możliwe odzyskiwanie pojedynczych plików?
Tak. Bacula dostarcza kilka interfejsów, przy pomocy których możliwe jest wybranie żądanych plików do przywrócenia z kopii zapasowej. Do takich interfejsów zaliczyć można m.in. BAT (Bacula Administration Tool), tekstową konsolę bconsole i Baculum.
Jak wygenerować hasło na potrzeby konfiguracji Bacula?
Hasła w plikach konfiguracyjnych usług Bacula przechowywane są w postaci niezaszyfrowanej. Przy instalacji Bacula za pomocą pakietów dystrybucyjnych systemu operacyjnego (lub własnej kompilacji) można zauważyć, że domyślnie pliki konfiguracyjne mają ustawione hasła przypominające swego rodzaju hash, np.:
Password = "RCvjyl2hwUliXOOyzjOL9mpkwIU5UgZP/BxdXCssW9QE"
Taka postać hasła jest także zapisana otwartym tekstem i równie dobrze można zamiast tego ustawić:
Password = "AlaMaKota"
W celu wygenerowania losowego ciągu znaków można posłużyć się programem openssl w następujący sposób:
openssl rand -base64 LICZBA_ZNAKÓW
Przykład
# openssl rand -base64 33
bq5ahyctw+axn/st13WY5qlEkT9eyUBLg0+wLns1hRbY
# openssl rand -base64 15
yymY3+YCMhweODxkFe73
opracowano na podstawie: http://www.mail-archive.com/bacula-users@lists.sourceforge.net/msg42664.html