Bacula

A Bacula egy biztonságimentés-készítő program, amely lehetővé teszi az adatok mentését, visszaállítását és ellenőrzését a hálózatán. Léteznek Bacula kliensek Linux, Windows és Mac OSX rendszerekre is, ezzel keresztplatformos hálózati megoldássá emelve azt.

Áttekintés

A Bacula több, a mentendő fájlok és a mentési hely kezelésére szolgáló összetevőből és szolgáltatásból áll:

  • Bacula Director: ez a szolgáltatás vezérli az összes mentési, visszaállítási, ellenőrzési és archiválási műveletet.

  • Bacula Console: ez az alkalmazás lehetővé teszi a kommunikációt a Directorral. A konzolnak három változata van:

    • Szövegalapú parancssori verzió.

    • Gnome-alapú GTK+ felület.

    • wxWidgets grafikus felület.

  • Bacula File: ez ismert Bacula Client programként is. Ezt az alkalmazást a mentendő gépekre kell telepíteni, és a Director által kért adatokért felelős.

  • Bacula Storage: az adatok fizikai adathordozóra mentését és visszaállítását végrehajtó programok.

  • Bacula Catalog: az összes mentett fájl fájlindexeinek és kötetadatbázisainak karbantartásáért felelős, lehetővé téve az összes archivált fájl gyors megkeresését és visszaállítását. A Catalog három különböző adatbázis-kezelőt támogat, ezek a MySQL, PostgreSQL és SQLite.

  • Bacula Monitor: lehetővé teszi a Director, a File démonok és a Storage démonok megfigyelését. A Monitor jelenleg csak GTK+ felületű alkalmazásként érhető el.

Ezek a szolgáltatások és alkalmazások több kiszolgálón és kliensen is futhatnak, vagy telepíthetők egy gépre is, ha csak egy lemezt vagy kötetet kell menteni.

Telepítés

A különböző Bacula összetevőket több csomag tartalmazza. A Bacula telepítéséhez adja ki a következő parancsot:

sudo apt-get install bacula

Alapértelmezésben a bacula csomag egy MySQL adatbázist használ a Cataloghoz. Ha inkább a SQLite vagy PostgreSQL egyikét szeretné használni, akkor telepítse a bacula-director-sqlite3 vagy bacula-director-pgsql csomagot.

A telepítési folyamat bekéri az adatbázis adminisztrátorának és a bacula adatbázis tulajdonosának hitelesítési adatait. Az adatbázis adminisztrátorának rendelkeznie kell az adatbázis létrehozásához szükséges jogosultságokkal, további információkért lásd a „MySQL” szakaszt.

Beállítás

A Bacula konfigurációs fájljai a „{}” zárójelekkel határolt direktívákból álló erőforrások alapján vannak formázva. Minden Bacula-összetevőhöz tartozik egy önálló fájl az /etc/bacula könyvtárban.

A különböző Bacula-összetevőknek fel kell hatalmazniuk magukat egymás felé. Erre szolgál a password direktíva. A Storage erőforrás jelszavának például az /etc/bacula/bacula-dir.conf fájlban meg kell egyeznie a Director erőforrás jelszavával az /etc/bacula/bacula-sd.conf fájlban.

Alapértelmezésben a Client1 nevű háttérfeladat alapértelmezésben be van állítva a Bacula Catalog archiválására. Ha a kiszolgálóval több kliens mentését tervezi, akkor a feladat nevét valamivel jellegzetesebbre kell módosítania. A név módosításához szerkessze az /etc/bacula/bacula-dir.conf fájlt:

#
# Az elsődleges éjszakai mentési feladat definiálása
#   Ez a feladat alapértelmezésben a lemezre ment 
Job {
  Name = "BackupServer"
  JobDefs = "DefaultJob"
  Write Bootstrap = "/var/lib/bacula/Client1.bsr"
}
[Megjegyzés]

A fenti példa a feladat nevét BackupServerre változtatta, a gépnévnek megfelelően. A „BackupServer” helyett saját gépének nevét használja, vagy más leíró nevet.

A Console segítségével lekérdezhetők a feladatok a Directortól, de a Console nem root felhasználóval való használatához a felhasználónak a bacula csoportban kell lennie. Adja ki a következő parancsot felhasználó felvételéhez a bacula csoportba:

sudo adduser felhasználónév bacula
[Megjegyzés]

A felhasználónév helyére a tényleges felhasználónevet írja. Ha az aktuális felhasználót adja hozzá, akkor ki, majd újra be kell jelentkeznie az új jogosultságok életbe lépéséhez.

Helyi gép mentése

Ez a szakasz leírja, hogyan mentheti egyetlen gép megadott könyvtárait helyi szalagos meghajtóra.

  • Elsőként a tároló eszközt kell beállítani. Szerkessze az /etc/bacula/bacula-sd.conf fájlt, és vegye fel a következőket:

    Device {
      Name = "Tape Drive"
      Device Type = tape
      Media Type = DDS-4
      Archive Device = /dev/st0
      Hardware end of medium = No;
      AutomaticMount = yes;               # az eszköz beolvasása a megnyitásakor
      AlwaysOpen = Yes;
      RemovableMedia = yes;
      RandomAccess = no;
      Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
    }
    

    A példa egy DDS-4 szalagos meghajtóhoz készült. Módosítsa a Media Type és Archive Device sorokat a hardverének megfelelően.

    A fájl további példáinak egyikét is kiveheti megjegyzésből.

  • Az /etc/bacula/bacula-sd.conf fájl szerkesztése után újra kell indítani a Storage démont:

    sudo /etc/init.d/bacula-sd restart
    
  • Most vegyen fel egy Storage erőforrást az /etc/bacula/bacula-dir.conf fájlba az új eszköz használatához:

    # A "TapeDrive" tárolóeszköz meghatározása
    Storage {
      Name = TapeDrive
      # Ne használja a "localhost" értéket    
      Address = backupserver               # Itt teljes képzésű nevet használjon
      SDPort = 9103
      Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj"
      Device = "Tape Drive"
      Media Type = tape
    }
    

    Az Address direktívának a kiszolgáló teljes képzésű tartománynevét kell tartalmaznia. A backupserver helyére a tényleges gépnevet írja.

    Győződjön meg róla, hogy a Password direktíva az /etc/bacula/bacula-sd.conf fájlban lévővel azonos jelszót tartalmaz.

  • A következők hozzáadásával hozzon létre egy új FileSet erőforrást, amely meghatározza a mentendő könyvtárakat:

    # LocalhostBacup FileSet.
    FileSet {
      Name = "LocalhostFiles"
      Include {
        Options {
          signature = MD5
          compression=GZIP
        }
        File = /etc
        File = /home
      }
    }
    

    Ez a FileSet az /etc és /home könyvtárakat menti. Az Options erőforrás direktívái megadják, hogy a FileSet hozzon létre minden mentett fájlhoz MD5 aláírást, és a fájlokat GZIP használatával tömörítse.

  • Ezután hozzon létre egy új Schedule erőforrást a mentési feladathoz:

    # LocalhostBackup ütemezés - napi.
    Schedule {
      Name = "LocalhostDaily"
      Run = Full daily at 00:01
    }
    

    A feladat minden nap éjfél és dél után egy perccel fut le. Számos további ütemezési beállítás is elérhető.

  • Végül hozza létre a Job erőforrást:

    # Helyi gép mentése.
    Job {
      Name = "LocalhostBackup"
      JobDefs = "DefaultJob"
      Enabled = yes
      Level = Full
      FileSet = "LocalhostFiles"
      Schedule = "LocalhostDaily"
      Storage = TapeDrive
      Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr"
    }  
    

    A feladat minden nap teljes mentést végez a szalagos meghajtóra.

  • Minden felhasznált szalaghoz szükség van egy címkére. Ha az aktuális szalagnak nincs címkéje, akkor a Bacula e-mailben értesíti erről. Adja ki a következő parancsot szalag felcímkézéséhez a Console használatával:

    bconsole
    
  • A Bacula Console parancssorában adja ki a következőt:

    label
    
  • Ez rákérdez a Storage erőforrásra:

    
    Automatically selected Catalog: MyCatalog
    Using Catalog "MyCatalog"
    The defined Storage resources are:
         1: File
         2: TapeDrive
    Select Storage resource (1-2):2
    
    
  • Adja meg az új Volume nevet:

    
    Enter new Volume name: Vasárnap
    Defined Pools:
         1: Default
         2: Scratch
    

    A Vasárnap helyére a kívánt címkét írja.

  • Most válassza ki a Pool-t:

    
    Select the Pool (1-2): 1
    Connecting to Storage daemon TapeDrive at backupserver:9103 ...
    Sending label command for Volume "Sunday" Slot 0 ...
    
    

Gratulálunk, ezzel elkészült a Bacula beállításával a helyi gép biztonsági mentésére a géphez kapcsolt szalagos meghajtóra.

Információforrások