Varundamine, osa 7: JĂ€reldused

Varundamine, osa 7: JĂ€reldused

See mĂ€rkus lĂ”petab varundamise tsĂŒkli. RÀÀgime eraldatud serveri (vĂ”i VPS) loogilisest korraldusest, mis on varundamiseks mugav, ning pakume vĂ€lja kiire taastamise lahenduse varukoopiast serveri avarii korral ilma suuremate seisakuteta.

Algandmed

Eraldatud serveril on enamasti vĂ€hemalt kaks kĂ”vaketast, mis on mĂ”eldud RAID-i esmaklassilise (peegeldamise) korraldamiseks. See on vajalik, et server saaks jĂ€tkata tööd, kui ĂŒks ketas peaks rikkis olema. Kui see on tavaline eraldatud server, vĂ”ib seal olla eraldi riistvaraline RAID-kontroller SSD aktiivse vahemĂ€lu tehnoloogiaga, seega vĂ”ib tavaliste kĂ”vaketaste kĂ”rval olla ĂŒhendatud ĂŒks vĂ”i rohkem SSD-d. MĂ”nikord pakutakse eraldatud servereid, kus kohalikke kettaid on ainult SATADOM (vĂ€ikesed kettad, konstruktsiooniliselt – USB-mĂ€lupulk, mis on ĂŒhendatud SATA-porti), vĂ”i isegi tavaline vĂ€ike (8-16 GB) mĂ€lupulk, mis on ĂŒhendatud spetsiaalsesse sisemisse porti, ning andmed pĂ€rinevad andmesalvestussĂŒsteemist, mis on ĂŒhendatud eraldatud salvestusvĂ”rguga (Ethernet 10G, FC jne), ja on olemas eraldatud serverid, mis laadivad otse andmesalvestussĂŒsteemist. Selliseid variante ma ei kĂ€sitle, kuna sellistel juhtudel ĂŒleminek serveri varundamise ĂŒlesandest muutub spetsialisti vastutuseks, kes hooldab andmesalvestussĂŒsteemi; seal on tavaliselt erinevad kaubamĂ€rgitehnoloogiad oleku koopiate loomiseks, sisseehitatud deduplication ja muud sĂŒsteemiadministraatori mugavused, mida on kĂ€sitletud selle tsĂŒkli eelnevates osades. Eraldatud serveri kettamaht vĂ”ib ulatuda mitme kĂŒmne terabaitini, sĂ”ltuvalt serveriga ĂŒhendatud ketaste arvust ja mahust. VPS-i puhul on mahud skrommed: tavaliselt mitte rohkem kui 100 GB (aga vĂ”ib olla ka rohkem), ja selliste VPS-ide hinnad vĂ”ivad kergesti ĂŒletada selle sama hostimise firma odavaimate eraldatud serverite hindu. VPS-il on enamasti ĂŒks ketas, kuna selle all on andmesalvestussĂŒsteem (vĂ”i midagi hĂŒperkonvergente). MĂ”nikord on VPS-il mitu ketast erinevate omadustega, erinevate eesmĂ€rkide jaoks:

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

SĂŒsteemi uuesti installimisel ei kustutata kasutajate andmeid sisaldavat ketast juhtpaneeli abil, vaid sĂŒsteemne ketas kirjutatakse tĂ€ielikult ĂŒle. VPS-i puhul vĂ”ib teenusepakkuja pakkuda nuppu, mis teeb VPS (vĂ”i ketta) seisundi koopia, kuid kui paigaldada oma operatsioonisĂŒsteem vĂ”i unustada vajalik teenus VPS-is aktiveerida, vĂ”ib osa andmeid ikkagi kaduda. Nupule lisaks pakutakse tavaliselt andmete salvestamise teenust, mis on enamasti tugevalt piiritletud. See on tavaliselt konto, millele pÀÀseb FTP vĂ”i SFTP protokolli kaudu, mĂ”nikord koos SSH-ga, piiratud shelliga (nĂ€iteks rbash) vĂ”i kĂ€su tĂ€itmise piiranguga lĂ€bi authorized_keys (kasutades ForcedCommand).

PĂŒhendatud server on ĂŒhendatud vĂ”rguga kahe 1 Gbit/s kiirusel kaabli kaudu, mĂ”nikord on need kaardid kiirusel 10 Gbit/s. VPS-i vĂ”rgu liidese kiirus on enamasti ĂŒks. Andmekeskused ei piira sisemise vĂ”rgu kiirus, kuid piiravad interneti juurdepÀÀsu kiirus.

TĂŒĂŒpiline koormus sarnases pĂŒhendatud serveris vĂ”i VPS-is koosneb veebiserverist, andmebaasist ja rakenduste serverist. Aeg-ajalt vĂ”ivad olla installitud erinevad tĂ€iendavad abiteenused, sealhulgas veebiserveri vĂ”i andmebaasi jaoks: otsimootor, e-posti sĂŒsteem jne.

Varukoopiate salvestamiseks on ette valmistatud spetsiaalne server, millest rÀÀgitakse lÀhemalt hiljem.

KettasĂŒsteemi loogiline korraldus

Kui on RAID-kontrollers vĂ”i ĂŒksik ketas VPS-il ning ei ole erilisi eelistusi ketasĂŒsteemi töö osas (nĂ€iteks eraldi kiire ketas andmebaasiks) — jaotatakse kogu vaba ruum jĂ€rgmiselt: luuakse ĂŒks partitsioon, mille peale luuakse LVM mahugrupp, milles luuakse mitu mahtu: 2 vĂ€ikest sama suurusega, mida kasutatakse juurfailisĂŒsteemina (need muutuvad kordamööda vĂ€rskenduste kĂ€igus kiireks tagasipöördumiseks, mĂ”te on pĂ€rit Calculate Linux jaotusest), ning veel ĂŒks — swap-partitsiooniks, ĂŒlejÀÀnud vaba ruum jagatakse vĂ€ikesteks mahtudeks, mida kasutatakse tĂ€isfunktsionaalsete konteinerite juurfailisĂŒsteemidena, virtuaalmasinate ketastena, failisĂŒsteemidena kasutajate kodudeks \/home (iga kasutaja jaoks oma failisĂŒsteem), rakenduskonteinerite failisĂŒsteemidena.

Oluline mĂ€rkida: mahud peavad olema tĂ€iesti iseseisvad, st nad ei tohi sĂ”ltuda ĂŒksteisest ega juurfailisĂŒsteemist. Virtuaalmasinate vĂ”i konteinerite puhul on see automaatselt tagatud. Kui tegemist on rakenduskonteinerite vĂ”i kodukataloogidega, siis tasub mĂ”elda veebiserveri ja teiste teenuste konfigureerimisfailide eraldamisele nii, et mahtude vahelisi sĂ”ltuvusi oleks minimaalne. NĂ€iteks töötab iga sait oma kasutaja alt, saidi konfigureerimisfailid on kasutaja kodukataloogis, veebiserveri seadetes kaasatakse saidi konfigureerimisfailid mitte lĂ€bi \/etc\/nginx\/conf.d\/.conf, vaid nĂ€iteks \/home\//configs/nginx/*.conf

Kui siiski on mitu ketast — saab luua loogilise RAID- massiivi (ja seadistada selle SSD-l kuve vastavalt vajadusele ja vĂ”imalustele), mille peale luua LVM vastavalt eespool kirjeldatud reeglitele. Samuti on vĂ”imalik kasutada ZFS-i vĂ”i BtrFS-i, kuid siin tasub mitu korda jĂ€rele mĂ”elda: mĂ”lemad nĂ”uavad palju tĂ”sisema lĂ€henemist ressurssidele, lisaks ei kaasne ZFS Linuxi tuumaga.

