Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Manoro hevitra anao aho hamaky ny transcript ny tatitra tamin'ny fiandohan'ny taona 2019 nataon'i Andrey Borodin "Backups with WAL-G. Inona no ao amin'ny 2019?"

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Salama daholo! Andrey Borodin no anarako. Mpamorona ao amin'ny Yandex aho. Efa liana tamin'ny PostgreSQL aho nanomboka tamin'ny 2016, rehefa avy niresaka tamin'ireo mpamorona aho ary nilaza izy ireo fa tsotra ny zava-drehetra - alainao ny kaody loharano ary amboary izany, dia hahomby ny zava-drehetra. Ary nanomboka teo dia tsy afaka mijanona aho - manoratra karazan-javatra isan-karazany aho.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey BorodinNy iray amin'ireo asa ataoko dia ny rafitra backup. WAL-G. Amin'ny ankapobeny, ao amin'ny Yandex dia efa niasa tamin'ny rafitra backup ao amin'ny PostgreSQL efa ela be izahay. Ary azonao jerena ao amin'ny Internet ny andiana tatitra enina momba ny fomba hanaovanay rafitra backup. Ary isan-taona dia mivoatra kely izy ireo, mivoatra kely ary lasa azo itokisana kokoa.

Saingy amin'izao fotoana izao ny tatitra dia tsy momba ny zavatra vitantsika ihany, fa momba ny fahatsorana sy ny inona. Firy aminareo no efa nijery ny tatitro momba ny WAL-G? Soa ihany fa vitsy ny olona tsy nijery, satria ny zavatra tsotra indrindra no hanombohako.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Raha tampoka dia manana cluster PostgreSQL ianao, ary heveriko fa ny tsirairay dia manana roa miaraka amin'izy ireo, ary tampoka dia tsy mbola misy rafitra backup, dia mila mahazo fitahirizana S3 na fitahirizana mifanaraka amin'ny Google Cloud ianao.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ohatra, afaka manatona anay ianao ary maka kaody fampiroboroboana ho an'ny Yandex Object Storage, izay mifanaraka amin'ny S3.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Avy eo mamorona siny. Fitehirizam-baovao fotsiny io.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Mamorona mpampiasa serivisy.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Mamorona fanalahidy fidirana ho an'ny mpampiasa serivisy: aws-s3-key.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ampidino ny famoahana stable farany an'ny WAL-G.

Inona no maha samy hafa ny famotsorana mialoha antsika amin'ny famoahana? Matetika aho no asaina mamoaka aloha. Ary raha tsy misy bug amin'ny dikan-teny mandritra ny fotoana ampy, ohatra, iray volana, dia avoakako izany. Ity ny famoahana tamin'ny Novambra. Ary midika izany fa isaky ny volana izahay dia mahita karazana bug, matetika amin'ny fiasa tsy mitsikera, saingy tsy mbola namoaka famoahana. Ny dikan-teny teo aloha dia Novambra ihany. Tsy misy bibikely fantatry ny antsika ao, izany hoe nisy bibikely nampiana rehefa nandeha ny tetikasa.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Rehefa avy nisintona ny WAL-G ianao dia afaka manao baiko tsotra "lisitra backup", mandalo amin'ny fari-piainan'ny tontolo iainana. Ary hifandray amin'ny Object Storage izany ary hilaza aminao izay backup anananao. Amin'ny voalohany, mazava ho azy, tsy tokony hanana backups ianao. Ny teboka amin'ity slide ity dia ny hampisehoana fa tsotra ny zava-drehetra. Ity dia baiko console izay manaiky ny fari-piainan'ny tontolo iainana ary manatanteraka ny subcommands.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Aorian'izany dia afaka manao backup voalohany ianao. Lazao ny "backup-push" amin'ny WAL-G ary ambarao ao amin'ny WAL-G ny toerana misy ny pgdata amin'ny cluster-nao. Ary azo inoana fa hilaza aminao ny PostgreSQL, raha mbola tsy manana rafitra backup ianao, dia mila mamela ny "archive-mode".

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Midika izany fa mila mandeha any amin'ny toe-javatra ianao ary velomy ny "archive_mode = on" ary ampio ny "archive_command", izay subcommand ihany koa ao amin'ny WAL-G. Saingy noho ny antony sasany dia matetika ny olona no mampiasa sora-baventy momba ity lohahevitra ity ary mametaka azy manodidina ny WAL-G. Aza manao izany azafady. Ampiasao ny fiasa hita ao amin'ny WAL-G. Raha misy zavatra tsy ampy dia manorata any GitHub. Ny WAL-G dia mihevitra fa io ihany no programa mandeha amin'ny archive_command.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Mampiasa ny WAL-G izahay indrindra indrindra mba hamoronana cluster High Availability amin'ny fitantanana Yandex Database.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ary matetika izy io dia ampiasaina amin'ny topolojian'ny Master iray sy replication maromaro. Mandritra izany fotoana izany, manao kopia backup ao amin'ny Yandex Object Storage.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ny toe-javatra mahazatra indrindra dia ny famoronana dika mitovy amin'ny cluster mampiasa Point in time recovery. Saingy amin'ity tranga ity dia tsy dia zava-dehibe loatra ho antsika ny fanatanterahana ny rafitra backup. Mila mampiditra cluster vaovao avy amin'ny backup fotsiny isika.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Amin'ny ankapobeny dia mila ny fahombiazan'ny rafitra backup isika rehefa manampy node vaovao. Nahoana no zava-dehibe izany? Matetika ny olona dia manampy node vaovao amin'ny cluster satria tsy mahazaka ny entana vakiana ny cluster efa misy. Mila manampy kopia vaovao izy ireo. Raha ampidirintsika amin'ny Master ny entana avy amin'ny pg_basebackup, dia mety hirodana ny Master. Noho izany, tena zava-dehibe ho anay ny afaka mampakatra node vaovao avy amin'ny arisiva, mamorona entana kely indrindra amin'ny Master.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ary toe-javatra hafa mitovy amin'izany. Izany no ilaina hamerenana indray ny Master taloha rehefa avy namadika ny Cluster Master avy amin'ny Data Center izay very ny fifandraisana.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

  • Vokatr'izany, rehefa namolavola ny fepetra takiana amin'ny rafitra kopia, dia nahatsapa izahay fa tsy mety aminay ny pg_basebackup rehefa miasa ao anaty rahona.
  • Te ho afaka hanery ny angonay izahay. Fa saika ny rafitra backup hafa ankoatra izay tonga ao anaty boaty dia hanome famatrarana data.
  • Te hampitoviana ny zava-drehetra izahay satria ny mpampiasa iray ao amin'ny rahona dia mividy cores processeur marobe. Fa raha tsy manana parallelism amin'ny asa sasany, dia maro ny cores lasa tsy misy ilana azy.
  • Mila encryption isika satria matetika ny angon-drakitra dia tsy antsika ary tsy azo tehirizina ao anaty lahatsoratra mazava. Raha ny tokony ho izy, nanomboka tamin'ny fanafenana ny fandraisanay anjara tamin'ny WAL-G. Nahavita ny encryption tao amin'ny WAL-G izahay, taorian'izay dia nanontaniana izahay hoe: "Angamba ny iray aminay no hamolavola ny tetikasa?" Ary nanomboka teo dia niasa tamin'ny WAL-G nandritra ny herintaona mahery aho.
  • Nila fanetehana ny loharanon-karena ihany koa izahay, satria rehefa nandeha ny fotoana nampiasa ny rahona, dia hitanay fa indraindray ny olona dia manana entana lehibe enta-madinika amin'ny alina ary tsy azo sakanana izany entana izany. Izany no antony nampianay ny famehezana loharanon-karena.
  • Ary koa ny lisitra sy ny fitantanana.
  • Ary fanamarinana.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Nijery fitaovana maro samihafa izahay. Soa ihany fa manana safidy be dia be ao amin'ny PostgreSQL isika. Ary na aiza na aiza misy zavatra tsy ampy, ny sasany miasa kely, ny sasany endri-javatra kely.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ary rehefa nandinika ny rafitra misy izahay dia tonga tamin'ny fanatsoahan-kevitra fa hamolavola ny WAL-G izahay. Tetikasa vaovao io tamin’izay. Tena mora ny nitaona ny fivoarana mankany amin'ny fotodrafitrasa rahona amin'ny rafitra backup.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ny foto-pisainana fototra ifikirantsika dia ny WAL-G dia tokony ho tsotra toy ny balalaika.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ny WAL-G dia manana baiko 4. ity:

