Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Ман ба шумо тавсия медиҳам, ки стенограммаи гузоришро аз аввали соли 2019 аз ҷониби Андрей Бородин "Нусхабардорӣ бо WAL-G. Дар соли 2019 чӣ ҳаст?"

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Салом ба ҳама! Номи ман Андрей Бородин аст. Ман як таҳиягари Yandex. Ман аз соли 2016 ба PostgreSQL шавқ дорам, пас аз он ки ман бо таҳиягарон сӯҳбат кардам ва онҳо гуфтанд, ки ҳама чиз оддӣ аст - шумо рамзи сарчашмаро мегиред ва онро месозед ва ҳама чиз хуб мешавад. Ва аз он вақт инҷониб ман истода наметавонам - ман ҳама чизҳои гуногунро менависам.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей БородинЯке аз чизҳое, ки ман дар болои он кор мекунам, системаи эҳтиётӣ аст. ВАЛ-Г. Умуман, дар Яндекс мо муддати тӯлонӣ бо системаҳои эҳтиётӣ дар PostgreSQL кор карда истодаем. Ва шумо метавонед дар Интернет як силсилаи шаш гузоришро дар бораи чӣ гуна сохтани системаҳои эҳтиётӣ пайдо кунед. Ва ҳар сол онҳо каме инкишоф меёбанд, каме инкишоф меёбанд ва боэътимодтар мешаванд.

Аммо имруз хисобот на танхо дар бораи он чи ки мо анчом додем, балки дар бораи он аст, ки то чй андоза оддй ва чй гуна аст. Чанд нафари шумо аллакай гузоришҳои маро дар бораи WAL-G тамошо кардаед? Хуб аст, ки чанд нафар тамошо накарданд, зеро ман аз соддатарин чиз сар мекунам.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Агар шумо ногаҳон кластери PostgreSQL дошта бошед, ва ман фикр мекунам, ки ҳама як дутои онҳоро доранд ва ногаҳон ҳанӯз системаи эҳтиётӣ вуҷуд надорад, пас шумо бояд ягон нигаҳдории S3 ё нигаҳдории мувофиқи Google Cloud гиред.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Масалан, шумо метавонед ба стенди мо омада, рамзи таблиғотии анбори объекти Яндексро гиред, ки он ба S3 мувофиқ аст.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Пас як сатил эҷод кунед. Ин танҳо як контейнер барои маълумот аст.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Эҷоди корбари хидмат.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Барои корбари хидмат калиди дастрасӣ эҷод кунед: aws-s3-key.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Варақаи охирини устувори WAL-G-ро зеркашӣ кунед.

Пешниҳодҳои мо аз релизҳо чӣ фарқ доранд? Ман аксар вақт хоҳиш мекунанд, ки барвақт озод шавам. Ва агар дар версия дар муддати кофӣ, масалан, як моҳ ягон хатогӣ мавҷуд набошад, ман онро озод мекунам. Ин нашрия аз моҳи ноябр аст. Ва ин маънои онро дорад, ки мо ҳар моҳ як навъ иштибоҳро пайдо кардем, одатан дар функсияҳои ғайримуқаррарӣ, аммо мо то ҳол нашрияро нашр накардаем. Варианти қаблӣ танҳо моҳи ноябр аст. Дар он ягон хатогӣ ба мо маълум нест, яъне ҳангоми пешрафти лоиҳа хатоҳо илова карда шуданд.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Вақте ки шумо WAL-G-ро зеркашӣ кардед, шумо метавонед як фармони оддии "рӯйхати захиравӣ" -ро иҷро кунед, ки дар тағирёбандаҳои муҳити зист гузаред. Ва он ба Object Storage пайваст мешавад ва ба шумо мегӯяд, ки шумо кадом нусхаҳои эҳтиётӣ доред. Дар аввал, албатта, шумо набояд нусхаҳои эҳтиётӣ дошта бошед. Мақсади ин слайд нишон додани он аст, ки ҳама чиз хеле содда аст. Ин фармони консолест, ки тағирёбандаҳои муҳити зистро қабул мекунад ва зерфармонҳоро иҷро мекунад.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Пас аз ин, шумо метавонед аввалин нусхаи эҳтиётии худро созед. Дар WAL-G "захира-пуш" бигӯед ва дар WAL-G макони pgdata-и кластери худро муайян кунед. Ва эҳтимолан, PostgreSQL ба шумо мегӯяд, ки агар шумо аллакай системаи эҳтиётӣ надошта бошед, шумо бояд "режими бойгонӣ" -ро фаъол созед.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Ин маънои онро дорад, ки шумо бояд ба танзимот равед ва "archive_mode = on" -ро фаъол кунед ва "archive_command" -ро илова кунед, ки он ҳам зерфармони WAL-G аст. Аммо барои баъзе сабабҳо одамон аксар вақт скриптҳои барро дар ин мавзӯъ истифода мебаранд ва онро дар атрофи WAL-G мепӯшонанд. Лутфан ин корро накунед. Функсияи дар WAL-G мавҷудбударо истифода баред. Агар шумо чизеро гум карда бошед, ба он нависед GitHub. WAL-G тахмин мекунад, ки он ягона барномаест, ки дар archive_command кор мекунад.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Мо WAL-G-ро асосан барои сохтани кластери баланд дар идоракунии пойгоҳи додаҳои Yandex истифода мебарем.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Ва он одатан дар топологияи як устод ва якчанд такрор истифода мешавад. Ҳамзамон, он нусхаи эҳтиётиро дар анбори объекти Яндекс месозад.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Сенарияҳои маъмултарин эҷод кардани нусхаҳои кластер бо истифода аз Нуқтаи барқарорсозии вақт мебошанд. Аммо дар ин ҳолат, кори системаи захиравӣ барои мо чандон муҳим нест. Мо танҳо бояд кластери навро аз нусхабардорӣ бор кунем.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Одатан, ҳангоми илова кардани гиреҳи нав ба мо иҷрои системаи эҳтиётӣ ниёз дорад. Чаро муҳим аст? Одатан одамон ба кластер гиреҳи нав илова мекунанд, зеро кластери мавҷуда сарбории хонданро аз ӯҳдаи ӯҳда гирифта наметавонад. Онҳо бояд як нусхаи нав илова кунанд. Агар мо сарбориро аз pg_basebackup ба Мастер илова кунем, он гоҳ Мастер метавонад вайрон шавад. Аз ин рӯ, барои мо хеле муҳим буд, ки мо метавонем гиреҳи навро аз бойгонӣ зуд бор кунем ва сарбории ҳадди ақалро ба Мастер эҷод кунем.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Ва боз як ҳолати монанд. Ин зарурати аз нав оғоз кардани Устоди кӯҳна пас аз иваз кардани Мастер кластер аз Маркази маълумот, ки пайвастшавӣ бо он гум шудааст.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

  • Дар натиҷа, ҳангоми таҳияи талабот ба системаи нусхабардорӣ, мо фаҳмидем, ки pg_basebackup ҳангоми кор дар абр барои мо мувофиқ нест.
  • Мо мехостем маълумоти худро фишурда тавонем. Аммо қариб ҳама гуна системаи эҳтиётии ғайр аз он чизе, ки дар қуттӣ меояд, фишурдани маълумотро таъмин мекунад.
  • Мо мехостем ҳама чизро параллел кунем, зеро корбар дар абр шумораи зиёди ядроҳои протсессорро мехарад. Аммо агар мо дар баъзе амалиёт параллелизм надошта бошем, он гоҳ шумораи зиёди ядроҳо бефоида мешаванд.
  • Мо ба рамзгузорӣ ниёз дорем, зеро аксар вақт маълумот аз они мо нест ва онҳоро дар матни равшан нигоҳ доштан мумкин нест. Дар омади гап, саҳми мо дар WAL-G аз рамзгузорӣ оғоз шуд. Мо рамзкунониро дар WAL-G анҷом додем ва пас аз он аз мо пурсиданд: "Шояд яке аз мо лоиҳаро таҳия кунад?" Ва аз он вақт инҷониб ман бо WAL-G зиёда аз як сол кор мекунам.
  • Мо инчунин ба танзими захираҳо ниёз доштем, зеро бо мурури замон бо истифода аз абр мо фаҳмидем, ки баъзан одамон шабона бори муҳими хӯрокворӣ доранд ва ба ин сарборӣ халал намерасонад. Аз ин рӯ, мо маҳдудкунии захираҳоро илова кардем.
  • Инчунин листинг ва идоракунӣ.
  • Ва тафтиш.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Мо бисёр асбобҳои гуногунро дида баромадем. Хушбахтона, мо дар PostgreSQL интихоби калон дорем. Ва дар ҳама ҷо мо чизеро аз даст додем, баъзе як функсияи хурд, дигаре як хусусияти хурд.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Ва системаҳои мавҷударо тафтиш карда, мо ба хулосае омадем, ки мо WAL-G-ро таҳия мекунем. Он вақт ин як лоиҳаи нав буд. Ба рушди инфрасохтори абрии системаи эҳтиётӣ таъсир расонидан хеле осон буд.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Идеологияи асосие, ки мо онро риоя мекунем, ин аст, ки WAL-G бояд мисли балалайка оддӣ бошад.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