SĂ”ltumata kasutatavast skeemist on alati mĂ”istlik hinnata muudatuste salvestamise kiirus, enne kui arvutatakse vĂ€lja vaba ruumi suurus, mis reserveeritakse varukoopiate tegemiseks. NĂ€iteks, kui meie server salvestab andmeid kiirusel 10 megabaiti sekundis ning kogu andmemassiiv on 10 terabaiti — vĂ”ib sĂŒnkroonimise aeg kesta terve pĂ€eva (22 tundi — just nii kaua kulub selle mahuga andmete ĂŒlekandmiseks 1 Gbit/s vĂ”rgus) — tasub varuda umbes 800 GB. Tegelik number tuleb olema vĂ€iksem, seda saab julgelt jagada loogiliste partitsioonide arvuga.

Varukoopiate salvestamise server

Peamine erinevus varukoopiate salvestamise serveri ja tavalisel serveril on suured, odavad ja suhteliselt aeglased kettad. Kuna kaasaegsed HDD-d on juba ĂŒletanud 10 TB piiri ĂŒhe ketta kohta — on kindlasti vajalik rakendada failisĂŒsteeme vĂ”i RAID koos kontrollsummadega, sest andmemassiivi ĂŒmberkorraldamise vĂ”i failisĂŒsteemi taastamise ajal (mitu pĂ€eva!) vĂ”ib teine ketas talitlushĂ€irete tĂ”ttu kĂ”rge koormuse tĂ”ttu rikki minna. Kettad, mille maht on kuni 1 TB, ei olnud nii tundlikud. Lihtsuse huvides eeldan, et kettaruum on jagatud kahe umbes sama suurusega ossa (nĂ€iteks LVM abil):

  • partitsioonid, mis vastavad serverites kasutatavale kasutajaandmete salvestamise jaoks (neil taastatakse viimane varukoopia kontrollimiseks);
  • partitsioonid, mis kasutatakse BorgBackup'i hoidlatest (siia jĂ”uavad otse varukoopiad).

TööpĂ”himĂ”te seisneb selles, et iga serveri jaoks luuakse eraldi partitsioonid BorgBackup'i hoidlate jaoks, kuhu kanduvad andmed tegevusserveritest. Hoidlad töötavad ainult lisamise reĆŸiimis, mis vĂ€listab andmete tahtlikku kustutamist, ning tĂ€nu dedupplikatsioonile ja regulaarsele vana varukoopia puhastamisele (jÀÀvad aastased koopiad, viimase aasta kuised koopiad, viimase kuu nĂ€dalased koopiad, viimase nĂ€dala igapĂ€evased koopiad ja mĂ”nes erijuhtumis — viimase pĂ€eva iga tunni koopiad: kokku 24 + 7 + 4 + 12 + aastased — ligikaudu 50 koopiat iga serveri jaoks).
BorgBackup'i repositooriumides ei aktiveeru ainult lisamise reĆŸiim, selle asemel kasutatakse .ssh/authorized_keys-s sundkĂ€sku, mis nĂ€eb vĂ€lja umbes selline:

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 paigutatud borgi pealiskirje skript, mis lisaks binaari kĂ€ivitamisele parameetritega, kĂ€ivitab pĂ€rast andmete salvestamise lĂ”ppu ka varukoopia taastamise protsessi. Selleks loob pealiskirje skript samaaegselt vastava repositooriumi kĂ”rvale tĂ€hisfaili. Viimane tehtud varukoopia taastatakse automaatselt pĂ€rast andmete ĂŒleslaadimise protsessi lĂ”ppu vastavale loogilisele mahule.

See konstruktsioon vÔimaldab perioodiliselt puhastada mittevajalikke varukoopiaid ja takistab tootmiserverite andmete kustutamist varukoopiate salvestamise serveris.

Varundamisprotsess

Varundamise algataja on ise pĂŒhendatud server vĂ”i VPS, kuna see skeem annab rohkem kontrolli varundamisprotsessi ĂŒle sellest serverist. Esiteks tehakse aktiivse juurkatalooge sĂŒsteemi oleku snapshot, mis mountitakse ja laaditakse ĂŒles BorgBackupiga varukoopiate salvestamise serverisse. PĂ€rast andmete salvestamist unmountitakse ja kustutatakse snapshot.

