Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ke khothaletsa hore u bale sengoloa sa tlaleho ho tloha qalong ea 2019 ke Andrey Borodin "Backups le WAL-G. Ho na le eng ka 2019?"

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Lumelang bohle! Lebitso la ka ke Andrey Borodin. Ke moqapi oa Yandex. Ke 'nile ka thahasella PostgreSQL ho tloha 2016, ka mor'a hore ke buisane le bahlahisi' me ba re ntho e 'ngoe le e' ngoe e bonolo - u nka khoutu ea mohloli ebe u e haha, 'me ntho e' ngoe le e 'ngoe e tla sebetsa. 'Me ho tloha ka nako eo ha ke khone ho emisa - ke ngola mefuta eohle ea lintho tse fapaneng.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey BorodinE 'ngoe ea lintho tseo ke sebetsang ho tsona ke sistimi ea backup. WAL-G. Ka kakaretso, ho Yandex esale re sebetsa ho li-backups ho PostgreSQL ka nako e telele haholo. Mme o ka fumana Marang-rang letoto la litlaleho tse ts'eletseng mabapi le mokhoa oa ho etsa li-backup system. 'Me selemo se seng le se seng ba fetoha hanyenyane, ba hōla hanyenyane,' me ba tšepahala haholoanyane.

Empa kajeno tlaleho ha e bue feela ka seo re se entseng, empa hape le hore na e bonolo hakae le hore na ke eng. Ke ba bakae ho lona ba seng ba shebelletse litlaleho tsa ka mabapi le WAL-G? Ho hotle ha batho ba bangata ba sa shebelle, hobane ke tla qala ka ntho e bonolo.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Haeba ka tšohanyetso u na le sehlopha sa PostgreSQL, 'me ke nahana hore e mong le e mong o na le tse' maloa tsa tsona, 'me ka tšohanyetso ha ho na mokhoa oa ho boloka, joale o hloka ho fumana polokelo leha e le efe ea S3 kapa polokelo e lumellanang le Google Cloud.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Mohlala, o ka tla sebakeng sa rona mme oa nka khoutu ea papatso ea Yandex Object Storage, e tsamaellanang le S3.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ebe u theha Bucket. Ke setshelo feela sa tlhahisoleseding.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Theha mosebelisi oa litšebeletso.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Theha senotlolo sa phihlello bakeng sa mosebelisi oa litšebeletso: aws-s3-key.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Khoasolla tokollo ea morao-rao e tsitsitseng ea WAL-G.

Likhatiso tsa rona tsa pele li fapane joang le tse lokollotsoeng? Hangata ke kopuoa ho lokolla kapele. 'Me haeba ho se na kokoanyana phetolelong ka nako e lekaneng, mohlala, khoeli, joale kea e lokolla. Tokollo ena ea November ke ena. 'Me sena se bolela hore khoeli e' ngoe le e 'ngoe re fumane mofuta o itseng oa kokoanyana, hangata e le ts'ebetsong e seng ea bohlokoa, empa ha re e-s'o lokolle tokollo. Phetolelo e fetileng ke November feela. Ha ho na likokoana-hloko tseo re li tsebang ho eona, ke hore, likokoana-hloko li ile tsa eketsoa ha morero o ntse o tsoela pele.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Hang ha u se u khoasollotse WAL-G, u ka tsamaisa taelo e bonolo ea "backup list", e fetisa mefuta e fapaneng ea tikoloho. 'Me e tla hokela ho Object Storage ebe e u joetsa hore na u na le li-backups life. Qalong, ha e le hantle, ha ua lokela ho ba le li-backups. Taba ea slide ena ke ho bontša hore ntho e 'ngoe le e' ngoe e bonolo haholo. Ena ke taelo ea console e amohelang mefuta e fapaneng ea tikoloho le ho phethahatsa subcommands.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ka mor'a sena, u ka etsa bekapo hao pele. E re "backup-push" ho WAL-G 'me u hlalose ho WAL-G sebaka sa pgdata sa sehlopha sa hau. 'Me mohlomong, PostgreSQL e tla u joetsa, haeba ha u na mokhoa oa ho boloka, hore u hloka ho nolofalletsa "archive-mode".

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Sena se bolela hore o hloka ho ea ho litlhophiso ebe o bulela "archive_mode = on" ebe o eketsa "archive_command", eo hape e leng taelo e nyane ho WAL-G. Empa ka mabaka a mang hangata batho ba sebelisa lingoloa tsa bar sehloohong sena ebe ba se phuthela ho WAL-G. Ke kopa o seke oa etsa sena. Sebelisa tšebetso e fumanoang ho WAL-G. Haeba u haelloa ke ho hong, ngolla ho GitHub. WAL-G e nka hore ke eona feela lenaneo le sebetsang ho archive_command.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Re sebelisa WAL-G haholo-holo ho theha sehlopha sa Phano e Phahameng ho tsamaiso ea Yandex Database.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

