Önnur öryggisafrit - meira en handrit, einfaldara en kerfi

Það eru mörg afritunarkerfi, en hvað ef þjónustuþjónarnir eru dreifðir um mismunandi svæði og viðskiptavini og þú þarft að stjórna með því að nota stýrikerfisverkfærin?

Önnur öryggisafrit - meira en handrit, einfaldara en kerfi

Góðan dag, Hornbeyki!
Ég heiti Natalya. Ég er teymisstjóri í hópi umsóknastjórnenda hjá NPO Krista. Við opnum fyrir verkefnahóp fyrirtækisins okkar. Við búum við frekar sérkennilegar aðstæður: við setjum upp og viðhaldum hugbúnaði okkar bæði á netþjónum fyrirtækisins og á netþjónum sem staðsettir eru á vefsíðum viðskiptavina. Í þessu tilviki er engin þörf á að taka öryggisafrit af öllum netþjóninum. Aðeins „nauðsynleg gögn“ eru mikilvæg: DBMS og einstakar möppur skráarkerfisins. Auðvitað hafa viðskiptavinir (eða hafa ekki) sínar eigin öryggisafritunarstefnur og bjóða oft upp á einhvers konar ytri geymslu til að geyma afrit þar. Í þessu tilviki, eftir að hafa búið til öryggisafrit, tryggjum við að það sé sent í ytri geymslu.

Í nokkurn tíma, vegna öryggisafritunar, tókst okkur að nota bash handrit, en eftir því sem valkostir fyrir stillingar jukust, jókst flókið þessa handrits hlutfallslega, og á einni fallegri stund komumst við að nauðsyn þess að „eyðileggja það til jarðar , og svo ....".

Tilbúnar lausnir pössuðu ekki af ýmsum ástæðum: vegna nauðsyn þess að dreifa öryggisafritum, skyldu til að geyma öryggisafrit á staðnum hjá viðskiptavininum, hversu flóknar stillingar eru, innflutningsskipti og aðgangstakmarkanir.

Okkur sýndist það vera auðveldara að skrifa eitthvað sjálft. Jafnframt vildum við fá eitthvað sem myndi duga fyrir okkar stöðu næstu N árin, en með möguleika á að stækka mögulega umfangið.

Skilyrði verkefnisins voru eftirfarandi:

  1. grunnafritunartilvikið er offline, keyrt á staðnum
  2. geymsla afrita og annála alltaf innan netkerfis viðskiptavinarins
  3. tilvikið samanstendur af einingum - svona „smiður“
  4. samhæfni við Linux dreifingar sem notaðar eru, þar á meðal úreltar, mögulegur þvert á vettvang er æskilegur
  5. ssh aðgangur er nægjanlegur til að vinna með tilvikinu, opnun viðbótargátta er valfrjálst
  6. hámarks auðveld uppsetning og notkun
  7. það er mögulegt (en ekki nauðsynlegt) að hafa sérstakt tilvik sem gerir þér kleift að skoða miðlægt stöðu afrita frá mismunandi netþjónum

Það sem við fengum má sjá hér: github.com/javister/krista-backup
Hugbúnaðurinn er skrifaður í python3; virkar á Debian, Ubuntu, CentOS, AstraLinux 1.6.

Skjölin eru sett í skjalaskrá geymslunnar.

Helstu hugtökin sem kerfið starfar á:
aðgerð - aðgerð sem útfærir eina atómaðgerð (afrit af gagnagrunni, öryggisafrit af skrám, flutningur úr skrá A í skrá B, osfrv.). Núverandi aðgerðir eru í kjarna/aðgerðaskránni
verkefni - verkefni, mengi aðgerða sem lýsir einu rökréttu "afritunarverkefni"
áætlun – áætlun, verkefnasett með valfrjálsum vísbendingu um framkvæmdartíma verks

Afritunarstillingin er geymd í yaml skrá; almenn stillingaruppbygging:

  • Almennar stillingar
  • aðgerðahluti: lýsing á aðgerðum sem notaðar eru á þessum þjóni
  • áætlunarhluti: lýsing á öllum verkefnum (settum aðgerða) og áætlun fyrir ræsingu þeirra með cron, ef slíkrar ræsingar er krafist

Dæmi um stillingar má finna hér

Það sem forritið getur gert í augnablikinu:

  • helstu aðgerðir fyrir okkur eru studdar: PostgreSQL öryggisafrit í gegnum pg_dump, öryggisafrit af skráarkerfisskrá í gegnum tar; starfsemi með ytri geymslu; rsync á milli möppum; snúningur öryggisafrits (eyðir gömlum eintökum)
  • kalla á utanaðkomandi handrit
  • handvirk framkvæmd eins verkefnis
    /opt/KristaBackup/KristaBackup.py run make_full_dump
  • þú getur bætt við (eða fjarlægt) einstakt verkefni eða alla áætlunina í crontab
    /opt/KristaBackup/KristaBackup.py enable all
  • kveikja á skráargerð byggt á afritunarniðurstöðum. Þessi eiginleiki er gagnlegur í tengslum við Zabbix til að fylgjast með afritum.
  • getur unnið í bakgrunni í webapi eða vefham
    /opt/KristaBackup/KristaBackup.py web start [--api]

Munurinn á stillingunum er sá að webapi er ekki með almennilegt vefviðmót, en forritið bregst við beiðnum frá öðru tilviki. Fyrir vefstillingu þarftu að setja upp flösku og nokkra viðbótarpakka, og það er ekki ásættanlegt alls staðar, til dæmis í vottuðu AstraLinux SE.

Í gegnum vefviðmótið geturðu skoðað stöðu og skrár yfir afrit tengdra netþjóna: „veftilvikið“ biður um gögn frá „afritunartilvikunum“ í gegnum API. Vefaðgangur krefst heimild, webapi aðgangur gerir það ekki.

Önnur öryggisafrit - meira en handrit, einfaldara en kerfi

Skrár yfir rangt fyrri öryggisafrit eru merktar með lit: viðvörun - gulur, villa - rauður.

Önnur öryggisafrit - meira en handrit, einfaldara en kerfi

Önnur öryggisafrit - meira en handrit, einfaldara en kerfi

Ef stjórnandinn þarf ekki svindlblað á breytunum og stýrikerfi þjónsins eru einsleit, geturðu sett saman skrána og dreift fullbúnum pakka.

Við dreifum þessu tóli aðallega í gegnum Ansible, rúllum því fyrst út á suma af mikilvægustu netþjónunum og eftir prófun á alla hina.

Lokaniðurstaðan er fyrirferðarlítið sjálfstætt afritunarforrit sem hægt er að gera sjálfvirkt og nota jafnvel af óreyndum stjórnendum. Það er þægilegt fyrir okkur - kannski mun það nýtast þér líka?

Heimild: www.habr.com

Bæta við athugasemd