Bunúsacha ZFS: Stóráil agus Feidhmíocht

Bunúsacha ZFS: Stóráil agus Feidhmíocht

An t-earrach seo tá roinnt topaicí tosaigh pléite againn cheana féin, mar shampla, conas luas do thiomáineann a sheiceáil и cad é RAID. Sa dara ceann acu, gheall muid fiú leanúint ar aghaidh ag déanamh staidéir ar fheidhmíocht topologies il-diosca éagsúla i ZFS. Seo é an córas comhaid den chéad ghlúin eile atá á chur i bhfeidhm i ngach áit anois: ó Apple до ubuntu.

Bhuel, is é inniu an lá is fearr chun aithne a chur ar ZFS, léitheoirí fiosracha. Just a fhios go bhfuil i dtuairim humble an fhorbróra OpenZFS Matt Ahrens, "tá sé an-deacair."

Ach sula n-éireoidh linn na huimhreacha - agus beidh siad, geallaim - do gach rogha le haghaidh cumraíocht ZFS ocht-diosca, ní mór dúinn labhairt faoi как Go ginearálta, stórálann ZFS sonraí ar dhiosca.

Zpool, vdev agus gléas

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Áiríonn an léaráid linne iomlán seo trí vdev chúnta, ceann amháin de gach rang, agus ceithre cinn do RAIDz2

Bunúsacha ZFS: Stóráil agus Feidhmíocht
De ghnáth ní bhíonn aon chúis le linn de chineálacha agus de mhéideanna vdev mímheaitseála a chruthú - ach níl aon rud ag cur bac ort é sin a dhéanamh más mian leat.

Chun córas comhaid ZFS a thuiscint i ndáiríre, ní mór duit breathnú géar ar a struchtúr iarbhír. Gcéad dul síos, aontaíonn ZFS na leibhéil thraidisiúnta bainistíochta toirte agus córas comhaid. Ar an dara dul síos, úsáideann sé meicníocht idirbheartaíochta cóip-ar-scríobh. Ciallaíonn na gnéithe seo go bhfuil struchtúr an chórais an-difriúil ó ghnáthchórais comhad agus eagair RAID. Is é an chéad sraith de bhlocanna tógála bunúsacha le tuiscint ná an linn stórála (zpool), gléas fíorúil (vdev), agus feiste fíor (feiste).

zpool

Is é an linn stórála zpool an struchtúr ZFS topmost. Tá gléas fíorúil amháin nó níos mó i ngach linn. Ina dhiaidh sin, tá feiste (gléas) amháin nó níos mó i ngach ceann acu. Is bloic féinchuimsitheacha iad linnte fíorúil. Féadfaidh dhá linn nó níos mó a bheith i ríomhaire fisiceach amháin, ach tá gach ceann acu go hiomlán neamhspleách ar na cinn eile. Ní féidir le linnte gléasanna fíorúla a roinnt.

Tá iomarcaíocht ZFS ag leibhéal an fheiste fhíorúil, ní ag leibhéal na linne. Níl aon iomarcaíocht ar leibhéal na linne - má chailltear aon tiomáint vdev nó vdev speisialta, cailltear an linn ar fad in éineacht leis.

Is féidir le linnte stórála nua-aimseartha maireachtáil tar éis caillteanas taisce nó logáil gléas fíorúil - cé gur féidir leo méid beag sonraí salach a chailleadh má chailleann siad logáil vdev le linn briseadh cumhachta nó timpiste córais.

Tá míthuiscint choitianta ann go bhfuil "stripes sonraí" ZFS scríofa ar fud an linn ar fad. Níl sé seo fíor. Ní RAID0 greannmhar é Zpool ar chor ar bith, tá sé sách greannmhar Beo le meicníocht dáilte inathraithe casta.

Don chuid is mó, déantar na taifid a dháileadh i measc na bhfeistí fíorúla atá ar fáil de réir an spáis saor in aisce atá ar fáil, mar sin go teoiriciúil déanfar iad go léir a líonadh ag an am céanna. I leaganacha níos déanaí de ZFS, cuirtear an úsáid vdev reatha (úsáid) san áireamh - má tá gléas fíorúil amháin i bhfad níos gnóthaí ná ceann eile (mar shampla, mar gheall ar ualach léite), déanfar é a scipeáil go sealadach le haghaidh scríbhneoireachta, in ainneoin go bhfuil an líon is airde saor in aisce aige. cóimheas spáis.

Is féidir leis an meicníocht braite úsáide a tógadh isteach i modhanna nua-aimseartha leithdháilte ZFS latency a laghdú agus tréchur a mhéadú le linn tréimhsí ualaigh neamhghnách ard - ach níl sé. carte blanche ar mheascadh ainneonach HDDanna mall agus SSDanna tapa i linn amháin. Feidhmeoidh comhthiomsú neamhchothrom den sórt sin fós ar luas na feiste is moille, is é sin, amhail is dá mba feistí den sórt sin go hiomlán comhdhéanta í.

vdev

