Varundamine, osa 7: JĂ€reldused

Varundamine, osa 7: JĂ€reldused

See mĂ€rkus lĂ”petab varundamise tsĂŒkli. Siin rÀÀgitakse pĂŒhendatud serveri (vĂ”i VPS) loogilisest korraldusest, mis on varundamiseks mugav, ja pakutakse vĂ€lja kiire taastamise variant, et vĂ€ltida olulisi seise serveri hĂ€daolukorra korral.

Algandmed

PĂŒhendatud serveril on tavaliselt vĂ€hemalt kaks kĂ”vaketta, mis on mĂ”eldud RAID 1 (peegel) seadistamiseks. See on vajalik serveri töö jĂ€tkamiseks, kui ĂŒks ketas ebaĂ”nnestub. Kui tegemist on tavalise pĂŒhendatud serveriga, vĂ”ib olla eraldi riistvaraline RAID-kontroller, millel on aktiivne SSD vahemĂ€lu tehnoloogia, niisiis vĂ”ib tavalistele kĂ”vaketastele lisaks olla ĂŒhendatud ĂŒks vĂ”i mitu SSD. MĂ”nikord pakutakse pĂŒhendatud servereid, kus kohalikke kettaid on ainult SATADOM (vĂ€ikesed kettad, mille konstruktsioon on nagu USB mĂ€lu, mis on ĂŒhendatud SATA pessa), vĂ”i isegi tavaline vĂ€ike (8-16 GB) USB-mĂ€lu, mis on ĂŒhendatud spetsiaalsesse sisemisse pessa, samas kui andmed saadakse SAN-ilt, mis on ĂŒhendatud eraldiseisva andmesalvestusvĂ”rguga (Ethernet 10G, FC jne), ja neid on ka pĂŒhendatud servereid, mis laadivad otse SAN-ilt. Selliseid variante ma ei kĂ€sitle, kuna sel juhul ĂŒleminek serveri varundamise ĂŒlesandele kuulub spetsialistile, kes haldab SAN-i; reeglina on seal erinevaid patenteeritud tehnoloogiaid olekute pildistamiseks, sisseehitatud deduplikatsioon ja muud sĂŒsteemiadministraatori mugavused, mis on kĂ€sitletud selles tsĂŒklis varasemates osades. PĂŒhendatud serveri ketta maht vĂ”ib ulatuda kĂŒmnete terabaitideni, sĂ”ltuvalt serveriga ĂŒhendatud kettaste arvust ja mahust. VPS puhul on mahud tagasihoidlikumad: tavaliselt mitte rohkem kui 100 GB (kuid on ka suuremaid), ja selliste VPS-ide hinnad vĂ”ivad olla kergesti kallimad kui kĂ”ige odavamad pĂŒhendatud serverid samalt hostilt. VPS-l on enamasti vaid ĂŒks ketas, kuna selle all on SAN (vĂ”i mĂ”ni hĂŒperkonvergeeritud lahendus). MĂ”nikord on VPS-il mitu ketast erinevate omadustega, erinevate eesmĂ€rkide jaoks:

  • vĂ€ike sĂŒsteemne — operatsioonisĂŒsteemi installimiseks;
  • suur — kasutajaandmete salvestamiseks.

SĂŒsteemi taaskasutamisel juhtpaneeli abil ei kustutata kasutajaandmete kettale, kuid sĂŒsteemne uuendatakse tĂ€ielikult. VPS-i puhul vĂ”ib hostija pakkuda nuppu, mis teeb VPS-i (vĂ”i ketta) oleku kuvandi, kuid kui installite oma operatsioonisĂŒsteemi vĂ”i unustate aktiveerida vajaliku teenuse VPS-is — vĂ”ivad mĂ”ned andmed ikkagi kaduma minna. Lisaks nupule pakutakse tavaliselt andmete salvestamise teenust, mis on enamasti tugevalt piiratud. See on tavaliselt konto FTP vĂ”i SFTP protokolli kaudu juurdepÀÀsuga, mĂ”nikord koos SSH-ga, piiratud shelliga (nĂ€iteks rbash) vĂ”i kĂ€skude kĂ€ivitamise piiranguga authorized_keys kaudu (ForcedCommand kaudu).

