Dyma erthygl drosolwg i ddisgrifio'r nodweddion. Disgrifir y defnydd gwirioneddol o hashget (eithaf syml) yn
Cymhariaeth
Yn ôl cyfraith y genre, fe ddechreuaf ar unwaith gyda'r dirgelwch - gan gymharu'r canlyniadau:
Sampl data
maint heb ei bacio
.tar.gz
hashget.tar.gz
WordPress- 5.1.1
43 Mb
11 Mb (26%)
155 Kb ( 0.3% )
Cnewyllyn Linux 5.0.4
934 Mb
161 Mb (20%)
4.7 Mb ( 0.5% )
Debian 9 (LAMP) LXC VM
724 Mb
165 Mb (23%)
4.1 Mb ( 0.5% )
Cefndir ar yr hyn y dylai copi wrth gefn delfrydol ac effeithiol fod
Bob tro roeddwn i'n gwneud copi wrth gefn o beiriant rhithwir newydd ei greu, roedd y teimlad fy mod yn gwneud rhywbeth o'i le wedi fy syfrdanu. Pam ydw i'n cael copi wrth gefn helaeth o'r system, lle mae fy nghreadigedd amhrisiadwy, amhrisiadwy yn index.html un llinell gyda'r testun “Helo fyd”?
Pam mae 16 MB /usr/sbin/mysqld yn fy nghop wrth gefn? A yw'n bosibl mewn gwirionedd fy mod yn y byd hwn yn cael yr anrhydedd o gadw'r ffeil bwysig hon, ac os byddaf yn methu, bydd yn cael ei golli i ddynoliaeth? Yn fwyaf tebygol na. Mae'n cael ei storio ar weinyddion debian hynod ddibynadwy (ni ellir cymharu ei ddibynadwyedd a'i amser hir â'r hyn y gallaf ei ddarparu), yn ogystal ag mewn copïau wrth gefn (miliynau ohonynt) gan weinyddwyr eraill. A oes gwir angen i ni greu 10+ copi 000af o'r ffeil bwysig hon i wella dibynadwyedd?
Yn gyffredinol tar -c
/ tar -x
. (Mewn geiriau eraill, pecynnu di-golled yw hwn)
Sut mae hashget yn gweithio
Mae gan hashget y cysyniadau o Pecyn a HashPackage, gyda'u help mae'n cyflawni dad-ddyblygu.
pecyn (bag plastig). Ffeil (archif .deb neu .tar.gz fel arfer) y gellir ei llwytho i lawr yn ddiogel o'r Rhyngrwyd, ac y gellir cael un ffeil neu fwy ohoni.
Pecyn Hash — ffeil JSON fach yn cynrychioli Pecyn, gan gynnwys URL y pecyn a symiau hash (sha256) o ffeiliau ohono. Er enghraifft, ar gyfer pecyn mariadb-server-core 5 megabeit, dim ond 6 kilobytes yw maint yr hashpackage. Tua mil o weithiau yn llai.
Dyblygu — creu archif heb ffeiliau dyblyg (os yw'r dad-ddyblygwr yn gwybod ble y gellir lawrlwytho'r pecyn gwreiddiol, mae'n lleihau copïau dyblyg o'r archif).
Pecynnu
Wrth bacio, mae'r holl ffeiliau o'r cyfeiriadur sy'n cael eu pacio yn cael eu sganio, mae eu symiau hash yn cael eu cyfrifo, ac os yw'r swm i'w gael yn un o'r HashPackages hysbys, yna caiff metadata am y ffeil (enw, hash, hawliau mynediad, ac ati) ei gadw mewn ffeil arbennig .hashget-restore.json, a fydd hefyd yn cael ei chynnwys yn yr archif.
Yn yr achos symlaf, nid yw'r pecyn ei hun yn edrych yn fwy cymhleth na thar:
hashget -zf /tmp/mybackup.tar.gz --pack /path/to/data
Dadbacio
Mae dadbacio yn cael ei wneud mewn dau gam. Yn gyntaf y dadbacio tar arferol:
tar -xf mybackup.tar.gz -C /path/to/data
yna adfer o'r rhwydwaith:
hashget -u /path/to/data
Wrth adfer, mae hashget yn darllen y ffeil .hashget-restore.json, yn lawrlwytho'r pecynnau angenrheidiol, yn eu dadbacio, ac yn echdynnu'r ffeiliau angenrheidiol, gan eu gosod yn y llwybrau gofynnol, gyda'r perchennog / grŵp / caniatâd gofynnol.
Pethau anoddach
Mae’r hyn a ddisgrifir uchod eisoes yn ddigon i’r rhai sydd “eisiau iddo fel tar, ond i bacio fy Debian i mewn i 4 megabeit.” Gadewch i ni edrych ar bethau mwy cymhleth yn nes ymlaen.
Mynegeio
Pe na bai gan hashget un HashPackage o gwbl, yna ni fyddai'n gallu dad-ddyblygu unrhyw beth.
Gallwch hefyd greu HashPackage â llaw (yn syml: hashget --submit https://wordpress.org/wordpress-5.1.1.zip -p my
), ond mae ffordd fwy cyfleus.
Er mwyn cael y hashpackage angenrheidiol, mae llwyfan mynegeio (fe'i gweithredir yn awtomatig gyda'r gorchymyn --pack
) A heuristics. Wrth fynegeio, mae hashget yn “bwydo” pob ffeil a ganfyddir i'r holl heuristics sydd ar gael sydd â diddordeb ynddi. Yna gall Heuristics fynegeio unrhyw Becyn i greu HashPackage.
Er enghraifft, mae hewristig Debian yn caru'r ffeil /var/lib/dpkg/status ac yn canfod pecynnau debian wedi'u gosod, ac os nad ydynt wedi'u mynegeio (nid oes HashPackage wedi'i greu ar eu cyfer), mae'n eu lawrlwytho a'u mynegeio. Mae'r canlyniad yn effaith braf iawn - bydd hashget bob amser yn dad-ddyblygu Debian OSes i bob pwrpas, hyd yn oed os oes ganddyn nhw'r pecynnau diweddaraf.
Ffeiliau awgrym
Os yw'ch rhwydwaith yn defnyddio rhai o'ch pecynnau perchnogol neu becyn cyhoeddus nad yw wedi'i gynnwys yn yr hashget heuristics, gallwch ychwanegu ffeil awgrym hashget-hint.json syml ato fel hyn:
{
"project": "wordpress.org",
"url": "https://ru.wordpress.org/wordpress-5.1.1-ru_RU.zip"
}
Nesaf, bob tro y bydd archif yn cael ei greu, bydd y pecyn yn cael ei fynegeio (os nad yw wedi bod yn flaenorol), a bydd y ffeiliau pecyn yn cael eu dad-ddyblygu o'r archif. Nid oes angen rhaglennu, gellir gwneud popeth o vim ac arbed ym mhob copi wrth gefn. Sylwch, diolch i'r dull hash sum, os yw rhai ffeiliau o'r pecyn yn cael eu newid yn lleol (er enghraifft, mae ffeil ffurfweddu yn cael ei newid), yna bydd y ffeiliau wedi'u newid yn cael eu cadw yn yr archif “fel y mae” ac ni fyddant yn cael eu cwtogi.
Os yw rhai o'ch pecynnau eich hun yn cael eu diweddaru o bryd i'w gilydd, ond nad yw'r newidiadau'n fawr iawn, dim ond ar gyfer fersiynau mawr y gallwch chi awgrymu. Er enghraifft, yn fersiwn 1.0 fe wnaethant awgrym yn pwyntio at mypackage-1.0.tar.gz, a bydd yn cael ei ddad-ddyblygu'n llwyr, yna fe wnaethant ryddhau fersiwn 1.1, sydd ychydig yn wahanol, ond ni ddiweddarwyd yr awgrym. Mae'n iawn. Dim ond ffeiliau sy'n cyfateb (gellir eu hadfer i) fersiwn 1.0 sy'n cael eu dad-ddyblygu.
Mae'r hewristig sy'n prosesu'r ffeil awgrym yn enghraifft dda ar gyfer deall mecanwaith mewnol sut mae hewristeg yn gweithio. Mae'n prosesu ffeiliau hashget-hint.json yn unig (neu .hashget-hint.json gyda dot) ac mae'n anwybyddu pob un arall. O'r ffeil hon, mae'n penderfynu pa URL pecyn y dylid ei fynegeio, ac mae hashget yn ei fynegeio (os nad yw wedi gwneud hynny eisoes)
HashGweinydd
Byddai'n eithaf llafurddwys i berfformio mynegeio llawn wrth greu copïau wrth gefn. I wneud hyn, mae angen i chi lawrlwytho pob pecyn, ei ddadbacio, a'i fynegeio. Felly mae hashget yn defnyddio cynllun gyda
Mae HashServer yn elfen ddewisol o'r cynllun, nid yn hanfodol, mae'n gwasanaethu i gyflymu a lleihau'r llwyth ar y storfeydd yn unig. Hawdd anabl (dewisol --hashserver
heb baramedrau). Yn ogystal, gallwch yn hawdd
Copïau wrth gefn cynyddol a gwahaniaethol, darfodiad cynlluniedig
--submit
ac rydych chi wedi gorffen! Ni fydd y copi wrth gefn nesaf y mae hashget yn ei greu yn cynnwys ffeiliau o'r archif hon.
Ond nid yw hwn yn ddull da iawn, oherwydd efallai y bydd yn rhaid i ni dynnu pob copi wrth gefn hashget yn yr hanes cyfan wrth adfer (os yw pob un yn cynnwys o leiaf un ffeil unigryw). Mae mecanwaith ar gyfer hyn --expires 2019-06-01
, ac ar ôl y dyddiad hwn (o 00:00), ni fydd yn cael ei ddefnyddio. Ni ellir dileu'r archif ei hun ar ôl y dyddiad hwn (Er y gall hashget ddangos URLs pob copi wrth gefn sydd / a fydd yn pydru ar hyn o bryd neu ar unrhyw ddyddiad yn gyfleus).
Er enghraifft, os byddwn yn gwneud copi wrth gefn llawn ar y 1af ac yn ei fynegeio gydag oes hyd at ddiwedd y mis, byddwn yn cael cynllun wrth gefn gwahaniaethol.
Os byddwn yn mynegeio copïau wrth gefn newydd yn yr un modd, bydd cynllun o gopïau wrth gefn cynyddrannol.
Yn wahanol i gynlluniau traddodiadol, mae hashget yn caniatáu ichi ddefnyddio sawl ffynhonnell sylfaenol. Bydd y copi wrth gefn yn cael ei leihau trwy leihau ffeiliau o gopïau wrth gefn blaenorol (os o gwbl) a chan ffeiliau cyhoeddus (yr hyn y gellir ei lawrlwytho).
Os nad ydym yn ymddiried yn ddibynadwyedd adnoddau Debian am ryw reswm (
Mae Hashget ond yn dibynnu ar ffynonellau adfer dibynadwy yn ôl eich disgresiwn CHI. Bydd y rhai rydych chi'n eu hystyried yn ddibynadwy yn cael eu defnyddio.
FilePool a Rhewlif
Mecanwaith
$ hashget -u . --pool /tmp/pool
neu
$ hashget -u . --pool http://myhashdb.example.com/
I wneud pwll mewn cyfeiriadur lleol, does ond angen i chi greu cyfeiriadur a thaflu ffeiliau i mewn iddo, bydd hashget ei hun yn dod o hyd i'r hyn sydd ei angen arno gan ddefnyddio'r hashes. I wneud y pwll yn hygyrch trwy HTTP, mae angen i chi greu symlinks mewn ffordd arbennig; gwneir hyn gydag un gorchymyn (hashget-admin --build /var/www/html/hashdb/ --pool /tmp/pool
). Mae HTTP FilePool ei hun yn ffeiliau statig, felly gall unrhyw weinydd gwe syml ei wasanaethu, mae'r llwyth ar y gweinydd bron yn sero.
Diolch i FilePool, gallwch ddefnyddio nid yn unig adnoddau http(s) fel adnoddau sylfaenol, ond hefyd
Ar ôl uwchlwytho'r copi wrth gefn i'r rhewlif, rydym yn cael ei ID Llwytho i fyny ac yn ei ddefnyddio fel URL. Er enghraifft:
hashget --submit Glacier_Upload_ID --file /tmp/my-glacier-backup.tar.gz --project glacier --hashserver --expires 2019-09-01
Nawr bydd copïau wrth gefn newydd (gwahanol) yn seiliedig ar y copi wrth gefn hwn a byddant yn fyrrach. Ar ôl dadbacio'r copi wrth gefn, gallwn weld pa adnoddau y mae'n dibynnu arnynt:
hashget --info /tmp/unpacked/ list
a defnyddiwch sgript cragen i lawrlwytho'r holl ffeiliau hyn o Rhewlif i'r pwll a rhedeg yr adferiad arferol: hashget -u /tmp/dadbacio —pool /tmp/pool
Ydy'r gêm werth y gannwyll?
Yn yr achos symlaf, byddwch yn talu llai am gopïau wrth gefn (os ydych chi'n eu storio yn rhywle yn y cwmwl am arian). Efallai llawer, llawer llai.
Ond nid dyna'r unig beth. Mae maint yn troi'n ansawdd. Gallwch ddefnyddio hwn i gael uwchraddiad o ansawdd uchel i'ch cynllun wrth gefn. Er enghraifft, gan fod ein copïau wrth gefn bellach yn fyrrach, ni allwn wneud copïau wrth gefn misol, ond rhai dyddiol. Storiwch nhw nid am chwe mis, fel o'r blaen, ond am 5 mlynedd. Yn flaenorol, fe wnaethoch chi ei storio mewn storfa “oer” araf ond rhad (Rhewlif), nawr gallwch chi ei storio mewn storfa boeth, lle gallwch chi bob amser lawrlwytho copi wrth gefn yn gyflym a'i adfer mewn munudau, nid mewn diwrnod.
Gallwch gynyddu dibynadwyedd storio wrth gefn. Os ydym yn eu storio ar hyn o bryd mewn un cyfleuster storio, yna trwy leihau nifer y copïau wrth gefn, byddwn yn gallu eu storio mewn 2-3 o gyfleusterau storio a goroesi'n ddi-boen os bydd un ohonynt yn cael ei niweidio.
Sut i geisio dechrau defnyddio?
Ewch i dudalen gitlab pip3 install hashget[plugins]
) a dim ond darllen a gweithredu cyflym-cychwyn. Rwy'n credu y bydd yn cymryd 10-15 munud i wneud yr holl bethau syml. Yna gallwch geisio cywasgu eich peiriannau rhithwir, gwneud ffeiliau awgrym os oes angen i wneud y cywasgu yn gryfach, chwarae gyda phyllau, cronfa ddata hash leol a gweinydd hash os oes gennych ddiddordeb, a thrannoeth gweld beth yw maint y copi wrth gefn cynyddrannol bydd ar ben ddoe.
Ffynhonnell: hab.com