Laing backup - labaw pa sa usa ka script, mas simple kaysa usa ka sistema

Adunay daghang mga backup nga sistema, apan unsa ang buhaton kung ang mga nagsilbi nga mga server nagkatibulaag sa lainlaing mga rehiyon ug mga kliyente ug kinahanglan nimo nga buhaton ang operating system?

Laing backup - labaw pa sa usa ka script, mas simple kaysa usa ka sistema

Maayo nga hapon, Si Habr!
Ako si Natalya. Ako ang lider sa grupo sa grupo sa mga tigdumala sa aplikasyon sa NPO Krista. Kami Ops para sa grupo sa proyekto sa among kompanya. Kami adunay usa ka talagsaon nga kahimtang: among gi-install ug gipadayon ang among software sa mga server sa among kompanya ug sa mga server nga nahimutang sa mga site sa mga kliyente. Sa kini nga kaso, dili kinahanglan nga i-backup ang tibuuk nga server. Ang "esensyal nga datos" lamang ang hinungdanon: ang DBMS ug indibidwal nga mga direktoryo sa file system. Siyempre, ang mga kliyente adunay (o wala) sa ilang kaugalingon nga mga regulasyon sa pag-backup ug kanunay nga naghatag usa ka matang sa eksternal nga pagtipig alang sa pagtipig sa mga backup didto. Sa kini nga kaso, pagkahuman sa paghimo og backup, among gisiguro nga ipadala sa gawas nga pagtipig.

Sulod sa pipila ka panahon, alang sa mga katuyoan sa pag-backup, naghimo kami og usa ka bash script, apan samtang ang mga opsyon sa pag-configure mitubo, ang pagkakomplikado niini nga script mitubo nga proporsyonal, ug sa usa ka punto miabut kami sa panginahanglan nga "laglagon kini sa yuta, ug dayon ...".

Ang mga andam nga solusyon dili angay alang sa lainlaing mga hinungdan: tungod sa panginahanglan sa pag-desentralisa sa mga pag-backup, ang kinahanglanon sa pagtipig sa mga backup sa lokal sa kliyente, pagkakomplikado sa pag-setup, pagpuli sa pag-import, mga pagdili sa pag-access.

Para namo mas sayon ​​ang pagsulat sa among kaugalingon. Sa parehas nga oras, gusto nako nga makakuha usa ka butang nga igo alang sa among kahimtang sa sunod nga N ka tuig, apan adunay posibilidad nga mapalapad ang sakup.

Ang mga kondisyon sa buluhaton mao ang mosunod:

  1. ang batakang backup nga pananglitan kay autonomous ug nagdagan sa lokal
  2. Ang pagtipig sa mga backup ug mga troso kanunay sulod sa network sa kliyente
  3. ang usa ka pananglitan naglangkob sa mga module - usa ka matang sa "constructor"
  4. gikinahanglan ang pagpahiuyon sa kasamtangang mga distribusyon sa Linux, lakip na ang mga karaan na, ang potensyal nga cross-platform maoy gitinguha
  5. Aron magamit ang pananglitan, ang pag-access pinaagi sa ssh igo na; dili kinahanglan ang pag-abli sa dugang nga mga pantalan
  6. maximum nga kasayon ​​sa setup ug operasyon
  7. posible (apan dili kinahanglan) nga adunay usa ka bulag nga pananglitan nga nagtugot kanimo sa sentral nga pagtan-aw sa kahimtang sa mga backup gikan sa lainlaing mga server

Makita nimo kung unsa ang among nahimo dinhi: github.com/javister/krista-backup
Ang software gisulat sa python3; nagtrabaho sa Debian, Ubuntu, CentOS, AstraLinux 1.6.

Ang dokumentasyon gi-post sa docs directory sa repository.