PĂŒhendatud server on ĂŒhendatud vĂ”rku kahe 1 Gbit/s kiirusel pordi kaudu, mĂ”nikord vĂ”ivad need olla 10 Gbit/s kiirusel kaardid. VPS-i vĂ”rgu liides on tavaliselt ĂŒks. Andmekeskused ei piira enamasti sisevĂ”rgu kiirus, kuid piiravad Interneti-juurdepÀÀsu kiirus.

TĂŒĂŒpiline sellise pĂŒhendatud serveri vĂ”i VPS-i koormus koosneb veebiserverist, andmebaasist ja rakenduste serverist. Sageli vĂ”ivad olla paigaldatud erinevad tĂ€iendavad abiteenused, sealhulgas veebiserveri vĂ”i andmebaasi jaoks: otsingumootor, meilisĂŒsteem jne.

Varukoopiate salvestamiseks kasutatakse spetsiaalselt ettevalmistatud serverit, millest hakatakse hiljem pÔhjalikumalt rÀÀkima.

KettasĂŒsteemi loogiline organiseerimine

Kui on olemas RAID-kontroller vĂ”i on tegu VPS-iga ĂŒhe ketasaga ning ei ole erilisi eelistusi ketassĂŒsteemi töö osas (nĂ€iteks eraldiseisev kiire ketas andmebaasi jaoks), jagatakse kogu vaba ruum jĂ€rgmiselt: luuakse ĂŒks partitsioon, mille peale luuakse LVM mahugrupp, milles luuakse mitu mahut: 2 vĂ€ikesest sama suurusega, mida kasutatakse pĂ”hifailisĂŒsteemina (vahetatakse jĂ€rkjĂ€rgult uuenduste ajal kiireks tagasiviimiseks, idee on inspireeritud Calculate Linux'i distributsioonist), veel ĂŒks — vahetuspartitsiooniks, ĂŒlejÀÀnud vaba ruum jagatakse vĂ€ikesteks mahuteks, mida kasutatakse pĂ”hifailisĂŒsteemina tĂ€isvÀÀrtuslike konteinerite jaoks, virtuaalmasinate ketaste jaoks, failisĂŒsteemide jaoks kasutajate kontode jaoks /home (iga konto jaoks — oma failisĂŒsteem), failisĂŒsteemide jaoks rakenduskonteinerite jaoks.

Oluline mĂ€rkus: mahtude puhul tuleb tagada, et need oleksid tĂ€ielikult iseseisvad, st ei tohiks ĂŒksteisest ega ka juurkataloogist sĂ”ltuda. Virtuaalmasinate vĂ”i konteinerite puhul kehtib see automaatselt. Kui aga tegemist on rakenduste konteinerite vĂ”i kodukataloogidega, tuleks mĂ”elda veebiserveri ja teiste teenuste konfigureerimisfailide eraldamisele, et vĂ€hendada mahtudevahelisi sĂ”ltuvusi. NĂ€iteks iga veebisait töötleb oma kasutaja alt, veebisaidi konfigureerimisfailid asuvad kasutaja kodukataloogis, veebiserveri seadetes konfigureerimisfailid ei ole lisatud lĂ€bi /etc/nginx/conf.d/.conf, vaid nĂ€iteks /home//configs/nginx/*.conf

Kui aga on mitu ketast, saab luua tarkvara RAID-massiivi (ja seadistada selle vahemĂ€lu SSD-le, kui on vajadus ja vĂ”imalused), mille peale on ĂŒles ehitatud LVM vastavalt eespool toodud juhistele. Samuti vĂ”ib kasutada ZFS-i vĂ”i BtrFS-i, kuid siin tuleks mitu korda mĂ”elda: mĂ”lemad nĂ”uavad palju tĂ”sist lĂ€henemist ressurssidele, lisaks ei ole ZFS Linuxi tuumaga kaasas.

SĂ”ltumata kasutatavast skeemist on alati mĂ”istlik eelnevalt arvutada ligikaudne kirjutamiskiirus kettale, seejĂ€rel arvutada vaba ruumi suurus, mis reserveeritakse vĂ”tmete loomiseks. NĂ€iteks, kui meie server kirjutab andmeid kiirusel 10 megabaidi sekundis ja kogu andmemassi suurus on 10 terabaiti — sĂŒnkroniseerimise aeg vĂ”ib ulatuda pĂ€evi (22 tundi — nii kaua kulub selle koguse edastamiseks 1 Gbit/s vĂ”rgus) — tuleks reserveerida umbes 800 GB. Tegelikult on number vĂ€iksem, saab julgelt jagada selle loogiliste volĂŒĂŒmide arvuga.

Varundusseadmestik

Peamine erinevus varundusserveri ja teiste serverite vahel on see, et need kasutavad suuri, odavaid ja vĂ”rreldes kiiret ketast. Kuna modernsed HDD-d on juba ĂŒletanud 10 TB piiri ĂŒhe ketta kohta, on failisĂŒsteemide vĂ”i RAID-sĂŒsteemide kasutamine, kus toimub kontrollsumma, kohustuslik. SeetĂ”ttu vĂ”ib teise ketta rike tekkida suurenenud koormuse tĂ”ttu array ĂŒmberkujundamise vĂ”i failisĂŒsteemi taastamise ajal (mis vĂ”ib vĂ”tta mitu pĂ€eva!). Kuni 1 TB kettatel ei olnud see nii tundlik. Lihtsuse huvides eeldan, et ketas on jagatud kaheks enam-vĂ€hem vĂ”rdses suuruses osaks (nĂ€iteks LVM-i abil):

  • partitsioonid, mis vastavad serveritele, mida kasutatakse kasutajaandmete salvestamiseks (neil rakendatakse viimast loodud varukoopiat kontrollimise eesmĂ€rgil);
  • partitsioonid, mida kasutatakse BorgBackup'i hoidlatena (siia pannakse otse andmed varukoopiate jaoks).

TööpĂ”himĂ”te seisneb selles, et iga serveri jaoks luuakse eraldi mahud BorgBackup'i hoidlate jaoks, kuhu lĂ€hevad andmed tootmisserveritest. Hoidlad töötavad ainult lisamise reĆŸiimis, mis vĂ€listab andmete tahtliku kustutamise vĂ”imaluse, mistĂ”ttu deduplikatsiooni ja regulaarsete puhastusprotseduuride kaudu sĂ€ilitatakse vanu varukoopiaid (jÀÀvad aasta varukoopiad, viimase aasta jooksul igakuised, viimase kuu jooksul iganĂ€dalased, viimase nĂ€dala jooksul iga pĂ€ev, ÀÀrmuslikel juhtudel - iga tunni tagant viimase pĂ€eva jooksul: kokku 24 + 7 + 4 + 12 + aastased - umbes 50 koopiat iga serveri kohta).
BorgBackup'i hoidlates ei aktiveerita ainult lisamise reĆŸiimi, selle asemel kasutatakse ForcedCommand'i failis .ssh/authorized_keys, mille struktuur on umbes jĂ€rgmine:

from="serveri aadress",command="/usr/local/bin/borg serve --append-only --restrict-to-path /home/servername/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc AAAAA.......

MÀÀratud teele on pandud Borgi kohal olev wrapper-skript, mis mitte ainult ei kĂ€ivita binaarfaili parameetritega, vaid kĂ€ivitab ka varukoopia taastamisprotsessi pĂ€rast andmete kopeerimise lĂ”ppu. Selle jaoks loob wrapper-skript kĂ”rval asuva tĂ€his-faili vastava hoidla kĂ”rvale. Viimane tehtud varukoopia taastatakse automaatselt vastavale loogilisele mahtule pĂ€rast andmete ĂŒlekande protsessi lĂ”ppu.

See konstruktsioon vÔimaldab perioodiliselt eemaldada tarbetuid varukoopiaid ning takistab ka tootmisserveritel salvestusserveris midagi kustutada.

Varundamisprotsess

Varundamise algatajaks on ise pĂŒhendatud server vĂ”i VPS, kuna see skeem annab serveri poolt varundamisprotsessi ĂŒle suurema kontrolli. Esiteks tehakse aktiivse juurkatalooge oleku hetkefoto, mis mountitakse ja laaditakse BorgBackup abil varundusserverisse. PĂ€rast andmete kogumise lĂ”ppu eemaldatakse ja kustutatakse hetkefoto.

Kui andmed on vĂ€ikese hulga andmebaasiga (kuni 1 GB iga veebilehe kohta), tehakse andmebaasi eksemplar, mis salvestatakse vastavasse loogilisse mahutisse, sinna, kus asuvad ka ĂŒlejÀÀnud selle veebilehe andmed, kuid nii, et eksemplar ei oleks veebiserveris saadaval. Kui andmebaasid on suured, tuleb seadistada "kuuma" andmete eemaldamise protsess, nĂ€iteks xtrabackup'i abil MySQL jaoks vĂ”i WAL töötlus archive_command abil PostgreSQL'is. Sellisel juhul taastatakse andmebaas eraldi veebilehe andmetest.

Kui kasutatakse konteinerite vĂ”i virtuaalmasinate tehnoloogiat, tuleb seadistada qemu-guest-agent, CRIU vĂ”i teised vajalikud tehnoloogiad. Enamikes muudes olukordades tĂ€iendavat seadistamist ei ole tavaliselt vajalik — lihtsalt loome loogiliste mahutite koopiaid, mida töödeldakse sarnaselt juurefailisĂŒsteemi oleku koopia tegemisega. Andmete eemaldamise peale koopiaid kustutatakse.

Edasiöeldav töö toimub varukoopiakandjal:

  • kontrollitakse iga reposiitri viimast tehtud varukoopiat,
  • kontrollitakse, kas olemas on mĂ€rgifail, mis nĂ€itab, et andmete eemaldamise protsess on lĂ”pule viidud,
  • andmed paigaldatakse vastavale kohaliku kettale,
  • mĂ€rkfail kĂ”rvaldatakse

serveri töövÔime taastamise protsess

Kui pĂ”hiserver kĂ€tkeb, siis kĂ€ivitatakse sarnane pĂŒhendatud server, mis laaditakse mĂ”nest standardpildist. TĂ”enĂ€oliselt toimub laadimine ĂŒle vĂ”rgu, kuid andmekeskuse tehnik, kes serverit seadistab, vĂ”ib selle standardpildi ĂŒhe ketta peale kohe kopeerida. Laadimine toimub mĂ€llu, pĂ€rast mida algab taastamisprotsess:

  • esitatakse pĂ€ring plokk-seadmestiku ĂŒhendamiseks iscsinbd vĂ”i mĂ”ne muu sarnase loogilise ketta protokolliga, mis sisaldab hukkunud serveri juurefailisĂŒsteemi; kuna juurefailisĂŒsteem peab olema vĂ€ike - see etapp peaks olema lĂ”petatud mĂ”ne minutiga. Samuti taastatakse kĂ€ivitaja;
  • lokalsete loogiliste mahtude struktuur taastatakse, loogilised mahud ĂŒhendatakse varundusseadmest kernel'i dm_clone mooduli abil: andmete taastamine algab, samal ajal salvestatakse muutused koheselt kohalikesse kettasektsioonidesse
  • kanne kĂ€ivitatakse kĂ”igi fĂŒĂŒsiliste kettadega — serveri töövĂ”ime tĂ€ielikult taastatakse, kuid madalama jĂ”udlusega;
  • andmete sĂŒnkroonimise lĂ”ppedes eraldatakse loogilised mahud varundusseadmest, kanne suletakse, server taaskĂ€ivitatakse;

PÀrast taaskÀivitamist on serveril kÔik andmed, mis olid varukoopia loomise hetkel, ja kÔiki muudatusi, mis taastamise protsessis tehti.

Teised tsĂŒkli artiklid

Varundamine, osa 1: Miks on varundamine vajalik, meetodite, tehnoloogiate ĂŒlevaade
Varundamine, osa 2: rsync-pĂ”histe varunduslahenduste ĂŒlevaade ja testimine
Varundamine, osa 3: Duplicity ja Duplicati ĂŒlevaade ja testimine
Varundamine, osa 4: Zbackup, restic, borgbackup ĂŒlevaade ja testimine
Varundamine, osa 5: Bacula ja Veeam Backup for Linuxi testimine
Varundamine: osa lugejate poolt palutud: AMANDA, UrBackup, BackupPC ĂŒlevaade
Varundamine, osa 6: Varundamisvahendite vÔrdlus
Varundamine, osa 7: JĂ€reldused

Kutsun arvustama esitatud ettepanekut kommentaarides, tÀnan teid tÀhelepanu eest!

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster