Bacula: rädsla för vampyrer

Hej alla.

Jag ville berätta lite om bacula, det programmet som alla är rädda för eftersom det är för stort för dem och / eller vid första anblicken verkar det komplicerat.

Det är verkligen ett fantastiskt program, men när de förklarar (ungefär) hur det fungerar går allt smidigt.

Inledning

Bacula är ett program som hanterar säkerhetskopior (säkerhetskopior på spanska). Dess enorma potential ligger i hur väl den hanterar och automatiserar säkerhetskopieringsuppgifter, särskilt i stora miljöer (se flerserverunderhåll).

Det är sant att om du bara vill säkerhetskopiera din persondator, glöm det, det tar för lång tid att konfigurera den. Men om du befinner dig i stället att behöva hantera flera datorer / servrar är Bacula din lösning. Först måste du spendera många timmar, men när du har lämnat allt konfigurerat kan år gå utan att du behöver röra igen. när du väl har lärt dig att använda den blir ändringarna du gör små och enkla.

Arkitektur

Det första man ska förstå om detta program är dess diversifiering: det är uppdelat i flera delar som är inbördes relaterade. Dessa delar kan installeras på olika maskiner eller på samma, vilket ger möjlighet att spara säkerhetskopior på en annan maskin än den som hanterar dem (till exempel).

Det finns tre huvuddelar, var och en är också ett annat installationspaket: Director, Storage och File. Som du kan härleda, Fil är klientmaskinen (den som behöver kopior), den lagring är maskinen som lagrar dessa kopior och Direktör det är maskinen som orkestrerar hela processen. Naturligtvis kan det finnas flera klientdatorer (File), flera lagringsutrymmen (om du vill separera kopiorna) och Director (även om det logiska är en, kan du ange flera).

Filer, verktyg och demoner

Om allt detta är automatiserat är det med hjälp av demoner. Varje del har sin egen demon: bacula-director, bacula-fd (file-daemon) och bacula-sd (storage-daemon). Och varje demon fungerar enligt dess filinställningar, värd i / etc / bacula: bacula-dir.conf, bacula-fd.conf, bacula-sd.conf.

Dessa konfigurationsfiler genereras automatiskt under installationen, och endast ett par parametrar behöver ändras (IP för fjärrmaskinen, egna certifikat, automatisk säkerhetskopieringsplanering ...). Regissörens konfiguration är den svåraste och mest omfattande, eftersom han är den som tar hand om allt; normalt är den uppdelad i flera filer för att inte bryta ett huvud, då är de alla i huvudfilen sammanfogade (liknar innefattar Apache2).

Nu, även om konfigurationsfilerna är där alla "chicha" är, erbjuder bacula oss flera verktyg för sin hantering, eftersom det ofta kommer att vara nödvändigt att utföra uppgifter "för hand". Jag ska bara fokusera på konsolverktyget bkonsol, eftersom det är det mest användbara och även resten (graferna) baseras på det. Som namnet antyder är det en kommandotolk som interaktivt låter dig utföra olika jobb.

Det bör sägas att det finns flera webbtjänster som man kan installera på Director-maskinen för hantering och övervakning av Bacula. Till exempel erbjuder Bacula-Web dig med grafer och tabeller information om status för säkerhetskopior, lagring ockupation ... etc.

Det bör också nämnas att driften av Bacula baseras på en katalog: en databas (att välja mellan MySQL, SQLite och PostgreSQL) där alla händelser, volymer, klienter spelas in ... Denna databas bör inte beröras för hand genom bkonsol Olika kommandon tillhandahålls för att interagera med katalogen utan att använda SQL-syntax.

säkerhet

En av styrkorna med Bacula är säkerhet. Varje klient, lagring och direktör har sin egen nyckel, och beroende på anslutningen krypteras den med den nyckeln. Alla kan uppfinna denna nyckel efter eget tycke, även om själva programmet genererar ett slumpmässigt antal på 30 tecken.

