Dysk vs taśma w aspekcie danych i metadanych Bacula
21 kwiecień 2013, autor: Marcin Haba (gani)
Artukuł zawiera opis części wspólnych oraz różnic pomiędzy wolumenami plikowymi a taśmami magnetycznymi pod względem metadanych Bacula.
Zawsze powtarzam, że dobór nośnika do składowania danych z backupów przypomina kupowanie butów. Gdy wchodzisz do sklepu obuwniczego, to szukasz butów odpowiednich dla siebie pod względem stylu, kroju, koloru, podeszwy i przede wszystkim rozmiaru. Krótko mówiąc - musi pasować. Myślę, że podobnie jest z wyborem nośników do środowiska składowania kopii zapasowych. W jednym i drugim przypadku ważne jest to, aby skupić się na swych potrzebach i dopasować je do środowiska, a nie odwrotnie, bo podobnie jak środowiska tak i swych stóp nie jesteś w stanie zmienić.
Wstęp
Na początku chciałbym uprzedzić o tym, że w artykule nie odpowiem na pytanie o to, jaki nośnik jest lepszy, gdyż jeślibym podjął próbę odpowiedzi na to pytanie, to z góry była by ona skazana na niepowodzenie. (patrz: zajawka o butach). Nie zacznę też wojny w stylu sławetnego "Vim vs Emacs". Spróbuję za to nieco przyjrzeć się strukturze danych składowanych przez Bacula na dyskach i taśmach magnetycznych.
Po pierwsze - etykiety
Etykieta Bacula nadawana jest podczas etykietowania taśmy/wolumenu (tzw. labelowanie) i zapisywana jest dla wolumenu plikowego na początku pliku, a dla taśmy magnetycznej zapisywana jest na początku taśmy. Etykieta ma również taki sam format i dla taśm i dla wolumenów plikowych. Jako przykład zamieszczam poniżej dwa listingi, z których pierwszy zawiera zawartość etykiety wolumenu plikowego, a drugi taśmy magnetycznej. Obydwa uzyskane przy użyciu komendy bls z przełącznikiem -L.
Volume Label:
Id : Bacula 1.0 immortal
VerNo : 11
VolName : file-volume-workstations-0001
PrevVolName :
VolFile : 0
LabelType : VOL_LABEL
LabelSize : 196
PoolName : Workstations-full
MediaType : File
PoolType : Backup
HostName : speedstar
Date label written: 27-sty-2013 13:59
Volume Label:
Id : Bacula 1.0 immortal
VerNo : 11
VolName : HABA02L1
PrevVolName :
VolFile : 0
LabelType : VOL_LABEL
LabelSize : 167
PoolName : TapeBackup
MediaType : LTO-1
PoolType : Backup
HostName : dellstar
Date label written: 20-kwi-2013 15:21
Jak da się zauważyć, obydwie etykiety posiadają tą samą strukturę i te same właściwości.
Po drugie - struktura danych
Dane na taśmach i wolumenach plikowych Bacula są umieszczane również z tą samą strukturą metadanych domyślnie w 64512 bajtowych blokach. Wydaje się to być bardzo wygodnym rozwiązaniem zarówno dla użytkownika Bacula jak i dla potrzeb rozwijania oprogramowania Bacula. Dzięki podejściu ustandaryzowanych metadanych na wolumenach i taśmach użytkownik ma do dyspozycji te same narzędzia (np. bextract czy też bls) użytkowane z tymi samymi przełącznikami zarówno dla taśm jak i wolumenów plikowych. Co więcej, narzędzie bcopy pozwala w łatwy sposób przekopiować dane backupów z jednego typu nośnika na inny typ nośnika (lub z tego samego na ten sam) bez potrzeby ingerowania (konwertowania) w metadane Bacula.
Jak każda sprawdzona reguła, tak i ta zawiera subtelny wyjątek. Otóż, jak wspomniałem powyżej, dane zapisywane są w blokach o rozmiarze 64512 bajtów. Wyjątek dotyczy rozróżnienia pomiędzy traktowaniem na wolumenie plikowym i taśmie magnetycznej ostatniego bloku jednego backupu zapisanego na nośniku. Jak podaje dokumentacja Bacula rozmiar ostatniego bloku backupu zaokrąglany jest w górę z krotnością 1024. Dla woluminu plikowego dane backupu są po prostu dopisywane na koniec woluminu bez zaokrąglania. Niby szczegół, lecz myślę, że warto to wiedzieć.
Jeszcze innym szczegółem jest to, że na taśmach magnetycznych znaczniki EOF (End Of File) zapisywane są domyślnie co 1GB danych lub, jeśli backup ma mniej niż 1GB, to po każdym takim backupie. Natomiast dla wolumenów plikowych znacznik EOF jest zapisywany co 4GB zapisanych danych.
Po trzecie - kompatybilność
Wprowadzenie własnego jednorodnego standardu opisywania wolumenów/taśm w Bacula zdaje się być dużym udogodnieniem dla użytkownika. Własny standard gwarantuje możliwość odczytania czy też odtworzenia danych z wolumenów/taśm przez wszystkie narzędzia operujące na wolumenach i to niemal z dowolnej wersji Bacula, kładąc nacisk na słowo "niemal", ze względu na bardzo dawne i historyczne niekompatybilności Bacula w tym temacie.
Podsumowanie
Zaczęliśmy od kupowania butów, a skończyliśmy na standardzie opisywania wolumenów i taśm :-) Tym miłym akcentem kończę artykuł. Dziękuję za uwagę.