Belajar Bacula - Konsep Dasar & Arsitektur Utama
Episode 2 of 23

Belajar Bacula - Konsep Dasar & Arsitektur Utama

Episode ini membedah arsitektur Bacula: Director sebagai pengontrol job, Storage Daemon sebagai pengelola media, File Daemon sebagai agen client, dan Catalog sebagai database metadata. Kalian juga mengenal komponen bacula-dir, bacula-sd, bacula-fd, bconsole, konfigurasi di /etc/bacula/, serta peran resource Job/Client/FileSet/Pool/Schedule/Storage.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

Di episode 1 kita memahami sejarah dan alasan Bacula ada. Sekarang saatnya membedah anatomi sistemnya: apa saja komponen yang hidup di sebuah deployment Bacula, bagaimana mereka berbicara satu sama lain, dan di mana konfigurasi disimpan. Tanpa peta mental ini, setiap error Failed to connect atau Authorization problem akan terasa seperti teka-teki.

Di episode 2 kita menjawab tiga pertanyaan: siapa melakukan apa, apa yang dikirim antar komponen, dan bagaimana resource di /etc/bacula/ mengikat semuanya menjadi satu kebijakan backup.

Arsitektur Empat Komponen

Bacula memisahkan tugas menjadi empat peran yang berjalan sebagai daemon terpisah:

Alur data backup Bacula
+----------+    command    +----------+
|  bconsole| ------------->|  Director|--> Catalog (DB)
+----------+               +----+-----+
                                | schedule/job
                                v
+----------+   data push   +----------+
|  File    | ------------> | Storage  |
|  Daemon  |<---- control--|  Daemon  |
+----------+               +----------+

Alur backup sederhananya: Director menjadwalkan job dan memberitahu File Daemon dan Storage Daemon apa yang harus dikerjakan; File Daemon membaca file di client lalu mengirim data ke Storage Daemon; saat selesai, Director mencatat metadata ke Catalog.

Director

Director adalah otak sistem. Ia membaca konfigurasi bacula-dir.conf, menjadwalkan job, memutuskan volume mana yang dipakai, dan mengoordinasikan seluruh proses. Director tidak pernah menyentuh data backup secara langsung — ia hanya mengirim instruksi. Jika Director mati, backup terjadwal berhenti, tetapi data yang sudah ada di media tetap aman.

Storage Daemon (SD)

Storage Daemon adalah tangan yang menyentuh media. Ia bertanggung jawab menulis dan membaca data ke device — bisa direktori di disk, tape, atau autoloader. Konfigurasinya ada di bacula-sd.conf. Setiap SD punya satu atau lebih Device resource yang mendeskripsikan media fisik dan cara mengaksesnya.

File Daemon (FD)

File Daemon adalah mata dan telinga di sisi client. Ia berjalan di setiap mesin yang dibackup, membaca file berdasarkan FileSet, dan mengirimkan data ke Storage Daemon atas perintah Director. Karena FD harus berjalan di mesin yang sama dengan data, setiap client — termasuk server Bacula itu sendiri — butuh FD sendiri.

Catalog

Catalog adalah ingatan Bacula: database berisi metadata setiap file yang pernah dibackup (nama, ukuran, checksum, lokasi di volume), riwayat job, dan status media. Dukungan database di Community: PostgreSQL, MySQL, dan SQLite. Metadata ini yang memungkinkan bconsole melakukan restore file tunggal tanpa tahu persis di volume mana file itu berada.

Note

Catalog menyimpan metadata, bukan salinan data. Data asli berada di volume media; jika Catalog rusak, kalian masih punya data di media tapi harus melakukan catalog recovery (episode 16) agar bisa di-restore per file.

Komponen Perangkat Lunak

Satu instalasi Bacula menghasilkan beberapa binary:

  • bacula-dir — daemon Director; port default 9101.
  • bacula-sd — daemon Storage; port default 9102.
  • bacula-fd — daemon File; port default 9103.
  • bconsole — konsol interaktif untuk mengendalikan Director.

Ketiga daemon dan bconsole berkomunikasi menggunakan password bersama yang didefinisikan di tiap file konfigurasi — inilah sistem autentikasinya (dibahas di episode 12).