Förutom den kryptering som tillhandahålls av programmet accepterar Bacula säkra anslutningar genom användning av TLS. Därför måste vi lägga till en ny kryptering av certifikat och SSL-nyckel till vår tidigare kryptering. Om vi ​​blir mer allvarliga måste ett unikt certifikat och nyckel skapas för varje maskin. Denna del av installationen är lite mer komplex.

Volymer

Jag kommer att lägga lite tonvikt på hur kopiorna hanteras genom katalogen, eftersom det kan vara lite förvirrande först.

Kopiorna förvaras i krypterade volymer, så man kan inte direkt komma åt filerna. Det är ett slags .tar.gz (eftersom det stöder komprimering), men dess eget; utan katalogen är det omöjligt att rädda data. Det finns avancerade verktyg för detta, men de behöver alltid någon del av databasen, och för nybörjare blir de mycket komplexa. Det är därför som katalogen måste skämmas bort och tas om hand (som standard gör Bacula sin egen säkerhetskopia av katalogen efter att ha slutfört de jobb som den hade planerat).

För att hjälpa oss att organisera flera säkerhetskopior grupperar Bacula Volymer i pooler. Till exempel definieras en pool per klient, så alla kopior (volymer) för varje klient kan enkelt differentieras eftersom de tillhör olika familjer (pooler).

Dessutom stöder Bacula återanvändning / återvinning av volymer. Så om du bara vill ha en fullständig säkerhetskopiering varje månad, men bara vill att en ska finnas, kan du konfigurera Bacula så att den skriver över den volym som tidigare innehöll den kopian, så du undviker att fylla disken i onödan och glömmer att behöva radera data själv. gamla för hand.

Kopiera nivå och återställer

Man kan definiera olika jobb med sina respektive scheman. Med andra ord, om vi gör en fullständig säkerhetskopia varje dag, skulle våra underhållsuppgifter inte vara särskilt effektiva ... men Bacula tillåter oss upp till 3 olika nivåer när vi tar säkerhetskopior: Full, Differential och Incremental.

Full säkerhetskopia är den klassiska kopian, allt du vill säkerhetskopiera kopieras. Medan Differential bara kopierar de filer som har ändrats (eller de nya) sedan förra Fullhuset. Med inkrementella kopior händer samma sak men en nivå lägre, det jämförs bara ändringarna sedan den senaste Differentialen, eller sedan den senaste Full om den är nyare. Detta är väldigt bekvämt om du vill upprätthålla en balans mellan optimering av resurser och deras nytta. Med detta kan vi få filer med olika datum utan att ta upp mycket utrymme. Det är mycket användbart när någon trasslar och behöver en specifik säkerhetskopia under en dag.

Ett exempel: vi planerar stegvisa säkerhetskopior varje dag, Differential varje vecka och Full varje månad. Om vi ​​när som helst behöver använda dessa kopior (eftersom en av våra klientmaskiner har kraschat) måste vi helt enkelt göra ett återställningsjobb (genom bkonsol) att kunna ange den senaste kopian för ett visst datum, och Bacula ensam kommer att montera ett katalogträd baserat på sammankopplingen av den senaste Full med ändringarna som bidragits av Differential och Incremental.

automation

Här kommer den starka punkten i Bacula. Alla säkerhetskopieringsuppgifter är schemalagda i regissören och medger också prioritetsnivåer. Därför är det normalt att planera flera uppgifter för samma dag och tid. När direktören har anslutit sig till klientmaskinen (med sin FileDaemon) sätter han honom i kontakt med lagringen som är associerad med uppgiften, förbereder den krypterade anslutningen och filerna som ska kopieras.

Dessutom låter det dig inte bara ange vilka filer / mappar som ska kopieras, det stöder också körning av kommandon / skript före, under och efter varje jobb. Därför, om man vill göra en säkerhetskopia av en databas, kan du ange sökvägen för skriptet som ger dig dumpningen och senare kopiera den dumpningen. Det låter dig också ange vilka filer som ska kopieras på ett generiskt sätt och kunna lägga till mer specifika filer från själva klientmaskinen. Det är normalt att ha en gemensam FileSet för alla UNIX-system (där mapparna som ska kopieras är definierade, / etc, / usr, / home / var ...), och sedan kan varje klient specificera sina egna filer som de vill ska kopieras.

