Mar a chuidíonn GitLab leat stórais mhóra NextCloud a chúltaca

Hey Habr!

Sa lá atá inniu ba mhaith liom labhairt faoinár dtaithí maidir le cúltaca sonraí móra ó stóráil Nextcloud a uathoibriú i bhfoirmíochtaí éagsúla. Oibrím mar stáisiún seirbhíse ag Molniya AK, áit a ndéanaimid bainistiú cumraíochta ar chórais TF; úsáidtear Nextcloud le haghaidh stórála sonraí. Lena n-áirítear, le struchtúr dáilte, le hiomarcaíocht.

Is iad na fadhbanna a eascraíonn as gnéithe na suiteálacha ná go bhfuil go leor sonraí ann. Cruthaíonn leagan a sholáthraíonn Nextcloud, iomarcaíocht, cúiseanna suibiachtúla, agus níos mó go leor dúbailt.

réamhstair

Nuair a bhíonn Nextcloud á riaradh, eascraíonn an fhadhb a bhaineann le cúltaca éifeachtach a eagrú, a chaithfear a chriptiú, ós rud é go bhfuil na sonraí luachmhar.

Cuirimid roghanna ar fáil chun cúltacaí a stóráil inár n-áit nó ag an gcustaiméir ar mheaisíní ar leith ó Nextcloud, a éilíonn cur chuige solúbtha uathoibrithe maidir le riarachán.

Tá go leor cliant ann, gach ceann acu le cumraíochtaí éagsúla, agus go léir ar a láithreáin féin agus lena saintréithe féin. Is gnáth-theicníc é seo nuair is leatsa an láithreán ar fad, agus nuair a dhéantar cúltacaí ó choróin; ní luíonn sé go maith.

Ar dtús, déanaimis féachaint ar na sonraí ionchuir. Ní mór dúinn:

  • Inscálaitheacht i dtéarmaí nód amháin nó níos mó. Le haghaidh suiteálacha móra úsáidimid minio mar stóráil.
  • Faigh amach faoi fhadhbanna a bhaineann le cúltacaí a dhéanamh.
  • Ní mór duit cúltaca a choinneáil le do chliaint agus/nó linn.
  • Déileáil le fadhbanna go tapa agus go héasca.
  • Tá na cliaint agus na suiteálacha an-difriúil óna chéile - ní féidir aonfhoirmeacht a bhaint amach.
  • Ba cheart go mbeadh an luas aisghabhála íosta i dhá chás: aisghabháil iomlán (tubaiste), fillteán amháin a scriosadh de dhearmad.
  • Tá feidhm dídhúbailt ag teastáil.

Mar a chuidíonn GitLab leat stórais mhóra NextCloud a chúltaca

Chun an fhadhb a bhaineann le cúltacaí a bhainistiú a réiteach, rinneamar GitLab a shuiteáil. Tuilleadh sonraí le dul i ngleic.

Ar ndóigh, níl muid ar an gcéad duine chun fadhb den sórt sin a réiteach, ach feictear dúinn go bhféadfadh ár n-eispéireas praiticiúil, crua-tuillte a bheith suimiúil agus táimid réidh chun é a roinnt.

Ós rud é go bhfuil polasaí foinse oscailte ag ár gcuideachta, bhíomar ag lorg réiteach foinse oscailte. Ina dhiaidh sin, roinnimid ár bhforbairtí agus postálaimid iad. Mar shampla, ar GitHub tá ár mbreiseán le haghaidh Nextcloud, a chuirimid ar fáil do chliaint, ag cur feabhas ar shlándáil sonraí i gcás scriosta de thaisme nó d'aon ghnó.

Uirlisí cúltaca

Thosaigh muid ag cuardach modhanna réitigh trí uirlis cruthú cúltaca a roghnú.