Konfigurasi di /etc/bacula/

Semua konfigurasi diletakkan di direktori /etc/bacula/. Standarnya:

Isi /etc/bacula/ khas
/etc/bacula/
├── bacula-dir.conf      # Director: Job, Client, FileSet, Pool, Schedule, Catalog
├── bacula-sd.conf       # Storage Daemon: Device, Storage
└── bacula-fd.conf       # File Daemon: Client, Director

Bacula mengenali dua direktif utama: Director (alur ke Director) dan Director {} sebagai resource. Jangan tertukar — Director di bacula-fd.conf dan bacula-sd.conf adalah resource yang mendefinisikan siapa yang boleh terhubung ke daemon tersebut, sedangkan di bacula-dir.conf resource Director {} mendefinisikan siapa yang boleh mengakses Director.

Resource Utama di bacula-dir.conf

Seluruh kebijakan backup diekspresikan lewat resource. Enam resource paling inti:

Job

Mendefinisikan pekerjaan: client apa, FileSet apa, pool apa, schedule apa, dan job type apa.

Contoh resource Job
Job {
  Name = "BackupClient"
  Type = Backup
  Client = client-fd
  FileSet = "Set Web"
  Schedule = "WeeklyCycle"
  Storage = FileStorage
  Pool = FilePool
}

Client

Mengidentifikasi satu File Daemon yang bisa di-backup — dengan alamat dan password-nya.

Contoh resource Client
Client {
  Name = client-fd
  Address = 10.0.0.12
  FDPort = 9103
  Password = "rahasia-fd"
}

FileSet

Mendefinisikan file apa saja yang di-backup dan aturan include/exclude-nya (episode 5).

Pool

Kumpulan volume tempat data ditulis, lengkap dengan retention dan label (episode 6).

Schedule

Aturan kapan job berjalan — full mingguan, incremental harian, dst (episode 7).

Storage

Menghubungkan Director ke Storage Daemon tertentu.

Contoh resource Storage
Storage {
  Name = FileStorage
  Address = 127.0.0.1
  SDPort = 9102
  Password = "rahasia-sd"
  Device = "FileStorage"
  MediaType = File
}

Cara Membaca Alur Sebuah Backup

Saat sebuah job Backup dijalankan, urutan kerjanya kira-kira:

  1. Director membaca resource Job untuk menemukan Client, FileSet, Pool, dan Storage.
  2. Director menghubungi Storage Daemon dan memastikan ada volume yang tersedia.
  3. Director menghubungi File Daemon dan memberitahunya FileSet yang harus dibaca.
  4. File Daemon membaca file di client dan mengirim data ke Storage Daemon.
  5. Storage Daemon menulis data ke volume dan mengirim statistik kembali ke Director.
  6. Director mencatat seluruh metadata ke Catalog dan menutup job.

Rangkaian ini terjadi untuk setiap job — dan menjelaskan mengapa autentikasi antar daemon harus benar, karena ketiganya saling terhubung langsung.

Important

Ingat arah datanya: File Daemon mengirim data ke Storage Daemon, bukan Director yang menarik. Director hanya pengatur lalu lintas. Ini berarti bandwidth backup terjadi antara client dan storage — pastikan rute jaringan keduanya tidak melewati bottleneck yang tidak perlu.

Penutup

Inti yang harus dibawa pulang:

  • Empat komponen: Director (otak), Storage Daemon (media), File Daemon (client), Catalog (metadata).
  • Port default: 9101 (Director), 9102 (Storage), 9103 (File).
  • Konfigurasi di /etc/bacula/: bacula-dir.conf, bacula-sd.conf, bacula-fd.conf.
  • Kebijakan diekspresikan lewat resource Job/Client/FileSet/Pool/Schedule/Storage.
  • Alur backup: Director mengoordinasikan, FD mengirim data ke SD, Catalog mencatat metadata.

Di episode 3 selanjutnya kita akan menginstall Bacula 15.0.4 dan menulis konfigurasi minimal — memasang paket bacula-*, membuat database catalog, menjalankan tiga daemon, lalu memvalidasi bacula-dir.conf dengan bacula-dir -t. Inilah momen pertama sistem backup kalian benar-benar hidup!