Bacula stöder också återanvändning / återvinning av volymer. Så om du bara vill ha en fullständig säkerhetskopiering varje månad, men bara vill att en ska finnas, kan du konfigurera Bacula så att den skriver över den volym som tidigare innehöll den kopian, så att du undviker att fylla disken i onödan och att du glömmer att du måste radera data själv. gamla för hand. En mycket utbredd användning är att återanvända de pooler som tilldelats inkrementella och differentiella kopior, eftersom de helt enkelt tjänar till att lagra de modifierade / nya filerna, varje gång det finns en ny Full, är dessa volymer oanvändbara, så du återanvänder dem för de nya Incrementals / Differentialer.

Och allt detta ... hur fungerar det?

Efter tegelstenen som jag just släppte kommer många att undra hur i helvete detta hanteras. Tja, ALLT anges i de ovan nämnda konfigurationsfilerna, och allt är automatiserat i dem. Efter att ha spenderat flera timmar på att konfigurera dem är det värt för livet när det väl är gjort, det blir till och med tråkigt.

Det enda som behöver göras för hand är restaureringsuppgifterna, eftersom det inte vore mycket meningsfullt att automatisera dem ... även om det kan göras. Att göra dem för hand är ändå ganska enkelt med verktyget bkonsol Flera alternativ erbjuds och du behöver bara välja detaljer. Det är också en utökad användning för att definiera poolerna för hand, därför behöver du i konfigurationsfilerna bara säga till vilken pool volymerna tillhör, utan att behöva skapa ett direktiv för att skapa / söka efter dem.

Epilog

Jag har inte gått in på tekniska detaljer eftersom det här inlägget blir mycket omfattande, jag ville också ge en global bild av hur programmet fungerar. Om jag ser mycket feedback kan jag ha en handledning.