Ní oibríonn rialta tar + gzip go maith - déantar na sonraí a mhacasamhlú. Is minic nach mbíonn ach fíorbheagán athruithe iarbhír in incrimint, agus déantar cuid mhór de na sonraí laistigh de chomhad amháin a athdhéanamh.
Tá fadhb eile - iomarcaíocht stórála sonraí dáilte. Bainimid úsáid as minio agus go bunúsach tá a chuid sonraí iomarcach. Nó bhí ort cúltaca a dhéanamh trí minio féin - é a luchtú agus úsáid a bhaint as na spásairí go léir idir an córas comhaid, agus, rud nach lú tábhacht, tá an baol ann go ndéanfaí dearmad ar chuid de na buicéid agus na meitifhaisnéise. Nó bain úsáid as dídhúbailt.

Tá uirlisí cúltaca le dúbailt ar fáil i bhfoinse oscailte (ar Habré bhí Airteagal faoin téama seo) agus bhí ár n-iomaitheoirí deiridh Borg и Restic. Tá ár gcomparáid idir an dá iarratas thíos, ach faoi láthair inseoimid duit conas a d’eagraíomar an scéim ar fad.

Cúltaca a bhainistiú

Tá Borg agus Restic go maith, ach níl meicníocht rialaithe láraithe ag ceachtar den dá tháirge. Chun críche bainistíochta agus rialaithe, roghnaigh muid uirlis atá curtha i bhfeidhm againn cheana féin, gan a bheith in ann ár gcuid oibre a shamhlú, lena n-áirítear uathoibriú - is é seo an CI/CD - GitLab.

Is é seo a leanas an smaoineamh: tá gitlab-runner suiteáilte ar gach nód a stórálann sonraí Nextcloud. Ritheann an rádala script ar sceideal a dhéanann monatóireacht ar an bpróiseas cúltaca, agus seolann sé Borg nó Restic.

Cad a fuair muid? Aiseolas ó fhorghníomhú, rialú áisiúil ar athruithe, sonraí i gcás earráide.

Anseo anseo ar GitHub phostálamar samplaí den script le haghaidh tascanna éagsúla, agus chríochnaigh muid é a cheangal le cúltaca ní hamháin Nextcloud, ach freisin go leor seirbhísí eile. Tá sceidealóir ann freisin mura bhfuil tú ag iarraidh é a chumrú de láimh (agus nílimid ag iarraidh) agus .gitlab-ci.yml

Níl aon bhealach ann an t-am istigh CI/CD san API Gitlab a athrú go fóill, ach tá sé beag. Ní mór é a mhéadú, abair le 1d.

Go fortunately, is féidir le GitLab a sheoladh, ní hamháin de réir gealltanas, ach de réir sceidil amháin, is é seo go díreach a theastaíonn uainn.

Anois mar gheall ar an script fillteáin.

Socraímid na coinníollacha seo a leanas don script seo:

  • Ba cheart don rádala é a sheoladh agus de láimh ón gconsól leis an bhfeidhmiúlacht chéanna.
  • Caithfidh láimhseálaithe earráidí a bheith ann:
  • cód ar ais.
  • cuardach le haghaidh teaghrán sa loga. Mar shampla, dúinne d’fhéadfadh earráid a bheith ina teachtaireacht nach measann an clár go bhfuil sé marfach.
  • Teorainn ama próiseála. Caithfidh an t-am luaidhe a bheith réasúnta.
  • Ní mór dúinn logáil an-mhionsonraithe. Ach amháin i gcás earráide.
  • Déantar roinnt tástálacha freisin sula dtosaíonn tú.
  • Bónais bheaga mar áis a bhí úsáideach dúinn le linn an phróisis tacaíochta:
  • Déantar an tús agus an deireadh a thaifeadadh i syslog an mheaisín áitiúil. Cuidíonn sé seo le earráidí córais agus oibriú cúltaca a nascadh.
  • Tá cuid den loga earráide, más ann dó, aschur go stdout, scríobhtar an loga iomlán chuig comhad ar leith. Tá sé áisiúil breathnú ar CI láithreach agus an earráid a mheas má tá sé fánach.
  • Modhanna dífhabhtaithe.

Sábháiltear an logáil iomlán mar dhéantán i GitLab; mura bhfuil aon earráid ann, scriostar an logáil. Scríobhaimid an script i bash.

Beidh áthas orainn aon mholtaí agus tuairimí maidir le foinse oscailte a mheas - fáilte romhat.

Conas a oibríonn seo