WAL-PUSH - tahiry ny andry.

WAL-FETCH - mahazo shaft.

BACKUP-PUSH - manaova backup.

BACKUP-FETCH - mahazo backup avy amin'ny rafitra backup.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Raha ny marina, ny WAL-G ihany koa dia manana ny fitantanana ireo backups ireo, izany hoe mitanisa sy mamafa rakitra sy backups amin'ny tantara izay tsy ilaina intsony amin'izao fotoana izao.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ny iray amin'ireo asa lehibe ho antsika dia ny famoronana delta copies.

Ny dika mitovy amin'ny Delta dia midika fa tsy mamorona backup feno amin'ny cluster manontolo izahay, fa ny pejy novaina amin'ny rakitra niova ao amin'ny cluster ihany. Toa mitovy amin'ny fomba fiasa izany amin'ny fahafahana mamerina mampiasa WAL. Saingy azontsika atao ny manarona ny backup delta misy kofehy tokana WAL mifanitsy. Noho izany, rehefa manana backup fototra atao amin'ny asabotsy isika, ny delta backups isan'andro, ary ny alakamisy dia tsy mahomby, dia mila manodina 4 delta backups sy 10 ora WAL. Tokony ho toy izany koa ny fotoana satria mihodina mifanandrify ny backups delta.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