Kui on olemas vĂ€ike andmebaas (kuni 1 GB iga saidi kohta), tehakse andmebaasi dump, mis salvestatakse vastavale loogilisele mahule, kus asuvad ka selle saidi muud andmed, kuid nii, et dump ei oleks veebiserveri kaudu kĂ€ttesaadav. Kui aga andmebaasid on suured – tuleks seadistada 'kuum' andmete salvestamine, nĂ€iteks xtrabackup abil MySQL jaoks vĂ”i WAL töötamine archive_command'iga PostgreSQL'is. Sellisel juhul taastatakse andmebaas eraldi saidi andmetest.

Kui kasutatakse konteinerite vĂ”i virtuaalmasinate, tuleks seadistada qemu-guest-agent, CRIU vĂ”i muid vajalik tehnoloogiaid. Muudel juhtudel ei ole lisaseadistusi tavaliselt vaja – lihtsalt loome loogiliste mahtude snapshot'e, mida seejĂ€rel töödeldakse analooge juurfilosoofiate snapshot'i osas. PĂ€rast andmete salvestamist kustutatakse snapshot'id.

Edasiareng toimub varukoopiate salvestamise serveris:

  • kontrollitakse igas hoidlas viimati tehtud varukoopiat,
  • kontrollitakse, kas on olemas sildifail, mis nĂ€itab, et andmete eemaldamise protsess on lĂ”pule viidud,
  • teostatakse andmete taastamine vastavale kohalikule mahule,
  • eemaldatakse sildifail,

Serveri taastamise protsess,

Kui peamine server on rikki lĂ€inud, kĂ€ivitatakse sarnane pĂŒhendatud server, mis laaditakse mingist standardsest pildist. KĂ”ige tĂ”enĂ€olisemalt toimub laadimine ĂŒle vĂ”rgu, kuid andmekeskuse tehnik, kes seadistab serverit, vĂ”ib selle standardses pildi kohe ĂŒhele kettale kopeerida. Laadimine toimub töötlemismĂ€lusse, pĂ€rast mida algab taastamisprotsess:

  • teostatakse pĂ€ring blokeeritud seadme ĂŒhendamiseks iscsinbd vĂ”i muude sarnaste loogilise mahu protokollidega, mis sisaldavad sureva serveri juurfailisĂŒsteemi; kuna juurfailisĂŒsteem peab olema vĂ€ike - see etapp peaks olema lĂ”pule viidud mĂ”ne minuti jooksul. Taastatakse ka laadija;
  • loomisel luuakse kohalike loogiliste mahu struktuur, ĂŒhendatakse varukoopiate serveri loogilised mahud dm_clone kali mooduli kaudu: algab andmete taastamine, samas kui muudatused kirjutatakse kohe kohalikele ketastele,
  • kĂ€ivitatakse konteiner kĂ”igi saadaolevate fĂŒĂŒsiliste ketastega - serveri töövĂ”ime taastatakse tĂ€ielikult, kuid madalama jĂ”udlusega;
  • pĂ€rast andmete sĂŒnkroonimise lĂ”petamist lahutatakse varukoopiate serveri loogilised mahud, konteiner vĂ€lja lĂŒlitatakse, server taaskĂ€ivitatakse;

PÀrast taaskÀivitamist on serveril olemas kÔik andmed, mis olid varukoopia loomise hetkel, samuti kÔik muudatused, mis tehti taastamisprotsessi kÀigus.

Sari teise artiklid

Varundamine, osa 1: Miks on varundamine vajalik, meetodite ja tehnoloogiate ĂŒlevaade
Varundamine, osa 2: rsync-pĂ”histe varundustööriistade ĂŒlevaade ja testimine
Varundamine, osa 3: Ülevaade ja testimine duplicity, duplicati
Varundamine, osa 4: Zbackup, restic, borgbackup ĂŒlevaade ja testimine
Varundamine, osa 5: Bacula ja Veeam Backup for Linux testimine
Varundamine: osa lugejate soovi jĂ€rgi: AMANDA, UrBackup, BackupPC ĂŒlevaade,
Varundamine, osa 6: Varundamise tööriistade vÔrdlus
Varundamine, osa 7: JĂ€reldused

Kutsun arutama pakutud varianti kommentaarides, tÀnan tÀhelepanu eest!

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster