Bacula.pl

- rozwiązanie kopii zapasowych dla wymagających
Kategorie: WSZYSTKIE Newsy Artykuły Blog

Virtual Backup czyli backup syntetyczny w Bacula

13 czerwiec 2010, autor: Marcin Haba (gani)

news

Od wersji Bacula 3.0.x dostępna jest funkcjonalność Virtual Backupu. Artykuł prezentuje przykład zastosowania tego typu kopii zapasowej na bazie urzadzeń plikowych.

Wstęp

Wykonywanie pełnych kopii zapasowych wiąże się z zapisaniem wszystkich danych ze wskazanych lokalizacji na woluminy urządzenia. Często jest to kosztowna operacja dla zasobów sprzętowych, szczególnie gdy danych jest dużo. Dodając do tego niską przepustowość sieci łatwo zauważyć, że w przypadku kopii pełnych ważnym czynnikiem może okazać się czas potrzebny na zapisanie danych. Ten temat może spędzać sen z powiek niejednego administratora, u którego czas wykonywania pełnego backupu wykracza poza osiągalne okno backupowe. Jednym z rozwiązań takiego problemu jest użycie backupu konsolidacyjnego.

Co to jest backup konsolidacyjny

Nazwa "backup konsolidacyjny" wywodzi się bezpośrednio z zasady działania tego typu kopii zapasowej. Konsolidacja - w znaczeniu połączenia wielu w jedno - w odniesieniu do backupu oznacza połączenie kilku kopii zapasowych i utworzenie na tej podstawie jednej kopii pełnej. Równolegle funkcjonującą nazwą dla backupu konsolidacyjnego jest nazwa "backup syntetyczny", w którym słowo "syntetyczny" odnosi się do tego, że jest on tworzony z danych znajdujących się na woluminach w postaci kopii zapasowych, a nie z danych komputera klienta. W terminologii Baculi backup syntetyczny nazywa się Virtual Backup.

Zasada działania

Virtual Backup generowany jest z kopii pełnej oraz utworzonych na jej podstawie kopii przyrostowych lub różnicowych. Efektem jego wykonania jest kopia pełna zawierająca wszystkie dane wymienionych kopii. Tak wykonana kopia pełna zapisywana jest do innej puli woluminów od tej, z której odczytane zostały backupy składowe Virtual Backupu. Użyte do tego celu są co najmniej  dwa urządzenia: jedno czytające dane backupów składowych z woluminów jednej puli, drugie zapisujące pełny backup wynikowy do innej puli woluminów. Takie działanie spowodowane jest tym, że jedno urządzenie może jednocześnie czytać lub zapisywać dane na jednym woluminie. Z konsekwencji tej restrykcji wynika, że pula woluminów źródłowa powinna zawierać woluminy innego urządzenia niż docelowa pula woluminów. Plusem tego rozwiązania jest możliwość składowania w naturalny sposób kopii pełnych na woluminach jednego urządzenia oraz kopii przyrostowych i różnicowych na woluminach innego urządzenia.

Operacja Virtual Backupu wykonywana jest bez udziału klienta, ponieważ, jak już wspomniałem, nowy pełny backup wygenerowany jest z danych innych kopii zapasowych, a nie z danych znajdujących się na komputerze klienta. Takie zachowanie niesie ze sobą znaczne udogodnienie związane z tym, że nie ma potrzeby transportowania danych z komputera klienta do komputera z demonem magazynowania, a co za tym idzie nie obciąża się sieci komputerowej transmisją dużej ilości danych. Oznacza to, że czas potrzebny na wykonanie Virtual Backupu jest krótszy, niż w przypadku wykonania zwykłej kopii pełnej. Co więcej, dostępność komputera klienta nie wpływa na to, czy kopia powiedzie się, czy też nie.

Za realizację Virtual Backupu w znacznej mierze odpowiedzialny jest demon magazynowania. Ten fakt również ma dobry wpływ na czas realizacji backupu, ponieważ operacje na danych do stworzenia kopii pełnej wykonywane są w jego obrębie.

Na poniższych ilustracjach przedstawione zostały dwie metody wykonywania backupów pełnych i przyrostowych. Ilustracja 1 prezentuje tradycyjny sposób wykonywania tych kopii a Ilustracja 2 obrazuje działanie Virtual Backupu na przykładzie tego samego cyklu backupów co Ilustracja 1.

Przykład standardowej metody wykonywania kopii zapasowych pełnych i przyrostowych

Ilustracja 1: Przykład standardowej metody wykonywania kopii zapasowych pełnych i przyrostowych

Metoda wykonywania kopii zapasowych z wykorzystaniem Virtual Backupu

Ilustracja 2: Metoda wykonywania kopii zapasowych z wykorzystaniem Virtual Backupu

Podział puli woluminów

Podstawowym zadaniem puli woluminów jest pogrupowanie woluminów w grupy przeznaczone do jednego konkretnego celu. Zestaw dyrektyw zasobu Pool może pomóc w nadaniu cech charakterystycznych woluminom każdej z pul. Na potrzeby wprowadzenia Virtual Backupu dobrą praktyką jest, aby woluminy wynikowych kopii pełnych Virtual Backupu składowane były w przeznaczonej na ten cel osobnej puli woluminów. Proszę spojrzeć na poniższy  przykłady zagospodarowania puli woluminów.

Przykład rozplanowania puli woluminów na potrzeby Virtual Backupu

Ilustracja 3: Przykład rozplanowania puli woluminów na potrzeby Virtual Backupu

W tym przykładzie użyto trzech pul z woluminami trzech urządzeń. Zastanawiające może być to, że na przedstawionym diagramie (Ilustracja 3) znajdują się dwie pule woluminów na backupy pełne. Podyktowane jest to następującymi faktami:

  • Przed uruchomieniem pierwszego Virtual Backupu musi istnieć jeden backup pełny (wykonany z danych na komputerze klienta) oraz odpowiadający mu co najmniej jeden backup przyrostowy lub różnicowy. W zaprezentowanym układzie puli woluminów (Ilustracja 3) złożenie tych backupów w całość będzie wymagało użycia dwóch urządzeń czytających (Urządzenie 2 i Urządzenie 3) oraz jednego zapisującego (Urządzenie 1). Backup pełny znajduje się na woluminie w puli o nazwie Pool 2, natomiast backupy przyrostowe na woluminie w puli woluminów Pool 3. Wynikowa kopia pełna zostanie zapisana na wolumin puli o nazwie Pool 1.
  • Nie jest możliwe użycie jednej puli na kopie pełne (zarówno pierwszą kopię pełną jak i kopie pełne uzyskane przy użyciu Virtual Backupu) ponieważ w sytuacji uruchomienia Virtual Backupu demon magazynowania nie użyje jednocześnie jednego urządzenia do odczytu pełnego backupu bazowego (składowego) i do zapisu wynikowego backupu pełnego.

Po wykonaniu pierwszego Virtual Backupu (Ilustracja 3), pełnym backupem bazowym dla kolejnego Virtual Backupu będzie backup z puli woluminów Pool 1. Dlatego też przy wykonaniu drugiego Virtual Backupu potrzeba będzie poinformować o tym Baculę. Poniżej znajduje się rysunek obrazujący drugi Virtual Backup:

Drugi Virtual Backup w założonym rozplanowaniu puli woluminów

Ilustracja 4: Drugi Virtual Backup w założonym rozplanowaniu puli woluminów

Po tej operacji będą istniały już trzy backupy pełne: jeden w puli o nazwie Pool 1 oraz dwa backupy w puli o nazwie Pool 2. Trzeci Virtual Backup powinien przebiegać tak jak pierwszy Virtual Backup, a czwarty tak jak drugi Virtual Backup itd. Jak można zauważyć, w przedstawionym przykładzie chodzi o przemienność Virtual Backupów w ten sposób, że raz backup wynikowy trafi do puli Pool 1, a raz do puli Pool 2. Natomiast do puli Pool 3 będą wykonywane tylko backupy przyrostowe.

Dyrektywy Virtual Backupu

Na potrzeby Virtual Backupu wprowadzona została nowa wartość do określenia poziomu kopii zapasowej (zasób Job):

Level = VirtualFull

Dodatkowo używaną dyrektywą jest:

Next Pool = nazwa_puli_woluminow

która określa do jakiej puli woluminów zostanie zapisana wynikowa kopia pełna Virtual Backupu. Definiowana jest w zasobie puli woluminów (zasób Pool).