LSN-based deltas - midika izany fa rehefa mamorona backup dia mila manambatra ny pejy tsirairay isika ary manamarina ny LSN miaraka amin'ny LSN an'ny backup teo aloha mba hahatakarana fa niova izy. Izay pejy mety misy angona niova dia tokony ho hita ao amin'ny backup delta.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Araka ny efa nolazaiko, dia nisy ny fifantohana be tamin'ny parallelisme.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Saingy ny API archive ao amin'ny PostgreSQL dia tsy miovaova. PostgreSQL dia mametraka rakitra WAL iray ary rehefa mamerina azy dia mangataka rakitra WAL iray. Fa rehefa mangataka rakitra WAL iray ny angon-drakitra amin'ny alàlan'ny baiko "WAL-FETCH", dia antsoinay ny baiko "WAL-PREFETCH", izay manomana ireo rakitra 8 manaraka haka angona avy amin'ny fivarotana zavatra mifanitsy.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey BorodinAry rehefa angatahin'ny angon-drakitra mba hanangona rakitra iray dia mijery ny archive_status isika ary mijery raha misy rakitra WAL hafa. Ary miezaka misintona ny WAL mifanitsy koa izahay. Izany dia manome tombony lehibe amin'ny fampisehoana ary mampihena be ny halaviran'ny isan'ny WAL tsy voatahiry. Betsaka ny mpamorona rafitra backup no mino fa rafitra mampidi-doza ity satria miantehitra amin'ny fahalalantsika ny atiny amin'ny code izay tsy PostgreSQL API. Ny PostgreSQL dia tsy miantoka ny fisian'ny lahatahiry archive_status ho antsika ary tsy miantoka ny semantika, ny fisian'ny famantarana fahavononana ho an'ny rakitra WAL ao. Na izany aza, mianatra ny loharanon-kevitra izahay, hitantsika fa izany no izy ary miezaka ny manararaotra izany. Ary mifehy ny lalana ivoahan'ny PostgreSQL izahay; raha tapaka tampoka ity mekanika ity dia hijanona tsy hampiasa azy intsony izahay.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Amin'ny endriny madio, ny delta WAL miorina amin'ny LSN dia mitaky ny famakiana rakitra cluster izay niova ny fotoana ao amin'ny rafi-drakitra nanomboka tamin'ny backup teo aloha. Niaina tamin'izany nandritra ny fotoana ela izahay, efa ho herintaona. Ary tamin'ny farany dia tonga tamin'ny fanatsoahan-kevitra izahay fa manana delta WAL.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey BorodinMidika izany fa isaky ny mitahiry ny WAL ao amin'ny Master isika dia tsy vitan'ny hoe manindry azy, manao encryption ary mandefa azy any amin'ny tambajotra, fa mamaky azy io ihany koa. Mamakafaka sy mamaky ny firaketana ao izahay. Takatsika hoe iza avy ireo sakana niova ary manangona rakitra delta.

Ny fisie delta dia manoritsoritra karazana rakitra WAL sasany, manoritsoritra fampahalalana momba ny blocs novaina tamin'ity fikandrana WAL ity. Ary avy eo dia voatahiry ihany koa ireo rakitra delta ireo.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Eto isika dia miatrika ny zava-misy fa nampitoviana haingana ny zava-drehetra, saingy tsy afaka mamaky tantara mifanandrify isika, satria amin'ny fizarana iray dia mety hahita ny fiafaran'ny firaketana WAL teo aloha isika, izay tsy mbola misy hifandraisana, satria Ny famakiana parallèle dia nahatonga ny famakafakana ny ho avy, izay tsy mbola misy lasa.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Vokatr'izany dia tsy maintsy nametraka ampahany tsy takatry ny saina tao anaty rakitra _delta_partial izahay. Vokatr'izany, rehefa miverina amin'ny lasa isika, dia hametahana ny sombin'ny rakitra WAL ho iray, ary aorian'izay dia hosoratantsika izany ary hahatakatra izay niova tao.