Tá gach linn stórála comhdhéanta de ghléas fíorúil amháin nó níos mó (feiste fíorúil, vdev). Ina dhiaidh sin, tá gléas fíor amháin nó níos mó i ngach vdev. Úsáidtear an chuid is mó de na feistí fíorúla le haghaidh stórála sonraí simplí, ach tá roinnt ranganna cúntóirí vdev ann, lena n-áirítear CACHE, LOG, agus SPECIAL. Is féidir ceann de chúig thipeolaíocht a bheith ag gach ceann de na cineálacha vdev seo: gléas amháin (gléas singil), RAIDz1, RAIDz2, RAIDz3, nó scáthán (scáthán).

Is cineálacha speisialta iad RAIDz1, RAIDz2 agus RAIDz3 den rud a thabharfadh na sean-amadóirí RAID paireacht dúbailte (trasnánach). Tagraíonn 1, 2 agus 3 do cé mhéad bloc paireacht a leithdháiltear do gach stiall sonraí. In ionad dioscaí ar leith le haghaidh paireacht, dáileann feistí fíorúla RAIDz an paireacht seo go leathchothrom thar dioscaí. Is féidir le sraith RAIDz an oiread dioscaí a chailleadh agus a bhfuil bloic paireacht aige; má chailleann sé ceann eile, beidh sé tuairteála agus a chur ar an linn stórála leis.

I bhfeistí fíorúla scáthánaithe (scáthán vdev), stóráiltear gach bloc ar gach feiste sa vdev. Cé go bhfuil scátháin dhá-leathan an ceann is coitianta, is féidir aon líon treallach feistí a bheith i scáthán - úsáidtear triples go minic i suiteálacha móra le haghaidh feidhmíocht léite feabhsaithe agus lamháltas lochtanna. Is féidir le scáthán vdev maireachtáil ar aon teip chomh fada agus a leanann gléas amháin ar a laghad sa vdev ag feidhmiú.

Tá vdevs aonair contúirteach go bunúsach. Ní mhairfidh feiste fíorúil den sórt sin teip amháin - agus má úsáidtear é mar stóráil nó mar vdev speisialta, ansin scriosfar an linn iomlán mar thoradh ar a teip. Bí an-, an-chúramach anseo.

Is féidir CACHE, LOG, agus VAanna SPEISIALTA a chruthú ag baint úsáide as aon cheann de na topologies thuas - ach cuimhnigh go gciallaíonn caillteanas VA SPEISIALTA go gcailltear an linn, mar sin moltar topology iomarcach.

gléas

Is dócha gurb é seo an téarma is éasca le tuiscint i ZFS - is gléas rochtana randamach bloc é go litriúil. Cuimhnigh go bhfuil feistí fíorúla comhdhéanta de ghléasanna aonair, agus go bhfuil linn snámha comhdhéanta de fheistí fíorúla.

Is iad dioscaí - staid mhaighnéadach nó staid sholadach - na gléasanna blocála is coitianta a úsáidtear mar bhloic thógála vdev. Mar sin féin, déanfaidh aon fheiste a bhfuil tuairisceoir in /dev aige, ionas gur féidir eagair RAID crua-earraí iomlána a úsáid mar fheistí ar leith.

Tá comhad amh simplí ar cheann de na gléasanna bloc malartacha is tábhachtaí ónar féidir vdev a thógáil. linnte tástála ó comhaid tanaí Is bealach an-áisiúil é chun orduithe linne a sheiceáil agus a fheiceáil cé mhéad spáis atá ar fáil i linn snámha nó i bhfeiste fíorúil de thipeolaíocht ar leith.

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Is féidir leat comhthiomsú tástála a chruthú ó chomhaid tearca i gceann cúpla soicind - ach ná déan dearmad an linn iomlán agus a comhpháirteanna a scriosadh ina dhiaidh sin

Ligean le rá gur mhaith leat freastalaí a chur ar ocht diosca agus plean chun 10 diosca TB (~9300 GiB) a úsáid - ach níl tú cinnte cén topology is fearr a oireann do do chuid riachtanas. Sa sampla thuas, tógann muid linn tástála ó chomhaid tanaí i soicindí - agus anois tá a fhios againn go soláthraíonn vdev RAIDz2 de ocht dioscaí 10 TB 50 TiB de chumas inúsáidte.

Rang speisialta gléasanna eile is ea SPARE (spártha). Baineann feistí babhtála te, murab ionann agus gléasanna rialta, leis an linn iomlán, agus ní le feiste fíorúil amháin. Má theipeann ar vdev sa linn snámha agus gléas spártha ceangailte leis an linn agus ar fáil, ansin beidh sé isteach go huathoibríoch leis an vdev difear.

Tar éis nascadh leis an vdev difear, tosaíonn an gléas spártha a fháil cóipeanna nó atógáil na sonraí ba chóir a bheith ar an gléas ar iarraidh. I RAID traidisiúnta tugtar atógáil ar seo, agus i ZFS tugtar athfhíorú air.