'Me hangata e sebelisoa ho topology ea Master a le mong le liphetolelo tse' maloa. Ka nako e ts'oanang, e etsa kopi ea "backup" ho Yandex Object Storage.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Maemo a atileng haholo ke ho etsa likopi tsa sehlopha se sebelisang Point nakong ea ho hlaphoheloa. Empa tabeng ena, ts'ebetso ea "backup system" ha e bohlokoa hakaalo ho rona. Re hloka feela ho kenya sehlopha se secha ho tsoa ho backup.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ka tloaelo, re hloka ts'ebetso ea "backup system" ha re eketsa node e ncha. Ke hobane'ng ha e le ea bohlokoa? Ka tloaelo batho ba eketsa node e ncha sehlopheng hobane sehlopha se teng ha se khone ho sebetsana le mojaro o baloang. Ba hloka ho eketsa replica e ncha. Haeba re eketsa mojaro ho tloha pg_basebackup ho Master, joale Monghali a ka 'na a oa. Ka hona, ho ne ho le bohlokoa haholo ho rona hore re ka kenya node e ncha ka potlako ho tsoa polokelong ea litaba, ra theha moroalo o fokolang ho Monghali.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Le boemo bo bong bo tšoanang. Sena ke tlhokahalo ea ho qala Master ea khale ka mor'a ho fetola Cluster Master ho tloha Setsing sa Data moo khokahanyo e lahlehileng.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

  • Ka lebaka leo, ha re etsa litlhoko tsa tsamaiso ea likopi, re ile ra hlokomela hore pg_basebackup ha ea re tšoanela ha re sebetsa lerung.
  • Re ne re batla ho khona ho hatella data ea rona. Empa hoo e batlang e le sistimi efe kapa efe ea bekapo ntle le e tlang ka lebokoseng e tla fana ka khatello ea data.
  • Re ne re batla ho bapisa ntho e ngoe le e ngoe hobane mosebelisi ea lerung o reka palo e kholo ea li-processor cores. Empa haeba re se na parallelism ts'ebetsong e itseng, joale palo e kholo ea li-cores e fetoha e se nang thuso.
  • Re hloka encryption hobane hangata data ha se ea rona mme ha e khone ho bolokoa ka mongolo o hlakileng. Ha re le tseleng, tlatsetso ea rona ho WAL-G e qalile ka encryption. Re qetile ho ngolla WAL-G, mme kamora moo re ile ra botsoa: "Mohlomong e mong oa rona o tla nts'etsapele projeke?" Mme ho tloha ka nako eo esale ke sebetsa le WAL-G nako e fetang selemo.
  • Re ne re boetse re hloka lisebelisoa tsa lisebelisoa, hobane ha nako e ntse e ea ho sebelisa leru, re ile ra fumana hore ka linako tse ling batho ba na le mojaro oa bohlokoa oa korosari bosiu 'me mojaro ona o ke ke oa sitisoa. Ke ka lebaka leo re ekelitseng throttling ea lisebelisoa.
  • Hammoho le lethathamo le tsamaiso.
  • Le netefatso.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Re shebile lisebelisoa tse ngata tse fapaneng. Ka lehlohonolo, re na le khetho e kholo ho PostgreSQL. 'Me hohle moo re neng re haelloa ke ntho e itseng, mosebetsi o mong o monyenyane, o mong o monyenyane.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

'Me ha re se re hlahlobile litsamaiso tse teng, re fihletse qeto ea hore re tla nts'etsapele WAL-G. E ne e le morero o mocha ka nako eo. Ho ne ho le bonolo ho susumetsa nts'etsopele e lebisang metheong ea leru ea sistimi ea "backup".

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Maikutlo a ka sehloohong ao re a khomarelang ke hore WAL-G e lokela ho ba bonolo joaloka balalaika.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

WAL-G e na le litaelo tse 4. Sena:

WAL-PUSH - boloka moqomo.

WAL-FETCH - fumana shaft.

BACKUP-PUSH – etsa bekapo.

BACKUP-FETCH - fumana bekapo ho tsoa ho sistimi ea bekapo.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ha e le hantle, WAL-G e boetse e na le tsamaiso ea li-backups tsena, ke hore, ho thathamisa le ho hlakola litlaleho le li-backups historing tse seng li sa hlokahale ka nako eo.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

E 'ngoe ea mesebetsi ea bohlokoa ho rona ke mosebetsi oa ho etsa likopi tsa delta.

Likopi tsa Delta li bolela hore ha re thehe polokelo e felletseng ea sehlopha sohle, empa ke maqephe a fetotsoeng a lifaele tse fetotsoeng sehlopheng. Ho ka bonahala eka ka ts'ebetso sena se ts'oana haholo le bokhoni ba ho hlaphoheloa u sebelisa WAL. Empa re ka bokella "backup" ea WAL e nang le khoele e le 'ngoe ka ho tsamaisana. Ka hona, ha re e-na le "backup" ea motheo e entsoeng ka Moqebelo, li-backups tsa delta letsatsi le leng le le leng, 'me ka Labone re hlōleha, joale re hloka ho bokella li-backups tse 4 tsa delta le lihora tse 10 tsa WAL. Ho tla nka nako e ts'oanang hobane li-backups tsa delta li tsamaisana ka tsela e ts'oanang.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