WAL-G дорои 4 фармон аст. Ин:

WAL-PUSH – бойгонии чоҳ.

WAL-FETCH - як чоҳ гиред.

BACKUP-PUSH - нусхабардорӣ кунед.

BACKUP-FETCH - аз системаи эҳтиётӣ нусхабардорӣ кунед.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Дарвоқеъ, WAL-G инчунин идоракунии ин нусхаҳоро дорад, яъне номбар кардан ва нест кардани сабтҳо ва нусхаҳои эҳтиётӣ дар таърих, ки ҳоло лозим нестанд.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Яке аз вазифаҳои муҳим барои мо ин вазифаи эҷоди нусхаҳои делта мебошад.

Нусхаҳои Delta маънои онро дорад, ки мо нусхаи пурраи тамоми кластерро эҷод намекунем, балки танҳо саҳифаҳои тағирёфтаи файлҳои тағирёфтаро дар кластер. Чунин ба назар мерасад, ки ин аз ҷиҳати функсионалӣ ба қобилияти барқарор кардани WAL хеле монанд аст. Аммо мо метавонем як нусхаи як риштаи дельтаи WAL-ро дар мувозӣ ҷамъ оварем. Мувофиқи он, вақте ки мо нусхаи эҳтиётии асосиро дар рӯзи шанбе анҷом медиҳем, ҳамарӯза нусхабардории дельта дорем ва рӯзи панҷшанбе мо ноком мешавем, пас мо бояд 4 нусхаи эҳтиётии делта ва 10 соат WAL-ро ҷамъ кунем. Ин тақрибан як вақтро мегирад, зеро нусхаҳои эҳтиётии дельта мувозӣ меғелонанд.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Делтаҳои ба LSN асосёфта - ин маънои онро дорад, ки ҳангоми сохтани нусхабардорӣ, мо бояд ҳар як саҳифаро муттаҳид кунем ва LSN-и онро бо LSN нусхаи қаблӣ тафтиш кунем, то фаҳмем, ки он тағир ёфтааст. Ҳама саҳифае, ки эҳтимолан маълумоти тағирёфтаро дар бар гирад, бояд дар нусхабардории дельта мавҷуд бошад.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Чунон ки гуфтам, ба параллелизм диккати калон дода шуд.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Аммо API-и бойгонӣ дар PostgreSQL мувофиқ аст. PostgreSQL як файли WAL-ро бойгонӣ мекунад ва ҳангоми барқарор кардани он як файли WAL-ро дархост мекунад. Аммо вақте ки пойгоҳи додаҳо як файли WAL-ро бо истифода аз фармони "WAL-FETCH" дархост мекунад, мо фармони "WAL-PREFETCH" -ро даъват мекунем, ки 8 файли навбатиро барои гирифтани маълумот аз мағозаи объект дар баробари ин омода мекунад.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей БородинВа ҳангоме ки пойгоҳи додаҳо аз мо хоҳиш мекунад, ки як файлро бойгонӣ кунем, мо ба archive_status назар мекунем ва мебинем, ки оё файлҳои дигари WAL вуҷуд доранд. Ва мо инчунин кӯшиш мекунем, ки WAL-ро ҳамзамон зеркашӣ кунем. Ин афзоиши назарраси иҷроишро таъмин мекунад ва масофаро дар шумораи WAL-ҳои архивнашуда ба таври назаррас коҳиш медиҳад. Бисёре аз таҳиягарони системаи эҳтиётӣ боварӣ доранд, ки ин як системаи хатарнок аст, зеро мо ба дониши худ дар бораи дохили код, ки API PostgreSQL нест, такя мекунем. PostgreSQL мавҷудияти папкаи archive_status барои мо кафолат намедиҳад ва маънои семантика, мавҷудияти сигналҳои омодагӣ ба файлҳои WAL-ро кафолат намедиҳад. Бо вуҷуди ин, мо рамзи сарчашмаро меомӯзем, мебинем, ки ин чунин аст ва мо кӯшиш мекунем, ки аз он истифода барем. Ва мо самтеро, ки дар он PostgreSQL рушд мекунад, назорат мекунем; агар ногаҳон ин механизм вайрон шавад, мо истифодаи онро қатъ мекунем.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Дар шакли холиси худ, делтаи WAL дар асоси LSN хондани ҳама гуна файли кластерро талаб мекунад, ки режими вақти он дар системаи файлӣ аз нусхаи қаблӣ тағйир ёфтааст. Мо бо ин муддати дароз, қариб як сол зиндагӣ кардем. Ва дар охир мо ба хулосае омадем, ки мо дельтаҳои WAL дорем.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей БородинИн маънои онро дорад, ки ҳар дафъае, ки мо WAL-ро дар Master бойгонӣ мекунем, мо на танҳо онро фишурда, рамзгузорӣ мекунем ва ба шабака мефиристем, балки дар як вақт онро мехонем. Сабтхои дар он бударо тахлил мекунем ва мехонем. Мо мефаҳмем, ки кадом блокҳо тағир ёфтаанд ва файлҳои делта ҷамъоварӣ мекунанд.