Tá sé tábhachtach a thabhairt faoi deara nach gcuirtear gléasanna spártha in ionad feistí teipthe go buan. Níl anseo ach athsholáthar sealadach chun an méid ama a dhíghrádaítear vdev a laghdú. Tar éis don riarthóir an vdev teipthe a athsholáthar, cuirtear an iomarcaíocht ar ais chuig an bhfeiste buan sin, agus déantar SPARE a dhínascadh ón vdev agus a chur ar ais ag obair mar spártha don linn iomlán.

tacair sonraí, bloic agus earnálacha

Níl an chéad sraith eile de bhlocanna tógála le tuiscint ar ár dturas ZFS níos lú faoi na crua-earraí agus níos mó faoi conas a dhéantar na sonraí féin a eagrú agus a stóráil. Táimid ag scipeáil ar chúpla leibhéal anseo - cosúil le metaslab - ionas nach mbainfimid bearrtha suas ar na sonraí agus ag an am céanna tuiscint ar an struchtúr iomlán a choinneáil.

Tacar sonraí (tacar sonraí)

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Nuair a chruthaímid tacar sonraí den chéad uair, taispeánann sé gach spás linne atá ar fáil. Ansin socróimid an cuóta - agus athraigh an pointe mount. Draíocht!

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Níl i Zvol den chuid is mó ach tacar sonraí a bhaintear as a chiseal córas comhaid, a bhfuil córas comhaid ext4 atá go hiomlán gnáth a chur ina ionad anseo.

Tá tacar sonraí ZFS beagnach mar a chéile le gnáthchóras comhaid suite. Cosúil le córas comhaid rialta, ar an gcéad amharc tá sé cosúil le "fillteán eile". Ach díreach cosúil le córais comhaid insuite go rialta, tá a leagan féin d'airíonna bunúsacha ag gach tacar sonraí ZFS.

Ar an gcéad dul síos, is féidir cuóta sannta a bheith ag tacar sonraí. Má shocraítear zfs set quota=100G poolname/datasetname, ansin ní bheidh tú in ann scríobh chuig an bhfillteán gléasta /poolname/datasetname níos mó ná 100 GiB.

Fógra láithreacht - agus neamhláithreacht - slaiseanna ag tús gach líne? Tá a áit féin ag gach tacar sonraí in ordlathas ZFS agus in ordlathas gléasta an chórais. Níl aon slais tosaigh san ordlathas ZFS - tosaíonn tú le hainm na linne agus ansin an cosán ó thacar sonraí amháin go dtí an chéad cheann eile. Mar shampla, pool/parent/child le haghaidh tacar sonraí ainmnithe child faoin tacar sonraí tuismitheora parent i linn snámha le ainm cruthaitheach pool.

De réir réamhshocraithe, beidh pointe suite an tacair sonraí comhionann lena ainm san ordlathas ZFS, le slais tosaigh - an linn ainmnithe pool gléasta mar /pool, tacar sonraí parent suite i /pool/parent, agus an tacar sonraí leanaí child suite i /pool/parent/child. Mar sin féin, is féidir pointe gléasta chórais an tacar sonraí a athrú.

Má shonraímid zfs set mountpoint=/lol pool/parent/child, ansin an tacar sonraí pool/parent/child suite ar an gcóras mar /lol.

Chomh maith le tacair shonraí, ba cheart dúinn toirteanna (zvols) a lua. Tá toirt beagnach mar an gcéanna le tacar sonraí, ach amháin nach bhfuil córas comhaid ann i ndáiríre - níl ann ach blocghléas. Is féidir leat, mar shampla, a chruthú zvol Le hainm mypool/myzvol, ansin é a fhormáid le córas comhaid ext4, agus ansin an córas comhaid sin a shuiteáil - tá córas comhaid ext4 agat anois, ach le gnéithe slándála ZFS go léir! Seans go bhfuil cuma amaideach air seo ar mheaisín amháin, ach tá i bhfad níos mó ciall leis mar inneall nuair a bhíonn feiste iSCSI á onnmhairiú.

Bloic

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Tá bloc amháin nó níos mó léirithe ag an gcomhad. Stóráiltear gach bloc ar ghléas fíorúil amháin. De ghnáth bíonn méid an bhloc comhionann leis an bparaiméadar thaifead, ach is féidir é a laghdú go dtí 2^ athrúmá tá meiteashonraí nó comhad beag ann.

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Táimid i ndáiríre i ndáiríre gan magadh faoin bpionós feidhmíochta ollmhór má shocraíonn tú luaith ró-bheag

I gcomhthiomsú ZFS, stóráiltear na sonraí go léir, lena n-áirítear meiteashonraí, i mbloic. Sainmhínítear an t-uasmhéid bloc do gach tacar sonraí sa mhaoin recordsize (méid taifead). Is féidir méid na dtaifead a athrú, ach ní athróidh sé seo méid ná suíomh aon bhloc a scríobhadh chuig an tacar sonraí cheana féin - ní dhéanann sé difear ach do bhlocanna nua de réir mar a scríobhtar iad.

