De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Bacula - Gestão de Backup Distribuida - Prática

Colaboração: Alexandro Silva

Data de Publicação: 30 de março de 2010

Existe uma vasta terminologia usada no Bacula. Para mais informações acesse Terminology

Ele é um sistema totalmente distribuido sendo formado por 3 daemons (Director, Storage e FileDaemon). Os 2 primeiros não necessariamente precisam estar em máquinas separadas, enquanto que o FD precisa ser instalado em todas as máquinas clientes.

Bacula Director

Responsável por supervisionar todas as operações de backup, restauração, verificação e as operações dos arquivos.

Bacula Storage

Responsável pelo armazenamento, leitura e escrita em fita ou outros meios de armazenamento, por exemplo arquivos.

Bacula File Daemon

Este é o cliente do Bacula.

Instalação e Configuração Básica

Agora apresentarei de uma forma bem simples a instalação e configuração do Bacula. Recomendo uma profunda leitura da documentação. O bom entendimento de sua infra-estrutura e da política adotada facilitará muito na configuração e manutenção da rotina de backup.

No Debian a instalação desta ferramenta é bastante simples. Execute o comando abaixo para instalar todos os daemons:

  aptitude install bacula-director bacula-sd bacula-fd

Configurando o Bacula Director

Edite o arquivo /etc/bacula/bacula-dir.conf

  Director {                 # define myself
  Name = backup-dir
  DIRport = 9101             # where we listen for UA connections
  QueryFile = "/etc/bacula/scripts/query.sql"
  WorkingDirectory = "/var/lib/bacula"
  PidDirectory = "/var/run/bacula"
  Password = "Console/iA6pwbPuT2zUt/hbyE2123123132123" # Console password
  Messages = Daemon
  DirAddress = 123.123.123.123
  }
  
  ## Clients
  
  Job {
  Name = "Job-server-01"
  Client = server-01-fd
  Type = Backup
  FileSet = "Server 01 Set"
  Schedule = "PeriodicidadeSemanal"
  Messages = Standard
  Pool = Default
  Full Backup Pool = "Full_server-01"
  Differential Backup Pool = "Diff_server-01"
  Write Bootstrap = "/var/lib/bacula/server-01_new.bsr"
  }
  
  ## Backup Catalog
  
  Job {
  Name = "BackupCatalog"
  Client = server-2-fd
  Type = Backup
  FileSet="Catalog"
  Schedule = "PeriodicidadeSemanalCatalog"
  Messages = Standard
  Storage = Storage-Server2
  Pool = "Catalog_Backup"
  RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup bacula"
  RunAfterJob  = "/etc/bacula/scripts/delete_catalog_backup"
  Write Bootstrap = "/var/lib/bacula/BackupCatalog_new.bsr"
  }
  
  ## Restore Job
  
  Job {
  Name = "Server-01_Restore"
  Type = Restore
  Client = server-01-fd
  FileSet = "Server 01 Set"
  Pool = Default
  Messages = Standard
  Where = "/var/bacula/restore/b_server-01"
  Bootstrap = "/var/lib/bacula/server-01_new.bsr"
  }
  
  # Backup Files
  
  FileSet {
  Name = "Server 01 Set"
  Include {
    Options {
      signature = MD5
      compression = GZIP
    }
    File = /etc
    File = /var/bkpdb
  }
  Exclude {
    File = /tmp
  }
  }
  
  #Schedules
  
  Schedule {
  Name = "PeriodicidadeSemanal"
  Run = Level=Full on sun at 23:00
  Run = Level=Differential on mon-sat at 23:00
  }
  
  Schedule {
  Name = "PeriodicidadeSemanalCatalog"
  Run = Level=Full on sun at 07:00
  Run = Level=Differential on mon-sat at 07:00
  }
  
  # Clients FD
  
  Client {
  Name = Server-1-fd
  Address = 123.123.123.123
  FDPort = 9102
  Catalog = MyCatalog
  Password = "Nlw2vp555z4vepasdasdasddasdda"
  File Retention = 30 days
  Job Retention = 30 days
  Autoprune = yes
  }
  
  #Storage
  
  Storage {
  Name = Storage-Server2
  Address = 123.13.12.3123        # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "Nlw2vp555z4veqweqweqweqwY"
  Device = FileStorage
  Media Type = File
  }
  
  #Pool Server 01
  
  Pool {
    Name = Full_Server-01
    Pool Type = Backup
    Storage = FullStorage
    Maximum Volume Jobs = 1
    Maximum Volume Bytes = 6g
    Recycle = yes
    AutoPrune = yes
    Volume Retention = 2 weeks
    Maximum Volumes = 5
    LabelFormat = "F_server-01_${Year}-${Month}-${Day}_${Hour}.${Minute}.${Second}"
  }
  
  Pool {
    Name = Diff_server-01
    Pool Type = Backup
    Storage = DiffStorage
    Maximum Volume Jobs = 1
    Maximum Volume Bytes = 6g
    Recycle = yes
    AutoPrune = yes
    Volume Retention = 2 weeks
    Maximum Volumes = 7
    LabelFormat = "D_server-01_${Month}-${Day}"
  }
Blog do Autor: http://blog.alexos.com.br

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Alexandro Silva