Panguna nga mga konsepto nga gipalihok sa sistema:
aksyon - usa ka aksyon nga nagpatuman sa usa ka atomic nga operasyon (backup sa database, backup sa direktoryo, pagbalhin gikan sa direktoryo A ngadto sa direktoryo B, ug uban pa). Ang kasamtangan nga mga aksyon nahimutang sa core/actions directory
buluhaton - buluhaton, usa ka hugpong sa mga aksyon nga naghulagway sa usa ka lohikal nga "backup nga buluhaton"
iskedyul - iskedyul, usa ka hugpong sa mga buluhaton nga adunay opsyonal nga timailhan sa oras sa pagpatuman sa buluhaton

Ang backup nga configuration gitipigan sa usa ka yaml file; kinatibuk-ang istruktura sa config:

  • Kinatibuk-ang mga setting
  • seksyon sa aksyon: paghulagway sa mga aksyon nga gigamit niini nga server
  • seksyon sa iskedyul: paghulagway sa tanan nga mga buluhaton (mga set sa mga aksyon) ug iskedyul alang sa ilang paglansad pinaagi sa cron, kung gikinahanglan ang ingon nga paglansad

Ang usa ka pananglitan nga config makita dinhi

Unsa ang mahimo sa aplikasyon karon:

  • Ang nag-unang mga operasyon alang kanamo gisuportahan: PostgreSQL backup pinaagi sa pg_dump, file system directory backup pinaagi sa tar; mga operasyon nga adunay eksternal nga pagtipig; rsync tali sa mga direktoryo; backup rotation (pagtangtang sa daan nga mga kopya)
  • pagtawag sa usa ka eksternal nga script
  • manwal nga pagpatuman sa usa ka bulag nga buluhaton
    /opt/KristaBackup/KristaBackup.py run make_full_dump
  • mahimo nimong idugang (o tangtangon) ang usa ka buluhaton o ang tibuuk nga iskedyul sa crontab
    /opt/KristaBackup/KristaBackup.py enable all
  • paghimo og trigger file base sa backup nga mga resulta. Kini nga function mapuslanon kauban ang Zabbix alang sa pag-monitor sa mga backup
  • makatrabaho sa background sa webapi o web mode
    /opt/KristaBackup/KristaBackup.py web start [--api]

Ang kalainan tali sa mga mode: ang webapi walay web interface mismo, apan ang aplikasyon motubag sa mga hangyo gikan sa laing higayon. Alang sa web mode, kinahanglan nimo nga i-install ang flask ug daghang dugang nga mga pakete, ug dili kini madawat bisan diin, pananglitan sa sertipikado nga AstraLinux SE.

Pinaagi sa web interface, mahimo nimong tan-awon ang status ug mga log sa mga backup sa konektado nga mga server: ang "web instance" nangayo og data gikan sa "backup instances" pinaagi sa API. Ang pag-access sa web nanginahanglan pagtugot, ang pag-access sa webapi wala.

Laing backup - labaw pa sa usa ka script, mas simple kaysa usa ka sistema

Ang mga log sa dili husto nga pag-backup gimarkahan sa kolor: pasidaan - dalag, sayup - pula.

Laing backup - labaw pa sa usa ka script, mas simple kaysa usa ka sistema

Laing backup - labaw pa sa usa ka script, mas simple kaysa usa ka sistema

Kung ang tagdumala wala magkinahanglan usa ka cheat sheet sa mga parameter ug ang mga operating system sa server homogenous, mahimo nimong i-compile ang file ug ipanghatag ang andam nga pakete.

Among gipang-apud-apod kini nga utility pinaagi sa Ansible, i-roll una kini ngadto sa pipila sa pinakagamay nga mga server, ug human sa pagsulay sa tanan nga uban pa.

Isip resulta, nakadawat mi og compact, stand-alone copy utility nga mahimong automated ug magamit bisan sa walay kasinatian nga mga tigdumala. Kini sayon ​​​​alang kanamo - tingali kini mapuslanon usab alang kanimo?

Source: www.habr.com

Idugang sa usa ka comment