Mura sonraítear a mhalairt, is é 128 KiB an taifead réamhshocraithe reatha. Is malairt dheacair é nuair nach bhfuil feidhmíocht foirfe, ach níl sé uafásach i bhformhór na gcásanna ach an oiread. Recordsize is féidir é a shocrú ar aon luach ó 4K go 1M (le hardsocruithe recordsize is féidir leat níos mó fós a shuiteáil, ach is annamh gur smaoineamh maith é seo).

Tagraíonn aon bhloc do shonraí comhaid amháin - ní féidir leat dhá chomhad dhifriúla a chuimilt in aon bhloc amháin. Tá gach comhad comhdhéanta de bhloc amháin nó níos mó, ag brath ar an méid. Má tá an méid comhaid níos lú ná an méid taifead, beidh sé a stóráil i méid bloc níos lú - mar shampla, bloc le comhad 2 KiB áitiú ach amháin earnáil 4 KiB ar an diosca.

Má tá an comhad mór go leor agus go dteastaíonn roinnt bloic uaidh, ansin beidh gach taifead leis an gcomhad seo de mhéid recordsize - lena n-áirítear an iontráil dheireanach, a bhféadfadh an phríomhchuid a bheith ann spás gan úsáid.

nach bhfuil maoin ag zvols recordsize — ina ionad sin tá maoin choibhéiseach acu volblocksize.

Earnálacha

Is é an bloc tógála deiridh, is bunúsaí ná an earnáil. Is é an t-aonad fisiceach is lú é ar féidir scríobh chuig an ngléas bunúsach nó léamh uaidh. Le blianta fada anuas, d'úsáid an chuid is mó de na dioscaí earnálacha 512 beart. Le déanaí, tá an chuid is mó de na dioscaí cumraithe le haghaidh 4 earnáil KiB, agus tá earnálacha 8 KiB nó fiú níos mó ag cuid acu - go háirithe SSDanna.

Tá maoin ag an gcóras ZFS a ligeann duit méid na hearnála a shocrú de láimh. An mhaoin seo ashift. Is ábhar mearbhaill é an t-aistriú, ach cumhacht dhá cheann. Mar shampla, ashift=9 ciallaíonn sé méid earnála 2^9, nó 512 beart.

Ceistíonn ZFS an córas oibriúcháin le haghaidh faisnéis mhionsonraithe faoi gach feiste bloc nuair a chuirtear le vdev nua é, agus go teoiriciúil cuireann sé luaithreach i gceart bunaithe ar an bhfaisnéis sin. Ar an drochuair, luíonn go leor tiomántáin faoina méid earnála chun comhoiriúnacht a choinneáil le Windows XP (nach raibh in ann tiomántáin le méideanna earnála eile a thuiscint).

Ciallaíonn sé seo go moltar go láidir do riarthóir ZFS a bheith eolach ar mhéid earnála iarbhír a gcuid feistí agus a shocrú de láimh ashift. Má shocraítear luaithreach ró-íseal, méadóidh líon na n-oibríochtaí léamh / scríobh go réalteolaíoch. Mar sin, ciallaíonn scríobh "earnálacha" 512-beart isteach i bhfíor-earnáil 4 KiB go gcaithfidh tú an chéad "earnáil" a scríobh, ansin léigh an earnáil 4 KiB, é a mhodhnú leis an dara "earnáil" 512-beart", scríobh ar ais chuig an nua. 4 earnáil KiB, agus mar sin de, do gach iontráil.

Sa saol fíor, buaileann pionós den sórt sin le Samsung EVO SSDs, mar atá ashift=13, ach luíonn na SSDanna seo faoina méid earnála, agus mar sin socraítear an réamhshocrú ashift=9. Mura n-athraíonn riarthóir córais le taithí an socrú seo, oibríonn an SSD seo níos moille HDD maighnéadach traidisiúnta.

Chun comparáid a dhéanamh, le haghaidh méid ró-mhór ashift beagnach aon phionós. Níl aon phionós feidhmíochta fíor, agus tá an méadú ar spás neamhúsáidte gan teorainn (nó nialas le cumas comhbhrú). Dá bhrí sin, molaimid go láidir go suiteálann fiú na tiomántáin sin a úsáideann earnálacha 512-beart ashift=12 nó fiú ashift=13aghaidh a thabhairt ar an todhchaí le muinín.

Maoin ashift socraithe do gach gléas fíorúil vdev, agus ní le haghaidh an linn snámha, mar a cheapann go leor dhearmad - agus ní athraíonn tar éis a shuiteáil. Má bhuaileann tú thaisme ashift nuair a chuireann tú vdev nua leis an linn, tá an linn sin truaillithe go do-athghabhálach le gléas ísealfheidhmíochta agus de ghnáth níl aon rogha eile ann ach an linn a scriosadh agus tosú arís. Ní shábhálfaidh fiú baint vdev tú ó chumraíocht briste ashift!