Raha ao amin'ny tantaran'ny fanaparitahana ny shaft dia misy teboka iray farafahakeliny izay tsy azontsika ny zava-mitranga, noho izany, mandritra ny backup manaraka dia voatery hamaky indray ny cluster manontolo isika, toy ny nataontsika tamin'ny LSN mahazatra. - Delta miorina.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Vokatr'izany, ny fijalianay rehetra dia nitarika ny famakiam-boky WAL-G famakiam-boky. Raha ny fahalalako azy dia mbola tsy misy mampiasa izany fa raha misy te-hanoratra sy hampiasa azy dia eo amin'ny sehatra ho an'ny daholobe. (Rohy nohavaozina https://github.com/wal-g/wal-g/tree/master/internal/walparser)

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Vokatr'izany dia toa sarotra be ny fikorianan'ny vaovao rehetra. Ny Mpitarika anay dia mitahiry ny shaft ary mitahiry rakitra delta. Ary ny kopia izay manao ny kopia backup dia tsy maintsy mahazo rakitra delta mandritra ny fotoana nandalovana teo anelanelan'ny backups. Amin'ity tranga ity, ny ampahany amin'ny tantara dia mila ampiana betsaka sy asiana, satria tsy ny tantara manontolo no mifanentana amin'ny fizarana lehibe. Ary aorian'izany dia afaka mitahiry tahiry delta feno ny kopia.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Amin'ny grafika dia toa tsotra kokoa ny zava-drehetra. Ity dia fampidinana avy amin'ny iray amin'ireo tena cluster misy anay. Manana LSN izahay, natao tao anatin'ny iray andro. Ary hitantsika fa ny backup delta miorina amin'ny LSN dia nandeha tamin'ny telo maraina ka hatramin'ny dimy maraina. Izany no enta-mavesatra ny isan'ny processeur cores. Ny WAL-delta dia nitondra anay teo amin'ny 20 minitra teo. Izany hoe, lasa haingana kokoa izany, saingy tamin'izany fotoana izany dia nisy fifanakalozam-baovao mahery vaika kokoa tamin'ny tambajotra.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Koa satria manana fampahalalana momba ny blocs niova sy tamin'ny fotoana inona teo amin'ny tantaran'ny angon-drakitra izahay, dia nandeha lavitra izahay ary nanapa-kevitra ny hampiditra fiasa - fanitarana PostgreSQL antsoina hoe "pg_prefaulter"

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Midika izany fa rehefa manatanteraka ny baikon'ny famerenana amin'ny laoniny ny toby mijoro dia miteny amin'ny WAL-G izy mba haka ny rakitra WAL manaraka. Fantatsika ny momba ny angon-drakitra manakana ny fizotran'ny fanarenana ny WAL tsy ho ela ary hanomboka hetsika famakiana ireo sakana ireo. Izany dia natao mba hampitomboana ny fahombiazan'ny SSD controllers. Satria ny horonana WAL dia ho tonga amin'ny pejy mila ovaina. Ity pejy ity dia ao anaty kapila ary tsy ao amin'ny cache pejy. Ary hiandry miaraka amin'ny fahatongavan'ity pejy ity izy. Fa eo akaiky eo dia WAL-G, izay mahafantatra fa ao anatin'ny megabytes an-jatony vitsivitsy manaraka an'ny WAL dia mila pejy sasantsasany isika ary manomboka manafana azy ireo. Manomboka fidirana amin'ny kapila marobe mba ho tanterahina mifanaraka. Ity dia miasa tsara amin'ny kapila SSD, saingy, indrisy, tsy azo ampiharina amin'ny kapila mafy izany, satria manelingelina azy amin'ny bitsika ihany izahay.

Izany no ao amin'ny code izao.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Misy endri-javatra tiana ampiana.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ity sary ity dia mampiseho fa maka fotoana fohy ny WAL-delta. Ary izany dia mamaky ny fiovana nitranga tao amin'ny angon-drakitra nandritra ny andro. Afaka manao WAL-delta isika tsy amin'ny alina ihany, satria tsy loharanon-karena lehibe intsony izy io. Afaka mamaky WAL-delta isa-minitra isika satria mora. Ao anatin'ny iray minitra dia afaka mijery ny fiovana rehetra nitranga tamin'ny cluster isika. Ary izany dia azo antsoina hoe "instant WAL-delta".

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ny tiana holazaina dia rehefa mamerina ny cluster isika dia ahena ny isan'ny tantara tsy maintsy ahodina misesy. Izany hoe, tokony hahena ny habetsahan'ny WAL izay nahodinan'ny PostgreSQL, satria mila fotoana be izany.

Tsy izay ihany anefa. Raha fantatsika fa ny sakana sasany dia hovana ho amin'ny tsy fitovian'ny backup, dia tsy afaka manova izany isika taloha. Izany hoe, manana optimization isan-drakitra amin'ny fandefasana WAL-delta isika izao. Midika izany fa raha, ohatra, ny talata dia voafafa tanteraka ny latabatra sasany na voafafa tanteraka amin'ny latabatra ny rakitra sasany, dia rehefa miverina amin'ny laoniny ny delta ny alatsinainy sy ny asabotsy ny pg_basebackup dia tsy hamorona an'io data io akory izahay.

Te-hanitatra ity teknolojia ity ho amin'ny haavon'ny pejy izahay. Izany hoe, raha misy ampahany amin'ny rakitra miova amin'ny Alatsinainy, fa hosoloina amin'ny Alarobia, dia rehefa mamerina amin'ny teboka iray amin'ny alakamisy, dia tsy mila manoratra ny dikan-teny voalohany amin'ny pejy amin'ny kapila.

Mbola hevitra mazoto resahina ato anatintsika ihany anefa izany, saingy tsy mbola tonga amin’ny fehezan-dalàna.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Te hanao endri-javatra iray hafa ao amin'ny WAL-G izahay. Tianay ny hanitatra azy io satria mila manohana angon-drakitra samihafa izahay ary maniry ny ho afaka hanatona ny fitantanana backup amin'ny fomba mitovy. Fa ny olana dia ny MySQL API dia tsy mitovy tanteraka. Ao amin'ny MySQL, ny PITR dia tsy mifototra amin'ny log WAL ara-batana, fa amin'ny binlog. Ary tsy manana rafitra fitahirizana ao amin'ny MySQL izahay izay hilaza amin'ny rafitra ivelany sasany fa vita io binlog io ary mila arsiva. Mila mijoro any amin'ny cron miaraka amin'ny angon-drakitra isika ary manamarina raha misy zavatra vonona?

Ary toy izany koa, mandritra ny famerenana amin'ny MySQL, dia tsy misy baiko famerenana izay afaka milaza amin'ny rafitra fa mila rakitra toy izany aho. Alohan'ny hanombohanao manangana indray ny cluster dia mila mahafantatra izay rakitra ilainao ianao. Ianao mihitsy no mila maminavina izay rakitra ilainao. Saingy ireo olana ireo dia mety ho azo fehezina amin'ny fomba ahoana. (Fanazavana: efa tohana ny MySQL)

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Tao amin'ny tatitra, te hiresaka momba ireo tranga izay tsy mety aminao ny WAL-G.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Raha tsy manana kopia synchronous ianao dia tsy manome antoka ny WAL-G fa ho voatahiry ny fizarana farany. Ary raha toa ny fitahirizana rakitra ao ambadiky ny fizarana vitsivitsy farany amin'ny tantara dia loza izany. Raha tsy misy kopia synchronous dia tsy manoro hevitra ny fampiasana WAL-G aho. Na izany aza, natao indrindra ho an'ny fametrahana rahona izy io, izay midika hoe vahaolana avo lenta miaraka amin'ny kopia synchronous, izay tompon'andraikitra amin'ny fiarovana ny bytes farany natao.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Matetika aho no mahita olona manandrana mihazakazaka WAL-G sy WAL-E miaraka. Manohana ny fifanarahana mihemotra izahay amin'ny heviny hoe ny WAL-G dia afaka mamerina rakitra iray avy amin'ny WAL-E ary afaka mamerina ny backup vita amin'ny WAL-E. Saingy satria ireo rafitra roa ireo dia mampiasa parallèle wal-push, dia manomboka mangalatra rakitra izy ireo. Raha amboarina amin'ny WAL-G izy dia mbola hijanona ao amin'ny WAL-E. Ao amin'ny WAL-E dia mijery ny sata arsiva, mahita ireo rakitra vita ary mitahiry azy ireo, fa ny rafitra hafa dia tsy hahalala fotsiny fa nisy io rakitra WAL io, satria ny PostgreSQL dia tsy hanandrana haka azy fanindroany.

Inona no hamboarintsika eto amin'ny lafiny WAL-G? Tsy hampahafantatra amin'ny PostgreSQL izahay fa nafindra mirazotra ity rakitra ity, ary rehefa manontany anay ny PostgreSQL mba hanoratra azy, dia ho fantatsika fa efa misy rakitra toy izany miaraka amin'ity mode-time ity ary miaraka amin'ity md5 ity dia efa voatahiry ary holazainay fotsiny hoe PostgreSQL - OK, vonona ny zava-drehetra nefa tsy manao na inona na inona.

Saingy tsy azo amboarina amin'ny lafiny WAL-E io olana io, noho izany dia tsy azo atao ny mamorona baiko arsiva izay hametraka ny rakitra ao amin'ny WAL-G sy WAL-E.

Ankoatr'izay, misy ny tranga tsy mety aminao izao ny WAL-G, saingy tena hamboarinay izany.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey BorodinVoalohany, tsy manana fanamarinana backup naorina izahay amin'izao fotoana izao. Tsy manana fanamarinana izahay na mandritra ny backup na fanarenana. Mazava ho azy, izany dia ampiharina amin'ny rahona. Fa izany dia tanterahina amin'ny alalan'ny fanamarinana mialoha fotsiny, amin'ny alalan'ny famerenana fotsiny ny cluster. Te-hanome ity fampiasa ity ho an'ny mpampiasa aho. Saingy amin'ny alàlan'ny fanamarinana dia heveriko fa amin'ny WAL-G dia azo atao ny mamerina ny cluster ary manomboka izany, ary manao fitsapana setroka: pg_dumpall mankany / dev / null ary fanamarinana index amcheck.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Amin'izao fotoana izao ao amin'ny WAL-G dia tsy misy fomba hanemorana ny backup iray avy amin'ny WAL. Izany hoe, manohana varavarankely sasany izahay. Ohatra, mitahiry ny fito andro farany, mitahiry ireo backup folo farany, mitahiry ireo backup telo farany. Matetika ny olona no tonga ary miteny hoe: "Mila backup ny zava-nitranga tamin'ny Taom-baovao izahay ary te hitazona izany mandrakizay." Tsy mbola hain'ny WAL-G ny hanaovana izany. (Fanamarihana - Efa raikitra izany. Hamaky bebe kokoa - Safidy backup-mark in https://github.com/wal-g/wal-g/blob/master/PostgreSQL.md)

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ary tsy manana fanaraha-maso pejy sy fanamarinana ny fahamendrehana ho an'ny fizarana shaft rehetra izahay rehefa manamarina ny PITR.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Avy amin'izany rehetra izany dia nanangona tetikasa ho an'ny Google Summer of Code aho. Raha fantatrao ireo mpianatra marani-tsaina izay te hanoratra zavatra ao amin'ny Go ary mahazo dolara an'arivony avy amin'ny orinasa iray misy litera "G", dia manoro hevitra azy ireo ny tetikasantsika. Ho mpanoro hevitra amin'ity tetikasa ity aho, afaka manao izany izy ireo. Raha tsy misy mpianatra dia horaisiko ary hataoko amin'ny fahavaratra.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ary manana olana madinidinika maro hafa izay iarahantsika tsikelikely. Ary misy zavatra hafahafa mitranga.

Ohatra, raha manome WAL-G backup poakaty ianao dia hianjera fotsiny. Ohatra, raha milaza aminy ianao fa mila manao backup folder tsy misy na inona na inona izy. Tsy ho eo ny rakitra pg_control. Ary hihevitra izy fa tsy azony ny zavatra iray. Amin'ny teoria, amin'ity tranga ity dia mila manoratra hafatra mahazatra amin'ny mpampiasa ianao mba hanazavana aminy ny fomba fampiasana ilay fitaovana. Saingy tsy endri-javatra amin'ny fandaharana akory izany, fa singa iray amin'ny fiteny tsara sy azo takarina.

Tsy haintsika ny manao backup an-tserasera. Raha mandainga ny angon-drakitra dia tsy afaka mamerina izany izahay. Tsotra be anefa ny zava-drehetra eto. Miantso backup avy amin'ny LSN izahay rehefa nanomboka. Ny LSN an'ny fototra fototra dia tsy maintsy vakiana avy amin'ny rakitra fanaraha-maso. Ary ity dia endri-javatra tsy azo tsapain-tanana. Maro ny rafitra backup afaka manao backup angona fototra. Ary mety.

Tsy afaka mitantana tsara ny tsy fahampian'ny toerana backup izahay amin'izao fotoana izao. Satria matetika izahay dia miasa miaraka amin'ny backup lehibe ao an-trano. Ary tsy nihaona tamin'izany izy ireo. Fa raha misy olona te hanao fandaharana ao amin'ny Go amin'izao fotoana izao, ampio ny fitantanana ny lesoka ivelan'ny habakabaka amin'ny siny. Tena hojereko ny fangatahana fisarihana.

Ary ny tena mampanahy anay dia mila fitsapana fampidirana docker betsaka araka izay azo atao izahay mba hanamarinana ireo toe-javatra samihafa. Amin'izao fotoana izao dia mitsapa toe-javatra fototra fotsiny isika. Amin'ny commit rehetra, fa te hanamarina ny commit-by-commit ny fampiasa rehetra tohananay izahay. Amin'ny ankapobeny, ohatra, dia hanana fanohanana ampy ho an'ny PostgreSQL 9.4-9.5 isika. Manohana azy ireo izahay satria manohana ny PostgreSQL ny vondrom-piarahamonina, saingy tsy manamarina ny commit-by-commit izahay mba hahazoana antoka fa tsy tapaka ny zava-drehetra. Ary raha ny fahitako azy dia tena loza tokoa izany.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Manana WAL-G mandeha amin'ny clusters mihoatra ny arivo amin'ny fitantanana Yandex Database izahay. Ary manohana angona terabytes an-jatony isan'andro.

Manana TODO be dia be izahay ao amin'ny code. Raha te hanao fandaharana ianao dia tongava fa miandry fangatahana misintona izahay, miandry fanontaniana.

Backups avy amin'ny WAL-G. Inona no ao amin'ny 2019? Andrey Borodin

Ny fanontanianao

Salama! Misaotra anao! Ny heveriko fa raha mampiasa WAL-delta ianao dia mety miantehitra be amin'ny fanoratana pejy feno. Ary raha izany, nanao fitsapana ve ianao? Nampiseho grafika mahafinaritra ianao. Hatraiza no ho tsara tarehy kokoa raha tapaka ny FPW?

Ny fanoratana pejy feno dia alefa ho anay, tsy nanandrana nanakana azy izahay. Izany hoe, izaho, amin'ny maha-mpamorona azy, dia tsy nanandrana namono azy. Ireo mpitantana ny rafitra izay nanao fikarohana dia mety nanao fikarohana momba ity olana ity. Fa mila FPW isika. Saika tsy misy manakana azy io, satria raha tsy izany dia tsy azo atao ny maka backup amin'ny kopia.

Misaotra tamin'ny tatitra! Manana fanontaniana roa aho. Ny fanontaniana voalohany dia inona no hitranga amin'ny tablespaces?

Miandry fangatahana fisintonana izahay. Miaina amin'ny kapila SSD sy NMVE ny angonay ary tsy tena mila an'io endri-javatra io izahay. Tsy vonona ny handany fotoana matotra aho amin'izao fotoana izao amin'ny fanaovana izany tsara. Miaro amin’ny fo manontolo ny hanohanantsika izany. Misy ny nanohana azy, saingy nanohana azy tamin’ny fomba sahaza azy. Nanao fork izy ireo, saingy tsy manao fangatahana misintona. (Ampiana amin'ny dikan-0.2.13)

Ary ny fanontaniana faharoa. Nilaza ianao tany am-boalohany fa ny WAL-G dia mihevitra fa miasa irery izy io ary tsy ilaina ny fonony. Mampiasa wrapper ny tenako. Nahoana izy ireo no tsy tokony hampiasaina?

Tianay ho tsotra toy ny balalaika izany. Midika izany fa tsy mila na inona na inona afa-tsy balalaika ianao. Tianay ho tsotra ny rafitra. Raha manana fampiasa mila atao amin'ny script ianao dia tongava ary lazao aminay - hataonay ao amin'ny Go.

Salama! Misaotra tamin'ny tatitra! Tsy afaka nahazo ny WAL-G izahay mba hiasa amin'ny famadihana GPG. Manao encryption ara-dalàna izy io, fa tsy te hamafa. Zavatra tsy nety taminay ve izany? Mahakivy ny toe-draharaha.

Mamorona olana amin'ny GitHub ary andao hojerentsika.

Izany hoe, mbola tsy nahita an'izany ve ianao?

Misy endri-javatra iray amin'ny tatitra momba ny hadisoana fa rehefa tsy azon'ny WAL-G hoe karazana rakitra inona izy io, dia manontany izy hoe: "Angamba misy encryption?" Angamba tsy encryption mihitsy no olana. Te-hanatsara ny firaketana an-tsoratra momba ity lohahevitra ity aho. Tsy maintsy mamaky izany izy. Eo am-pikarakarana ity lohahevitra ity izahay amin'izao fotoana izao amin'ny heviny hoe tsy tena tianay ny fomba nandaminana ny rafitra hahazoana ny fanalahidy ho an'ny daholobe sy manokana. Satria miantso GPG ivelany izahay mba hanome anay ny lakileny. Ary avy eo dia maka ireo fanalahidy ireo isika ary mamindra azy ireo amin'ny GPG anatiny, izay PGP misokatra, izay natambatra ho antsika ao anatin'ny WAL-G, ary eo no antsoinay hoe encryption. Amin'io lafiny io, te hanatsara ny rafitra izahay ary te hanohana ny encryption Libsodium (Ampiana amin'ny version 0.2.15). Mazava ho azy fa tokony hiasa ny decoding, andeha hojerentsika - mila soritr'aretina bebe kokoa noho ny teny roa ianao. Afaka mivory ao amin'ny efitranon'ny mpandahateny ianao indraindray ary mijery ny rafitra. (PGP encryption tsy misy GPG ivelany - v0.2.9)

Salama! Misaotra tamin'ny tatitra! Manana fanontaniana roa aho. Manana faniriana hafahafa aho hanao pg_basebackup sy WAL miditra amin'ny mpamatsy roa, izany hoe te hanao rahona iray sy iray hafa aho. Misy fomba hanaovana izany ve?

Tsy misy izany ankehitriny, fa hevitra mahaliana.

Tsy matoky mpamatsy iray fotsiny aho, te-hanana mitovy amin'ny iray hafa aho, raha tsy izany.

Mahaliana ilay hevitra. Ara-teknika, tsy sarotra mihitsy ny mampihatra izany. Mba hisakanana ilay hevitra tsy ho very, afaka mangataka aminao ve aho hanao olana amin'ny GitHub?

Eny, mazava ho azy.

Ary avy eo, rehefa tonga ao amin'ny Google Summer of Code ny mpianatra, dia ampianay amin'ny tetikasa izy ireo mba hisian'ny asa bebe kokoa hahazoana tombony bebe kokoa amin'izy ireo.

Ary ny fanontaniana faharoa. Misy olana ao amin'ny GitHub. Heveriko fa efa mihidy. Misy tahotra mandritra ny famerenana. Ary mba handresena azy, dia nanao fivoriambe manokana ianao. Marina izany amin'ny olana. Ary misy safidy hanaovana tontolo miovaova amin'ny kofehy iray. Ary izay no mahatonga azy miasa miadana be. Ary sendra ity olana ity izahay, ary mbola tsy voavaha.

Ny olana dia noho ny antony sasany ny fitahirizana (CEPH) dia mamerina ny fifandraisana rehefa tonga amin'izany miaraka amin'ny concurrency avo lenta. Inona no azo atao amin'izany? Toy izao ny lojika andrana indray. Miezaka misintona ilay rakitra indray izahay. Tao anatin'ny pass iray dia nisy rakitra maromaro tsy nalaina, hanao ny faharoa ho an'ireo rehetra tsy niditra. Ary raha mbola misy rakitra iray farafahakeliny entina isaky ny mandeha, dia mamerina sy mamerina ary mamerina. Nohatsarainay ny lojikan'ny andrana indray - fiafaran'ny exponential. Saingy tsy mazava tsara izay tokony hatao amin'ny hoe tapaka fotsiny ny fifandraisana eo amin'ny lafiny rafitra fitahirizana. Izany hoe, rehefa mampakatra amin'ny stream iray isika dia tsy manapaka ireo fifandraisana ireo. Inona no azontsika hatsaraina eto? Manana fantson-tambajotra izahay, afaka mametra ny fifandraisana tsirairay amin'ny isan'ny bytes alefany. Raha tsy izany, tsy haiko ny fomba hiatrehana ny zava-misy fa ny fitahirizana zavatra dia tsy mamela antsika hisintona na hisintona azy amin'ny parallèle.

Tsy misy SLA? Tsy voasoratra ho azy ireo ve ny fomba namelany ny tenany hampijaliana?

Ny zava-misy dia ny olona mametraka io fanontaniana io matetika dia manana ny vatany manokana. Izany hoe, tsy misy olona avy amin'ny Amazon na Google Cloud na Yandex Object Storage.

Angamba tsy ho anao intsony ny fanontaniana?

Ny fanontaniana eto amin'ity raharaha ity dia tsy mampaninona an'iza. Raha misy hevitra momba ny fiatrehana izany dia aleo atao ao amin'ny WAL-G. Saingy hatramin'izao dia tsy manana hevitra tsara momba ny fomba hiatrehana izany aho. Misy Object Storage izay manohana ny lisitry ny backup amin'ny fomba hafa. Asaivo mitanisa zavatra izy ireo, ary ampidiriny ao ny lahatahiry. Matahotra ny WAL-G amin'izany - misy karazana zavatra tsy rakitra eto, tsy afaka mamerina azy aho, midika izany fa tsy tafaverina ny backup. Izany hoe, raha ny marina, manana cluster naverina tamin'ny laoniny ianao, saingy mamerina anao ny sata diso satria ny Object Storage dia namerina vaovao hafahafa izay tsy azony.

Ity dia zavatra mitranga ao amin'ny rahona Mail.

Raha afaka manamboatra reproduction ianao ...

Averina tsy tapaka izany...

Raha misy ny famokarana, dia heveriko fa hanandrana paikady andrana indray isika ary hamantatra ny fomba hanandrana indray sy hahatakarana izay takian'ny rahona amintsika. Angamba ho stable ho antsika amin'ny fifandraisana telo izany ary tsy hanapaka ny fifandraisana, dia hahatratra telo isika. Satria izao dia nidina haingana be ny fifandraisana, izany hoe raha nanomboka fanarenana tamin'ny kofehy 16 izahay, dia aorian'ny famerenana voalohany dia hisy kofehy 8, kofehy 4, kofehy 2 ary iray. Ary avy eo dia hisintona ny rakitra ho amin'ny renirano iray. Raha misy soatoavina majika toy ny kofehy 7,5 no tsara indrindra amin'ny paompy, dia hijanona eo amin'izy ireo isika ary hiezaka ny hanao kofehy 7,5 hafa. Ity misy hevitra.

Misaotra tamin'ny tatitra! Manao ahoana ny fandehan'ny asa feno amin'ny fiasana amin'ny WAL-G? Ohatra, amin'ny tranga adala rehefa tsy misy delta manerana ny pejy. Ary alaintsika sy esorinay ny backup voalohany, ary alaivo ny andry mandra-paha-manga amin'ny tarehy. Eto, raha ny fahazoako azy, dia misy fahatapahana. Amin'ny fotoana iray dia mila manao backup delta amin'ny pejy ianao, izany hoe misy dingana ivelany mitondra an'ity sa ahoana no mitranga?

Tsotra ny API backup delta. Misy isa ao - max delta dingana, izany no iantsoana azy. Mivadika ho aotra izany. Midika izany fa isaky ny manao backup-push ianao dia misintona backup feno. Raha manova azy amin'ny isa tsara ianao, ohatra, 3, dia amin'ny manaraka rehefa manao backup-push ianao dia mijery ny tantaran'ny backup teo aloha. Hitany fa tsy mihoatra ny rojo delta 3 ianao ary manao delta.

Izany hoe, isaky ny manomboka ny WAL-G isika dia manandrana manao backup feno?

Tsia, mitantana ny WAL-G izahay, ary manandrana manao delta izy raha mamela izany ny politikanao.

Raha lazaina amin'ny teny tsotra, raha mihazakazaka amin'ny aotra ianao isaky ny mandeha, ho toy ny pg_basebackup ve izany?

Tsia, mbola hihazakazaka haingana kokoa izy io satria mampiasa compression sy parallelism. Pg_basebackup dia hametraka ny shaft eo akaikinao. Ny WAL-G dia mihevitra fa efa namboarinao ny arsiva. Ary hamoaka fampitandremana izany raha tsy voarindra.

Pg_basebackup dia azo atao tsy misy shafts.

Eny, saika mitovy ny fitondran-tenany. Pg_basebackup dia mandika amin'ny rafi-drakitra. Raha ny tokony ho izy dia manana endri-javatra vaovao izay adinoko ny miresaka. Afaka mamerina amin'ny rafitra fichier avy amin'ny pg_basebackup. Tsy fantatro hoe nahoana no ilaina izany, fa misy izany.

Ohatra, ao amin'ny CephFS. Tsy ny rehetra no te hanitsy ny Object Storage.

Eny, izany angamba no nahatonga azy ireo nametraka fanontaniana momba an'io endri-javatra io mba hahafahantsika manao izany. Ary nanao izany izahay.

Misaotra tamin'ny tatitra! Misy fanontaniana fotsiny momba ny kopia amin'ny rafitra fichier. Eo ivelan'ny boaty, manohana ny kopia amin'ny fitahirizana lavitra ve ianao izao, ohatra, raha misy talantalana ao amin'ny foibe angona na zavatra hafa?

Amin'ity famolavolana ity dia fanontaniana sarotra izany. Eny, manohana izahay, saingy mbola tsy tafiditra ao anatin'ny famoahana rehetra ity fampiasa ity. Izany hoe, manohana an'io daholo ny pre-release, fa ny versione de release dia tsy izany. Ity fampiasa ity dia nampiana tamin'ny version 0.2. Azo antoka fa hivoaka tsy ho ela izy io, raha vantany vao amboarina ireo bibikely fantatra rehetra. Fa amin'izao fotoana izao dia tsy azo atao afa-tsy amin'ny famoahana mialoha. Misy bibikely roa ao amin'ny famoahana mialoha. Olana amin'ny fanarenana ny WAL-E, tsy voalaminay izany. Ary tamin'ny famoahana farany farany dia nisy bug momba ny delta-backup nampiana. Noho izany, manoro hevitra ny rehetra izahay mba hampiasa ireo dikan-teny famoahana. Raha vantany vao tsy misy bibikely intsony amin'ny famoahana mialoha, dia afaka milaza izahay fa manohana ny Google Cloud, zavatra mifanaraka amin'ny S3 ary fitahirizana rakitra.

Salama, misaotra amin'ny tatitra. Raha ny fahazoako azy dia tsy karazana rafitra foibe toy ny barmen ve ny WAL-G? Mikasa ny hifindra amin'io lalana io ve ianao?

Ny olana dia efa niala tamin'io lalana io isika. Ny WAL-G dia mipetraka amin'ny mpampiantrano fototra, amin'ny mpampiantrano cluster, ary amin'ny mpampiantrano rehetra ao amin'ny cluster. Rehefa nifindra tany amin'ny cluster an'arivony izahay, dia nanana fametrahana bartender maro. Ary isaky ny misy zavatra rava ao amin'izy ireo dia olana lehibe izany. Satria mila amboarina izy ireo dia mila mahatakatra hoe iza amin'ireo cluster izao no tsy manana backup. Tsy mikasa ny hamolavola ny WAL-G amin'ny fitarihana fitaovana ara-batana ho an'ny rafitra backup aho. Raha mila fonctionnaire eto ny fiarahamonina dia tsy mampaninona ahy mihitsy.

Manana ekipa tompon'andraikitra amin'ny fitahirizana izahay. Ary tena mahatsapa izahay fa tsy izahay, fa misy olona manokana mametraka ny rakitray any amin'ny toerana azo antoka ny rakitra. Manao karazana kaody mahay rehetra izy ireo mba hanohitra ny fahaverezan'ny rakitra maromaro. Izy ireo no tompon'andraikitra amin'ny bandwidth tambajotra. Rehefa manana bartender ianao, dia mety ho hitanao tampoka fa ny angon-drakitra kely misy fifamoivoizana be dia be dia miangona ao amin'ny server iray ihany. Toa manana toerana be dia be ianao amin'izany, saingy noho ny antony sasany dia tsy mifanaraka amin'ny tambajotra ny zava-drehetra. Mety hivadika indray izany. Betsaka ny tamba-jotra any, misy core processeur, fa tsy misy disks eto. Ary reraky ny filàna ny fanaovana juggle zavatra izahay, ary nifindra tamin'ny zava-misy izahay fa ny fitahirizana angon-drakitra dia serivisy misaraka, izay tompon'andraikitra amin'ny olona manokana.

PS Navoaka ny dikan-teny vaovao 0.2.15, izay ahafahanao mampiasa ny rakitra .walg.json, izay hita ao amin'ny lahatahiry home postgres amin'ny alàlan'ny default. Azonao atao ny miala amin'ny script bash. Ohatra .walg.json no ao amin'ity laharana ity https://github.com/wal-g/wal-g/issues/545

horonan-tsary:



Source: www.habr.com

Add a comment