Ihe ndabere ZFS: Nchekwa na arụmọrụ

Ihe ndabere ZFS: Nchekwa na arụmọrụ

N'oge opupu ihe ubi a, anyị atụleworị ụfọdụ isiokwu mmalite, dịka ọmụmaatụ, otu esi elele ọsọ nke draịva gị и Kedu ihe bụ RAID. Na nke abụọ n'ime ha, anyị ọbụna kwere nkwa ịnọgide na-amụ arụmọrụ nke dị iche iche multi-disk topologies na ZFS. Nke a bụ usoro faịlụ ọgbọ na-esote nke a na-emejuputa ugbu a n'ebe niile: site na Apple ka Ubuntu.

Ọ dị mma, taa bụ ụbọchị kachasị mma ịmara ZFS, ndị na-agụ akwụkwọ na-ajụ ajụjụ. Naanị mara na n'echiche dị umeala nke OpenZFS onye nrụpụta Matt Ahrens, "ọ siri ike n'ezie."

Mana tupu anyị eruo ọnụọgụgụ - ha ga-ekwe nkwa - maka nhọrọ niile maka nhazi ZFS asatọ nke diski, anyị kwesịrị ikwu maka ya. otú N'ozuzu, ZFS na-echekwa data na diski.

Zpool, vdev na ngwaọrụ

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Eserese ọdọ mmiri a zuru ezu gụnyere vdevs inyeaka atọ, otu n'ime klaasị ọ bụla, yana anọ maka RAIDz2

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Ọ naghị abụkarị ihe kpatara ịmepụta ọdọ mmiri nke ụdị vdev na nha na nha ya - mana ọ nweghị ihe na-egbochi gị ime ya ma ọ bụrụ na ịchọrọ.

Iji ghọta usoro faịlụ ZFS n'ezie, ịkwesịrị ileba anya na nhazi ya n'ezie. Nke mbụ, ZFS na-ejikọta ọkwa ọdịnala nke olu na njikwa sistemụ faịlụ. Nke abuo, ọ na-eji usoro nnomi-na-dere azụmahịa. Atụmatụ ndị a pụtara na usoro ahụ dị nnọọ iche na usoro faịlụ na usoro RAID. Ntọala mbụ nke ihe mgbakwasị ụkwụ iji ghọta bụ ebe nchekwa (zpool), ngwaọrụ mebere (vdev), na ezigbo ngwaọrụ (ngwaọrụ).

zpool

Ọdọ mmiri nchekwa zpool bụ usoro ZFS kachasị elu. Ọdọ mmiri ọ bụla nwere otu ngwaọrụ mebere ma ọ bụ karịa. N'aka nke ya, nke ọ bụla n'ime ha nwere otu ma ọ bụ karịa ezigbo ngwaọrụ (ngwaọrụ). Ọdọ mmiri ndị mepere emepe bụ ngọngọ nwere onwe ya. Otu kọmputa anụ ahụ nwere ike ịnwe ọdọ mmiri abụọ ma ọ bụ karịa, mana nke ọ bụla nwere onwe ya kpamkpam na ndị ọzọ. Ọdọ mmiri enweghị ike ịkekọrịta ngwaọrụ mebere.

Nkwụghachi ụgwọ nke ZFS dị na ọkwa ngwaọrụ mebere, ọ bụghị na ọkwa ọdọ mmiri. Ọ dịghị ihe ọ bụla redundancy na ọdọ mmiri larịị - ọ bụrụ na ihe ọ bụla mbanye vdev ma ọ bụ pụrụ iche vdev efu, mgbe ahụ dum ọdọ mmiri na-efunahụ ya.

Ọdọ mmiri nchekwa ọgbara ọhụrụ nwere ike ịlanarị mfu nke cache ma ọ bụ ndekọ ngwaọrụ mebere - n'agbanyeghị na ha nwere ike idafu ntakịrị data ruru unyi ma ọ bụrụ na ha tufuru vdev log n'oge mkpọka ọkụ ma ọ bụ sistemụ.

Enwere echiche na-ezighi ezi na edere ZFS "ụrịa data" n'ofe ọdọ mmiri ahụ dum. Nke a abụghị eziokwu. Zpool abụghị RAID0 na-akpa ọchị ma ọlị, ọ na-atọ ọchị JBOD ya na usoro nkesa mgbanwe dị mgbagwoju anya.

Maka ọtụtụ akụkụ, a na-ekesa ihe ndekọ ahụ n'etiti ngwaọrụ ndị dị adị dị ka ohere efu dị, ya mere na tiori ha niile ga-ejupụta n'otu oge. Na nsụgharị ZFS ndị ọzọ, a na-eburu n'uche ojiji vdev ugbu a (itinye n'ọrụ) - ọ bụrụ na otu ngwaọrụ mebere na-arụ ọrụ nke ọma karịa nke ọzọ (dịka ọmụmaatụ, n'ihi ịgụpụta ibu), a ga-awụpụ ya nwa oge maka ide, n'agbanyeghị na ọ nwere nke kachasị elu n'efu. oke ohere.

Usoro nchọpụta ojiji nke etinyere n'ime usoro nkesa ZFS ọgbara ọhụrụ nwere ike ibelata nkwụsịtụ yana ịbawanye mmepụta n'oge ibu dị elu na-enweghị atụ - mana ọ naghị carte blanche na ngwakọta na-achọghị ịma nke HDDs na ngwa ngwa SSDs n'otu ọdọ mmiri. Ọdọ mmiri dị otú ahụ na-ahaghị nhata ka ga-arụ ọrụ na ngwa ngwa ngwa ngwa, ya bụ, dị ka a ga-asị na ọ bụ ngwaọrụ ndị dị otú ahụ mejupụtara ya kpamkpam.

vdev

Ọdọ mmiri ọ bụla nwere otu ma ọ bụ karịa mebere ngwaọrụ (ngwaọrụ mebere, vdev). N'aka nke ya, vdev ọ bụla nwere otu ma ọ bụ karịa ezigbo ngwaọrụ. A na-eji ọtụtụ ngwaọrụ mebere maka nchekwa data dị mfe, mana enwere klaasị vdev inyeaka, gụnyere cache, LOG, na SPECIAL. Nke ọ bụla n'ime ụdị vdev ndị a nwere ike ịnwe otu n'ime topologies ise: otu ngwaọrụ (otu ngwaọrụ), RAIDz1, RAIDz2, RAIDz3, ma ọ bụ mirror (enyo).

RAIDz1, RAIDz2 na RAIDz3 bụ ụdị pụrụ iche nke ihe ndị oge ochie ga-akpọ RAID okpukpu abụọ (diagonal). 1, 2 na 3 na-ezo aka n'ọtụtụ ngọngọ nke ekenyere maka mpempe data ọ bụla. Kama diski dị iche iche maka nha anya, RAIDz mebere ngwaọrụ na-ekesa nke a ọkara-ọbụlagodi n'ofe diski. N'usoro RAIDz nwere ike tufuo ọtụtụ diski dịka o nwere ihe mgbochi; ọ bụrụ na ọ tụfuo nke ọzọ, ọ ga-akụtu wee buru ọdọ mmiri ahụ na ya.

Na ngwaọrụ mebere enyo (mirror vdev), a na-echekwa ngọngọ ọ bụla na ngwaọrụ ọ bụla na vdev. Ọ bụ ezie na enyo abụọ sara mbara bụ nke a na-ahụkarị, ọnụ ọgụgụ ngwaọrụ ọ bụla aka ike nwere ike ịdị na enyo - a na-ejikarị okpukpu atọ eme ihe na nnukwu nrụnye maka ịrụ ọrụ ọgụgụ ka mma na ntachi obi. Igwe vdev nwere ike ịlanarị ọdịda ọ bụla ma ọ bụrụhaala na otu ngwaọrụ dị na vdev na-aga n'ihu na-arụ ọrụ.

Otu vdevs dị ize ndụ n'ezie. Ngwa ngwa dị otú ahụ agaghị adị ndụ otu ọdịda - ma ọ bụrụ na ejiri ya dị ka nchekwa ma ọ bụ vdev pụrụ iche, mgbe ahụ ọdịda ya ga-eduga ná mbibi nke ọdọ mmiri dum. Kpachara anya nke ukwuu ebe a.

Enwere ike ịmepụta cache, LOG, na SPECIAL VAs site na iji nke ọ bụla n'ime topologies ndị dị n'elu - mana cheta na mfu nke SPECIAL VA pụtara mfu nke ọdọ mmiri ahụ, ya mere a na-atụ aro topology na-abaghị uru.

ngwaọrụ

Nke a nwere ike ịbụ okwu kachasị mfe nghọta na ZFS - ọ bụ n'ezie ngọngọ ngwaọrụ ịnweta ohere. Cheta na mebere ngwaọrụ bụ nke onye ngwaọrụ, ebe ọdọ mmiri bụ nke mebere ngwaọrụ.

Disk - ma magnetik ma ọ bụ steeti siri ike - bụ ngwaọrụ mgbochi ndị a na-ejikarị eme ihe dị ka ihe mgbidi nke vdev. Agbanyeghị, ngwaọrụ ọ bụla nwere nkọwa na / dev ga-eme ya, yabụ enwere ike iji ngwa RAID ngwaike niile dị ka ngwaọrụ dị iche.

Faịlụ raw dị mfe bụ otu n'ime ngwaọrụ mgbochi ọzọ dị mkpa nke enwere ike wuo vdev. Nwalee ọdọ mmiri si obere faịlụ bụ ụzọ dị mma iji lelee iwu ọdọ mmiri wee hụ ole ohere dị na ọdọ mmiri ma ọ bụ ngwaọrụ mebere nke topology nyere.

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Ị nwere ike ịmepụta ọdọ mmiri ule site na faịlụ ndị na-adịghị ahụkebe n'ime obere sekọnd ole na ole - mana echefula ihichapụ ọdọ mmiri ahụ na akụkụ ya ma emesịa.

Ka anyị kwuo na ịchọrọ itinye ihe nkesa na diski asatọ wee mee atụmatụ iji diski TB 10 (~ 9300 GiB) - mana ị maghị nke topology kacha dabara na mkpa gị. Na ihe atụ n'elu, anyị na-ewu a ule ọdọ mmiri si sparse faịlụ na sekọnd - na ugbu a, anyị maara na a RAIDz2 vdev nke asatọ 10 TB disks na-enye 50 TiB nke ojiji ike.

Klas ọzọ pụrụ iche nke ngwaọrụ bụ SPARE (spare). Ngwa-swap na-ekpo ọkụ, n'adịghị ka ngwaọrụ oge niile, bụ nke ọdọ mmiri niile, ọ bụghịkwa nke otu ngwaọrụ mebere. Ọ bụrụ na vdev n'ime ọdọ mmiri ahụ ada ada na ngwaọrụ mapụtara na-ejikọta na ọdọ mmiri ma dị, mgbe ahụ ọ ga-abanye na vdev emetụtara ozugbo.

Mgbe ijikọ na vdev emetụtara, ngwaọrụ mapụtara na-amalite ịnata mbipụta ma ọ bụ nwughari nke data kwesịrị ịdị na ngwaọrụ efu. Na omenala RAID a na-akpọ nke a nrụgharị, ebe na ZFS a na-akpọ ya resilvering.

Ọ dị mkpa ịmara na ngwaọrụ mapụtara anaghị edochi ngwaọrụ ndị dara ada. Nke a bụ naanị nnọchi nwa oge iji belata oge vdev mebiri emebi. Mgbe onye nchịkwa dochie vdev dara ada, a na-eweghachighachi ọrụ na ngwaọrụ ahụ na-adịgide adịgide, ma SPARE kwụsịrị na vdev wee laghachi n'ọrụ dịka ihe nchekwa maka ọdọ mmiri dum.

Ntọala data, ngọngọ na ngalaba

Usoro ihe owuwu ọzọ ị ga-aghọta na njem ZFS anyị dị obere gbasara ngwaike yana ọtụtụ gbasara otu esi ahazi na chekwaa data n'onwe ya. Anyị na-awụpụ ọkwa ole na ole ebe a - dị ka metaslab - ka ọ ghara ịchịkọta nkọwa ya ka ị na-ejigide nghọta nke usoro n'ozuzu ya.

Nhazi data (datasetset)

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Mgbe mbụ anyị mepụtara dataset, ọ na-egosi oghere ọdọ mmiri niile dị. Mgbe ahụ, anyị na-edozi oke - ma gbanwee ebe ugwu. Ime Anwansi!

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Zvol bụ maka ọtụtụ akụkụ naanị dataset wepụrụ na oyi akwa sistemụ faịlụ ya, nke anyị na-eji sistemụ faịlụ ext4 zuru oke dochie ebe a.

Nhazi data ZFS bụ otu ihe ahụ dị ka sistemụ faịlụ etinyere ọkọlọtọ. Dị ka usoro faịlụ oge niile, na nlele mbụ ọ dị ka "naanị folda ọzọ". Mana dị ka sistemụ faịlụ a na-ebuli mgbe niile, dataset ZFS ọ bụla nwere ihe ndị bụ isi nke ya.

Nke mbụ, dataset nwere ike ịnwe oke ekenyere. Ọ bụrụ na atọrọ zfs set quota=100G poolname/datasetname, mgbe ahụ, ị ​​gaghị enwe ike ide na folda etinyere /poolname/datasetname karịa 100 GiB.

Rịba ama ọnụnọ - na enweghị - nke slashes na mmalite nke ahịrị ọ bụla? Nke ọ bụla dataset nwere ebe nke ya na ZFS hierarchy na usoro ugwu hierarchy. Enweghị slash na-eduga na ndị isi ZFS - ị na-amalite site na aha ọdọ mmiri wee si na otu dataset gaa na-esote. Ọmụmaatụ, pool/parent/child maka a dataset aha child n'okpuru dataset nne na nna parent na ọdọ mmiri nwere aha okike pool.

Site na ndabara, ebe ugwu dataset ga-adaba aha ya na ndị isi ZFS, yana slash na-eduga - ọdọ mmiri akpọrọ. pool n'ịnyịnya dị ka /pool, data setịpụ parent etinyere na /pool/parent, na dataset ụmụaka child etinyere na /pool/parent/child. Agbanyeghị, enwere ike ịgbanwe ebe ugwu sistemụ dataset.

Ọ bụrụ na anyị ezipụta zfs set mountpoint=/lol pool/parent/child, wee setịpụ data pool/parent/child n'ịnyịnya na usoro dị ka /lol.

Na mgbakwunye na datasets, anyị kwesịrị ikwupụta mpịakọta (zvols). Otu olu bụ otu ihe dị ka dataset, belụsọ na ọ nweghị sistemụ faịlụ - ọ bụ naanị ngwaọrụ mgbochi. Ị nwere ike, dịka ọmụmaatụ, ịmepụta zvol N'aha mypool/myzvol, wee hazie ya na usoro faịlụ ext4, wee bulie sistemụ faịlụ ahụ - ị nwere sistemụ faịlụ ext4, mana yana njirimara nchekwa ZFS niile! Nke a nwere ike ịdị ka ihe nzuzu na otu igwe, mana ọ na-enwe nghọta karịa ka azụ azụ mgbe ị na-ebupụ ngwaọrụ iSCSI.

Ihe nkanka

Ihe ndabere ZFS: Nchekwa na arụmọrụ
A na-anọchi anya faịlụ ahụ site na otu ngọngọ ma ọ bụ karịa. A na-echekwa ngọngọ ọ bụla n'otu ngwaọrụ mebere. Ogo ngọngọ na-abụkarị nha nha nha ndekọ, ma enwere ike belata ya 2^ mgbanweọ bụrụ na o nwere metadata ma ọ bụ obere faịlụ.

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Anyị n'ezie n'ezie na-adịghị achị ọchị banyere nnukwu ntaramahụhụ arụmọrụ ma ọ bụrụ na ị na-etinye kwa obere ashift

N'ime ọdọ mmiri ZFS, a na-echekwa data niile, gụnyere metadata na ngọngọ. A na-akọwapụta oke ngọngọ kacha maka ntọala data ọ bụla na akụrụngwa recordsize (nha ndekọ). Enwere ike ịgbanwe nha ndekọ ahụ, mana nke a agaghị agbanwe nha ma ọ bụ ọnọdụ nke ngọngọ ọ bụla ederelarị na dataset - ọ na-emetụta naanị ngọngọ ọhụrụ ka edere ha.

Ọ gwụla ma akọwapụtara ya ọzọ, nha ndekọ ndabara dị ugbu a bụ 128 KiB. Ọ bụ ụdị azụmaahịa dị aghụghọ ebe arụmọrụ na-ezughị oke, mana ọ bụghị egwu n'ọtụtụ ọnọdụ. Recordsize enwere ike ịtọ uru ọ bụla site na 4K ruo 1M (ya na ntọala dị elu recordsize ị nwere ike ịwụnye ọbụna karịa, mana nke a adịghị adịkarị mma).

Ihe mgbochi ọ bụla na-ezo aka na data nke naanị otu faịlụ - ị nweghị ike itinye faịlụ abụọ dị iche iche n'ime otu ngọngọ. Faịlụ ọ bụla nwere otu ngọngọ ma ọ bụ karịa, dabere na nha. Ọ bụrụ na nha faịlụ dị ntakịrị karịa nha ndekọ, a ga-echekwa ya na obere ngọngọ - dịka ọmụmaatụ, ngọngọ nwere faịlụ 2 KiB ga-anọ naanị otu mpaghara 4 KiB na diski ahụ.

Ọ bụrụ na faịlụ ahụ buru ibu ma chọọ ọtụtụ ngọngọ, mgbe ahụ ndekọ niile nwere faịlụ a ga-abụ nha recordsize - gụnyere ntinye ikpeazụ, akụkụ bụ isi nke nwere ike ịbụ oghere ejighi ya.

zvols enweghị ihe onwunwe recordsize - kama ha nwere ihe onwunwe nhata volblocksize.

Ngalaba

Nke ikpeazụ, ihe mgbochi ụlọ bụ isi bụ ngalaba. Ọ bụ akụkụ anụ ahụ kacha nta nke enwere ike idegara ma ọ bụ gụọ ya site na ngwaọrụ dị n'okpuru. Ruo ọtụtụ iri afọ, ọtụtụ diski na-eji ngalaba 512-byte. N'oge na-adịbeghị anya, a na-ahazi ọtụtụ diski maka ngalaba 4 KiB, ụfọdụ - ọkachasị SSD - nwere ngalaba 8 KiB ma ọ bụ karịa.

Usoro ZFS nwere ihe onwunwe na-enye gị ohere iji aka gị dozie nha ngalaba. Ihe onwunwe a ashift. N'ụzọ dịtụ mgbagwoju anya, ashift bụ ike nke abụọ. Ọmụmaatụ, ashift=9 pụtara nha ngalaba nke 2^9, ma ọ bụ 512 bytes.

ZFS na-ajụ sistemụ arụmọrụ maka ozi zuru ezu gbasara ngwaọrụ ngọngọ ọ bụla mgbe agbakwunyere ya na vdev ọhụrụ, yana usoro iwu na-arụnye mgbanwe nke ọma dabere na ozi ahụ. N'ụzọ dị mwute, ọtụtụ draịva na-agha ụgha banyere nha ngalaba ha ka ha wee nwee ndakọrịta na Windows XP (nke na-enweghị ike ịghọta draịva na nha ngalaba ndị ọzọ).

Nke a pụtara na a na-adụ onye nchịkwa ZFS ọdụ ka ọ mara nha ngalaba nke ngwaọrụ ha ma jiri aka ya debe ya ashift. Ọ bụrụ na atọrọ mgbanwe dị oke ala, ọnụọgụgụ / ide ọrụ na-abawanye na mbara igwe. Yabụ, ide “ngalaba” 512-byte n'ime ezigbo ngalaba 4 KiB pụtara ide “ngalaba” mbụ, wee gụọ ngalaba 4 KiB, jiri “ngalaba 512-byte” gbanwee ya, deghachi ya na nke ọhụrụ. Ngalaba 4 KiB, na ihe ndị ọzọ maka ntinye ọ bụla.

N'ụwa n'ezie, ntaramahụhụ dị otú ahụ na-adakwasị Samsung EVO SSDs, nke ashift=13, mana SSD ndị a na-agha ụgha gbasara nha ngalaba ha, yabụ edobere ndabara ashift=9. Ọ bụrụ na onye njikwa sistemụ nwere ahụmahụ agbanweghị ntọala a, mgbe ahụ SSD a na-arụ ọrụ Jiri Nwayọọ HDD magnetik.

Maka ntụnyere, maka oke oke ashift ọ fọrọ nke nta ka ọ bụrụ ntaramahụhụ. Enweghị ezigbo ntaramahụhụ arụmọrụ, yana mmụba nke oghere na-ejighị ya enweghị njedebe (ma ọ bụ efu na-enyere aka mkpakọ). Ya mere, anyị na-akwadosi ike na ọbụna draịva ndị na-eji ngalaba 512-byte wụnye ashift=12 ma ọ bụ ọbụna ashift=13iji obi ike chere ọdịnihu ihu.

Ngwongwo ashift atọrọ maka vdev mebere ngwaọrụ ọ bụla, na ọ bụghị maka ọdọ mmiri, dị ka ọtụtụ na-eche n'ụzọ na-ezighị ezi - na ọ dịghị agbanwe mgbe echichi. Ọ bụrụ na ị kụrụ na mberede ashift mgbe ị gbakwunye vdev ọhụrụ na ọdọ mmiri, ị na-emetọghị ọdọ mmiri ahụ na ngwaọrụ arụ ọrụ dị ala na-enwekarị nhọrọ ọzọ ma ọ bụghị imebi ọdọ mmiri ahụ wee malite ọzọ. Ọbụlagodi iwepu vdev agaghị azọpụta gị na nhazi agbajiri agbaji ashift!

Usoro idetu-na-ede

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Ọ bụrụ na sistemụ faịlụ oge niile kwesịrị idegharị data, ọ na-agbanwe ngọngọ ọ bụla ebe ọ nọ

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Sistemụ faịlụ nnomi-na-ede na-ede ụdị ngọngọ ọhụrụ wee mepee ụdị ochie

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Na nkenke, ọ bụrụ na anyị eleghara ọnọdụ anụ ahụ nke ihe mgbochi ahụ anya, mgbe ahụ "data comet" na-eme ka ọ dị mfe ka ọ bụrụ "data worm" nke na-esi n'aka ekpe gaa n'aka nri gafee maapụ ohere dịnụ.

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Ugbu a, anyị nwere ike nweta ezi echiche nke otu nbipụta-na-dere snapshots si arụ ọrụ - ngọngọ ọ bụla nwere ike ịbụ nke ọtụtụ snapshots, ọ ga-adịgide ruo mgbe ebibiri snapshots niile metụtara.

Usoro Detuo na Write (CoW) bụ ntọala bụ isi nke ihe na-eme ZFS usoro dị ịtụnanya. Echiche bụ isi dị mfe - ọ bụrụ na ị rịọ usoro faịlụ omenala ka ọ gbanwee faịlụ, ọ ga-eme kpọmkwem ihe ị jụrụ. Ọ bụrụ na ị rịọ sistemụ faịlụ oyiri-na-ede ka ọ mee otu ihe ahụ, ọ ga-asị "ọ dị mma" mana ghaara gị ụgha.

Kama, sistemụ faịlụ nnomi-na-ede na-ede ụdị ọhụrụ nke ngọngọ a gbanwere wee melite metadata faịlụ ahụ ka ihichapụ ngọngọ ochie ahụ wee jikọta ngọngọ ọhụrụ ị degara ya akwụkwọ.

Iwepụ ngọngọ ochie na ijikọ nke ọhụrụ a na-eme n'otu ọrụ, yabụ enweghị ike ịkwụsị ya - ọ bụrụ na ị gbadaa mgbe nke a gasịrị, ị nwere ụdị faịlụ ọhụrụ, ma ọ bụrụ na ị gbadaa n'isi, ị nwere ụdị ochie. . N'ọnọdụ ọ bụla, a gaghị enwe esemokwu na sistemụ faịlụ.

Detuo-na-dere na ZFS na-eme ọ bụghị naanị na ọkwa sistemụ faịlụ, kamakwa na ọkwa njikwa diski. Nke a pụtara na oghere ọcha adịghị emetụta ZFS (oghere na RAID) - ihe dị egwu mgbe warara ahụ nwere oge iji dekọọ akụkụ ụfọdụ tupu usoro ahụ emebisị, na-emebi n'usoro mgbe ịmalitegharịa. Ebe a na straipu e dere atomically, vdev bụ mgbe usoro, na Bob bụ nwanne nna gị.

ZIL: ndekọ ebumnuche ZFS

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Sistemụ ZFS na-emeso ihe odide synchronous n'ụzọ pụrụ iche - ọ na-adị nwa oge mana ọ na-echekwa ya ozugbo na ZIL tupu ya edee ya kpamkpam ma emechaa yana asynchronous dere.

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Dịka, data edere na ZIL agaghị agụ ọzọ. Ma ọ ga-ekwe omume mgbe a usoro okuku

Ihe ndabere ZFS: Nchekwa na arụmọrụ
SLOG, ma ọ bụ ngwaọrụ LOG nke abụọ, bụ naanị ihe pụrụ iche - yana ọkacha mma ngwa ngwa - vdev, ebe enwere ike ịchekwa ZIL iche na nchekwa isi.

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Mgbe ihe mberede gasịrị, a na-emegharị data niile ruru unyi na ZIL - na nke a, ZIL dị na SLOG, ya mere a na-emegharị ya n'ebe ahụ.

Enwere isi edemede abụọ nke ọrụ ide - synchronous (sync) na asynchronous (async). Maka ọtụtụ ọrụ, ihe ka n'ọnụ ọgụgụ n'ime ederede bụ ihe asynchronous - usoro faịlụ na-enye ha ohere ikpokọta ma nye ya na batches, na-ebelata nkewa na ịba ụba nke ukwuu.

Ndekọ emekọrịtara ọnụ bụ ihe dị iche kpamkpam. Mgbe ngwa na-arịọ ka e dee synchronous, ọ na-agwa sistemụ faịlụ: "Ịkwesịrị ịme nke a na ebe nchekwa na-adịghị agbanwe agbanwe. ugbu aruo mgbe ahụ, ọ dịghị ihe ọzọ m nwere ike ime." Ya mere, akwụkwọ synchronous kwesịrị itinye aka na diski ozugbo-ma ọ bụrụ na nke ahụ na-abawanye nkewa ma ọ bụ na-ebelata mmepụta, mgbe ahụ, ọ ga-abụ.

ZFS na-ejikwa synchronous ede dị iche iche karịa sistemụ faịlụ mgbe niile-kama itinye ha ozugbo na nchekwa oge niile, ZFS na-enyefe ha na ebe nchekwa pụrụ iche akpọrọ ZFS Intent Log, ma ọ bụ ZIL. Ihe aghụghọ bụ na ndekọ ndị a nakwa Nọgide na ebe nchekwa, na-agbakọta yana arịrịọ ederede asynchronous nkịtị, ka emechaa wụsa ya na nchekwa dị ka TXG (Ndị otu azụmahịa) zuru oke.

N'ime ọrụ nkịtị, a na-edegara ZIL ahụ ma ghara ịgụ ya ọzọ. Mgbe obere oge gachara, ihe ndekọ sitere na ZIL etinyere na nchekwa bụ isi na TXG nkịtị sitere na RAM, a na-ewepụ ha na ZIL. Naanị oge a na-agụ ihe site na ZIL bụ mgbe ebubata ọdọ mmiri ahụ.

Ọ bụrụ na ZFS daa - mkpọka sistemụ arụmọrụ ma ọ bụ mwepu ọkụ - ebe enwere data na ZIL, a ga-agụ data ahụ n'oge mbubata ọdọ mmiri na-esote (dịka ọmụmaatụ, mgbe emegharịrị sistemụ mberede). A ga-agụ ihe ọ bụla dị na ZIL, chịkọta ya na TXG, tinye aka na ebe nchekwa, wee wepụ ya na ZIL n'oge usoro mbubata.

Otu n'ime klaasị vdev inyeaka ka a na-akpọ LOG ma ọ bụ SLOG, ngwaọrụ nke abụọ nke LOG. Ọ nwere otu nzube - inye ọdọ mmiri dị iche iche, na ọkacha mma ngwa ngwa, dị nnọọ ide-eguzogide vdev na-echekwa ZIL, kama na-echekwa ZIL na isi vdev ụlọ ahịa. ZIL n'onwe ya na-eme otu ihe ahụ n'agbanyeghị ebe echekwara ya, mana ọ bụrụ na LOG vdev nwere arụmọrụ ederede dị elu, dee synchronous ga-adị ngwa ngwa.

Ịtinye vdev na LOG na ọdọ mmiri anaghị arụ ọrụ enweghị ike melite arụmọrụ ederede asynchronous - ọbụlagodi ma ọ bụrụ na ị na-amanye ihe niile na-edegara ZIL zfs set sync=always, a ka ga-ejikọta ha na isi nchekwa na TXG n'otu ụzọ ahụ na n'otu oge ahụ na-enweghị log. Naanị nkwalite arụmọrụ kpọmkwem bụ nkwụsịtụ nke ederede synchronous (n'ihi na ndekọ ngwa ngwa na-eme ka ọrụ dị ngwa). sync).

Otú ọ dị, na gburugburu ebe a na-achọrịrịrị ọtụtụ ederede synchronous, vdev LOG nwere ike mee ngwa ngwa ederede asynchronous na ndị na-enweghị cache. Iwepu ndenye ZIL na vdev LOG dị iche pụtara obere esemokwu maka IOPS na nchekwa bụ isi, nke na-eme ka arụmọrụ nke ọgụgụ niile na-ede ma na-ede ruo n'ókè ụfọdụ.

Ihe onyonyo

Usoro nnomi-na-ederede bụkwa ntọala dị mkpa maka foto atọmịk nke ZFS yana mmụba asynchronous. Sistemụ faịlụ na-arụ ọrụ nwere osisi pointer na-edekọ ndekọ niile na data dị ugbu a - mgbe ị na-ese foto, ị ga-eme naanị otu osisi pointer a.

Mgbe edegharịrị ndekọ na sistemụ faịlụ na-arụ ọrụ, ZFS na-ebu ụzọ dee ụdị ngọngọ ọhụrụ ahụ na oghere ejighi ya. Ọ na-ewepụ ihe ochie nke ngọngọ na sistemụ faịlụ dị ugbu a. Mana ọ bụrụ na ụfọdụ foto na-ezo aka na ngọngọ ochie, ọ ka na-agbanwe agbanwe. Agaghị eweghachi ngọngọ ochie ahụ dị ka oghere efu ruo mgbe ebibiri foto niile na-ezo aka na ngọngọ a!

ntughari

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Ọbá akwụkwọ Steam m na 2015 bụ 158 GiB ma tinye faịlụ 126. Nke a dị ezigbo nso na ọnọdụ kacha mma maka rsync - ZFS mmegharị n'elu netwọk bụ "naanị" 927% ngwa ngwa.

Ihe ndabere ZFS: Nchekwa na arụmọrụ
N'otu netwọkụ ahụ, ịmegharị otu 40GB Windows 7 faịlụ onyonyo igwe mebere bụ akụkọ dị iche kpamkpam. Ntugharị ZFS bụ ugboro 289 ngwa ngwa karịa rsync - ma ọ bụ "naanị" ugboro 161 ngwa ngwa ma ọ bụrụ na ị maara nke ọma ịkpọ rsync na --inplace.

Ihe ndabere ZFS: Nchekwa na arụmọrụ
Mgbe a tụrụ onyonyo VM, rsync na-ebute ọnụ ọgụgụ ya. 1,9 TiB abụghị nnukwu maka onyonyo VM ọgbara ọhụrụ - mana ọ buru ibu na mmegharị ZFS bụ ugboro 1148 ngwa ngwa karịa rsync, ọbụlagodi na arụmụka rsync --inplace.

Ozugbo ị ghọtara ka snapshots si arụ ọrụ, ọ ga-adị mfe ịghọta isi ntugharị. Ebe ọ bụ na ọnyà bụ naanị osisi na-atụ aka na ndekọ, ọ na-esote na ọ bụrụ na anyị emee ya zfs send snapshot, mgbe ahụ, anyị na-eziga ma osisi a na ihe ndekọ niile metụtara ya. Mgbe anyị na-eziga nke a zfs send в zfs receive na ebumnuche, ọ na-ede ma ọdịnaya n'ezie nke ngọngọ na osisi nke pointers nke na-ezo aka na ngọngọ na dataset ebumnuche.

Ihe na-adọrọ mmasị karị na nke abụọ zfs send. Ugbu a anyị nwere usoro abụọ, nke ọ bụla nwere poolname/datasetname@1, ma ị ga-ese foto ọhụrụ poolname/datasetname@2. Ya mere, na ọdọ mmiri mbụ ị nwere datasetname@1 и datasetname@2, na n'ọdọ mmiri a chọrọ ka ọ dị naanị foto mbụ datasetname@1.

Ebe ọ bụ na anyị nwere foto nkịtị n'etiti isi mmalite na ebumnuche datasetname@1, anyị nwere ike ime ya mmụba zfs send gafere ya. Mgbe anyị na-ekwu na usoro zfs send -i poolname/datasetname@1 poolname/datasetname@2, ọ na-atụnyere osisi pointer abụọ. Atụmatụ ọ bụla dị naanị n'ime @2, doro anya na-ezo aka na ngọngọ ọhụrụ - yabụ anyị chọrọ ọdịnaya nke ngọngọ ndị a.

Na sistemu dịpụrụ adịpụ, na-ahazi mmụba send dị nnọọ mfe. Mbụ anyị na-ede ndenye ọhụrụ niile gụnyere na iyi send, wee tinye ntụnye aka na ngọngọ ndị ahụ. Voila, anyị nwere @2 na usoro ọhụrụ!

Mmụba nke asynchronous nke ZFS bụ nnukwu mmụba karịa ụzọ ndị na-abụghị nke foto mbụ dị ka rsync. N'okwu abụọ a, ọ bụ naanị data gbanwere - mana rsync ga-ebu ụzọ buo ya gụọ site na diski ahụ niile data dị n'akụkụ abụọ iji lelee nchikota ma tụnyere ya. N'ụzọ dị iche, ntụgharị ZFS anaghị agụ ihe ọ bụla ma ọ bụghị osisi ndị na-egosi ihe - yana ihe mgbochi ọ bụla na-adịghị na foto nkekọrịta.

Mkpakọ arụnyere n'ime ya

Usoro nnomi-na-ede na-emekwa ka usoro mkpakọ inline dị mfe. Na usoro faịlụ ọdịnala, mkpakọ bụ nsogbu - ma ụdị ochie na ụdị ọhụrụ nke data gbanwetụrụ na-ebi n'otu oghere.

Ọ bụrụ na anyị na-atụle mpempe data n'etiti faịlụ nke na-amalite ndụ dị ka megabyte nke efu site na 0x00000000 na ihe ndị ọzọ, ọ dị mfe ịpịkọta ya na otu mpaghara na diski. Mana gịnị ga - eme ma ọ bụrụ na anyị ejiri megabyte nke efu dochie megabyte nke efu data dị ka JPEG ma ọ bụ mkpọtụ pseudo-random? Na-atụghị anya ya, megabyte data a agaghị achọ ọ bụghị otu, mana mpaghara 256 4 KiB, na ebe a na diski naanị otu mpaghara ka edobere.

ZFS enweghị nsogbu a, n'ihi na a na-edekarị ihe ndekọ gbanwetụrụ na oghere a na-ejighị ya - ngọngọ mbụ nwere naanị otu mpaghara 4 KiB, ndekọ ọhụrụ ahụ ga-anọkwa na 256, mana nke a abụghị nsogbu - iberibe gbanwetụrụ na nso nso a site na " A ga-ederịrị n'etiti faịlụ ahụ na oghere a na-ejighị ya n'agbanyeghị ma nha ya agbanweela ma ọ bụ na ọ bụghị, yabụ maka ZFS nke a bụ ọnọdụ a na-ahụkarị.

Akwụsịghị mkpakọ ZFS ala nna site na ndabara, sistemụ ahụ na-enye algọridim pluggable — ugbu a LZ4, gzip (1-9), LZJB, na ZLE.

  • LZ4 bụ algọridim nkwanye ugwu nke na-enye mkpakọ na mgbakasị ahụ na uru arụmọrụ maka ọtụtụ ikpe - ọbụlagodi na CPUs dị nwayọ.
  • GZIP bụ algọridim dị nsọ nke ndị ọrụ Unix niile maara ma hụ n'anya. Enwere ike ime ya na ọkwa mkpakọ 1-9, yana mkpakọ mkpakọ na ojiji CPU na-abawanye ka ọ na-eru nso ọkwa 9. Algọridim dabara nke ọma maka ederede niile (ma ọ bụ ihe ndị ọzọ nwere ike ịgbakọ) iji okwu, mana ma ọ bụghị ya na-ebute nsogbu CPU - jiri ya. na nlezianya, karịsịa na ọkwa dị elu.
  • LZJB bụ algọridim mbụ na ZFS. Ọ bụ ihe anaghịzi arụ ọrụ na e kwesịghịkwa iji ya mee ihe, LZ4 karịrị ya n'ụzọ ọ bụla.
  • ỌJỌỌ - Ndozi ọkwa efu, ngbanwe ọkwa efu. Ọ naghị emetụ data nkịtị aka ma ọlị, kama ọ na-akpakọba nnukwu usoro efu. Ọ bara uru maka ihe ndekọ data enweghị ike ịmekọrịta kpamkpam (dị ka JPEG, MP4, ma ọ bụ usoro ndị ọzọ abịakọrọlarị) ebe ọ na-eleghara data enweghị mgbagwoju anya mana ọ na-akpakọba ohere ejighi ya na ndekọ nke ga-esi na ya pụta.

Anyị na-akwado mkpakọ LZ4 maka ihe fọrọ nke nta ka ọ bụrụ ikpe niile; ntaramahụhụ arụmọrụ mgbe ị na-ezute data na-enweghị atụ dị ntakịrị, na uto arụmọrụ maka ahụkarị data dị ịrịba ama. Na-eṅomi onyonyo igwe mebere maka nrụnye sistemụ arụmọrụ Windows ọhụrụ (OS arụnyere ọhụrụ, enweghị data n'ime ya) yana compression=lz4 gafere 27% ngwa ngwa karịa ya compression=none, na ule a na 2015.

ARC - cache ngbanwe mgbanwe

ZFS bụ naanị sistemụ faịlụ ọgbara ọhụrụ anyị maara na nke na-eji usoro nchikota ọgụgụ nke ya, kama ịdabere na cache ibe sistemụ arụmọrụ iji chekwaa mbipụta nke ngọngọ ndị agụpụtara na nso nso a na RAM.

Ọ bụ ezie na cache nke ala enweghị nsogbu ya - ZFS enweghị ike ịzaghachi arịrịọ ikenye ebe nchekwa ngwa ngwa ngwa ngwa dị ka kernel, yabụ ihe ịma aka ọhụrụ ahụ. malloc() na ebe nchekwa oke nwere ike daa ma ọ bụrụ na ọ chọrọ RAM nke ARC ji ugbu a. Mana enwere ezigbo ihe kpatara iji cache nke gị, opekata mpe ugbu a.

Sistemu eji arụ ọrụ ọgbara ọhụrụ ama ama, gụnyere MacOS, Windows, Linux na BSD, na-eji LRU (Kachachaghị Eji Na-adịbeghị anya) algọridim iji mejuputa cache ibe. Nke a bụ algọridim oge ochie nke na-ebuli ihe mgbochi cache "elu kwụ n'ahịrị" mgbe agụchara nke ọ bụla, ma na-akwagide ihe mgbochi ahụ "gbadaa kwụ n'ahịrị" ka ọ dị mkpa iji gbakwunye oghere cache ọhụrụ (ihe mgbochi kwesịrị ịgụ na diski, ọ bụghị site na cache) elu.

Algọridim na-arụkarị ọrụ nke ọma, mana na sistemụ nwere nnukwu dataset na-arụ ọrụ, LRU na-eduga ngwa ngwa n'ịkụcha ihe - ịchụpụ ihe mgbochi a na-achọkarị iji nye ohere maka ihe mgbochi na-agaghị agụ na cache ọzọ.

ARC bụ algọridim dị obere nke na-enweghị isi nke enwere ike iche na ọ bụ cache "nwere arọ". Oge ọ bụla a na-agụ ngọngọ nke echekwara, ọ na-adị ntakịrị "ịdị arọ" na-esiwanye ike ịchụpụ - na ọbụna mgbe a chụpụrụ ngọngọ. esoro n'ime oge ụfọdụ. Ihe mgbochi a chụpụrụ mana achọrọ ka agụghachi ya na cache ga-adịkwa “dị arọ”.

N'ikpeazụ nke ihe a niile bụ cache nwere oke ihe ọkụkụ dị elu, oke dị n'etiti cache hits (a na-agụ ya na cache) na cache efu (na-agụ site na diski). Nke a bụ ọnụ ọgụgụ dị oke mkpa - ọ bụghị naanị na cache na-ada n'onwe ha na-enye iwu nke ukwuu ngwa ngwa, a pụkwara ije ozi cache ngwa ngwa, ebe ọ bụ na ka cache na-abawanye, arịrịọ diski na-adị ntakịrị na-ebelata ohere maka ndị fọdụrụ na-efunahụ. nke a ga-enyerịrị na diski.

nkwubi

Mgbe anyị mụtachara usoro ọmụmụ ihe bụ isi nke ZFS - ka ndetu-na-ede si arụ ọrụ, yana mmekọrịta dị n'etiti ọdọ mmiri nchekwa, ngwaọrụ mebere, ngọngọ, ngalaba na faịlụ - anyị dị njikere iji ọnụ ọgụgụ dị adị kwurịta arụmọrụ ụwa n'ezie.

N'akụkụ nke ọzọ, anyị ga-eleba anya na arụmọrụ ọdọ mmiri nwere vdevs na RAIDz na-enyo enyo, na ibe ya, yana megidekwa ụdị Linux kernel RAID topologies anyị nyochara. na mbụ.

Na mbụ, anyị chọrọ ikpuchi naanị isi - ZFS topologies onwe ha - ma mgbe e mesịrị dị otú a ka anyị jikere ikwu maka ntọlite ​​na ntuzigharị ZFS ka dị elu, gụnyere iji ụdị vdev inyeaka dịka L2ARC, SLOG na ekenye pụrụ iche.

isi: www.habr.com

Tinye a comment