Meicníocht cóip-ar-scríobh

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Más gá do chóras comhaid rialta sonraí a fhorscríobh, athraíonn sé gach bloc ina bhfuil sé

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Scríobhann córas comhaid cóip-ar-scríobh leagan bloc nua agus ansin díghlasálann sé an seanleagan

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Sa achomaireacht, má dhéanaimid neamhaird ar shuíomh fisiceach iarbhír na mbloc, déantar ár "cóiméad sonraí" a shimpliú go "worm sonraí" a bhogann ó chlé go deas trasna léarscáil an spáis atá ar fáil.

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Anois is féidir linn smaoineamh maith a fháil ar an gcaoi a n-oibríonn grianghraif cóip-ar-scríobh - is féidir le gach bloc a bheith bainteach le ilghrianghraif, agus fanfaidh siad ar aghaidh go dtí go scriosfar na pictiúir ghaolmhara go léir

Is é an mheicníocht Cóip ar Scríobh (CoW) an bunús bunúsach ar cad a dhéanann ZFS córas den sórt sin iontach. Tá an coincheap bunúsach simplí - má iarrann tú ar chóras comhaid traidisiúnta comhad a athrú, déanfaidh sé go díreach cad a d'iarr tú. Má iarrann tú ar chóras comhaid cóip-ar-scríobh an rud céanna a dhéanamh, déarfaidh sé "ceart go leor" ach bréag duit.

Ina áit sin, scríobhann córas comhaid cóip-ar-scríobh leagan nua den bhloc modhnaithe agus ansin déanann sé meiteashonraí an chomhaid a nuashonrú chun an seanbhloic a dhínascadh agus an bloc nua a scríobh tú chuige a cheangal.

Déantar an seanbhloc a dhícheangal agus an ceann nua a nascadh in aon oibríocht amháin, mar sin ní féidir cur isteach air - má chumhachtaíonn tú tar éis dó seo a dhéanamh, tá leagan nua den chomhad agat, agus má chumhachtaíonn tú go luath, tá an seanleagan agat . In aon chás, ní bheidh aon choinbhleachtaí sa chóras comhaid.

Tarlaíonn cóipeáil-ar-scríobh i ZFS ní hamháin ar leibhéal an chórais comhaid, ach freisin ar an leibhéal bainistíochta diosca. Ciallaíonn sé seo nach gcuireann spás bán isteach ar ZFS (poll sa RAID) - feiniméan nuair nach raibh am ag an stiall ach go páirteach a thaifeadadh sular thit an córas, le damáiste eagar tar éis atosaigh. Anseo tá an stríoc scríofa adamhach, tá vdev seicheamhach i gcónaí, agus Is é Bob do uncail.

ZIL: Loga rún ZFS

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Déileálann an córas ZFS le scríbhinní sioncrónacha ar bhealach speisialta - déanann sé iad a stóráil go sealadach i ZIL sula scríobhann sé iad go buan níos déanaí mar aon le scríbhinní asincrónacha.

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Go hiondúil, ní léitear sonraí a scríobhtar chuig ZIL arís. Ach is féidir tar éis timpiste córais

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Níl SLOG, nó feiste LOG tánaisteach, ach speisialta - agus b'fhearr go han-tapa - vdev, áit ar féidir an ZIL a stóráil ar leithligh ón bpríomhstóráil

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Tar éis timpiste, athsheinntear na sonraí salach go léir i ZIL - sa chás seo, tá ZIL ar SLOG, mar sin athsheinntear é as sin

Tá dhá phríomhchatagóir d’oibríochtaí scríofa ann – sioncronach (sionc) agus asincrónach (asincrónach). I gcás formhór na n-ualaí oibre, tá formhór mór na scríbhinní asincrónach - ceadaíonn an córas comhaid iad a chomhiomlánú agus a eisiúint i mbaisceanna, ag laghdú ilroinnt agus ag méadú go mór tréchur.

Is ábhar difriúil ar fad iad taifeadtaí sioncronaithe. Nuair a iarrann feidhmchlár scríobh sioncronach, insíonn sé don chóras comhad: "Ní mór duit é seo a cheangal de chuimhne neamh-luaineach Anoisgo dtí sin, níl aon rud eile is féidir liom a dhéanamh." Mar sin, ba cheart scríobhanna sioncrónacha a chur ar dhiosca láithreach – agus má mhéadaíonn sé sin ilroinnt nó má laghdaíonn sé tréchur, mar sin beidh sé.

Láimhseálann ZFS scríbhinní sioncrónacha ar bhealach difriúil ná córais chomhaid rialta - in ionad iad a thiomnú láithreach do stóráil rialta, geallann ZFS iad chuig limistéar stórála speisialta ar a dtugtar Loga Intinn ZFS, nó ZIL. Is é an cleas go bhfuil na taifid seo freisin fanacht sa chuimhne, á gcomhiomlánú mar aon le gnáth-iarratais ar scríobh asincrónach, le sruthlú níos déanaí chuig stóráil mar ghnáth-TXGanna (Grúpaí Idirbheart).