Файли делта доираи муайяни файлҳои WAL-ро тавсиф мекунад, маълумотро дар бораи он ки кадом блокҳо дар ин диапазони WAL иваз карда шудаанд, тавсиф мекунад. Ва он гоҳ ин файлҳои делта низ бойгонӣ карда мешаванд.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Дар ин ҷо мо бо он воқеият дорем, ки мо ҳама чизро хеле зуд параллел кардем, аммо мо наметавонем таърихи пайдарпайро дар баробари мутолиа кунем, зеро дар як сегменти муайян мо метавонем ба анҷоми сабти пешинаи WAL дучор шавем, ки мо то ҳол бо он чизе надорем, зеро хониши мувозӣ ба он оварда расонд, ки мо аввал ояндаро таҳлил мекунем, ки ҳанӯз гузашта надорад.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Дар натиҷа, мо маҷбур шудем, ки ба файлҳои _delta_partial қисмҳои нофаҳмо гузорем. Дар натиҷа, вақте ки мо ба гузашта бармегардем, мо пораҳои сабти WAL-ро ба як мечаспем ва баъд аз он мо онро таҳлил мекунем ва дарк мекунем, ки дар он чӣ тағир ёфтааст.

Агар дар таърихи таҳлили чоҳи мо ҳадди аққал як нуқтае мавҷуд бошад, ки мо дарк накардаем, ки чӣ рӯй дода истодааст, пас, мувофиқан, ҳангоми нусхабардории навбатӣ, мо маҷбур мешавем, ки тамоми кластерро дубора хонем, ҳамон тавре ки мо бо LSN муқаррарӣ кардем. - дельта асос ёфтааст.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Дар натиҷа, тамоми ранҷу азоби мо ба он оварда расонд, ки мо китобхонаи таҳлили WAL-G-ро кушодем. То ҷое, ки ман медонам, то ҳол касе истифода намекунад, аммо агар касе бихоҳад, бинависад ва истифода кунад, дар ихтиёри омма аст. (Истиноди навшуда https://github.com/wal-g/wal-g/tree/master/internal/walparser)

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Дар натиҷа, ҳама ҷараёнҳои иттилоотӣ хеле мураккаб ба назар мерасанд. Устоди мо чоҳро бойгонӣ мекунад ва файлҳои дельтаро архив мекунад. Ва реплика, ки нусхаи эҳтиётиро месозад, бояд файлҳои делтаро дар давоми вақти байни нусхабардорӣ қабул кунад. Дар ин ҳолат, қисмҳои таърих бояд ба таври оммавӣ илова карда шаванд ва таҳлил карда шаванд, зеро на тамоми таърих ба қисмҳои калон мувофиқат мекунад. Ва танҳо пас аз ин реплика метавонад нусхаи пурраи дельтаро бойгонӣ кунад.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Дар графикҳо ҳама чиз хеле соддатар менамояд. Ин зеркашӣ аз яке аз кластерҳои воқеии мост. Мо дар асоси LSN дорем, ки дар як рӯз сохта шудааст. Ва мо мебинем, ки нусхабардории дельта дар асоси LSN аз сеи субҳ то панҷи саҳар кор мекард. Ин сарбории шумораи ядроҳои протсессори аст. WAL-delta мо дар ин ҷо тақрибан 20 дақиқа вақт гирифт, яъне он хеле тезтар шуд, аммо дар айни замон мубодилаи шадидтар тавассути шабака ба амал омад.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Азбаски мо маълумот дорем, ки кадом блокҳо тағир ёфтаанд ва дар кадом вақт дар таърихи пойгоҳи додаҳо, мо ба пеш рафтем ва тасмим гирифтем, ки функсионалӣ - васеъшавии PostgreSQL бо номи "pg_prefaulter" -ро муттаҳид кунем.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Ин маънои онро дорад, ки вақте пойгоҳи интизорӣ фармони барқароркуниро иҷро мекунад, он ба WAL-G мегӯяд, ки файли навбатии WAL-ро биёрад. Мо тахминан мефаҳмем, ки ба кадом маълумот блокҳои раванди барқарорсозии WAL дар ояндаи наздик дастрас мешавад ва амалиёти хонданро дар ин блокҳо оғоз мекунад. Ин барои баланд бардоштани самаранокии контроллерҳои SSD анҷом дода шудааст. Чунки рулномаи WAL ба саҳифае мерасад, ки бояд тағир дода шавад. Ин саҳифа дар диск аст ва дар кэши саҳифа нест. Ва ӯ ба таври синхронӣ мунтазири расидани ин саҳифа хоҳад буд. Аммо дар наздикии он WAL-G ҷойгир аст, ки медонад, ки дар чандсад мегабайти ояндаи WAL мо ба саҳифаҳои муайян ниёз дорем ва ҳамзамон ба гарм кардани онҳо шурӯъ мекунем. Дастрасӣ ба дискҳои сершуморро оғоз мекунад, то онҳо дар баробари иҷро шаванд. Ин дар дискҳои SSD хуб кор мекунад, аммо, мутаассифона, он барои диски сахт комилан мувофиқ нест, зеро мо танҳо бо дастурҳои худ ба он дахолат мекунем.

Ин аст он чизе ки ҳоло дар код аст.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Хусусиятҳое ҳастанд, ки мо мехоҳем онҳоро илова кунем.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Ин расм нишон медиҳад, ки WAL-delta вақти нисбатан кӯтоҳро мегирад. Ва ин хондани тағйиротест, ки дар пойгоҳи додаҳо дар давоми рӯз рух додааст. Мо метавонистем WAL-delta-ро на танҳо шабона иҷро кунем, зеро он дигар манбаи назарраси бор нест. Мо метавонем WAL-delta-ро ҳар дақиқа хонем, зеро он арзон аст. Дар як дақиқа мо метавонем ҳамаи тағиротҳоеро, ки дар кластер рух додаанд, скан кунем. Ва инро метавон "ВАЛ-делта фаврӣ" номид.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Гап дар он аст, ки вақте ки мо кластерро барқарор мекунем, мо шумораи ҳикояҳоеро, ки мо бояд пайдарпай ҷамъ кунем, кам мекунем. Яъне, миқдори WAL, ки PostgreSQL мепӯшонад, бояд кам карда шавад, зеро он вақти зиёдро мегирад.

Аммо ин ҳама нест. Агар мо донем, ки баъзе блокҳо ба нуқтаи мувофиқати эҳтиётӣ иваз карда мешаванд, мо онро дар гузашта тағир дода наметавонем. Яъне, ҳоло мо оптимизатсияи файл ба файли интиқоли WAL-delta дорем. Ин маънои онро дорад, ки агар, масалан, рӯзи сешанбе ҷадвал пурра нест карда шуда бошад ё баъзе файлҳо аз ҷадвал комилан нест карда шуда бошанд, пас вақте ки дельта дар рӯзи душанбе бармегардад ва pg_basebackup рӯзи шанбе барқарор мешавад, мо ҳатто ин маълумотро эҷод намекунем.

Мо мехоҳем ин технологияро то сатҳи саҳифа васеъ кунем. Яъне, агар як қисми файл рӯзи душанбе тағир ёбад, аммо рӯзи чоршанбе дубора навишта шавад, пас ҳангоми барқарор кардани нуқта рӯзи панҷшанбе ба мо лозим нест, ки чанд версияи аввали саҳифаҳоро ба диск нависем.

Аммо ин як идеяест, ки дар дохили мо фаъолона мухокима мешавад, вале хануз ба код нарасидааст.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Мо мехоҳем як хусусияти дигарро дар WAL-G созем. Мо мехоҳем онро васеъ гардонем, зеро ба мо лозим аст, ки пойгоҳи додаҳои гуногунро дастгирӣ кунем ва мехоҳем, ки ба идоракунии нусхабардорӣ ҳамин тавр муносибат кунем. Аммо мушкилот дар он аст, ки API-ҳои MySQL ба куллӣ фарқ мекунанд. Дар MySQL, PITR на ба сабти физикии WAL, балки ба binlog асос ёфтааст. Ва мо дар MySQL системаи бойгонӣ надорем, ки ба баъзе системаи беруна бигӯяд, ки ин бинлог тамом шудааст ва бояд бойгонӣ шавад. Мо бояд дар ҷое дар cron бо пойгоҳи додаҳо истода, тафтиш кунем, ки оё чизе омода аст?

Ва ба ҳамин тариқ, ҳангоми барқароркунии MySQL, ягон фармони барқароркунӣ вуҷуд надорад, ки ба система бигӯяд, ки ман ба ин ва ин гуна файлҳо ниёз дорам. Пеш аз он ки шумо кластери худро барқарор кунед, шумо бояд бидонед, ки кадом файлҳо ба шумо лозиманд. Шумо бояд худатон тахмин кунед, ки кадом файлҳо ба шумо лозиманд. Аммо ин мушкилотро бо ягон роҳ бартараф кардан мумкин аст. (Тавзеҳот: MySQL аллакай дастгирӣ карда мешавад)

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Дар гузориш, ман мехостам дар бораи он ҳолатҳое сӯҳбат кунам, ки WAL-G барои шумо мувофиқ нест.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Агар шумо нусхаи синхронӣ надошта бошед, WAL-G кафолат намедиҳад, ки сегменти охирин нигоҳ дошта мешавад. Ва агар бойгонӣ аз чанд бахшҳои охири таърих ақиб монда бошад, ин хатар аст. Агар нусхаи синхронӣ вуҷуд надошта бошад, ман истифодаи WAL-G-ро тавсия намедиҳам. Бо вуҷуди ин, он асосан барои насби абрӣ тарҳрезӣ шудааст, ки ҳалли дастрасии баландро бо репликаи синхронӣ дар назар дорад, ки барои бехатарии байтҳои охирин масъул аст.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Ман бисёр вақт одамонро мебинам, ки кӯшиш мекунанд ҳам WAL-G ва ҳам WAL-E-ро иҷро кунанд. Мо мувофиқати ақибро ба он маъно дастгирӣ мекунем, ки WAL-G метавонад файлро аз WAL-E барқарор кунад ва нусхаи эҳтиётии дар WAL-E сохташударо барқарор кунад. Аммо азбаски ҳардуи ин системаҳо wal-push-ро мувозӣ истифода мебаранд, онҳо ба дуздидани файлҳо аз ҳамдигар шурӯъ мекунанд. Агар мо онро дар WAL-G ислоҳ кунем, он дар WAL-E боқӣ мемонад. Дар WAL-E, он ба архив-мақом назар мекунад, файлҳои тайёрро мебинад ва онҳоро бойгонӣ мекунад, дар ҳоле ки системаҳои дигар танҳо намедонанд, ки ин файли WAL вуҷуд дорад, зеро PostgreSQL бори дуввум онро бойгонӣ намекунад.

Мо дар ин ҷо дар тарафи WAL-G чӣ ислоҳ мекунем? Мо ба PostgreSQL хабар намедиҳем, ки ин файл дар баробари интиқол дода шудааст ва вақте ки PostgreSQL аз мо хоҳиш мекунад, ки онро бойгонӣ кунем, мо аллакай медонем, ки чунин файл бо ин режим ва бо ин md5 аллакай бойгонӣ шудааст ва мо танҳо PostgreSQL мегӯем - Хуб, ҳама чиз бидуни ҳеҷ коре омода аст.

Аммо аз эҳтимол дур нест, ки ин мушкилот дар паҳлӯи WAL-E ҳал шавад, аз ин рӯ эҷод кардани фармони бойгонӣ, ки файлро ҳам дар WAL-G ва ҳам WAL-E бойгонӣ кунад, имконнопазир аст.

Илова бар ин, ҳолатҳое ҳастанд, ки WAL-G ҳоло барои шумо мувофиқ нест, аммо мо онро ҳатман ислоҳ хоҳем кард.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей БородинАввалан, мо дар айни замон санҷиши эҳтиётии дохилӣ надорем. Мо ҳангоми нусхабардорӣ ё барқароркунӣ тасдиқ надорем. Албатта, ин дар абр амалӣ карда мешавад. Аммо ин танҳо тавассути санҷиши пешакӣ, танҳо тавассути барқарор кардани кластер амалӣ карда мешавад. Ман мехоҳам ин функсияро ба корбарон диҳам. Аммо бо тафтиш, ман гумон мекунам, ки дар WAL-G кластерро барқарор кардан ва онро оғоз кардан ва санҷишҳои дудро иҷро кардан мумкин аст: pg_dumpall ба /dev/null ва amcheck тафтиши индекс.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Дар айни замон дар WAL-G роҳи ба таъхир гузоштани як нусхаи эҳтиётӣ аз WAL вуҷуд надорад. Яъне мо баъзе тирезаҳоро дастгирӣ мекунем. Масалан, нигоҳ доштани ҳафт рӯзи охир, захира кардани даҳ нусхаи охирин, захира кардани се нусхаи пурраи охирин. Бисёр вақт одамон меоянд ва мегӯянд: "Ба мо нусхаи он чизе, ки дар Соли нав рух дод, лозим аст ва мо мехоҳем онро то абад нигоҳ дорем." WAL-G ҳанӯз намедонад, ки ин корро чӣ гуна анҷом диҳад. (Эзоҳ - Ин аллакай ислоҳ шудааст. Муфассал - Параметри нусхабардорӣ дар https://github.com/wal-g/wal-g/blob/master/PostgreSQL.md)

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Ва мо ҳангоми тасдиқи PITR барои ҳамаи сегментҳои чоҳ маблағи санҷиши саҳифа ва санҷиши якпорчагӣ надорем.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Аз ин ҳама ман як лоиҳаро барои Google Summer of Code ҷамъ овардам. Агар шумо донишҷӯёни оқилро медонед, ки мехоҳанд дар Go чизе нависад ва аз як ширкат бо ҳарфи "G" чанд ҳазор доллар ба даст оранд, пас лоиҳаи моро ба онҳо тавсия диҳед. Ман ҳамчун мураббии ин лоиҳа амал мекунам, онҳо метавонанд ин корро кунанд. Агар донишҷӯ набошад, пас худам гирифта, тобистон мекунам.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Ва мо боз бисёр мушкилоти хурди дигар дорем, ки тадриҷан рӯи онҳо кор карда истодаем. Ва баъзе чизҳои аҷибе рӯй медиҳанд.

Масалан, агар шумо ба WAL-G нусхаи холӣ диҳед, он танҳо меафтад. Масалан, агар шумо ба ӯ гӯед, ки ӯ бояд ҷузвдони холиро нусхабардорӣ кунад. Файли pg_control дар он ҷо нахоҳад буд. Ва гумон мекунад, ки чизеро намефаҳмад. Дар назария, дар ин ҳолат шумо бояд ба корбар паёми муқаррарӣ нависед, то ба ӯ чӣ гуна истифода бурдани асбобро фаҳмонед. Аммо ин ҳатто як хусусияти барномасозӣ нест, балки хусусияти забони хуб ва фаҳмо аст.

Мо намедонем, ки чӣ гуна нусхабардории офлайнӣ кунем. Агар базаи маълумот дурӯғ бошад, мо онро нусхабардорӣ карда наметавонем. Аммо дар ин ҷо ҳама чиз хеле оддӣ аст. Вақте ки он оғоз ёфт, мо нусхаҳои эҳтиётиро тавассути LSN даъват мекунем. LSN-и пойгоҳи асосӣ бояд аз файли назорат хонда шавад. Ва ин як хусусияти амалӣнашуда аст. Бисёре аз системаҳои эҳтиётӣ метавонанд пойгоҳи додаҳои асосиро нусхабардорӣ кунанд. Ва он қулай аст.

Дар айни замон мо наметавонем норасоии фазои эҳтиётиро дуруст ҳал кунем. Зеро мо одатан бо захираҳои калон дар хона кор мекунем. Ва онҳо ба он нарасиданд. Аммо агар касе мехоҳад, ки ҳоло дар Go барномарезӣ кунад, коркарди хатогиҳои берун аз фазоро ба сатил илова кунед. Ман бешубҳа дархости ҷалбро дида мебароям.

Ва чизи асосие, ки моро ба ташвиш меорад, дар он аст, ки мо мехоҳем, ки ҳарчи бештар санҷишҳои ҳамгироии докерро тафтиш кунанд, ки сенарияҳои гуногунро тафтиш кунанд. Ҳоло мо танҳо сенарияҳои асосиро санҷида истодаем. Дар ҳар як ӯҳдадорӣ, аммо мо мехоҳем, ки ҳама функсияҳоеро, ки мо дастгирӣ мекунем, тафтиш кунем. Аз ҷумла, масалан, мо барои PostgreSQL 9.4-9.5 дастгирии кофӣ хоҳем дошт. Мо онҳоро дастгирӣ мекунем, зеро ҷомеа PostgreSQL-ро дастгирӣ мекунад, аммо мо иҷрои ӯҳдадориҳоро тафтиш намекунем, то боварӣ ҳосил кунем, ки ҳама чиз вайрон нашудааст. Ва ба ман чунин менамояд, ки ин як хатари хеле ҷиддӣ аст.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Мо WAL-G дорем, ки дар беш аз ҳазор кластерҳо дар идоракунии пойгоҳи додаҳои Yandex кор мекунанд. Ва он ҳар рӯз чандсад терабайт маълумотро нусхабардорӣ мекунад.

Мо дар коди худ бисёр TODO дорем. Агар шумо хоҳед, ки барнома кунед, биёед, мо интизори дархостҳо ҳастем, мо интизори саволҳо ҳастем.

Нусхаҳои эҳтиётӣ аз WAL-G. Дар соли 2019 чӣ ҳаст? Андрей Бородин

Саволҳои шумо

Шаб ба хайр! Сипос! Фикри ман ин аст, ки агар шумо WAL-delta-ро истифода баред, шумо эҳтимолан ба навиштаҳои пурраи саҳифа такя мекунед. Ва агар ин тавр бошад, оё шумо озмоишҳо гузаронидаед? Шумо графики зебо нишон додед. Агар FPW хомӯш карда шавад, он чӣ қадар зеботар мешавад?

Навиштани пурраи саҳифа барои мо фаъол аст, мо кӯшиш накардаем, ки онро хомӯш кунем. Яъне, ман ҳамчун як таҳиягар кӯшиш накардаам, ки онро хомӯш созам. Маъмурони система, ки таҳқиқ кардаанд, эҳтимол ин масъаларо таҳқиқ кардаанд. Аммо ба мо FPW лозим аст. Қариб ҳеҷ кас онро ғайрифаъол намекунад, зеро дар акси ҳол аз нусхабардорӣ нусхабардорӣ кардан ғайриимкон аст.

Ташаккур барои гузориш! Ман ду савол дорам. Саволи аввал ин аст, ки бо ҷадвалҳо чӣ мешавад?

Мо интизори дархости ҷалб ҳастем. Пойгоҳи додаҳои мо дар дискҳои SSD ва NMVE зиндагӣ мекунанд ва мо аслан ба ин хусусият ниёз надорем. Ман омода нестам, ки ҳоло барои иҷрои ин кори хуб вақти ҷиддӣ сарф кунам. Ман самимона тарафдорй мекунам, ки мо инро тарафдорй мекунем. Одамоне хастанд, ки онро дастгирй карданд, вале ба тарзе, ки ба онхо мувофик бошад, дастгирй карданд. Онҳо як чангак сохтанд, аммо онҳо дархост намекунанд. (Дар версияи 0.2.13 илова карда шудааст)

Ва саволи дуюм. Шумо дар аввал гуфтед, ки WAL-G тахмин мезанад, ки он танҳо кор мекунад ва ҳеҷ гуна бастабандӣ лозим нест. Ман худам парпечҳоро истифода мебарам. Чаро онҳо набояд истифода шаванд?

Мо мехоҳем, ки он мисли балалайка оддӣ бошад. Ин маънои онро дорад, ки ба ҷуз балалайка ба шумо чизе лозим нест. Мо мехоҳем, ки система оддӣ бошад. Агар шумо функсияе дошта бошед, ки онро дар скрипт иҷро кардан лозим аст, пас биёед ва ба мо бигӯед - мо онро дар Go иҷро мекунем.

Шаб ба хайр! Ташаккур барои гузориш! Мо натавонистем, ки WAL-G-ро бо рамзкушоии GPG кор кунад. Он одатан рамзкунонида мешавад, аммо рамзкушоӣ кардан намехоҳад. Оё он чизе, ки барои мо кор накард? Вазъият дилгармкунанда аст.

Дар GitHub масъала эҷод кунед ва биёед онро муайян кунем.

Яъне шумо ба ин дучор нашудаед?

Хусусияти гузориши хатогӣ вуҷуд дорад, ки вақте WAL-G намефаҳмад, ки он чӣ гуна файл аст, вай мепурсад: "Шояд он рамзгузорӣ шудааст?" Шояд мушкилот умуман рамзгузорӣ нест. Ман мехоҳам сабти номро дар ин мавзӯъ беҳтар кунам. Вай бояд онро фаҳмад. Мо дар айни замон дар ин мавзӯъ кор карда истодаем, ки ба мо аслан писанд нест, ки системаи ба даст овардани калидҳои давлатӣ ва хусусӣ чӣ гуна аст. Зеро мо GPG-и берунаро даъват мекунем, то он ба мо калидҳои худро диҳад. Ва он гоҳ мо ин калидҳоро мегирем ва онҳоро ба GPG-и дохилӣ интиқол медиҳем, ки PGP кушода аст, ки барои мо дар дохили WAL-G тартиб дода шудааст ва дар он ҷо мо рамзкунониро меномем. Дар робита ба ин, мо мехоҳем системаро такмил диҳем ва мехоҳем рамзгузории Libsodium-ро дастгирӣ кунем (Иловашуда дар версияи 0.2.15). Албатта, рамзкушоӣ бояд кор кунад, биёед онро фаҳмем - ба шумо бештар аз як ду калима аломат лозим аст. Шумо метавонед ягон вақт дар ҳуҷраи сухангӯ ҷамъ омада, ба система назар кунед. (Рамзгузории PGP бе GPG беруна - v0.2.9)

Салом! Ташаккур барои гузориш! Ман ду савол дорам. Ман як хоҳиши аҷибе дорам, ки дар ду провайдер pg_basebackup ва WAL log кор кунам, яъне ман мехоҳам як абр ва дигареро иҷро кунам. Оё ягон роҳи ин кор вуҷуд дорад?

Ин ҳоло вуҷуд надорад, аммо ин як идеяи ҷолиб аст.

Ман танҳо ба як провайдер эътимод надорам, ман мехоҳам, ки дар дигар провайдер бошад, ба ҳар сурат.

Идея ҷолиб аст. Аз ҷиҳати техникӣ, татбиқи ин кор душвор нест. Барои пешгирии гум шудани идея, ман метавонам аз шумо хоҳиш кунам, ки дар GitHub масъалае эҷод кунед?

Бале, албатта.

Ва он гоҳ, вақте ки донишҷӯён ба Google Summer of Code меоянд, мо онҳоро ба лоиҳа илова мекунем, то кори бештаре ба даст оварад.

Ва саволи дуюм. Дар GitHub мушкилот вуҷуд дорад. Ман фикр мекунам, ки он аллакай баста шудааст. Ҳангоми барқарорсозӣ воҳима вуҷуд дорад. Ва барои мағлуб кардани он, шумо як маҷлиси ҷудогона додед. Дар масъалаҳо дуруст аст. Ва имкон дорад, ки муҳити тағирёбанда дар як ришта анҷом дода шавад. Ва аз хамин сабаб он хеле суст кор мекунад. Ва мо бо ин мушкилот рӯ ба рӯ шудем ва он ҳанӯз ҳал нашудааст.

Мушкилот дар он аст, ки бо ягон сабаб нигоҳдорӣ (CEPH) вақте ки мо ба он бо ҳамзамон баланд мерасем, пайвастшавиро аз нав барқарор мекунад. Дар ин бора чй кор кардан мумкин аст? Мантиқи такрорӣ чунин менамояд. Мо кӯшиш мекунем, ки файлро дубора зеркашӣ кунем. Дар як гузариш, мо як қатор файлҳоеро доштем, ки зеркашида нашудаанд, мо барои ҳамаи онҳое, ки ворид нашудаанд, файли дуюмро месозем. Ва то он даме, ки ҳадди аққал як файл дар як такрор бор карда мешавад, мо такрор мекунем ва такрор мекунем ва такрор мекунем. Мо мантиқи кӯшиши такрориро такмил додем - бозгашти экспоненсиалӣ. Аммо комилан маълум нест, ки бо он ки пайвастшавӣ танҳо дар тарафи системаи нигоҳдорӣ вайрон мешавад, чӣ кор кардан лозим аст. Яъне вақте ки мо ба як ҷараён бор мекунем, ин робитаҳоро вайрон намекунад. Дар ин ҷо мо чиро беҳтар карда метавонем? Мо танзими шабака дорем, мо метавонем ҳар як пайвастро бо миқдори байтҳои ирсолкардааш маҳдуд кунем. Дар акси ҳол, ман намедонам, ки чӣ тавр бо он мубориза барам, ки нигаҳдории объект ба мо имкон намедиҳад, ки дар баробари он зеркашӣ ё зеркашӣ кунем.

SLA нест? Оё барои онҳо навишта нашудааст, ки чӣ гуна ба азоби худ роҳ медиҳанд?

Гап дар сари он аст, ки одамоне, ки бо ин савол меоянд, одатан хазинаи худро доранд. Яъне, ҳеҷ кас аз Amazon ё Google Cloud ё Yandex Object Storage намеояд.

Шояд савол дигар барои шумо нест?

Савол дар ин ҷо барои кӣ муҳим нест. Агар ягон фикру мулоҳизаҳое вуҷуд дошта бошанд, ки бо ин чӣ гуна муносибат кардан лозим аст, биёед онро дар WAL-G иҷро кунем. Аммо то ҳол ман дар бораи чӣ гуна мубориза бурдан бо ин фикрҳои хубе надорам. Баъзе захираҳои объектҳо мавҷуданд, ки рӯйхати нусхаҳои эҳтиётиро ба таври гуногун дастгирӣ мекунанд. Шумо аз онҳо хоҳиш мекунед, ки объектҳоро номбар кунанд ва онҳо дар он ҷо ҷузвдон илова мекунанд. WAL-G аз ин метарсад - дар ин ҷо як навъ чизе ҳаст, ки файл нест, ман онро барқарор карда наметавонам, яъне нусхабардорӣ барқарор нашудааст. Ин аст, ки дар асл, шумо кластери комилан барқароршуда доред, аммо он ба шумо ҳолати нодурустро бармегардонад, зеро Объект нигаҳдории иттилооти аҷиберо баргардонд, ки онро пурра нафаҳмидааст.

Ин чизест, ки дар абри Почта рӯй медиҳад.

Агар шумо нусхабардорӣ карда тавонед ...

Он пайваста такрор карда мешавад ...

Агар такрор вуҷуд дошта бошад, пас ман фикр мекунам, ки мо бо стратегияҳои такрорӣ озмоиш хоҳем кард ва бифаҳмем, ки чӣ гуна дубора кӯшиш кунем ва бифаҳмем, ки абр аз мо чӣ талаб мекунад. Шояд он барои мо дар се васл устувор бошад ва алокаро вайрон накунад, пас бо эхтиёт ба се мерасем. Зеро ҳоло мо пайвастро хеле зуд қатъ мекунем, яъне агар мо барқароркуниро бо 16 ришта оғоз кунем, пас пас аз такрори аввал 8 ришта, 4 ришта, 2 ришта ва як хоҳад буд. Ва он гоҳ он файлро ба як ҷараён мекашад. Агар баъзе арзишҳои ҷодугарӣ вуҷуд дошта бошанд, ба монанди 7,5 ришта беҳтарин барои обкашӣ мебошанд, мо дар бораи онҳо таваққуф мекунем ва кӯшиш мекунем, ки боз 7,5 ришта созем. Ана як идея.

Ташаккур барои гузориш! Ҷараёни мукаммали кор барои кор бо WAL-G чӣ гуна аст? Масалан, дар ҳолати беақл, вақте ки дар саросари саҳифаҳо дельта вуҷуд надорад. Ва мо нусхаи ибтидоиро мегирем ва хориҷ мекунем, пас чоҳро бойгонӣ мекунем, то даме ки дар рӯи мо кабуд шавад. Дар ин ҷо, чунон ки ман мефаҳмам, вайроншавӣ вуҷуд дорад. Дар баъзе мавридҳо ба шумо лозим аст, ки нусхаи дельтаи саҳифаҳоро созед, яъне ягон раванди беруна ин корро пеш мебарад ё ин чӣ гуна мешавад?

API-и нусхабардории delta хеле содда аст. Дар он ҷо як рақам вуҷуд дорад - қадамҳои максималии дельта, ин ҳамон ном аст. Он ба сифр муқаррар карда мешавад. Ин маънои онро дорад, ки ҳар дафъае, ки шумо нусхабардорӣ мекунед, он нусхаи эҳтиётии пурраро зеркашӣ мекунад. Агар шумо онро ба ягон рақами мусбат иваз кунед, масалан, 3, пас дафъаи оянда шумо нусхабардорӣ кунед, он ба таърихи нусхаҳои қаблӣ назар мекунад. Мебинад, ки шумо аз занҷири 3 дельта зиёд намешавед ва делта месозад.

Яъне ҳар дафъае, ки мо WAL-G-ро ба кор меандозем, он кӯшиш мекунад, ки нусхаи пурраи нусхабардорӣ кунад?

Не, мо WAL-G-ро иҷро мекунем ва он кӯшиш мекунад, ки дельтаро созад, агар сиёсати шумо ба он иҷозат диҳад.

Тахминан, агар шумо онро ҳар дафъа бо сифр иҷро кунед, оё он мисли pg_basebackup рафтор мекунад?

Не, он ҳоло ҳам тезтар кор мекунад, зеро он фишурдасозӣ ва параллелизмро истифода мебарад. Pg_basebackup чоҳи дар паҳлӯи шумо мегузорад. WAL-G тахмин мекунад, ки шумо бойгониро танзим кардаед. Ва агар он танзим нашуда бошад, огоҳӣ медиҳад.

Pg_basebackup метавонад бидуни чоҳҳо иҷро шавад.

Бале, он гох онхо кариб як хел рафтор мекунанд. Pg_basebackup ба системаи файлӣ нусхабардорӣ мекунад. Дар омади гап, мо як хусусияти нав дорем, ки ман зикр карданро фаромӯш кардаам. Ҳоло мо метавонем аз pg_basebackup ба системаи файлӣ нусхабардорӣ кунем. Ман намедонам, ки чаро ин лозим аст, аммо он ҷост.

Масалан, дар CephFS. На ҳама мехоҳанд, ки нигоҳдории объектро танзим кунанд.

Бале, шояд аз ин рӯ онҳо дар бораи ин хусусият савол доданд, то мо онро иҷро кунем. Ва мо ин корро кардем.

Ташаккур барои гузориш! Дар бораи нусхабардорӣ ба системаи файлӣ танҳо як савол вуҷуд дорад. Аз қуттӣ, оё шумо ҳоло нусхабардориро ба нигаҳдории дурдаст дастгирӣ мекунед, масалан, агар дар маркази додаҳо раф ё чизи дигаре бошад?

Дар ин тартиб, ин саволи душвор аст. Бале, мо дастгирӣ мекунем, аммо ин функсия то ҳол дар ягон нашрия дохил карда нашудааст. Яъне, ҳама релизҳои қаблӣ инро дастгирӣ мекунанд, аммо версияҳои релиз ин тавр нестанд. Ин функсия дар версияи 0.2 илова карда шудааст. Он бешубҳа ба зудӣ бароварда мешавад, вақте ки мо ҳамаи хатогиҳои маълумро ислоҳ мекунем. Аммо дар айни замон ин метавонад танҳо дар пеш аз нашр анҷом дода шавад. Дар пеш аз нашр ду хато вуҷуд дорад. Мушкилот бо барқарорсозии WAL-E, мо онро ҳал накардаем. Ва дар охирин пеш аз нашр хато дар бораи delta-backup илова карда шуд. Аз ин рӯ, мо ба ҳама тавсия медиҳем, ки версияҳои нашршударо истифода баранд. Ҳамин ки дар пеш аз нашр ягон хатогӣ вуҷуд надорад, мо гуфта метавонем, ки мо Google Cloud, чизҳои бо S3 мувофиқ ва нигаҳдории файлро дастгирӣ мекунем.

Салом, ташаккур барои гузориш. Тавре ки ман мефаҳмам, WAL-G як системаи мутамарказ ба монанди бармен нест? Оё шумо ният доред, ки дар ин самт ҳаракат кунед?

Гап дар он аст, ки мо аз ин самт дур шудаем. WAL-G дар мизбони асосӣ, дар мизбони кластер ва дар ҳама ҳостҳои кластер зиндагӣ мекунад. Вақте ки мо ба якчанд ҳазор кластер кӯчидем, мо иншооти зиёди бармен доштем. Ва ҳар боре, ки дар онҳо чизе аз байн меравад, ин як мушкили бузург аст. Азбаски онҳо бояд таъмир карда шаванд, шумо бояд фаҳмед, ки кадом кластерҳо ҳоло нусхаҳои эҳтиётӣ надоранд. Ман нақша надорам, ки WAL-G-ро дар самти таҷҳизоти физикӣ барои системаҳои эҳтиётӣ таҳия кунам. Агар ҷомеа дар ин ҷо ягон функсия дошта бошад, ман тамоман зид нестам.

Мо дастаҳое дорем, ки барои нигоҳдорӣ масъуланд. Ва мо худро чунон хуб ҳис мекунем, ки ин мо нест, ки одамони махсусе ҳастанд, ки файлҳои моро дар он ҷое, ки файлҳо бехатаранд, ҷойгир мекунанд. Онҳо дар он ҷо ҳама гуна рамзгузории оқилонаро иҷро мекунанд, то ба талафоти миқдори муайяни файлҳо тоб оранд. Онҳо барои фарохмаҷрои шабака масъуланд. Вақте ки шумо бармен доред, шумо метавонед ногаҳон фаҳмед, ки пойгоҳи додаҳои хурд бо трафики зиёд дар як сервер ҷамъ шудаанд. Чунин ба назар мерасад, ки шумо дар он фазои зиёд доред, аммо бо баъзе сабабҳо ҳама чиз тавассути шабака мувофиқат намекунад. Он метавонад ба таври дигар рӯй диҳад. Дар он ҷо шабакаҳои зиёд мавҷуданд, ядроҳои протсессор вуҷуд доранд, аммо дар ин ҷо дискҳо нестанд. Ва мо аз ин зарурати ҳалқаи чизе хаста шудем ва мо ба он гузаштем, ки нигоҳдории маълумот хидмати алоҳида аст, ки барои он одамони алоҳида масъуланд.

PS Версияи нав бароварда шуд 0.2.15, ки дар он шумо метавонед файли конфигуратсияи .walg.json -ро истифода баред, ки бо нобаёнӣ дар феҳристи хонагии postgres ҷойгир аст. Шумо метавонед скриптҳои bash-ро тарк кунед. Намунаи .walg.json дар ин шумора аст https://github.com/wal-g/wal-g/issues/545

Видео:



Манбаъ: will.com

Илова Эзоҳ