Jag hoppas att du gillade det och tills nästa gång!


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   djägare sade

    Några länkar till webbplatsen man, för att inte nämna. 😉

    http://www.bacula.org/es/
    http://www.bacula.org/en/?page=documentation

    På senare tid är jag beroende av rsync för hushållsarbete, jag har mina repor och dokument duplicerade på stationära och bärbara datorer och jag synkroniserar dem ofta, så min bärbara dator har alltid en spegel på skrivbordet.

    För servrar antar jag att ett bra rsync-skript som drivs av cron kommer att göra tricket, men fördelen med bacula är att det sparar för revisioner, inte bara det senaste.

    1.    Wow sade

      Just nu sätter jag dem. Jag tänkte på det så snart jag skickade artikeln för granskning, men jag var tvungen att gå och hittills har jag inte gått på en dator.

    2.    Wow sade

      buah Jag tror att jag inte kan redigera ... Jag lämnar här länken till huvudreferensen i dokumentationen, att vissa kommer att engagera sig med så mycket länk ...
      http://www.bacula.org/5.2.x-manuals/en/main/main/index.html

  2.   eulalio sade

    Detta måste läsas i detalj och röd penna.

  3.   Julio Cesar sade

    Mycket bra, jag är en bacula-användare under en tid i det datacenter där jag arbetar men här använder jag en lösning så kraftfull som bacula och mycket mycket lättare när jag implementerar och konfigurerar

    BackupPC
    http://backuppc.sourceforge.net/

    För närvarande har vi migrerat nästan alla reservservrar till denna plattform

  4.   KZKG ^ Gaara sade

    För flera år sedan letade jag efter en applikation för att säkerhetskopiera mina servrar i mitt tidigare jobb ... Jag försökte med Bacula, men det är ett monster, ett utmärkt alternativ utan tvekan, men det var för mycket för vad jag behövde. Till slut programmerade jag mitt eget system (bash-skript) som gjorde precis vad jag ville 😀

  5.   Joaquin sade

    Så bra, tack för att du delar!

  6.   adiazc87 sade

    Mycket bra artikel, och jag försökte installera den men var så ansträngande att jag föredrar att göra säkerhetskopior med rsync och crontab, om du kan lägga en artikel om installation och konfiguration skulle jag uppskatta det för alltid.

    Tack för den goda förklaringen.

    1.    Wow sade

      Först måste du bestämma vilken databas du ska använda, ta en titt på den officiella dokumentationen som är ganska komplett http://www.bacula.org/5.2.x-manuals/en/main/main/Installing_Bacula.html
      Jag skulle också rekommendera dig att installera den med pakethanteraren för din distribution, till exempel med apt-get (debian-liknande) skapar du katalogen för dig själv, genom att följa ett par mycket enkla steg.
      För konfigurationen ta en titt på http://www.bacula.org/5.2.x-manuals/en/main/main/Installing_Bacula.html Eftersom konfigurationsfilerna nästan är klara behöver du bara ändra ett par saker och i bacula-dokumentationen berättar de hur du börja montera den lite efter lite för att förstå processen.
      Jag skulle vilja göra en guide, men imorgon åker jag på semester ... kanske när jag kommer tillbaka 🙂

  7.   John sade

    Mycket bra ... det hjälpte mig att börja med en personal ....

  8.   trädgårdar sade

    Bra verktyg !!! Jag visste inte det, även om det måste studeras med ett förstoringsglas, det ser intressant ut ...

    Hälsningar!

  9.   Gmontenegro sade

    Hej, jag har konfigurerat Bacula i flera veckor i det företag jag jobbar för, jag lär mig mycket av detta verktyg, det är fantastiskt. Men jag har en fråga som jag inte har kunnat lösa och jag hoppas att någon kan hjälpa mig. Kan jag lagra volymerna eller poolerna på någon extern disk för säkerhetskopiering utanför webbplatsen och sedan återställa från dessa filer?

    1.    Wow sade

      Hej, naturligtvis kan du lagra volymerna på en extern disk, men för att återställa dem måste du ha åtkomst till bconsole, för att återställa en fil måste du dekryptera volymen enligt katalogen.
      Med återställningskommandot får du en serie steg för att välja volym etc ... då kommer katalogträdet att byggas så att du kan välja filerna manuellt. Det låter dig också välja maskinen och katalogen var du ska återställa dem (det ger dig även möjlighet att återställa till källan, skriva över data, även om det inte rekommenderas).
      jag hoppas det här hjälper http://www.bacula.org/en/dev-manual/main/main/Restore_Command.html

      1.    Gmontenegro sade

        Tack för det snabba svaret. Jag ska försöka förklara mig själv med ett exempel för att klargöra bilden lite mer 😉. För närvarande är Bacula redan konfigurerad för att göra skivkopior, vad händer om jag tar en av volymerna och kopierar den direkt till en extern skiva som jag kommer att förvara utanför datacentret för att återställa vid en händelse. Är det möjligt att återställa de data som är lagrade i den här volymen om jag ansluter den externa disken igen och försöker öppna den med Bacula?.

        1.    Wow sade

          Saken är att du måste "registrera" den externa disken som en enhet i lagringsdemonkonfigurationen (bacula-sd.conf-filen) så att bacula kan se den. När detta är klart tror jag inte att du har ett stort problem ... ändå skulle jag göra tester om katalogen inte hittar volymen. Låt mig förklara, när du flyttar en volym "fysiskt" (det vill säga du flyttar filen från ditt operativsystem) vet inte katalogen detta, så du måste också ta bort volymen från katalogen. Då borde du säkert lägga till den igen i katalogen eftersom dess sökväg har ändrats, i bconsole skrivhjälp för att se en sammanfattning av kommandona som hanterar katalogen.
          Det finns två enkla lösningar om du inte vill röra med katalogen. Den första är att bacula skriver direkt till den externa disken, och när du blir trött på det lägger du till en ny enhet i bacula-sd.conf och sparar disken någon annanstans; så när du behöver återställa något återspeglas dessa volymer och är väl konfigurerade i katalogen. Det andra alternativet är att göra en återställning till den externa disken, vilket sparar filerna direkt på disken, utan kryptering eller arkivering eller komprimering eller någonting, så de kommer alltid att vara tillgängliga.

          1.    Gmontenegro sade

            Tack så mycket 🙂

          2.    Wow sade

            förresten, när du gör en återställning med bconsole, i slutet av allt får du en sammanfattning för att bekräfta, normalt väljs modalternativet (ja / mod / nej) som låter dig ändra några parametrar som redan är förkonfigurerade

  10.   andye sade

    Bacula är något som jag alltid startar men aldrig avslutar. Det gör mig enorm. Jag måste försöka ge det en ny chans en dag på grund av de möjligheter det ger.

  11.   BiteAciD sade

    Att lära sig Bacula är lite besvärligt i början, men när du väl vet hur det fungerar blir allt bättre ...
    Jag har studerat detta program i tre dagar, hanterat det från webmin, bconsola, etc ...
    Kanske skulle en mer omfattande handledning vara bra ... För min del dokumenterar jag de problem jag har stött på (för att förstå programmet).
    Exempelvis:
    - Windows-klienten när du installerar det ger dig ett åtkomstlösenord som standard, att om du ändrar det innan du ansluter till servern kommer det inte att ge dig åtkomst ... Det vill säga du måste använda samma lösenord och efter att ha känt igen enheten du kan ändra lösenordet.

    BackupPC är bra men jag tycker att Bacula verkar så robust för en produktionsmiljö med många servrar och arbetsstationer just nu.

    hälsningar

    1.    Wow sade

      Att installera och konfigurera en Windows-klient är en utmaning, men i princip fungerar allt perfekt, när du börjar komma in i TLS-konfigurationer med självsignerade certifikat ... börjar mardrömmen. Jag har lyckats, men första gången kostade det mig tid, ilska och svett!

  12.   Leopoldo sade

    Jag vill få information.

  13.   borgmästare sade

    hej bra eftermiddag.

    Jag kan hjälpa mig snälla. Jag har installerat bacula och den körs på mina servrar och säkerhetskopierar utan problem jag kan återställa. men min fråga är om det finns något sätt att spara hela operativsystemet? som en bild eller en klon på förhand tack.

  14.   Gustavo sade

    Jag gillade verkligen artikeln, tydlig, enkel, komplett och trevlig att läsa. Min fråga är: Vilken version och smak av Linux som du rekommenderar mest för Bacula? Hälsningar.

  15.   Mauricio Tobar sade

    Kära väldigt bra, artikeln med några handledning jag lyckades installera bacula i Centos 6.6, installera en klient på en Windows 7, som har kommunikation med regissören, installerar också Webmin, eftersom jag genom detta hanterar alla klient- och säkerhetskopieringskonfigurationer.
    Allt är bra tills det finns, men vid säkerhetskopiering, det fungerar inte, det gör ingenting, vänligen be om lite ljus som tänder mig att jag misslyckas, tack så mycket från Chile i förväg.

  16.   JesusJch sade

    God morgon, jag har jobbat med bacula i ett par år, jag hade inga problem, men en dag, bacula startade inte längre, jag sökte och jag kunde inte starta tjänsten, det var lätt för mig att kopiera filerna och / etc / bacula-mappen, men jag har sökt på webben och jag inser att mitt fel inte kopierade mappen där bootstrap sparades ..
    Vet du något sätt att lösa detta problem?

    Hälsningar från Mexico
    Jesus

  17.   Roberto Guevara sade

    Hej, jag försöker implementera det mellan flera servrar, men jag kan inte autentisera lagringarna, men jag kan autentisera klienterna på samma servrar. Vet någon om det är ett versionsproblem? Jag har en server med version 2.4, en annan med 5.0 och baculumweb med version 9.0
    tack