I ngnáthoibriú, scríobhtar chuig an ZIL agus ní léitear arís é. Nuair, tar éis cúpla nóiméad, go bhfuil na taifid ón ZIL tiomanta don phríomhstóráil i ngnáth-TXG ó RAM, tá siad scoite ón ZIL. Is é an t-aon uair a léitear rud éigin ón ZIL ná nuair a allmhairítear an linn.

Má theipeann ar ZFS - timpiste córas oibriúcháin nó briseadh cumhachta - cé go bhfuil sonraí sa ZIL, léifear na sonraí sin le linn an chéad iompórtáil eile (mar shampla, nuair a atosófar an córas éigeandála). Déanfar aon rud sa ZIL a léamh, a ghrúpáil i TXGanna, tiomanta don phríomhstóráil, agus ansin scoite amach ón ZIL le linn an phróisis allmhairithe.

Tugtar LOG nó SLOG ar cheann de na ranganna cúntóir vdev, gléas tánaisteach LOG. Tá cuspóir amháin aige - vdev ar leith, agus b'fhearr i bhfad níos tapúla, an-resistant a scríobh chun an ZIL a stóráil, in ionad an ZIL a stóráil ar an bpríomh-siopa vdev. Iompraíonn an ZIL féin mar an gcéanna is cuma cén áit a stóráiltear é, ach má tá feidhmíocht scríobh an-ard ag an LOG vdev, beidh scríobhanna sioncrónacha níos tapúla.

Ní oibríonn sé vdev le LOG a chur leis an linn ní féidir feabhas a chur ar fheidhmíocht scríofa asincrónach - fiú má chuireann tú iallach ar gach scríobh chuig ZIL leis zfs set sync=always, beidh siad fós nasctha leis an bpríomhstóráil i TXG ar an mbealach céanna agus ag an luas céanna gan an logáil. Is é an t-aon fheabhsú díreach feidhmíochta ná latency na scríbhinní sioncrónacha (toisc go luasann logáil isteach oibríochtaí níos tapúla). sync).

Mar sin féin, i dtimpeallacht a éilíonn go leor scríbhinní sioncrónacha cheana féin, is féidir le vdev LOG dlús a chur go hindíreach le scríbhinní asincrónacha agus le léamha nach bhfuil i dtaisce. Má dhéantar iontrálacha ZIL a dhíluchtú chuig LOG vdev ar leith, is lú an t-ábhar imní do IOPS maidir le stóráil phríomhúil, rud a fheabhsaíonn feidhmíocht gach léann agus scríobh go pointe áirithe.

Snapshots

Tá an mheicníocht cóip-ar-scríobh ina bhunús riachtanach freisin do ghrianghraif adamhach ZFS agus do mhacasamhlú incriminteach asincrónach. Tá crann pointeora sa chóras comhaid gníomhach a mharcálann gach taifead le sonraí reatha - nuair a thógann tú pictiúr, ní dhéanann tú ach cóip den chrann pointeora seo.

Nuair a fhorscríobhtar taifead ar an gcóras comhaid gníomhach, scríobhann ZFS an leagan bloc nua ar dtús chuig spás neamhúsáidte. Ansin scarann ​​sé an seanleagan den bhloc ón gcóras comhad reatha. Ach má thagraíonn roinnt pictiúr don bhloc d'aois, tá sé fós gan athrú. Ní dhéanfar an seanbhloc a athchóiriú i ndáiríre mar spás saor go dtí go scriosfar gach pictiúr a thagraíonn don bhloc seo!

Macasamhlú

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Ba é mo leabharlann Gaile i 2015 ná 158 GiB agus bhí 126 comhad san áireamh. Tá sé seo gar go leor don staid is fearr le haghaidh rsync - bhí macasamhlú ZFS thar an líonra "amháin" 927% níos tapúla.

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Ar an líonra céanna, is scéal go hiomlán difriúil é comhad íomhá meaisín fíorúil amháin 40GB Windows 7 a mhacasamhlú. Tá macasamhlú ZFS 289 uair níos tapúla ná rsync - nó "amháin" 161 uair níos tapúla má tá tú sásta go leor chun rsync a ghlaoch le --inplace.

Bunúsacha ZFS: Stóráil agus Feidhmíocht
Nuair a dhéantar íomhá VM a scála, eisíonn rsync scála leis. Níl 1,9 TiB chomh mór sin le haghaidh íomhá VM nua-aimseartha - ach tá sé mór go leor go bhfuil macasamhlú ZFS 1148 uair níos tapúla ná rsync, fiú le hargóint rsync --inplace

Chomh luath agus a thuigeann tú an chaoi a n-oibríonn grianghraif, ba cheart go mbeadh sé éasca tuiscint a fháil ar éirim an mhacasamhlú. Ós rud é nach bhfuil i ngrianghraf ach crann leideanna maidir le taifid, leanann sé má dhéanaimid é zfs send pictiúr, ansin cuirimid an crann seo agus gach taifead a bhaineann leis. Nuair a sheolaimid seo zfs send в zfs receive ar an sprioc, scríobhann sé inneachar iarbhír an bhloic agus an crann leideanna a thagraíonn do na bloic chuig an tacar sonraí sprice.