Seoltar rádala le seiceadóir Bash ar an nód cúltaca. De réir an sceidealóra, seoltar post CI/CD i tornapa speisialta. Seolann an rádala script fillte uilíoch do thascanna den sórt sin, seiceálann sé bailíocht an stór cúltaca, na pointí feistithe agus gach rud a theastaíonn uainn, ansin déanann sé cúltaca agus glanann sé suas an seancheann. Seoltar an cúltaca críochnaithe féin chuig S3.

Oibrímid de réir na scéime seo - is soláthraí seachtrach AWS nó a choibhéis Rúisis é (tá sé níos tapúla agus ní fhágann na sonraí Cónaidhm na Rúise). Nó suiteáilimid mionbhraisle ar leith don chliant ar a shuíomh chun na gcríoch sin. Déanaimid é seo de ghnáth ar chúiseanna slándála, nuair nach bhfuil an cliant ag iarraidh go bhfágfadh na sonraí a gciorcad ar chor ar bith.

Níor úsáideamar an ghné maidir le cúltaca a sheoladh trí ssh. Ní chuireann sé seo le slándáil, agus tá cumais líonra an tsoláthraí S3 i bhfad níos airde ná ár meaisín ssh amháin.

Chun do mheaisín áitiúil a chosaint ó hacker, ós rud é gur féidir leis sonraí a scriosadh ar S3, ní mór duit leagan a chumasú.
Déanann an cúltaca an cúltaca a chriptiú i gcónaí.

Tá mód neamhchriptithe ag Borg none, ach ní mholaimid go láidir é a chasadh air. Sa mhodh seo, ní hamháin nach mbeidh aon criptiú ann, ach ní dhéantar seiceáil ar an méid atá á scríobh, rud a chiallaíonn nach féidir sláine a sheiceáil ach go hindíreach, ag baint úsáide as innéacsanna.

Seiceálann sceidealóir ar leith cúltacaí chun sláine na n-innéacsanna agus an ábhair. Tá an seiceáil mall agus fada, mar sin déanaimid é a reáchtáil ar leithligh uair sa mhí. Féadfaidh sé roinnt laethanta a ghlacadh.

Readme i rúisis

Príomhfheidhmeanna

  • prepare oiliúint
  • testcheck seiceáil ullmhachta
  • maincommand croífhoireann
  • forcepostscript feidhm a dhéantar sa deireadh nó trí earráid. Bainimid úsáid as chun an críochdheighilt a dhíshuiteáil.

Feidhmeanna seirbhíse

  • cleanup Déanaimid taifead ar earráidí nó scriosaimid an logchomhad.
  • checklog parsáil an loga le haghaidh tarlú de líne a bhfuil earráid.
  • ret láimhseálaí scoir.
  • checktimeout seiceáil le haghaidh am istigh.

Comhshaol

  • VERBOSE=1 Taispeánaimid earráidí ar an scáileán láithreach (stdout).
  • SAVELOGSONSUCCES=1 shábháil ar an logáil isteach ar rath.
  • INIT_REPO_IF_NOT_EXIST=1 Cruthaigh stór mura bhfuil sé ann. Díchumasaithe de réir réamhshocraithe.
  • TIMEOUT uasmhéid ama don phríomhoibríocht. Is féidir leat é a shocrú mar 'm', 'h' nó 'd' ag an deireadh.

Modh stórála le haghaidh seanchóipeanna. Réamhshocrú:

  • KEEP_DAILY=7
  • KEEP_WEEKLY=4
  • KEEP_MONTHLY=6

Athróga taobh istigh den script

  • ERROR_STRING — teaghrán don logáil isteach le haghaidh earráide.
  • EXTRACT_ERROR_STRING — slonn don teaghrán taispeána má earráid.
  • KILL_TIMEOUT_SIGNAL — comhartha le haghaidh marú má tá teorainn ama.
  • TAIL — cé mhéad teaghrán le hearráidí ar an scáileán.
  • COLORMSG — dath na teachtaireachta (buí réamhshocraithe).