Przykładowa konfiguracja

Konfiguracja urządzeń w pliku konfiguracyjnym demona magazynowania bacula-sd.conf:

Device { 
    Name = "Urzadzenie Plikowe 1"
    Media Type = up1_pliki
    Archive Device = /mnt/UrzadzeniePlikowe1
    Random Access = yes
    Automatic Mount = yes
    Removable Media = no
    Label Media = no
}
Device {
    Name = "Urzadzenie Plikowe 2"
    Media Type = up2_pliki
    Archive Device = /mnt/UrzadzeniePlikowe2
    Random Access = yes
    Automatic Mount = yes
    Removable Media = no
    Label Media = no
}
Device {
    Name = "Urzadzenie Plikowe 3"
    Media Type = up3_pliki
    Archive Device = /mnt/UrzadzeniePlikowe3
    Random Access = yes
    Automatic Mount = yes
    Removable Media = no
    Label Media = no
}

Konfiguracja w pliku konfiguracyjnym serwisu zarządcy bacula-dir.conf:

Storage { 
  Name = "Urzadzenie Pierwsze"
  Address = darkstar
  SD Port = 9103
  Password = "xxxxx"
  Device = "Urzadzenie Plikowe 1"
  Media Type = up1_pliki
  Maximum Concurrent Jobs = 1
}
Storage {
  Name = "Urzadzenie Drugie"
  Address = darkstar
  SD Port = 9103
  Password = "xxxxx"
  Device = "Urzadzenie Plikowe 2"
  Media Type = up2_pliki
  Maximum Concurrent Jobs = 1
}
Storage {
  Name = "Urzadzenie Trzecie"
  Address = darkstar
  SD Port = 9103
  Password = "xxxxx"
  Device = "Urzadzenie Plikowe 3"
  Media Type = up3_pliki
  Maximum Concurrent Jobs = 1
}
Pool {
  Name = "Kopie Pelne 1"
  Pool Type = Backup
  Recycle = no
  Storage = "Urzadzenie Pierwsze"
  Next Pool = "Kopie Pelne 2"
}
Pool {
  Name = "Kopie Pelne 2"
  Pool Type = Backup
  Recycle = no
  Storage = "Urzadzenie Drugie"
  Next Pool = "Kopie Pelne 1"
}
Pool {
  Name = "Kopie Przyrostowe"
  Pool Type = Backup
  Recycle = no
  Storage = "Urzadzenie Trzecie"
}
Job {
  Name = Dokumenty
  Type = Backup
  Level = Incremental
  Pool = "Kopie Przyrostowe"
  Client = darkstar-fd
  FileSet = "Dokumenty FileSet"
  Messages = "Wiadomosci Zarzadcy"
}
FileSet {
  Name = "Dokumenty FileSet"
  Include {
    Options {
      signature = MD5
    }
    File = /home/gani/Dokumenty
  }
}

Przykład praktyczny

Jako pierwszy zostaje wykonany pełny backup o nazwie "Dokumenty" z komputera klienta. Będzie on zapisany na wolumin z puli Kopie Pelne 1 przy użyciu urządzenia Urzadzenie Pierwsze.

run job=Dokumenty level=Full pool="Kopie Pelne 1" storage="Urzadzenie Pierwsze"
13-cze 15:25 darkstar-dir JobId 1: Start Backup JobId 1, Job=Dokumenty.2010-06-13_15.25.44_04                               
13-cze 15:25 darkstar-dir JobId 1: Using Device "UrzadzeniePlikowe1"                                                        
13-cze 15:25 darkstar-sd JobId 1: Wrote label to prelabeled Volume "vol-full1-1" on device "Urzadzenie Plikowe 1" (/mnt/UrzadzeniePlikowe1)                                                                                                                
13-cze 15:26 darkstar-sd JobId 1: Job write elapsed time = 00:00:22, Transfer rate = 6.621 M Bytes/second                    
13-cze 15:26 darkstar-dir JobId 1: Bacula darkstar-dir 5.0.1 (24Feb10): 13-cze-2010 15:26:08                                 
  Build OS:               x86_64-unknown-linux-gnu slackware Slackware 13.0.0.0.0
  JobId:                  1
  Job:                    Dokumenty.2010-06-13_15.25.44_04
  Backup Level:           Full
  Client:                 "darkstar-fd" 5.0.1 (24Feb10) x86_64-unknown-linux-gnu,slackware,Slackware 13.0.0.0.0
  FileSet:                "Dokumenty FileSet" 2010-06-13 15:25:44
  Pool:                   "Kopie Pelne 1" (From User input)
  Catalog:                "Baza Danych Baculi" (From Client resource)
  Storage:                "Urzadzenie Pierwsze" (From Pool resource)
  Scheduled time:         13-cze-2010 15:25:08
  Start time:             13-cze-2010 15:25:46
  End time:               13-cze-2010 15:26:08
  Elapsed time:           22 secs
  Priority:               10
  FD Files Written:       2,209
  SD Files Written:       2,209
  FD Bytes Written:       145,287,361 (145.2 MB)
  SD Bytes Written:       145,680,791 (145.6 MB)
  Rate:                   6604.0 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         vol-full1-1
  Volume Session Id:      1
  Volume Session Time:    1276433837
  Last Volume Bytes:      145,858,524 (145.8 MB)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK

Następnie zostają wykonane dwa backupy przyrostowe na wolumin w puli Kopie Przyrostowe. Do zapisania tej kopii zostanie użyte urządzenie o nazwie Urzadzenie Trzecie.

run job=Dokumenty level=Incremental pool="Kopie Przyrostowe" storage="Urzadzenie Trzecie" 
13-cze 15:29 darkstar-dir JobId 2: Start Backup JobId 2, Job=Dokumenty.2010-06-13_15.29.17_05
13-cze 15:29 darkstar-dir JobId 2: Using Device "UrzadzeniePlikowe3"                        
13-cze 15:29 darkstar-sd JobId 2: Wrote label to prelabeled Volume "vol-inc-1" on device "Urzadzenie Plikowe 3" (/mnt/UrzadzeniePlikowe3)                                                                                                                  
13-cze 15:29 darkstar-sd JobId 2: Job write elapsed time = 00:00:01, Transfer rate = 96.50 K Bytes/second                    
13-cze 15:29 darkstar-dir JobId 2: Bacula darkstar-dir 5.0.1 (24Feb10): 13-cze-2010 15:29:19                                 
  Build OS:               x86_64-unknown-linux-gnu slackware Slackware 13.0.0.0.0
  JobId:                  2
  Job:                    Dokumenty.2010-06-13_15.29.17_05
  Backup Level:           Incremental, since=2010-06-13 15:25:46
  Client:                 "darkstar-fd" 5.0.1 (24Feb10) x86_64-unknown-linux-gnu,slackware,Slackware 13.0.0.0.0
  FileSet:                "Dokumenty FileSet" 2010-06-13 15:25:44
  Pool:                   "Kopie Przyrostowe" (From Job resource)
  Catalog:                "Baza Danych Baculi" (From Client resource)
  Storage:                "Urzadzenie Trzecie" (From Pool resource)
  Scheduled time:         13-cze-2010 15:28:59
  Start time:             13-cze-2010 15:29:19
  End time:               13-cze-2010 15:29:19
  Elapsed time:           0 secs
  Priority:               10
  FD Files Written:       22
  SD Files Written:       22
  FD Bytes Written:       93,921 (93.92 KB)
  SD Bytes Written:       96,508 (96.50 KB)
  Rate:                   0.0 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         vol-inc-1
  Volume Session Id:      2
  Volume Session Time:    1276433837
  Last Volume Bytes:      97,911 (97.91 KB)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK
*run job=Dokumenty level=Incremental pool="Kopie Przyrostowe" storage="Urzadzenie Trzecie"
13-cze 15:30 darkstar-dir JobId 3: Start Backup JobId 3, Job=Dokumenty.2010-06-13_15.30.55_06
13-cze 15:30 darkstar-dir JobId 3: Using Device "UrzadzeniePlikowe3"                        
13-cze 15:30 darkstar-sd JobId 3: Volume "vol-inc-1" previously written, moving to end of data.
13-cze 15:30 darkstar-sd JobId 3: Ready to append to end of Volume "vol-inc-1" size=97911     
13-cze 15:30 darkstar-sd JobId 3: Job write elapsed time = 00:00:01, Transfer rate = 54.77 K Bytes/second
13-cze 15:30 darkstar-dir JobId 3: Bacula darkstar-dir 5.0.1 (24Feb10): 13-cze-2010 15:30:57            
  Build OS:               x86_64-unknown-linux-gnu slackware Slackware 13.0.0.0.0                       
  JobId:                  3
  Job:                    Dokumenty.2010-06-13_15.30.55_06
  Backup Level:           Incremental, since=2010-06-13 15:29:19
  Client:                 "darkstar-fd" 5.0.1 (24Feb10) x86_64-unknown-linux-gnu,slackware,Slackware 13.0.0.0.0
  FileSet:                "Dokumenty FileSet" 2010-06-13 15:25:44
  Pool:                   "Kopie Przyrostowe" (From Job resource)
  Catalog:                "Baza Danych Baculi" (From Client resource)
  Storage:                "Urzadzenie Trzecie" (From Pool resource)
  Scheduled time:         13-cze-2010 15:30:47
  Start time:             13-cze-2010 15:30:57
  End time:               13-cze-2010 15:30:57
  Elapsed time:           0 secs
  Priority:               10
  FD Files Written:       12
  SD Files Written:       12
  FD Bytes Written:       52,820 (52.82 KB)
  SD Bytes Written:       54,778 (54.77 KB)
  Rate:                   0.0 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         vol-inc-1
  Volume Session Id:      3
  Volume Session Time:    1276433837
  Last Volume Bytes:      153,505 (153.5 KB)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK

Po  tych operacjach w puli woluminów Kopie Pelne 1 znajduje się jeden backup pełny, a w puli o nazwie Kopie Przyrostowe znajdują się dwa backupy przyrostowe. Aby stworzyć z w/w kopii jeden Virtual Backup potrzebne będzie wskazanie puli woluminów, gdzie znajduje się dyrektywa Next Pool wyznaczająca pulę woluminów, do której trafi backup wynikowy. Są do wyboru dwie pule na kopie pełne o nazwach Kopie Pelne 1 oraz Kopie Pelne 2. Pierwsza z nich zawiera już kopię pełną, druga pula nie zawiera żadnych kopii. W celu wykonania pierwszego Virtual Backupu potrzeba wskazać tą pulę, która poprzez dyrektywę Next Pool wskazuje na pulę nie zawierającą żadnej kopii składowej Virtual Backupu, który chce się wykonać. W wywołaniu komendy backupu potrzeba więc użyć puli Kopie Pelne 1, która wskazuje na Kopie Pelne 2. Poniższa komenda wykonuje Virtual Backup.

run job=Dokumenty level=VirtualFull pool="Kopie Pelne 1" storage="Urzadzenie Pierwsze" 
13-cze 15:37 darkstar-dir JobId 4: Start Virtual Backup JobId 4, Job=Dokumenty.2010-06-13_15.37.26_08
13-cze 15:37 darkstar-dir JobId 4: Warning: This Job is not an Accurate backup so is not equivalent to a Full backup.
13-cze 15:37 darkstar-dir JobId 4: Bootstrap records written to /usr/local/bacula/var/bacula/working/darkstar-dir.restore.1.bsr                                                                                                                            
13-cze 15:37 darkstar-dir JobId 4: Using Device "UrzadzeniePlikowe2"                                                         
13-cze 15:37 darkstar-sd JobId 4: Ready to read from volume "vol-full1-1" on device "Urzadzenie Plikowe 1" (/mnt/UrzadzeniePlikowe1).                                                                                                                      
13-cze 15:37 darkstar-sd JobId 4: Wrote label to prelabeled Volume "vol-full2-1" on device "Urzadzenie Plikowe 2" (/mnt/UrzadzeniePlikowe2)                                                                                                                
13-cze 15:37 darkstar-sd JobId 4: Forward spacing Volume "vol-full1-1" to file:block 0:213.                                  
13-cze 15:37 darkstar-sd JobId 4: End of Volume at file 0 on device "Urzadzenie Plikowe 1" (/mnt/UrzadzeniePlikowe1), Volume "vol-full1-1"                                                                                                                 
13-cze 15:37 darkstar-sd JobId 4: acquire.c:117 Changing read device. Want Media Type="up3_pliki" have="up1_pliki"           
  device="Urzadzenie Plikowe 1" (/mnt/UrzadzeniePlikowe1)  
                                                                   