Éiríonn rudaí níos suimiúla fós ar an dara ceann zfs send. Tá dhá chóras againn anois, ina bhfuil gach ceann acu poolname/datasetname@1, agus glacann tú pictiúr nua poolname/datasetname@2. Dá bhrí sin, sa linn bunaidh atá agat datasetname@1 и datasetname@2, agus sa chomhthiomsú sprice go dtí seo ach an chéad pictiúr datasetname@1.

Ós rud é go bhfuil léargas coiteann againn idir an fhoinse agus an sprioc datasetname@1, Is féidir linn é a dhéanamh incriminteach zfs send thar é. Nuair a deirimid leis an gcóras zfs send -i poolname/datasetname@1 poolname/datasetname@2, déanann sé comparáid idir dhá chrann pointeoir. Aon leideanna nach bhfuil ann ach i @2, tagairt ar ndóigh do bloic nua - mar sin ní mór dúinn an t-ábhar na bloic.

Ar chianchóras, incriminteach a phróiseáil send díreach chomh simplí. Ar dtús scríobhaimid gach iontráil nua atá san áireamh sa sruth send, agus ansin cuir leideanna leis na bloic sin. Voila, ní mór dúinn @2 sa chóras nua!

Is feabhas mór é macasamhlú incriminteach asincrónach ZFS ar mhodhanna níos luaithe nach bhfuil bunaithe ar ghrianghraf mar rsync. Sa dá chás, ní aistrítear ach sonraí athraithe - ach ní mór rsync ar dtús léigh ón diosca na sonraí go léir ar an dá thaobh a sheiceáil leis an suim agus é a chur i gcomparáid. I gcodarsnacht leis sin, ní léann macasamhlú ZFS rud ar bith ach crainn pointeoir - agus aon bhlocanna nach bhfuil i láthair sa phictiúr roinnte.

Comhbhrú ionsuite

Déanann an mheicníocht cóip-ar-scríobh an córas comhbhrú inlíne a shimpliú freisin. I gcóras comhaid traidisiúnta, bíonn fadhbanna le comhbhrú - tá an seanleagan agus an leagan nua de na sonraí modhnaithe sa spás céanna.

Má mheasann muid píosa sonraí i lár an chomhaid a thosaíonn an saol mar mheigibheart nialais ó 0x00000000 agus mar sin de, tá sé an-éasca é a chomhbhrú chuig earnáil amháin ar dhiosca. Ach cad a tharlóidh má chuirfimid meigibheart de shonraí neamh-chomhbhrúite ar nós JPEG nó torann bréige randamach in ionad an mheigeavata sin de nialais? Gan choinne, beidh gá leis an meigibheart sonraí seo ní amháin, ach 256 4 earnálacha KiB, agus san áit seo ar an diosca níl ach earnáil amháin in áirithe.

Níl an fhadhb seo ag ZFS, mar go scríobhtar taifid mhionathraithe i gcónaí chuig spás neamhúsáidte - ní áitíonn an bloc bunaidh ach earnáil 4 KiB amháin, agus áiteoidh an taifead nua 256, ach ní fadhb é seo - blúire a athraíodh le déanaí ón " lár" den chomhad a scríobh chuig spás neamhúsáidte is cuma an bhfuil athrú tagtha ar a mhéid nó nach bhfuil, mar sin do ZFS is staid rialta é seo.

Tá comhbhrú Dúchasach ZFS díchumasaithe de réir réamhshocraithe, agus cuireann an córas halgartaim inphlugáilte ar fáil - faoi láthair LZ4, gzip (1-9), LZJB, agus ZLE.

  • LZ4 Is algartam sruthú é a thairgeann comhbhrú agus dí-chomhbhrú an-tapa agus buntáistí feidhmíochta don chuid is mó de chásanna úsáide - fiú ar LAPanna measartha mall.
  • Gzip Is algartam venerable é a fhios ag gach úsáideoir Unix agus grá. Is féidir é a chur i bhfeidhm le leibhéil comhbhrú 1-9, le cóimheas comhbhrú agus úsáid LAP ag méadú agus é ag druidim le leibhéal 9. Tá an algartam oiriúnach go maith do gach cás úsáide téacs (nó cásanna an-comhbhrúite eile), ach ar shlí eile is cúis le saincheisteanna LAP go minic - bain úsáid as é. le cúram, go háirithe ag leibhéil níos airde.
  • LZJB Is é an algartam bunaidh i ZFS. Tá sé imithe i léig agus níor cheart é a úsáid a thuilleadh, sáraíonn an LZ4 é ar gach bealach.
  • go holc - ionchódú leibhéal nialasach, Ionchódú Leibhéal Nialais. Ní dhéanann sé teagmháil le sonraí gnáth ar chor ar bith, ach compress seichimh móra de nialais. Úsáideach le haghaidh tacair shonraí do-chomhbhrúite go hiomlán (amhail JPEG, MP4, nó formáidí eile atá comhbhrúite cheana féin) toisc go ndéanann sé neamhaird ar shonraí do-chomhbhrúite ach go ndéanann sé spás neamhúsáidte a chomhbhrú sna taifid a eascraíonn as.

