Дар ин мақола нармафзори эҳтиётӣ баррасӣ хоҳад шуд, ки тавассути шикастани ҷараёни додаҳо ба ҷузъҳои алоҳида (порчаҳо) анборро ташкил медиҳад.
Ҷузъҳои репозиторийро метавон минбаъд фишурда ва рамзгузорӣ кард ва муҳимтар аз ҳама - ҳангоми равандҳои такрории эҳтиётӣ - дубора истифода бурдан.
Нусхаи эҳтиётӣ дар чунин анбор занҷири номбаршудаи ҷузъҳои ба ҳамдигар пайваст аст, масалан, дар асоси функсияҳои гуногуни хэш.
Якчанд роҳҳои ҳалли шабеҳ мавҷуданд, ман ба 3 тамаркуз мекунам: zbackup, borgbackup ва restic.
Натиҷаҳои интизоршуда
Азбаски ҳамаи довталабон ба ин ё он роҳ эҷод кардани анборро талаб мекунанд, яке аз омилҳои муҳимтарин ҳисоб кардани андозаи анбор хоҳад буд. Идеалӣ, андозаи он аз рӯи методологияи қабулшуда набояд аз 13 ГБ зиёд бошад, ё ҳатто камтар аз он бошад - бо назардошти оптимизатсияи хуб.
Инчунин хеле матлуб аст, ки тавонистани нусхаҳои эҳтиётии файлҳоро мустақиман бидуни истифодаи бойгониҳо ба монанди tar ва инчунин кор бо ssh/sftp бидуни абзорҳои иловагӣ ба монанди rsync ва sshfs.
Рафтор ҳангоми сохтани нусхаҳои эҳтиётӣ:
- Андозаи анбор ба андозаи тағирот баробар ё камтар хоҳад буд.
- Ҳангоми истифодаи фишурдасозӣ ва/ё рамзгузорӣ сарбории зиёди CPU интизор аст ва эҳтимолияти сарбории хеле баланди шабака ва диск вуҷуд дорад, агар раванди бойгонӣ ва/ё рамзгузорӣ дар сервери нигаҳдории эҳтиётӣ иҷро шавад.
- Агар репозиторий осеб дида бошад, хатои таъхиршуда ҳам ҳангоми эҷоди нусхаҳои нав ва ҳам ҳангоми кӯшиши барқароршавӣ эҳтимол дорад. Барои таъмини якпорчагии анбор тадбирҳои иловагиро ба нақша гирифтан лозим аст ё асбобҳои дарунсохтро барои тафтиши тамомияти он истифода бурдан лозим аст.
Кор бо қатрон ҳамчун арзиши истинод гирифта мешавад, чунон ки дар яке аз мақолаҳои қаблӣ нишон дода шудааст.
Санҷиши zbackup
Механизми умумии zbackup аз он иборат аст, ки барнома дар ҷараёнҳои додаҳои воридотӣ минтақаҳои дорои як маълумотро пайдо мекунад, баъд ихтиёрӣ онҳоро фишурда ва рамзкунонида, ҳар як минтақаро танҳо як маротиба захира мекунад.
Deduplication функсияи хэши ҳалқаи 64-битро бо равзанаи лағжиш барои тафтиши мувофиқати байт ба байт бо блокҳои мавҷудаи додаҳо истифода мебарад (монанде, ки rsync онро амалӣ мекунад).
Барои фишурдан lzma ва lzo бисёр риштаҳо ва aes барои рамзгузорӣ истифода мешаванд. Версияҳои охирин қобилияти нест кардани маълумоти кӯҳна аз анбор дар оянда доранд.
Барнома дар C++ бо вобастагии ҳадди ақал навишта шудааст. Муаллиф аз афташ аз unix-way илҳом гирифта буд, аз ин рӯ барнома ҳангоми сохтани нусхаҳои эҳтиётӣ маълумотро дар stdin қабул мекунад ва ҳангоми барқарорсозӣ ҷараёни шабеҳи маълумотро дар stdout тавлид мекунад. Ҳамин тариқ, zbackup метавонад ҳамчун "блоки бино" хеле хуб ҳангоми навиштани қарорҳои эҳтиётии худ истифода шавад. Масалан, муаллифи мақола ин барномаро ҳамчун воситаи асосии эҳтиётии мошинҳои хонагӣ тақрибан аз соли 2014 истифода кардааст.
Ҷараёни додаҳо як қатраи муқаррарӣ хоҳад буд, агар тартиби дигаре пешбинӣ нашуда бошад.
Биёед бубинем, ки натиҷаҳо чӣ гунаанд:
Кор дар 2 вариант санҷида шуд:
- репозиторий сохта мешавад ва zbackup дар сервер бо маълумоти манбаъ оғоз мешавад, пас мундариҷаи анбор ба сервери нигаҳдории эҳтиётӣ интиқол дода мешавад.
- репозиторий дар сервери нигаҳдории эҳтиётӣ сохта мешавад, zbackup тавассути ssh дар сервери нигаҳдории эҳтиётӣ оғоз мешавад ва маълумот тавассути қубур ба он фиристода мешавад.
Натиҷаҳои варианти аввал чунин буданд: 43m11s - ҳангоми истифодаи анбори рамзнашуда ва компрессори lzma, 19m13s - ҳангоми иваз кардани компрессор бо lzo.
Сарборӣ ба сервер бо маълумоти аслӣ чунин буд (масалан бо lzma нишон дода шудааст; бо lzo тақрибан як тасвир мавҷуд буд, аммо ҳиссаи rsync тақрибан чоряки вақт буд):
Равшан аст, ки чунин раванди эҳтиётӣ танҳо барои тағйироти нисбатан нодир ва хурд мувофиқ аст. Инчунин тавсия дода мешавад, ки zbackup-ро то 1 ришта маҳдуд кунед, вагарна сарбории CPU хеле баланд хоҳад буд, зеро Барнома дар кор дар риштаҳои гуногун хеле хуб аст. Сарбории диск хурд буд, ки дар маҷмӯъ бо зерсистемаи муосири диски ssd ба назар намерасад. Шумо инчунин метавонед оғози раванди ҳамоҳангсозии додаҳои анборро ба сервери дурдаст равшан бубинед; суръати кор бо rsync муқаррарӣ муқоиса карда мешавад ва аз кори зерсистемаи диски сервери нигаҳдории захиравӣ вобаста аст. Камбудии ин равиш нигоҳдории анбори маҳаллӣ ва дар натиҷа такрори маълумот мебошад.
Варианти дуюм, ки zbackup-ро мустақиман дар сервери нигаҳдории эҳтиётӣ иҷро мекунад, ҷолибтар ва дар амал татбиқшаванда аст.
Аввалан, мо амалиётро бидуни истифодаи рамзгузорӣ бо компрессори lzma тафтиш мекунем:
Вақти иҷрои ҳар як санҷиш:
Оғози 1
Оғози 2
Оғози 3
39м45с
40м20с
40м3с
7м36с
8м3с
7м48с
15м35с
15м48с
15м38с
Агар шумо рамзгузории aes-ро фаъол созед, натиҷаҳо хеле наздиканд:
Вақти кор дар ҳамон маълумот бо рамзгузорӣ:
Оғози 1
Оғози 2
Оғози 3
43м40с
44м12с
44м3с
8м3с
8м15с
8м12с
15м0с
15м40с
15м25с
Агар рамзгузорӣ бо фишурдасозии lzo якҷоя карда шавад, он чунин менамояд:
Вақтҳои корӣ:
Оғози 1
Оғози 2
Оғози 3
18м2с
18м15с
18м12с
5м13с
5м24с
5м20с
8м48с
9м3с
8м51с
Андозаи анбори натиҷавӣ дар 13 ГБ нисбатан якхела буд. Ин маънои онро дорад, ки нусхабардорӣ дуруст кор мекунад. Инчунин, дар маълумоти аллакай фишурдашуда, истифодаи lzo таъсири назаррас медиҳад; аз рӯи вақти умумии кор, zbackup ба такрорӣ/дупликатсия наздик мешавад, аммо аз онҳое, ки дар асоси librsync асос ёфтааст, 2-5 маротиба ақиб мемонад.
Афзалиятҳо аёнанд - сарфаи фазои диск дар сервери нигаҳдории эҳтиётӣ. Дар мавриди асбобҳои санҷиши репозиторий, муаллифи zbackup онҳоро таъмин намекунад; тавсия дода мешавад, ки массиви дискҳои ба хатогиҳо тобовар ё провайдери абрӣ истифода шавад.
Дар маҷмӯъ, таассуроти хеле хуб, сарфи назар аз он, ки лоиҳа тақрибан 3 сол боз истода буд (дархости охирин тақрибан як сол пеш буд, аммо бе посух).
Санҷиши borgbackup
Borgbackup як фарши болохона аст, системаи дигаре, ки ба zbackup монанд аст. Дар python навишта шудааст, он дорои рӯйхати қобилиятҳои шабеҳи zbackup мебошад, аммо ба таври иловагӣ метавонад:
- Нусхаҳоро тавассути муҳофизаткунанда насб кунед
- Мундариҷаи анборро тафтиш кунед
- Дар реҷаи муштарӣ-сервер кор кунед
- Барои маълумот компрессорҳои гуногунро истифода баред, инчунин муайян кардани эвристикии навъи файл ҳангоми фишурдани он.
- 2 имконоти рамзгузорӣ, aes ва blake
- Воситаи дарунсохт барои
санҷишҳои иҷроиш
borgbackup меъёри crud ssh://backup_server/repo/path local_dir
Натичахо чунин буданд:
CZ-BIG 96.51 МБ/с (10 100.00 МБ файлҳои сифр: 10.36с)
RZ-BIG 57.22 МБ/с (10 100.00 МБ файлҳои сифр: 17.48с)
UZ-BIG 253.63 МБ/с (10 100.00 МБ файлҳои сифр: 3.94с)
DZ-BIG 351.06 МБ/с (10 100.00 МБ файлҳои сифр: 2.85с)
CR-BIG 34.30 МБ/с (10 Файлҳои тасодуфии 100.00 МБ: 29.15с)
RR-BIG 60.69 МБ/с (10 Файлҳои тасодуфии 100.00 МБ: 16.48с)
UR-BIG 311.06 МБ/с (10 Файлҳои тасодуфии 100.00 МБ: 3.21с)
DR-BIG 72.63 МБ/с (10 Файлҳои тасодуфии 100.00 МБ: 13.77с)
CZ-MEDIUM 108.59 МБ/с (1000 1.00 МБ файлҳои сифр: 9.21с)
RZ-MEDIUM 76.16 МБ/с (1000 1.00 МБ файлҳои сифр: 13.13с)
UZ-MEDIUM 331.27 МБ/с (1000 1.00 МБ файлҳои сифр: 3.02с)
DZ-MEDIUM 387.36 МБ/с (1000 1.00 МБ файлҳои сифр: 2.58с)
CR-MEDIUM 37.80 МБ/с (1000 Файлҳои тасодуфии 1.00 МБ: 26.45с)
RR-MEDIUM 68.90 МБ/с (1000 Файлҳои тасодуфии 1.00 МБ: 14.51с)
UR-MEDIUM 347.24 МБ/с (1000 Файлҳои тасодуфии 1.00 МБ: 2.88с)
DR-MEDIUM 48.80 МБ/с (1000 Файлҳои тасодуфии 1.00 МБ: 20.49с)
CZ-SMALL 11.72 МБ/с (10000 10.00 кБ файлҳои сифр: 8.53с)
RZ-SMALL 32.57 МБ/с (10000 10.00 кБ файлҳои сифр: 3.07с)
UZ-SMALL 19.37 МБ/с (10000 10.00 кБ файлҳои сифр: 5.16с)
DZ-SMALL 33.71 МБ/с (10000 10.00 кБ файлҳои сифр: 2.97с)
CR-SMALL 6.85 МБ/с (10000 Файлҳои тасодуфии 10.00 кБ: 14.60с)
RR-ХУРД 31.27 МБ/с (10000 Файлҳои тасодуфии 10.00 кБ: 3.20с)
UR-SMALL 12.28 МБ/с (10000 Файлҳои тасодуфии 10.00 кБ: 8.14с)
DR-SMALL 18.78 МБ/с (10000 Файлҳои тасодуфии 10.00 кБ: 5.32с)
Ҳангоми санҷиш, эвристикаи фишурдасозӣ барои муайян кардани навъи файл (автоматии фишурда) истифода мешавад ва натиҷаҳо чунин хоҳанд буд:
Аввалан, биёед бубинем, ки он бе рамзгузорӣ чӣ гуна кор мекунад:
Вақтҳои корӣ:
Оғози 1
Оғози 2
Оғози 3
4м6с
4м10с
4м5с
56
58
54
1м26с
1м34с
1м30с
Агар шумо иҷозати репозиторийро фаъол созед (режими тасдиқшуда), натиҷаҳо наздик мешаванд:
Вақтҳои корӣ:
Оғози 1
Оғози 2
Оғози 3
4м11с
4м20с
4м12с
1м0с
1м3с
1м2с
1м30с
1м34с
1м31с
Вақте ки рамзгузории aes фаъол карда шуд, натиҷаҳо чандон бад нашуданд:
Оғози 1
Оғози 2
Оғози 3
4м55с
5м2с
4м58с
1м0с
1м2с
1м0с
1м49с
1м50с
1м50с
Ва агар шумо aes-ро ба блэйк иваз кунед, вазъ комилан беҳтар мешавад:
Вақтҳои корӣ:
Оғози 1
Оғози 2
Оғози 3
4м33с
4м43с
4м40с
59
1м0с
1м0с
1м38с
1м43с
1м40с
Тавре ки дар мавриди zbackup, андозаи анбор 13 ГБ ва ҳатто каме камтар буд, ки умуман интизор меравад. Ман аз вақти кор хеле қаноатманд будам; онро бо қарорҳои дар асоси librsync муқоиса кардан мумкин аст, ки имкониятҳои васеътарро фароҳам меорад. Ман инчунин аз қобилияти муқаррар кардани параметрҳои гуногун тавассути тағирёбандаҳои муҳити зист, ки ҳангоми истифодаи borgbackup дар реҷаи автоматӣ бартарии хеле ҷиддӣ медиҳад, хушнуд шудам. Ман инчунин аз сарборӣ ҳангоми нусхабардорӣ қаноатманд будам: аз рӯи сарбории протсессор, borgbackup дар 1 ришта кор мекунад.
Ҳангоми истифодаи он камбудиҳои махсус вуҷуд надоштанд.
санҷиши истироҳат
Сарфи назар аз он, ки рестик як ҳалли хеле нав аст (2 номзади аввал дар соли 2013 ва калонтар маълум буданд), он дорои хусусиятҳои хеле хуб аст. Дар Go навишта шудааст.
Ҳангоми муқоиса бо zbackup, он ба таври иловагӣ медиҳад:
- Санҷиши якпорчагии анбор (аз ҷумла тафтиши қисмҳо).
- Рӯйхати бузурги протоколҳо ва провайдерҳои дастгирӣшаванда барои нигоҳдории нусхаҳои эҳтиётӣ, инчунин дастгирии rclone - rsync барои ҳалли абр.
- Муқоисаи 2 нусхаи эҳтиётӣ бо ҳамдигар.
- Насб кардани анбор тавассути муҳофизаткунанда.
Умуман, рӯйхати хусусиятҳо ба borgbackup хеле наздик аст, дар баъзе ҷойҳо бештар, дар дигарон камтар. Яке аз хусусиятҳо он аст, ки ҳеҷ гуна роҳи хомӯш кардани рамзгузорӣ вуҷуд надорад ва аз ин рӯ, нусхаҳои эҳтиётӣ ҳамеша рамзгузорӣ карда мешаванд. Биёед дар амал бубинем, ки аз ин нармафзор чиро фишурда кардан мумкин аст:
Натичахо чунин буданд:
Вақтҳои корӣ:
Оғози 1
Оғози 2
Оғози 3
5м25с
5м50с
5м38с
35
38
36
1м54с
2м2с
1м58с
Натиҷаҳои иҷроишро инчунин бо қарорҳои rsync дар асоси муқоиса кардан мумкин аст ва дар маҷмӯъ, ба borgbackup хеле наздик аст, аммо сарбории CPU зиёдтар аст (риштаҳои сершумор кор мекунад) ва дандон.
Эҳтимол, барнома бо иҷрои зерсистемаи диск дар сервери нигаҳдории маълумот маҳдуд аст, чуноне ки аллакай дар rsync буд. Андозаи репозиторий 13 ГБ буд, ба мисли zbackup ё borgbackup, ҳангоми истифодаи ин ҳалли ягон камбудии ошкоре вуҷуд надошт.
натиҷаҳои
Дар асл, ҳамаи номзадҳо ба натиҷаҳои якхела ноил шуданд, аммо бо нархҳои гуногун. Borgbackup аз ҳама беҳтар кор кард, restic каме сусттар буд, zbackup эҳтимолан ба истифода намеарзад,
ва агар он аллакай дар истифода бошад, кӯшиш кунед, ки онро ба borgbackup ё restic иваз кунед.
натиҷаҳои
Ҳалли умедбахштарин ба назар чунин менамояд, ки оромист, зеро... маҳз ӯ таносуби беҳтарини қобилиятҳо ба суръати кор аст, аммо биёед ҳоло ба хулосаҳои умумӣ шитоб накунем.
Borgbackup аслан бадтар нест, аммо zbackup эҳтимолан беҳтар иваз карда шавад. Дуруст аст, ки zbackup ҳоло ҳам метавонад барои таъмини кори қоидаҳои 3-2-1 истифода шавад. Масалан, ба ғайр аз иншооти захиравии (lib)rsync.
Эълон
Нусхаи эҳтиётӣ Қисми 5: Санҷиши нусхабардории bacula ва veeam барои Linux
Қисми 6: Муқоисаи абзорҳои эҳтиётӣ
Нусхаи эҳтиётӣ Қисми 7: Хулоса
Интишор аз ҷониби: Павел Демкович
Манбаъ: will.com