LSN-based deltas - sena se bolela hore ha re theha bekapo, re tla hloka ho kopanya leqephe ka leng le ho hlahloba LSN ea eona le LSN ea bekapo e fetileng ho utloisisa hore e fetohile. Leqephe lefe kapa lefe le ka bang le na le data e fetotsoeng le tlameha ho ba teng ho bekapo ea delta.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Joalokaha ke boletse, ho ile ha lebisoa tlhokomelo e ngata ho parallelism.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Empa API ea polokelo ho PostgreSQL e lumellana. PostgreSQL e boloka faele e le 'ngoe ea WAL mme ha e e khutlisa e kopa faele e le' ngoe ea WAL. Empa ha database e kopa faele e le 'ngoe ea WAL e sebelisa taelo ea "WAL-FETCH", re bitsa "WAL-PREFETCH" taelo, e lokisang lifaele tse 8 tse latelang ho lata data ho tloha lebenkeleng la ntho ka ho tšoana.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey BorodinMme ha database e re kopa ho boloka faele e le 'ngoe, re sheba archive_status mme re bone hore na ho na le lifaele tse ling tsa WAL. Hape re leka ho khoasolla WAL ka ho tsamaisana. Sena se fana ka phaello e kholo ea ts'ebetso mme se fokotsa haholo sebaka sa palo ea li-WAL tse sa ngolisoang. Bahlahisi ba bangata ba li-backup system ba lumela hore ena ke sistimi e kotsi hobane re itšetlehile ka tsebo ea rona ea ba ka hare ba khoutu eo eseng PostgreSQL API. PostgreSQL ha e tiise boteng ba foldara ea archive_status bakeng sa rona ebile ha e tiise li-semantics, boteng ba matšoao a ho itokisetsa lifaele tsa WAL moo. Leha ho le joalo, re ntse re ithuta khoutu ea mohloli, rea bona hore ho joalo 'me re leka ho e sebelisa hampe. 'Me re laola tsela eo PostgreSQL e ntseng e tsoela pele ka eona; haeba ka tšohanyetso mochine ona o robehile, re tla emisa ho o sebelisa.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ka sebopeho sa eona se hloekileng, delta ea WAL e thehiloeng ho LSN e hloka ho bala faele efe kapa efe ea sehlopha eo nako ea eona tsamaisong ea faele e fetohileng ho tloha ha ho bolokoa bekapo e fetileng. Re phetse le sena nako e telele, hoo e ka bang selemo. 'Me qetellong re fihletse qeto ea hore re na le WAL deltas.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey BorodinSena se bolela hore nako le nako ha re boloka WAL ho Master, ha re e hatelle feela, re e patala le ho e romella marang-rang, empa re boetse re e bala ka nako e le 'ngoe. Re sekaseka le ho bala litlaleho tse ho eona. Re utloisisa hore na ke li-blocks life tse fetotsoeng le ho bokella lifaele tsa delta.

Faele ea delta e hlalosa mofuta o itseng oa lifaele tsa WAL, e hlalosa tlhahisoleseling mabapi le hore na ke li-blocks life tse fetotsoeng mofuteng ona oa WAL. Ebe lifaele tsena tsa delta le tsona li bolokiloe.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Mona re tobane le taba ea hore re ile ra bapisa ntho e 'ngoe le e' ngoe ka potlako, empa re ke ke ra bala histori e latellanang ka mokhoa o ts'oanang, hobane karolong e itseng re ka 'na ra kopana le qetello ea tlaleho ea WAL e fetileng, eo re seng re sa kopane le eona, hobane ho bala ka tsela e tšoanang ho ile ha etsa hore re qale ho hlahloba bokamoso, bo e-s'o be le nako e fetileng.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ka lebaka leo, re ile ra tlameha ho kenya likotoana tse sa utloisiseheng ho lifaele tsa _delta_partial. Ka lebaka leo, ha re khutlela nakong e fetileng, re tla khomarela likotoana tsa rekoto ea WAL ho e le 'ngoe, ka mor'a moo re tla e arola le ho utloisisa se fetohileng ho eona.