Molaimid comhbhrú LZ4 le haghaidh beagnach gach cás úsáide; tá an pionós feidhmíochta nuair a bhíonn sonraí do-chomhbhrúite an-bheag, agus fás tá feidhmíocht do shonraí tipiciúla suntasach. Íomhá meaisín fíorúil a chóipeáil le haghaidh suiteáil nua de chóras oibriúcháin Windows (OS nua-shuiteáilte, níl aon sonraí istigh ann fós) le compression=lz4 a rith 27% níos tapúla ná le compression=noneI an tástáil seo in 2015.

ARC - taisce athsholáthair oiriúnaitheach

Is é ZFS an t-aon chóras comhaid nua-aimseartha a bhfuil eolas againn air a úsáideann a mheicníocht taisce léitheoireachta féin, seachas a bheith ag brath ar thaisce leathanach an chórais oibriúcháin chun cóipeanna de bhlocanna a léamh le déanaí i RAM a stóráil.

Cé nach bhfuil an taisce dúchais gan a chuid fadhbanna - ní féidir le ZFS freagairt d'iarratais nua ar leithdháileadh cuimhne chomh tapa leis an eithne, mar sin an dúshlán nua malloc() d'fhéadfadh go dteipfidh ar leithdháileadh cuimhne má tá an RAM atá á áitiú ag ARC faoi láthair ag teastáil uaidh. Ach tá cúiseanna maithe le do thaisce féin a úsáid, ar a laghad le tamall anois.

Úsáideann gach córas oibriúcháin nua-aimseartha atá ar eolas, lena n-áirítear MacOS, Windows, Linux agus BSD, an t-algartam LRU (Is Lú Le Déanaí) chun an taisce leathanach a chur i bhfeidhm. Is algartam primitive é seo a bhrúnn an bloc taisce "suas an scuaine" tar éis gach léite, agus a bhrúnn na bloic "síos an scuaine" de réir mar is gá chun misteanna nua taisce a chur leis (bloic ar chóir iad a bheith léite ón diosca, ní ón taisce) suas.

Is gnách go n-oibríonn an t-algartam go breá, ach ar chórais a bhfuil tacair shonraí oibre móra acu, is furasta LRU a thrashing - trí bhlocanna a theastaíonn go minic a dhíshealbhú chun spás a dhéanamh do bhlocanna nach léifear as an taisce arís.

ARC is algartam i bhfad níos lú naive é ar féidir smaoineamh air mar thaisce “ualaithe”. Gach uair a léitear bloc i dtaisce, éiríonn sé rud beag "níos troime" agus níos deacra é a dhíshealbhú - agus fiú tar éis bloc a dhíshealbhú rianaithe laistigh de thréimhse áirithe ama. Beidh bloc a díshealbhaíodh ach a chaithfear a léamh ar ais isteach sa taisce ina "níos troime" freisin.

Is é an toradh deiridh ar seo go léir taisce le cóimheas buailte i bhfad níos airde, an cóimheas idir amas taisce (léamh a dhéantar as an taisce) agus a chailleann taisce (léannadh ón diosca). Is staitistic thar a bheith tábhachtach é seo - ní hamháin go ndéantar orduithe méide a sheirbheáil ar na hamanna taisce iad féin níos tapúla, is féidir teachtaireachtaí taisce a sheirbheáil níos tapúla freisin, mar dá mhéad amas taisce atá ann, is lú iarratais diosca comhthráthacha agus is lú an foilsiú do na rudaí atá fágtha. nach mór a sheirbheáil le diosca.

Conclúid

Tar éis bunséimeantaic ZFS a fhoghlaim - conas a oibríonn cóip-ar-scríobh, chomh maith leis na caidrimh idir linnte stórála, feistí fíorúla, bloic, earnálacha, agus comhaid - táimid réidh chun feidhmíocht an domhain fíor a phlé le fíoruimhreacha.

Sa chéad chuid eile, féachfaimid ar fheidhmíocht iarbhír na linnte le vdevs scáthánaithe agus RAIDz, i gcoinne a chéile, agus freisin i gcoinne na topologies traidisiúnta RAID eithne Linux atá iniúchadh againn. níos luaithe.

Ar dtús, níor theastaigh uainn ach na bunghnéithe a chlúdach - topologies ZFS iad féin - ach ina dhiaidh sin a leithéid de déanaimis réidh le labhairt faoi shocrú agus tiúnadh níos forbartha de ZFS, lena n-áirítear úsáid a bhaint as cineálacha vdev cúnta mar L2ARC, SLOG agus Leithdháileadh Speisialta.

Foinse: will.com

Add a comment