Tá ainm coinníollach ar an script sin, ar a dtugtar wordpress, agus is é an cleas atá aige ná go dtacaíonn sé leis an mbunachar sonraí mysql freisin. Ciallaíonn sé seo gur féidir é a úsáid le haghaidh suiteálacha aon-nóid Nexcloud, áit ar féidir leat cúltaca a dhéanamh den bhunachar sonraí freisin. Is é an áisiúlacht ní hamháin go bhfuil gach rud in aon áit amháin, ach freisin go bhfuil ábhar an bhunachair sonraí gar d'ábhar na gcomhad, ós rud é go bhfuil an difríocht ama íosta.

Restic vs Borg

Tá comparáidí idir Borg agus Restic freisin anseo ar Habré, agus ní raibh de chúram orainn ach ceann eile a dhéanamh, ach ár gceann féin. Bhí sé tábhachtach dúinn conas a bheadh ​​sé ag breathnú ar ár sonraí, lenár sonraí. Tugann muid iad.

Ár gcritéir roghnúcháin, sa bhreis ar na cinn a luadh cheana (dúbailt, téarnamh tapa, etc.):

  • Friotaíocht in obair neamhchríochnaithe. Seiceáil do mharú -9.
  • Méid ar an diosca.
  • Ceanglas maidir le hacmhainní (LAP, cuimhne).
  • Méid na blobaí stóráilte.
  • Ag obair le S3.
  • Seiceáil sláine.

Le haghaidh tástála, ghlacamar cliant amháin le sonraí fíor agus méid iomlán de 1,6 TB.
Coinníollacha.

Níl a fhios ag Borg conas oibriú go díreach le S3, agus ghaireamar an diosca mar fhiús, via goofys. Sheol Restic chuig S3 é féin.

Oibríonn Goofys go han-tapa agus go maith, agus tá modúl taisce diosca, rud a chuireann dlús leis an obair níos mó fós. Tá sé sa chéim béite, agus, frankly, crashed muid le caillteanas sonraí le linn tástálacha (daoine eile). Ach is é an áisiúlacht ná nach bhfuil mórán léitheoireachta ag teastáil ón nós imeachta cúltaca féin, ach den chuid is mó scríbhinn, mar sin ní úsáidimid an taisce ach amháin le linn seiceálacha sláine.

Chun tionchar an líonra a laghdú, d'úsáideamar soláthraí áitiúil - Yandex Cloud.

Torthaí tástála comparáide.

  • D'éirigh le Kill -9 le atosú eile.
  • Méid ar an diosca. Is féidir le Borg comhbhrú, mar sin tá na torthaí mar a bhíothas ag súil leis.

Cúltaca
Méid

Borg
562Gb

Restic
628Gb

  • De réir LAP
    Is beag a ídíonn Borg féin, le comhbhrú réamhshocraithe, ach ní mór é a mheas in éineacht leis an bpróiseas goofys. Ar an iomlán, tá siad inchomparáide agus úsáideann siad thart ar 1,2 cores ar an meaisín fíorúil tástála céanna.
  • Cuimhne. Tá thart ar 0,5GB ar Restic, tá Borg thart ar 200MB. Ach tá sé seo go léir neamhshuntasach i gcomparáid leis an taisce comhaid chórais. Mar sin tá sé inmholta níos mó cuimhne a leithdháileadh.
  • Bhí an difríocht i méid blob buailte.

Cúltaca
Méid

Borg
thart ar 500MB

Restic
thart ar 5MB

  • Tá taithí S3 Restic ar fheabhas. Ní ardaíonn obair le Borg trí goofys aon cheist, ach tugadh faoi deara go bhfuil sé inmholta umount a dhéanamh tar éis don chúltaca a bheith críochnaithe chun an taisce a athshocrú go hiomlán. Is é an rud is suntasaí a bhaineann le S3 ná nach seolfar smután tearcphumpála chuig an mbuicéad choíche, rud a chiallaíonn go mbíonn damáiste mór mar thoradh ar shonraí nach bhfuil líonta go hiomlán.
  • Oibríonn an seiceáil sláine go maith sa dá chás, ach tá difríocht shuntasach idir an luas.
    Restic Uair an chloig 3,5.
    Borg, le taisce comhaid SSD 100GB - Uair an chloig 5.Thart ar an toradh luais céanna má tá na sonraí ar dhiosca áitiúil.
    Léann Borg go díreach ó S3 gan taisce Uair an chloig 33. Iontach fada.