Haeba nalaneng ea ho arola ha shaft ho na le bonyane ntlha e le 'ngoe moo re sa utloisiseng se neng se etsahala, ka hona, nakong ea backup e latelang re tla qobelloa ho bala sehlopha kaofela hape, joalo ka ha re entse ka LSN e tloaelehileng. delta e thehiloeng.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ka lebaka leo, mahlomola 'ohle a rona a ile a lebisa tabeng ea hore re bule mohloli oa libuka oa WAL-G oa libuka. Ho ea kamoo ke tsebang, ha ho motho ea e sebelisang hajoale, empa haeba mang kapa mang a batla ho e ngola le ho e sebelisa, e sebakeng sa sechaba. (Sehokelo se ntlafalitsoeng https://github.com/wal-g/wal-g/tree/master/internal/walparser)

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ka lebaka leo, phallo eohle ea tlhahisoleseling e shebahala e rarahane haholo. Mong'a rona o boloka shaft le ho boloka lifaele tsa delta. 'Me replica e etsang kopi ea "backup" e tlameha ho fumana lifaele tsa delta nakong e fetileng lipakeng tsa li-backups. Tabeng ena, likarolo tsa histori li tla hloka ho kenyelletsoa ka bongata le ho aroloa, hobane ha se histori eohle e kenang likarolong tse kholo. 'Me feela ka mor'a sena replica e ka boloka polokelo e felletseng ea delta.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Lirapeng tsohle li shebahala li le bonolo haholoanyane. Ena ke tjarollo ho tsoa ho e 'ngoe ea lihlopha tsa rona tsa 'nete. Re na le LSN-based, e entsoeng ka letsatsi le le leng. 'Me rea bona hore LSN-based delta backup e ne e sebetsa ho tloha ka hora ea boraro hoseng ho fihlela ka hora ea bohlano hoseng. Ena ke mojaro palo ea li-processor cores. WAL-delta e ile ea re nka mona metsotso e ka bang 20. Ke hore, e ile ea e-ba kapele haholo, empa ka nako e ts'oanang ho ne ho e-na le phapanyetsano e matla haholoanyane holim'a marang-rang.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Kaha re na le tlhahisoleseling mabapi le hore na ke li-blocks life tse fetotsoeng le hore na ke nako efe nalaneng ea database, re ile ra fetela pele mme ra etsa qeto ea ho kopanya ts'ebetso - katoloso ea PostgreSQL e bitsoang "pg_prefaulter"

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Sena se bolela hore ha setsi se emeng se phethisa taelo ea tsosoloso, se bolella WAL-G ho lata faele e latelang ea WAL. Re utloisisa hore na ke data efe e thibelang ts'ebetso ea WAL ea ho hlaphoheloa e tla fihlella haufinyane le ho qala ts'ebetso ea ho bala li-blocks tsena. Sena se entsoe molemong oa ho eketsa ts'ebetso ea balaoli ba SSD. Hobane WAL roll e tla fihla leqepheng le hlokang ho fetoloa. Leqephe lena le ka har'a disk 'me ha le eo ka har'a cache ea leqephe. 'Me o tla ema ka mokhoa o lumellanang hore leqephe lena le fihle. Empa haufi le WAL-G, e tsebang hore li-megabyte tse makholo a seng makae tse latelang tsa WAL re tla hloka maqephe a itseng 'me ka nako e ts'oanang re qala ho a futhumatsa. E qala phihlello ea li-disk tse ngata e le hore li ka etsoa ka ho tšoana. Sena se sebetsa hantle ho li-drive tsa SSD, empa, ka bomalimabe, ha se sebetse ho hard drive, hobane re kena-kenana le eona feela ka litlatsetso tsa rona.

Sena ke sona se ka har'a khoutu hona joale.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ho na le likarolo tseo re ka ratang ho li kenyelletsa.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Setšoantšo sena se bontša hore WAL-delta e nka nako e khutšoanyane. 'Me sena se bala liphetoho tse etsahetseng database nakong ea motšehare. Re ne re ka etsa WAL-delta eseng bosiu feela, hobane ha e sa le mohloli oa bohlokoa oa mojaro. Re ka bala WAL-delta motsotso o mong le o mong hobane e theko e tlase. Ka motsotso o le mong re ka hlahloba liphetoho tsohle tse etsahetseng sehlopheng. 'Me sena se ka bitsoa "instant WAL-delta".

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Taba ke hore ha re khutlisetsa cluster, re fokotsa palo ea lipale tseo re tlamehang ho li phutha ka tatellano. Ke hore, palo ea WAL eo PostgreSQL e e tsamaisang e lokela ho fokotsoa, ​​hobane e nka nako e telele.

Empa ha se eona feela. Haeba re tseba hore boloko bo itseng bo tla fetoloa ho isa boemong ba ho boloka bekapo, re ke ke ra e fetola nakong e fetileng. Ka mantsoe a mang, joale re na le ntlafatso ea faele ka faele ea phepelo ea WAL-delta. Sena se bolela hore haeba, ka mohlala, ka Labobeli tafole e hlakotsoe ka botlalo kapa lifaele tse ling li hlakotsoe ka botlalo, joale ha delta e ntse e tsoela pele ka Mantaha le pg_basebackup ea Moqebelo e tsosolositsoe, re ke ke ra theha data ena.

Re batla ho holisa theknoloji ena ho fihla boemong ba leqephe. Ke hore, haeba karolo e 'ngoe ea faele e fetoha ka Mantaha, empa e tla ngoloa ka Laboraro, joale ha re khutlisetsa ntlha ka Labone, ha ho hlokahale hore re ngole liphetolelo tse seng kae tsa pele tsa maqephe ho disk.

Empa ena e ntse e le maikutlo a ntseng a buisanoa ka mafolofolo ka hare ho rona, empa ha e e-s'o fihlele khoutu.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Re batla ho etsa karolo e 'ngoe hape ho WAL-G. Re batla ho e etsa hore e atolosoe hobane re hloka ho ts'ehetsa li-database tse fapaneng mme re ka rata ho khona ho atamela taolo ea bekapo ka tsela e ts'oanang. Empa bothata ke hore li-API tsa MySQL li fapane haholo. Ho MySQL, PITR ha e ea ipapisa le logi ea WAL ea 'mele, empa ho binlog. 'Me ha re na mokhoa oa ho boloka litlaleho ho MySQL o ka bolellang tsamaiso e' ngoe ea kantle hore binlog ena e felile 'me e hloka ho bolokoa. Re hloka ho ema kae-kae ho cron le database mme re hlahlobe hore na ho na le ntho e lokiselitsoeng?

'Me ka tsela e ts'oanang, nakong ea tsosoloso ea MySQL, ha ho na taelo ea tsosoloso e ka bolellang tsamaiso hore ke hloka lifaele tse joalo le tse joalo. Pele o qala ho aha sehlopha sa hau bocha, o hloka ho tseba hore na o tla hloka lifaele life. U hloka ho hakanya hore na u tla hloka lifaele life. Empa mathata ana a ka khona ho qojoa ka tsela e itseng. (Tlhaloso: MySQL e se e ntse e tšehetsoa)

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Tlalehong, ke ne ke boetse ke batla ho bua ka linyeoe tseo ha WAL-G e sa u tšoanele.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Haeba ha u na replica e lumellanang, WAL-G ha e tiise hore karolo ea ho qetela e tla bolokeha. 'Me haeba li-archiving li salla ka morao ho likarolo tse' maloa tsa ho qetela tsa histori, seo ke kotsi. Haeba ha ho na replica e lumellanang, nke ke ka khothaletsa ho sebelisa WAL-G. Leha ho le joalo, haholo-holo e etselitsoe ho kenya leru, e leng se bolelang hore ho na le tharollo e phahameng ea ho ba teng e nang le setšoantšo sa synchronous, se ikarabellang bakeng sa polokeho ea li-byte tsa ho qetela tse entsoeng.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Hangata ke bona batho ba leka ho matha ka bobeli WAL-G le WAL-E ka nako e le 'ngoe. Re ts'ehetsa tšebelisano ea morao-rao ka kutloisiso ea hore WAL-G e khona ho khutlisa faele ho tsoa ho WAL-E mme e ka khutlisetsa bekapo e entsoeng ho WAL-E. Empa kaha litsamaiso tsena ka bobeli li sebelisa parallel wal-push, li qala ho utsoa lifaele ho tse ling. Haeba re e lokisa ho WAL-G, e tla lula e le ho WAL-E. Ho WAL-E, e sheba boemo ba li-archive, e bona lifaele tse phethiloeng le ho li boloka, ha litsamaiso tse ling li ke ke tsa tseba hore faele ena ea WAL e teng, hobane PostgreSQL e ke ke ea leka ho e boloka lekhetlo la bobeli.

Re tla lokisa eng mona ka lehlakoreng la WAL-G? Re ke ke ra tsebisa PostgreSQL hore faele ena e fetisitsoe ka mokhoa o ts'oanang, mme ha PostgreSQL e re kopa hore re e boloke, re tla be re tseba hore faele e joalo e nang le nako ena ea nako le md5 ena e se e bolokiloe mme re tla re feela PostgreSQL - Ho lokile, tsohle li lokile ntle le ho etsa letho.

Empa bothata bona ha bo na monyetla oa ho lokisoa ka lehlakoreng la WAL-E, kahoo ha ho khonehe hajoale ho etsa taelo ea polokelo e tla boloka faele ho WAL-G le WAL-E ka bobeli.

Ho phaella moo, ho na le maemo ao WAL-G e sa lokelang ho uena hona joale, empa ka sebele re tla e lokisa.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey BorodinTaba ea pele, hajoale ha re na netefatso ea "backup" e hahelletsoeng ka hare. Ha re na netefatso nakong ea ho boloka kapa ho hlaphoheloa. Ehlile, sena se kenngwa tshebetsong lerung. Empa sena se kenngoa ts'ebetsong feela ka ho hlahloba esale pele, feela ka ho tsosolosa sehlopha. Ke kopa ho fa basebelisi ts'ebetso ena. Empa ka ho netefatsa, ke nahana hore ho WAL-G ho tla khoneha ho tsosolosa sehlopha le ho se qala, le ho tsamaisa liteko tsa mosi: pg_dumpall ho /dev/null le amcheck index verification.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Hajoale ho WAL-G ha ho na mokhoa oa ho chechisa bekapo e le 'ngoe ho tsoa ho WAL. Ke hore, re tšehetsa fensetere e itseng. Mohlala, ho boloka matsatsi a supileng a ho qetela, ho boloka li-backups tse leshome tsa ho qetela, ho boloka likopi tse tharo tsa ho qetela tse felletseng. Hangata batho ba tla 'me ba re: "Re hloka bekapo ea se etsahetseng ka Selemo se Secha 'me re batla ho se boloka ka ho sa feleng." WAL-G ha e khone ho etsa sena hajoale. (Tlhokomeliso - Sena se se se lokisitsoe. Bala haholoanyane - Khetho ea bekapo ho https://github.com/wal-g/wal-g/blob/master/PostgreSQL.md)

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

'Me ha re na li-checksums tsa maqephe le licheke tsa botšepehi bakeng sa likarolo tsohle tsa shaft ha re netefatsa PITR.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Ho tsoa ho tsena tsohle ke kopantse projeke ea Google Summer of Code. Haeba u tseba liithuti tse bohlale tse ka ratang ho ngola ho hong ho Go le ho fumana lidolara tse likete tse 'maloa ho tsoa k'hamphaning e le' ngoe e nang le lengolo "G", joale u buelle morero oa rona ho bona. Ke tla sebetsa joalo ka moeletsi oa morero ona, ba ka o etsa. Haeba ho se na baithuti, joale ke tla e nka ebe ke e etsa lehlabuleng.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Hape re na le mathata a mang a manyenyane a mangata ao butle-butle re ntseng re sebetsana le ’ona. Mme ho etsahala dintho tse ding tse makatsang.

Mohlala, haeba u fa WAL-G backup e se nang letho, e tla oa feela. Mohlala, haeba u mo joetsa hore o hloka ho boloka foldara e se nang letho. Pg_control faele e ke ke ea ba teng. 'Me o tla nahana hore ha a utloisise ho hong. Ka khopolo, tabeng ena o hloka ho ngola molaetsa o tloaelehileng ho mosebedisi ho mo hlalosetsa mokhoa oa ho sebelisa sesebelisoa. Empa sena ha se karolo ea lenaneo, empa ke tšobotsi ea puo e ntle, e utloisisoang.

Ha re tsebe ho etsa backup ea offline. Haeba database e bua leshano, re ke ke ra khona ho e boloka. Empa ntho e 'ngoe le e' ngoe e bonolo haholo mona. Re bitsa li-backups ka LSN ha e qala. LSN ea motheo oa motheo e tlameha ho baloa ho tsoa faeleng ea taolo. 'Me sena ke tšobotsi e joalo e sa lebelloang. Litsamaiso tse ngata tsa backup li ka boloka database ea motheo. 'Me ho loketse.

Hajoale ha re khone ho sebetsana le khaello ea sebaka sa polokelo ka nepo. Hobane hangata re sebetsa ka li-backups tse kholo lapeng. 'Me ha baa ka ba bua ka eona. Empa haeba motho a batla ho kenya lenaneo la Go hona joale, eketsa ho sebetsana le liphoso tse tsoang sebakeng ka nkhong. Ka sebele ke tla sheba kopo ea ho hula.

'Me ntho e ka sehloohong e re tšoenyang ke hore re batla liteko tse ngata tsa ho kopanya li-docker kamoo ho ka khonehang tse hlahlobang maemo a fapaneng. Hona joale re leka feela maemo a mantlha. Boitlamong bo bong le bo bong, empa re batla ho hlahloba boitlamo ka-ka-bosebetsi bohle boo re bo tšehetsang. Ka ho khetheha, mohlala, re tla ba le tšehetso e lekaneng bakeng sa PostgreSQL 9.4-9.5. Rea ba tšehetsa hobane sechaba se tšehetsa PostgreSQL, empa ha re hlahlobe boitlamo ka ho etsa bonnete ba hore tsohle ha li robehe. 'Me ho 'na ho bonahala eka sena ke kotsi e tebileng.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Re na le WAL-G e sebetsang ho lihlopha tse fetang sekete ho tsamaiso ea Yandex Database. 'Me e boloka li-terabyte tse makholo a' maloa tsa data letsatsi le leng le le leng.

Re na le TODO e ngata khoutu ea rona. Haeba u batla ho etsa lenaneo, tloo, re emetse likopo tsa ho hula, re emetse lipotso.

Likopi tse tsoang ho WAL-G. Ho na le eng ka 2019? Andrey Borodin

Lipotso

Lumelang! Kea leboha! Khopolo ea ka ke hore haeba u sebelisa WAL-delta, mohlomong u itšetlehile haholo ka ho ngola maqephe a felletseng. 'Me haeba ho joalo, na u entse liteko? U bontšitse kerafo e ntle. E ba ntle hakae ha FPW e tingoa?

Ho ngolla leqephe le felletseng ho re lumelletse, ha rea ​​leka ho e thibela. Ke hore, 'na joaloka moqapi, ha kea leka ho e tima. Baokameli ba tsamaiso ba entseng lipatlisiso ba ka 'na ba batlisisa taba ena. Empa re hloka FPW. Hoo e ka bang ha ho motho ea e thibelang, hobane ho seng joalo ho ke ke ha khoneha ho nka bekapo ho tsoa ho replica.

Re leboha tlaleho! Ke na le lipotso tse peli. Potso ea pele ke hore na ho tla etsahala eng ka li-tablespaces?

Re emetse kopo ea ho hula. Li-database tsa rona li lula ho li-disk tsa SSD le NMVE 'me ha re hlile ha re hloke tšobotsi ena. Ha kea itokisetsa ho qeta nako e tebileng hona joale ho e etsa hantle. Ke buella ka pelo eohle hore re tšehetse taba ena. Ho na le batho ba ileng ba e tšehetsa, empa ba e tšehetsa ka tsela e ba tšoanelang. Ba entse fereko, empa ha ba etse dikopo tsa ho hula. (E kenyellelitsoe ho mofuta oa 0.2.13)

Mme potso ya bobedi. U boletse qalong hore WAL-G e nka hore e sebetsa e le mong mme ha ho hlokahale li-wrappers. Ke sebelisa li-wrappers ka bonna. Ke hobane'ng ha li sa lokela ho sebelisoa?

Re batla hore e be bonolo joaloka balalaika. Sena se bolela hore ha o hloke letho ho hang ntle le balalaika. Re batla hore tsamaiso e be bonolo. Haeba u na le ts'ebetso eo u hlokang ho e etsa ho script, tloo 'me u re bolelle - re tla e etsa ho Go.

Lumelang! Re leboha tlaleho! Ha rea ​​khona ho etsa hore WAL-G e sebetse ka mokhoa oa ho hlakola oa GPG. E encrypts ka tloaelo, empa ha e batle ho hlakola. Na ke ntho e sa kang ea re tsoela molemo? Boemo boa nyahamisa.

Theha bothata ho GitHub 'me re e hlahlobe.

Ke hore, ha u so kopane le sena?

Ho na le karolo ea tlaleho ea phoso eo ha WAL-G e sa utloisise hore na ke faele ea mofuta ofe, e botsa: "Mohlomong e ngotsoe ka mokhoa o patiloeng?" Mohlomong bothata ha se encryption ho hang. Ke batla ho ntlafatsa ho rema lifate sehloohong sena. O tlameha ho e hlalosa. Ha joale re ntse re sebetsana le sehlooho sena ka kutloisiso ea hore ha re rate mokhoa oa ho fumana linotlolo tsa sechaba le tsa poraefete. Hobane re bitsa GPG ea kantle hore e re fe linotlolo tsa eona. 'Me joale re nka linotlolo tsena ebe re li fetisetsa ho GPG e ka hare, e leng PGP e bulehileng, e hlophisitsoeng bakeng sa rona ka hare ho WAL-G,' me moo re bitsa encryption. Tabeng ena, re batla ho ntlafatsa tsamaiso 'me re batla ho tšehetsa encryption ea Libsodium (E kenyelelitsoe phetolelong ea 0.2.15). Ehlile, decoding e lokela ho sebetsa, a re e boneng - o hloka matšoao a mangata ho feta mantsoe a 'maloa. U ka bokana ka phaposing ea sebui ka nako e 'ngoe ebe u sheba sistimi. (PGP encryption ntle le GPG ea kantle - v0.2.9)

Lumela! Re leboha tlaleho! Ke na le lipotso tse peli. Ke na le takatso e makatsang ea ho etsa pg_basebackup le WAL ho kena ho bafani ba babeli, ke hore, ke batla ho etsa leru le le leng. Na ho na le mokhoa o mong oa ho etsa see?

Sena ha se teng hona joale, empa ke mohopolo o khahlisang.

Ha ke tšepe mofani a le mong, ke batla ho ba le se tšoanang ho se seng, haeba ho ka etsahala.

Mohopolo ona oa thahasellisa. Ha e le hantle, sena ha se thata ho hang ho se phethahatsa. Ho thibela mohopolo hore o se ke oa lahleha, na nka u kopa ho etsa bothata ho GitHub?

Ho joalo.

'Me joale, ha liithuti li tla ho Google Summer of Code, re tla li kenya mosebetsing e le hore ho be le mosebetsi o mongata oa ho fumana ho eketsehileng ho tsona.

Le potso ea bobeli. Ho na le bothata ho GitHub. Ke nahana hore e se e kwetswe. Ho na le tšabo nakong ea tsosoloso. Mme ho e hlola, le entse kopano e arohaneng. E nepahetse litabeng. Mme ho na le khetho ea ho etsa tikoloho e feto-fetohang khoeleng e le 'ngoe. 'Me ke kahoo e sebetsang butle haholo. Mme re kopane le bothata bona, mme ha bo so lokisoe.

Bothata ke hore ka lebaka le itseng polokelo (CEPH) e tsosolosa khokahanyo ha re tla ho eona ka concurrency e phahameng. Ho ka etsoa eng ka see? Mokhoa oa ho leka hape o shebahala tjena. Re leka ho khoasolla faele hape. Ka nako e le 'ngoe, re ne re e-na le lifaele tse' maloa tse sa kopitsoang, re tla etsa ea bobeli bakeng sa bohle ba sa kang ba kena. 'Me hafeela bonyane faele e le' ngoe e laeloa ka nako e 'ngoe le e' ngoe, re pheta-pheta le ho pheta-pheta. Re ntlafalitse mokhoa oa ho leka hape - exponential backoff. Empa ha ho hlake ka botlalo hore na ho ka etsoa eng ka taba ea hore khokahano e robeha ka lehlakoreng la sistimi ea polokelo. Ke hore, ha re kenya molapong o le mong, ha e senye likhokahano tsena. Re ka ntlafatsa eng moo? Re na le marang-rang a marang-rang, re ka fokotsa khokahanyo ka 'ngoe ka palo ea li-byte tseo e li romelang. Ho seng joalo, ha ke tsebe ho sebetsana le taba ea hore polokelo ea ntho ha e re lumelle ho khoasolla kapa ho khoasolla ho eona ka tsela e tšoanang.

Ha ho na SLA? Na ha hoa ngolloa bona hore na ba itumella ho hlokofatsoa joang?

Taba ke hore batho ba tlang ka potso ena hangata ba na le sebaka sa bona sa polokelo. Ke hore, ha ho motho ea tsoang Amazon kapa Google Cloud, kapa Yandex Object Storage.

Mohlomong potso ha e sa le ea hau?

Potso mona tabeng ena ha e na taba ho mang. Haeba ho na le mehopolo ea ho sebetsana le sena, ha re etseng ho WAL-G. Empa ho fihlela joale ha ke na maikutlo a matle mabapi le mokhoa oa ho sebetsana le sena. Ho na le Ba bang ba Object Storage e tšehetsang lethathamo la li-backups ka tsela e fapaneng. U ba kopa ho thathamisa lintho, 'me ba eketsa foldara moo. WAL-G o tšoha sena - ho na le ntho e 'ngoe mona eo e seng faele, ha ke khone ho e khutlisa, ho bolelang hore bekapo ha ea ka ea khutlisoa. Ke hore, ha e le hantle, u na le sehlopha se tsosolositsoeng ka ho feletseng, empa se u khutlisetsa boemo bo fosahetseng hobane Object Storage e khutlisitse tlhahisoleseding e makatsang eo e sa e utloisiseng ka botlalo.

Sena ke ntho e etsahalang lerung la Mail.

Haeba u ka etsa tlhahiso ...

E ntlafatswa kamehla...

Haeba ho na le tlhahiso, joale ke nahana hore re tla leka mekhoa ea ho leka hape 'me re bone mokhoa oa ho leka hape le ho utloisisa seo leru le se hlokang ho rona. Mohlomong e tla ba e tsitsitseng bakeng sa rona ka likhokahano tse tharo 'me e ke ke ea senya khokahanyo, joale re tla fihla ka hloko tse tharo. Hobane joale re theola khokahanyo ka potlako haholo, ke hore, haeba re qalile ho hlaphoheloa ka likhoele tse 16, joale ka mor'a teko ea pele ho tla ba le likhoele tse 8, likhoele tse 4, likhoele tse 2 le e le 'ngoe. 'Me joale e tla hula faele ka molapo o le mong. Haeba ho na le litekanyetso tsa boselamose tse kang likhoele tse 7,5 ke tsona tse ntle ka ho fetisisa tsa ho pompa, re tla lula ho tsona ebe re leka ho etsa likhoele tse ling tse 7,5. Mona ke mohopolo.

Re leboha tlaleho! Mokhoa o felletseng oa ho sebetsa le WAL-G o shebahala joang? Ka mohlala, tabeng ea bothoto ha ho se na delta ho pholletsa le maqephe. 'Me re nka le ho tlosa bekapo ea pele, ebe re boloka shaft ho fihlela re le putsoa sefahlehong. Mona, joalo ka ha ke e utloisisa, ho na le karohano. Ka nako e 'ngoe u hloka ho etsa "backup" ea maqephe, ke hore, ts'ebetso e 'ngoe ea kantle e tsamaisa sena kapa see se etsahala joang?

The delta backup API e bonolo haholo. Ho na le palo moo - max delta steps, ke seo e se bitsang. E fetohela ho zero. Sena se bolela hore nako le nako ha u etsa backup-push, e jarolla bekapo e felletseng. Haeba u e fetola ho nomoro leha e le efe e nepahetseng, mohlala, 3, joale nakong e tlang ha u etsa "backup-push", e sheba histori ea li-backups tse fetileng. O bona hore ha o fete ketane ea 3 deltas mme o etsa delta.

Ke hore, nako le nako ha re qala WAL-G, e leka ho etsa backup e felletseng?

Che, re tsamaisa WAL-G, 'me e leka ho etsa delta haeba maano a hau a e lumella.

Ka mantsoe a mang, haeba u e tsamaisa ka zero nako le nako, na e tla sebetsa joalo ka pg_basebackup?

Che, e ntse e tla matha kapele hobane e sebelisa compression le parallelism. Pg_basebackup e tla beha shaft haufi le uena. WAL-G e nka hore u hlophisitse polokelo ea litaba. 'Me e tla fana ka temoso haeba e sa hlophisoa.

Pg_basebackup e ka tsamaisoa ntle le li-shafts.

E, joale ba tla itšoara ka tsela e batlang e tšoana. Pg_basebackup likopi ho sistimi ea faele. Ka tsela, re na le tšobotsi e ncha eo ke lebetse ho e bua. Hona joale re ka boloka ho sistimi ea faele ho tsoa ho pg_basebackup. Ha ke tsebe hore na ke hobane'ng ha sena se hlokahala, empa se teng.

Ka mohlala, ho CephFS. Ha se bohle ba batlang ho lokisa Object Storage.

E, mohlomong ke ka lebaka leo ba ileng ba botsa potso mabapi le tšobotsi ena e le hore re ka e etsa. Mme re e entse.

Re leboha tlaleho! Ho na le potso feela mabapi le ho kopitsa ho sistimi ea faele. Ka ntle ho lebokose, na joale u tšehetsa ho kopitsa ho boloka hole, mohlala, haeba ho na le sethala sa data kapa ntho e 'ngoe?

Potsong ena, ena ke potso e thata. Ho joalo, rea tšehetsa, empa ts'ebetso ena ha e e-so kenyellelitsoe tokollong efe kapa efe. Ke hore, litokollo tsohle tsa pele li tšehetsa sena, empa liphetolelo tsa tokollo ha li joalo. Ts'ebetso ena e kenyellelitsoe ho mofuta oa 0.2. Ka sebele e tla lokolloa haufinyane, hang ha re lokisa likokoana-hloko tsohle tse tsejoang. Empa hona joale sena se ka etsoa feela pele ho lokolloa. Ho na le litšitšili tse peli ho tokollo ea pele. Bothata ba ho hlaphoheloa ha WAL-E, ha re so bo lokise. 'Me tokollong ea morao-rao, phoso e mabapi le delta-backup e kentsoe. Ka hona, re khothaletsa bohle ho sebelisa liphetolelo tsa tokollo. Hang ha ho se ho se na litšitšili ho tokollo ea pele, re ka re re tšehetsa Google Cloud, lintho tse lumellanang le S3 le polokelo ea lifaele.

Lumela, ke leboha tlaleho. Joalo ka ha ke e utloisisa, WAL-G ha se mofuta o mong oa sistimi e bohareng joalo ka barmen? A na u rerile ho falla ka tsela ee?

Bothata ke hore re tlohile tseleng ena. WAL-G e lula ho moamoheli oa motheo, ho moamoheli oa sehlopha, le ho bohle ba amohelang sehlopha. Ha re fallela lihlopha tse likete tse 'maloa, re ne re e-na le mehaho e mengata ea li-bartender. Mme nako le nako ha ntho e putlama ho tsona, ke bothata bo boholo. Hobane li hloka ho lokisoa, u hloka ho utloisisa hore na ke lihlopha life tse se nang li-backups. Ha ke rera ho nts'etsapele WAL-G ka lehlakoreng la lisebelisoa tsa 'mele bakeng sa lits'ebetso tsa backup. Haeba sechaba se batla tšebetso e itseng mona, ha ke tsotelle ho hang.

Re na le lihlopha tse ikarabellang bakeng sa polokelo. 'Me re ikutloa re le monate hoo e seng rona, hore ho na le batho ba khethehileng ba behang lifaele tsa rona moo lifaele li bolokehileng teng. Ba etsa mefuta eohle ea likhoutu tse bohlale moo ho mamella tahlehelo ea palo e itseng ea lifaele. Ba ikarabella bakeng sa marang-rang a marang-rang. Ha u e-na le bartender, u ka 'na ua fumana ka tšohanyetso hore li-database tse nyenyane tse nang le sephethephethe se ngata li bokane ho seva se le seng. Ho bonahala eka u na le sebaka se ngata ho eona, empa ka mabaka a itseng ntho e 'ngoe le e' ngoe ha e lumellane le marang-rang. E ka fetoha ka tsela e fapaneng. Ho na le marang-rang a mangata moo, ho na le li-processor cores, empa ha ho na li-disk mona. 'Me re ile ra khathala ke tlhoko ena ea ho kopanya ntho e itseng,' me ra fallela tabeng ea hore polokelo ea data ke tšebeletso e arohaneng, eo ho eona ho nang le batho ba khethehileng ba ikarabellang.

PS Ho lokollotsoe mofuta o mocha 0.2.15, eo ho eona u ka sebelisang faele ea .walg.json ea tlhophiso, e fumanehang bukeng ea lehae ea postgres ka ho feletseng. U ka lahla mangolo a bash. Mohlala .walg.json e tokollong ena https://github.com/wal-g/wal-g/issues/545

Video:



Source: www.habr.com

Eketsa ka tlhaloso