Bacula a pomalé zálohování

Jan Krajdl spm na spamik.cz
Sobota Únor 12 13:50:18 CET 2011


Ahoj,
v práci nasazujeme na zálohování baculu a dostal jsem se do takového problému. Dosud se zálohovaly jen stroje, kde moc
dat nebylo a vše bylo v pořádku. V pátek jsem přidal další dva, kde už dat je poněkud více (řádově cca 200GB na
stroj). A při zálohování jsem narazil na problém - pustím ručně job v consoli a záloha se spustí. Prvních několik sekund
jede vše jak má - data na SD přibývají poměrně rychle, na klientovi je vidět, že proces bacula-fd pracuje. Avšak po
chvíli se to rázně zpomalí - bacula-fd se začne flákat (avg 2% CPU) a data tečou strašně pomalu. Občas se stane, že se
to zase na chvíli rozjede, ale moc dlouho to netrvá. Záloha takhle pak trvá skoro několik dní.

Co jsem našel na googlu, tak jediná rada bylo používání spoolu. To jsem zkusil, ale výsledek byl stejný.

Co se týče konfigurace, tak directoru a sd mám spolu na jednom stroji. Úložiště pro zálohování je připojeno přes
iSCSI. Stroj s directorem je debian squeeze, balíčky z repozitáře. Ze zálohovaných strojů je jeden squeeze a druhý lenny
s baculou z backportů. Při zálohování byla zaplá komprese a TLS šifrování - při zkoušení jsem postupně obojí vypnul, ale
též se nic nezměnilo (krom toho, že s kompresí se do sd přenese před zpomalením řádově desítky MB, bez komprese pár
stovek). Konfigurace kliena v directoru:
Client {
  Name = posta
  Address = posta
  FDPort = 9102
  Catalog = BaculakCat
  Password = "heslo"
  File Retention = 1 month
  Job Retention = 1 month
  AutoPrune = yes
#  TLS Enable = yes
#  TLS Require = yes
#  TLS CA Certificate File = "/etc/bacula/ca.pem"
#  TLS Certificate = "/etc/bacula/baculak.pem"
#  TLS Key = "/etc/bacula/baculak.key"
}
Pool {
  Name = PostaFullPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Label Format = "posta-"
  Recycle Current Volume = yes
  Recycle Oldest Volume = yes
  Volume Retention = 30 days
  Volume Use Duration = 1 days
} 
Pool {
  Name = PostaIncPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Label Format = "posta-"
  Recycle Current Volume = yes
  Recycle Oldest Volume = yes
  Volume Retention = 7 days
  Volume Use Duration = 1 days
} 
FileSet {
  Name = "Posta Files"
  Include {
    Options {
      signature = MD5
#      Compression = GZIP
    }
    File = /home/exim
    File = /var/backups
  } 
} 
Job {
  Name = "PostaFiles"
  Pool = PostaFullPool
  Incremental Backup Pool = PostaIncPool
  Client = "posta"
  Type = "Backup"
  Level = "Incremental"
  FileSet = "Posta Files"
  Schedule = "DailyInc"
  Storage = BaculakStorage2Servers
  Messages = Standard
#  Spool Attributes = yes
#  Spool Data = yes
}

A konfigurace FD na klientovi:
Director {
  Name = baculak-dir
  Password = "heslo"
  TLS Enable = no
#  TLS Require = yes
#  TLS Verify Peer = yes
#  TLS Allowed CN = "baculak"
#  TLS CA Certificate File = "/etc/bacula/ca.pem"
#  TLS Certificate = "/etc/bacula/posta.pem"
#  TLS Key = "/etc/bacula/posta.key"
}

FileDaemon {                          # this is me
  Name = posta-fd
  FDport = 9102                  # where we listen for the director
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Maximum Concurrent Jobs = 20
  FDAddress = ip
#  TLS Enable = no
#  TLS Require = yes
#  TLS CA Certificate File = "/etc/bacula/ca.pem"
#  TLS Certificate = "/etc/bacula/posta.pem"
#  TLS Key = "/etc/bacula/posta.key"
}

Messages {
  Name = Standard
  director = baculak-dir = all, !skipped, !restored
}

Výkonnově by nic nikde bránit nemělo - síť je propustná dost, QoS na ní není, CPU na stroji s directorem je OK, I/O v
pořádku na obou strojích. Nesetkal se někdo s tím, případně neví, co by mohlo zálohování takhle drasticky zpomalit?

Díky,
-- 
Jan Krajdl


Další informace o konferenci Linux