Is é an rud is bun ná gur féidir le Borg comhbhrú agus go bhfuil blobaí níos mó aige - rud a fhágann go bhfuil stóráil agus oibríochtaí GET/PUT i S3 níos saoire. Ach tagann sé seo ar chostas fíorú níos casta agus níos moille. Maidir leis an luas aisghabhála, níor thugamar faoi deara aon difríocht. Glacann Restic cúltacaí ina dhiaidh sin (tar éis an chéad) beagán níos faide, ach ní go suntasach.

Ar deireadh ach ní ba lú sa rogha ná méid an phobail.

Agus roghnaigh muid borg.

Cúpla focal faoi chomhbhrú

Tá algartam comhbhrú nua den scoth ag Borg ina Arsenal - zstd. Níl an caighdeán comhbhrúite níos measa ná gzip, ach i bhfad níos tapúla. Agus inchomparáide i luas leis an réamhshocraithe lz4.

Mar shampla, tá dumpáil bunachar sonraí MySQL comhbhrúite dhá uair níos fearr ná lz4 ag an luas céanna. Mar sin féin, léiríonn taithí le sonraí fíor nach bhfuil mórán difríochta i gcóimheas comhbhrú an nód Nextcloud.

Tá modh comhbhrú sách bónas ag Borg - má tá ard-eantrópacht ag an gcomhad, ansin ní chuirtear comhbhrú i bhfeidhm ar chor ar bith, rud a mhéadaíonn an luas. Cumasaithe le rogha nuair a chruthaítear
-C auto,zstd
don algartam zstd
Mar sin, leis an rogha seo, i gcomparáid leis an comhbhrú réamhshocraithe, fuair muid
560Gb agus 562Gb faoi seach. Na sonraí ón sampla thuas, lig dom i gcuimhne duit, gan comhbhrú is é an toradh 628Gb. Chuir toradh difríochta 2GB ionadh éigin orainn, ach cheapamar go roghnódh muid é tar éis an tsaoil. auto,zstd.

Modh fíoraithe cúltaca

De réir an sceidealóra, seoltar an meaisín fíorúil go díreach ón soláthraí nó ón gcliant, rud a laghdaíonn an t-ualach líonra go mór. Ar a laghad tá sé níos saoire ná tú féin a ardú agus trácht a thiomáint.

goofys --cache "--free:5%:/mnt/cache" -o allow_other --endpoint https://storage.yandexcloud.net --file-mode=0666 --dir-mode=0777 xxxxxxx.com /mnt/goofys
export BORG_PASSCOMMAND="cat /home/borg/.borg-passphrase"
borg list /mnt/goofys/borg1/
borg check --debug -p --verify-data /mnt/goofys/borg1/

Ag baint úsáide as an scéim chéanna, táimid ag seiceáil comhaid le antivirus (tar éis an bhfíric). Tar éis an tsaoil, uaslódálann úsáideoirí rudaí éagsúla chuig Nextcloud agus níl frithvíreas ag gach duine. Tógann sé an iomarca ama iniúchtaí a dhéanamh agus iad á dhoirteadh agus cuireann sé isteach ar ghnó.

Baintear amach scalability trí reathaithe a reáchtáil ar nóid éagsúla le clibeanna éagsúla.
Bailíonn ár monatóireacht stádais chúltaca tríd an API GitLab i bhfuinneog amháin; más gá, tugtar faoi deara fadhbanna go héasca agus chomh logánta céanna.

Conclúid

Mar thoradh air sin, tá a fhios againn go cinnte go ndéanaimid cúltacaí, go bhfuil ár gcuid cúltacaí bailí, go dtógann fadhbanna a thagann chun cinn leo beagán ama agus go réitítear iad ag leibhéal an riarthóra dualgais. Is fíorbheagán spáis a thógann cúltacaí i gcomparáid le tar.gz nó Bacula.

Foinse: will.com

Add a comment