13-cze 15:37 darkstar-sd JobId 4: Media Type change.  New read device "Urzadzenie Plikowe 3" (/mnt/UrzadzeniePlikowe3) chosen.
13-cze 15:37 darkstar-sd JobId 4: Ready to read from volume "vol-inc-1" on device "Urzadzenie Plikowe 3" (/mnt/UrzadzeniePlikowe3).
13-cze 15:37 darkstar-sd JobId 4: Forward spacing Volume "vol-inc-1" to file:block 0:215.
13-cze 15:37 darkstar-sd JobId 4: End of Volume at file 0 on device "Urzadzenie Plikowe 3" (/mnt/UrzadzeniePlikowe3), Volume "vol-inc-1"
13-cze 15:37 darkstar-sd JobId 4: End of all volumes.
13-cze 15:37 darkstar-dir JobId 4: Bacula darkstar-dir 5.0.1 (24Feb10): 13-cze-2010 15:30:57
  Build OS:               x86_64-unknown-linux-gnu slackware Slackware 13.0.0.0.0
  JobId:                  4
  Job:                    Dokumenty.2010-06-13_15.37.26_08
  Backup Level:           Virtual Full
  Client:                 "darkstar-fd" 5.0.1 (24Feb10) x86_64-unknown-linux-gnu,slackware,Slackware 13.0.0.0.0
  FileSet:                "Dokumenty FileSet" 2010-06-13 15:25:44
  Pool:                   "Kopie Pelne 2" (From Job Pool's NextPool resource)
  Catalog:                "Baza Danych Baculi" (From Client resource)
  Storage:                "Urzadzenie Drugie" (From Storage from Pool's NextPool resource)
  Scheduled time:         13-cze-2010 15:37:01
  Start time:             13-cze-2010 15:30:57
  End time:               13-cze-2010 15:30:57
  Elapsed time:           0 secs
  Priority:               10
  SD Files Written:       2,240
  SD Bytes Written:       145,831,794 (145.8 MB)
  Rate:                   0.0 KB/s
  Volume name(s):         vol-full2-1
  Volume Session Id:      4
  Volume Session Time:    1276433837
  Last Volume Bytes:      153,505 (153.5 KB)
  SD Errors:              0
  SD termination status:  OK
  Termination:            Backup OK

Na powyższym listingu zostały zaznaczone wytłuszczoną czcionką komunikaty informujące o tym, że demon magazynowania w trakcie wykonywania jednej kopii zmienia urządzenia odczytujące składowe backupy oraz przygotowuje urządzenie do zapisania backupu wynikowego.

Gdyby w powyższym wywołaniu komendy run podać pulę woluminów Kopie Pelne 2, Virtual Backup zakończyłby się błędem, ponieważ demon magazynowania nie mógłby czytać pełny backup składowy i jednocześnie zapisywać backup wynikowy na ten sam wolumin z puli Kopie Pelne 1.

Stan wykonanych do tej pory kopii zapasowych przedstawia się następująco:

Lista backupów w tekstowej konsoli Bacula

Widać tutaj, że nowo powstały backup o identyfikatorze 4 jest kopią pełną. Wykonam jeszcze dwa backupy przyrostowe na woluminy puli o nazwie Kopie Przyrostowe:

run job=Dokumenty level=Incremental pool="Kopie Przyrostowe" storage="Urzadzenie Trzecie"
run job=Dokumenty level=Incremental pool="Kopie Przyrostowe" storage="Urzadzenie Trzecie"

Stan backupów wygląda teraz jak poniżej:

Lista backupów w konsoli Bacula

Aby na ich podstawie utworzyć Virtual Backup, tak samo jak przy wykonywaniu pierwszego Virtual Backupu, potrzeba podać pulę woluminów, która wskazuje na pulę nie zawierającą backupów składowych przyszłego Virtual Backupu. Składowymi nowego Virtual Backupu będą backup pełny (powstały z poprzedniego Virtual Backupu) o identyfikatorze 4, który znajduje się na woluminie w puli Kopie Pelne 2 oraz dwa backupy przyrostowe o identyfikatorze 5 i 6 znajdujące się na woluminie puli Kopie Przyrostowe. Do drugiego Virtual Backupu potrzeba więc podać pulę Kopie Pelne 2, która wskazuje na pulę Kopie Pelne 1.

run job=Dokumenty level=VirtualFull pool="Kopie Pelne 2" storage="Urzadzenie Drugie"
13-cze 15:44 darkstar-dir JobId 7: Start Virtual Backup JobId 7, Job=Dokumenty.2010-06-13_15.44.34_11
13-cze 15:44 darkstar-dir JobId 7: Warning: This Job is not an Accurate backup so is not equivalent to a Full backup.
13-cze 15:44 darkstar-dir JobId 7: Bootstrap records written to /usr/local/bacula/var/bacula/working/darkstar-dir.restore.2.bsr                                                                                                                            
13-cze 15:44 darkstar-dir JobId 7: Using Device "UrzadzeniePlikowe1"                                                         
13-cze 15:44 darkstar-sd JobId 7: Ready to read from volume "vol-full2-1" on device "Urzadzenie Plikowe 2" (/mnt/UrzadzeniePlikowe2).                                                                                                                      
13-cze 15:44 darkstar-sd JobId 7: Volume "vol-full1-1" previously written, moving to end of data.                            
13-cze 15:44 darkstar-sd JobId 7: Ready to append to end of Volume "vol-full1-1" size=145858524                              
13-cze 15:44 darkstar-sd JobId 7: Forward spacing Volume "vol-full2-1" to file:block 0:213.                                  
13-cze 15:44 darkstar-sd JobId 7: End of Volume at file 0 on device "Urzadzenie Plikowe 2" (/mnt/UrzadzeniePlikowe2), Volume "vol-full2-1"                                                                                                                  
13-cze 15:44 darkstar-sd JobId 7: acquire.c:117 Changing read device. Want Media Type="up3_pliki" have="up2_pliki"           
  device="Urzadzenie Plikowe 2" (/mnt/UrzadzeniePlikowe2)                                                                    
13-cze 15:44 darkstar-sd JobId 7: Media Type change.  New read device "Urzadzenie Plikowe 3" (/mnt/UrzadzeniePlikowe3) chosen.
13-cze 15:44 darkstar-sd JobId 7: Ready to read from volume "vol-inc-1" on device "Urzadzenie Plikowe 3" (/mnt/UrzadzeniePlikowe3).
13-cze 15:44 darkstar-sd JobId 7: Forward spacing Volume "vol-inc-1" to file:block 0:153505.
13-cze 15:44 darkstar-sd JobId 7: End of Volume at file 0 on device "Urzadzenie Plikowe 3" (/mnt/UrzadzeniePlikowe3), Volume "vol-inc-1"
13-cze 15:44 darkstar-sd JobId 7: End of all volumes.
13-cze 15:44 darkstar-dir JobId 7: Bacula darkstar-dir 5.0.1 (24Feb10): 13-cze-2010 15:43:01
  Build OS:               x86_64-unknown-linux-gnu slackware Slackware 13.0.0.0.0
  JobId:                  7
  Job:                    Dokumenty.2010-06-13_15.44.34_11
  Backup Level:           Virtual Full
  Client:                 "darkstar-fd" 5.0.1 (24Feb10) x86_64-unknown-linux-gnu,slackware,Slackware 13.0.0.0.0
  FileSet:                "Dokumenty FileSet" 2010-06-13 15:25:44
  Pool:                   "Kopie Pelne 1" (From Job Pool's NextPool resource)
  Catalog:                "Baza Danych Baculi" (From Client resource)
  Storage:                "Urzadzenie Pierwsze" (From Storage from Pool's NextPool resource)
  Scheduled time:         13-cze-2010 15:44:30
  Start time:             13-cze-2010 15:43:00
  End time:               13-cze-2010 15:43:01
  Elapsed time:           1 sec
  Priority:               10
  SD Files Written:       2,326
  SD Bytes Written:       189,476,963 (189.4 MB)
  Rate:                   189477.0 KB/s
  Volume name(s):         vol-full1-1
  Volume Session Id:      7
  Volume Session Time:    1276433837
  Last Volume Bytes:      43,836,811 (43.83 MB)
  SD Errors:              0
  SD termination status:  OK
  Termination:            Backup OK

Przywracanie danych

Lista wszystkich w/w backupów przedstawiona jest poniżej.

Lista backupów

Do sprawdzenia przywracania danych użyję kopii o identyfikatorach 4,5,6

restore jobid=4,5,6 
13-cze 15:51 darkstar-dir JobId 9: Start Restore Job Odzyskiwanie_danych.2010-06-13_15.51.36_14
13-cze 15:51 darkstar-dir JobId 9: Using Device "UrzadzeniePlikowe2"
13-cze 15:51 darkstar-sd JobId 9: Ready to read from volume "vol-full2-1" on device "Urzadzenie Plikowe 2" (/mnt/UrzadzeniePlikowe2).
13-cze 15:51 darkstar-sd JobId 9: Forward spacing Volume "vol-full2-1" to file:block 0:213.
13-cze 15:51 darkstar-sd JobId 9: End of Volume at file 0 on device "Urzadzenie Plikowe 2" (/mnt/UrzadzeniePlikowe2), Volume "vol-full2-1"
13-cze 15:51 darkstar-sd JobId 9: acquire.c:117 Changing read device. Want Media Type="up3_pliki" have="up2_pliki"
  device="Urzadzenie Plikowe 2" (/mnt/UrzadzeniePlikowe2)

13-cze 15:51 darkstar-sd JobId 9: Media Type change.  New read device "Urzadzenie Plikowe 3" (/mnt/UrzadzeniePlikowe3) chosen.
13-cze 15:51 darkstar-sd JobId 9: Ready to read from volume "vol-inc-1" on device "Urzadzenie Plikowe 3" (/mnt/UrzadzeniePlikowe3).
13-cze 15:51 darkstar-sd JobId 9: Forward spacing Volume "vol-inc-1" to file:block 0:346638.
13-cze 15:51 darkstar-sd JobId 9: End of Volume at file 0 on device "Urzadzenie Plikowe 3" (/mnt/UrzadzeniePlikowe3), Volume "vol-inc-1"
13-cze 15:51 darkstar-sd JobId 9: End of all volumes.
13-cze 15:51 darkstar-dir JobId 9: Bacula darkstar-dir 5.0.1 (24Feb10): 13-cze-2010 15:51:39
  Build OS:               x86_64-unknown-linux-gnu slackware Slackware 13.0.0.0.0
  JobId:                  9
  Job:                    Odzyskiwanie_danych.2010-06-13_15.51.36_14
  Restore Client:         darkstar-fd
  Start time:             13-cze-2010 15:51:38
  End time:               13-cze-2010 15:51:39
  Files Expected:         3
  Files Restored:         3
  Bytes Restored:         4,927
  Rate:                   4.9 KB/s
  FD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Restore OK

Na powyższym listingu widać jak demon magazynowania zmienia urządzenia odczytujące dane do przywrócenia. Odpowiadające temu komunikaty zostały zaznaczone pogrubioną czcionką.

O czym warto pamiętać

Przy konfigurowaniu urządzeń plikowych regułą jest, aby każdemu takiemu urządzeniu nadać unikalny typ woluminów (dyrektywa Media Type). W działaniu Virtual Backupu na urządzeniach plikowych jest to również konieczne.

Należy pamiętać o tym, że Virtual Backup wykonany z samej kopii pełnej i bez żadnej kopii przyrostowej zakończy się błędem, ponieważ nie będzie backupów składowych.

Czas rozpoczęcia i czas zakończenia Virtual Backupu pobierany jest z ostatniego backupu składowego, tak aby wynikowa kopia pełna mogła być użyta jako źródło do kopii przyrostowych i różnicowych na danych klienta.

Podsumowanie

Przedstawione i omówione przykłady są jednym ze sposobów na użycie Virtual Backupu na bazie urządzeń plikowych. Użytkownik może sam stworzyć inny plan zagospodarowania puli woluminów i urządzeń dopasowany do jego indywidualnych potrzeb.

Przykład z tego artykułu bazuje na kopiach przyrostowych, lecz nic nie stoi na  przeszkodzie użyć kopii różnicowych lub jednych i drugich do budowania kopii pełnych.


Ta strona używa plików cookies (niezbędnych do prawidłowego działania oraz analitycznych). Odmów Wybierz ciasteczka Zezwól na wszystkie (więcej informacji)