Beste babeskopia bat - script bat baino gehiago, sistema bat baino sinpleagoa

Babeskopia-sistema asko daude, baina zer egin zerbitzatutako zerbitzariak eskualde eta bezero ezberdinetan sakabanatuta badaude eta sistema eragilearekin konformatu behar baduzu?

Beste babeskopia bat - script bat baino gehiago, sistema bat baino sinpleagoa

Arratsalde on, Habr!
Nire izena Natalya da. NPO Krista-ko aplikazio-administratzaileen taldeko liderra naiz. Gure enpresaren proiektu talderako Ops gara. Egoera paregabe samarra dugu: gure softwarea instalatzen eta mantentzen dugu bai gure enpresaren zerbitzarietan, bai bezeroen guneetan kokatutako zerbitzarietan. Kasu honetan, ez dago zerbitzari osoaren babeskopia egin beharrik. "Ezinbesteko datuak" baino ez dira garrantzitsuak: DBMS eta fitxategi-sistema indibidualaren direktorioak. Jakina, bezeroek beren babeskopien araudia dute (edo ez dute) eta askotan kanpoko biltegiratze moduko bat eskaintzen dute babeskopiak bertan gordetzeko. Kasu honetan, babeskopia sortu ondoren, kanpoko biltegiratze bidalketa ziurtatzen dugu.

Denbora batez, babeskopia helburuetarako, bash script batekin egin genuen, baina konfigurazio-aukerak hazi ahala, script honen konplexutasuna proportzionalki hazi zen, eta momentu batean "lurrera suntsitu behar" genuen. ...”.

Prestatutako irtenbideak ez ziren egokiak arrazoi ezberdinengatik: babeskopiak deszentralizatzeko beharragatik, segurtasun-kopiak bezeroan lokalean gordetzeko beharragatik, konfigurazioaren konplexutasuna, inportazioaren ordezkapena, sarbide-murrizketak.

Gure zerbait idaztea errazagoa zela iruditu zitzaigun. Aldi berean, hurrengo N urteetarako gure egoerarako nahikoa izango zen zerbait lortu nahi nuen, baina balizko esparrua zabaltzeko aukerarekin.

Zereginaren baldintzak hauek izan ziren:

  1. oinarrizko babeskopia instantzia autonomoa da eta lokalean exekutatzen da
  2. babeskopien eta erregistroen biltegiratzea beti bezeroaren sarean dago
  3. instantzia bat moduluz osatuta dago - "eraikitzaile" moduko bat
  4. Gaur egungo Linux banaketarekin bateragarritasuna beharrezkoa da, zaharkituta daudenak barne, plataforma anitzeko balizko desiragarria da
  5. Instantziarekin lan egiteko, ssh bidez atzitzea nahikoa da; ez da beharrezkoa ataka gehigarriak irekitzea
  6. konfiguratzeko eta funtzionatzeko erraztasun handiena
  7. posible da (baina ez da beharrezkoa) zerbitzari ezberdinetako babeskopien egoera zentralki ikusteko aukera ematen duen instantzia bereizia izatea.

Hemen ikus dezakezu zer asmatu dugun: github.com/javister/krista-backup
Softwarea python3-n idatzita dago; Debian, Ubuntu, CentOS, AstraLinux 1.6-n funtzionatzen du.

Dokumentazioa biltegiko docs direktorioan argitaratzen da.

Sistemak funtzionatzen dituen oinarrizko kontzeptuak:
ekintza - eragiketa atomiko bat ezartzen duen ekintza (datu-basearen babeskopia, direktorioen babeskopia, A direktoriotik B direktoriora transferitzea, etab.). Dauden ekintzak core/actions direktorioan daude
ataza - ataza, "backup zeregin" logiko bat deskribatzen duen ekintza multzoa
egutegia - egutegia, zereginen exekuzio-denboraren aukerako adierazpena duen ataza multzoa

Babeskopia-konfigurazioa yaml fitxategi batean gordetzen da; konfigurazio egitura orokorra:

  • Ezarpen orokorrak
  • ekintzen atala: zerbitzari honetan erabilitako ekintzen deskribapena
  • egutegiaren atala: zeregin guztien deskribapena (ekintza multzoak) eta cron-ek abiarazteko programazioa, abiarazte hori beharrezkoa bada

Konfigurazio adibide bat hemen aurki daiteke

Zer egin dezake aplikazioak gaur egun:

  • Guretzako eragiketa nagusiak onartzen dira: PostgreSQL backup pg_dump bidez, fitxategi-sistemaren direktorioa tar bidez; kanpoko biltegiratzeko eragiketak; direktorioen arteko rsync; babeskopia biraketa (kopia zaharrak ezabatuz)
  • kanpoko script bati deitzea
  • aparteko zeregin baten eskuz burutzea
    /opt/KristaBackup/KristaBackup.py run make_full_dump
  • ataza bakar bat edo egitarau osoa gehitu (edo kendu) dezakezu crontab-era
    /opt/KristaBackup/KristaBackup.py enable all
  • babeskopien emaitzetan oinarrituta abiarazte fitxategi bat sortzea. Funtzio hau erabilgarria da Zabbixekin batera babeskopiak kontrolatzeko
  • atzeko planoan lan egin dezake webapi edo web moduan
    /opt/KristaBackup/KristaBackup.py web start [--api]

Moduen arteko aldea: webapi-k ez du web interfazerik berez, baina aplikazioak beste instantzia bateko eskaerei erantzuten die. Web moduan, flask eta hainbat pakete gehigarri instalatu behar dituzu, eta hori ez da onargarria leku guztietan, adibidez AstraLinux SE ziurtatuan.

Web interfazearen bidez, konektatutako zerbitzarien babeskopien egoera eta erregistroak ikus ditzakezu: "web-instantzia"-k "backup-instantzia"-en datuak eskatzen ditu APIaren bidez. Webera sartzeko baimena behar da, webapirako sarbidea ez.

Beste babeskopia bat - script bat baino gehiago, sistema bat baino sinpleagoa

Babeskopia okerren erregistroak kolorez markatzen dira: abisua - horia, errorea - gorria.

Beste babeskopia bat - script bat baino gehiago, sistema bat baino sinpleagoa

Beste babeskopia bat - script bat baino gehiago, sistema bat baino sinpleagoa

Administratzaileak ez badu behar parametroei buruzko iruzur orririk eta zerbitzariaren sistema eragileak homogeneoak badira, fitxategia konpila dezakezu eta prest egindako paketea banatu dezakezu.

Erabilgarritasun hau Ansibleren bidez banatzen dugu batez ere, lehenik eta behin garrantzi gutxieneko zerbitzari batzuetara zabalduz, eta gainerako guztiei probatu ondoren.

Ondorioz, kopia-erabilgarritasun trinko eta autonomo bat jaso genuen, automatizatu daitekeena eta esperientziarik gabeko administratzaileek ere erabil dezaketena. Erosoa da guretzat - agian zuretzat ere erabilgarria izango al zaizu?

Iturria: www.habr.com

Gehitu iruzkin berria