Iziseko zeZFS: Ukugcinwa kunye nokusebenza

Iziseko zeZFS: Ukugcinwa kunye nokusebenza

Kule ntlakohlaza sele sixoxe ngezihloko zentshayelelo, umz. indlela yokukhangela isantya sokuqhuba kwakho и yintoni iRAID. Kweyesibini kwezi, sade sathembisa ngokuqhubeka nokufunda ukusebenza kwee-multi-disk topologies kwi-ZFS. Le yinkqubo yefayile yesizukulwana esilandelayo esasazwa kuyo yonke indawo ukusuka iapile до Ubuntu.

Ewe, namhlanje lolona suku lulungileyo lokuqhelana neZFS, abafundi abanomdla. Yazi nje ukuba kuvavanyo oluthobekileyo lomphuhlisi we-OpenZFS uMat Ahrens, "kunzima ngokwenene."

Kodwa ngaphambi kokuba sifike kumanani-kwaye kuya kubakho, ndiyathembisa-kuzo zonke iidiski ezisibhozo iinketho zoqwalaselo ze-ZFS, kufuneka sithethe ngazo. njani Ngokubanzi, i-ZFS igcina idatha kwidiski.

Zpool, vdev kunye nesixhobo

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Lo mzobo ogcweleyo we-pool uquka ii-vdevs ezintathu ezincedisayo, enye yeklasi nganye, kunye nezine ze-RAIDz2

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Ngokuqhelekileyo akukho sizathu sokudala ichibi leentlobo zevdev ezingahambelaniyo kunye nobukhulu - kodwa ukuba uyafuna, akukho nto ikunqandayo ekwenzeni oko.

Ukuqonda ngokwenene inkqubo yefayile ye-ZFS, kufuneka ujonge ngokusondeleyo kubume bayo benene. Okokuqala, i-ZFS idibanisa umthamo wemveli kunye nolawulo lwenkqubo yeefayile. Okwesibini, isebenzisa inkqubo yokukhuphela-ngokubhala. Ezi mpawu zithetha ukuba inkqubo yolwakhiwo yahluke kakhulu kwiinkqubo zefayile eziqhelekileyo kunye noluhlu lwe-RAID. Isethi yokuqala yeebhloko zokwakha ezisisiseko ukuqonda i-pool yokugcina (i-zpool), i-virtual device (vdev) kunye nesixhobo sangempela (isixhobo).

zpool

I-pool yokugcina i-zpool yeyona nto iphezulu yesakhiwo se-ZFS. Iqula ngalinye liqulathe isixhobo esinye okanye ezingaphezulu. Emva koko, nganye kuzo iqulethe enye okanye ezininzi izixhobo zangempela (isixhobo). Amachibi abonakalayo ziiyunithi ezizimeleyo. Ikhompyuter enye inokuqulatha amachibi amabini okanye ngaphezulu ahlukeneyo, kodwa ngalinye lizimele ngokupheleleyo kwezinye. Amachibi akakwazi ukwabelana ngezixhobo ezibonakalayo.

Ukukhutshwa kwe-ZFS kukwinqanaba lesixhobo esibonakalayo, hayi kwinqanaba lephuli. Akukho mfuneko ngokupheleleyo kwinqanaba le-pool-ukuba i-vdev okanye i-vdev ezinikeleyo ilahlekile, i-pool yonke ilahlekile kunye nayo.

Amachibi okugcina anamhlanje anokusinda kwilahleko yecache yesixhobo esibonakalayo okanye ilog - nangona banokuphulukana nedatha encinci emdaka ukuba baphulukana nelog ye-vdev ngexesha lokucima kombane okanye ukuphazamiseka kwenkqubo.

Kukho ukungaqondi okuqhelekileyo ukuba i-ZFS "imigca yedatha" ibhalwe kulo lonke idama. Oku akuyonyani. I-Zpool ayisiyo-RAID0 ehlekisayo, yinto ehlekisayo ngakumbi I-JBOD ngomatshini wokuhambisa oguqukayo onzima.

Ubukhulu becala, iirekhodi zisasazwa phakathi kwezixhobo ezibonakalayo ezikhoyo ngokwendawo ekhoyo yasimahla, ngoko ke ithiyori ziya kuzaliswa zonke ngaxeshanye. Iinguqulelo zamva nje ze-ZFS zithatha ukusetyenziswa kwe-vdev yangoku (ukusetyenziswa) kwi-akhawunti - ukuba isixhobo esinye esibonakalayo sixakeke kakhulu kunesinye (umzekelo, ngenxa yomthwalo ofundwayo), siya kutsitywa okwethutyana ukuze sibhale, nangona sinendawo ephezulu yasimahla.

Indlela yokuphinda ifumaneke eyakhiwe kwiindlela zangoku zokwabiwa kwe-ZFS inokunciphisa i-latency kwaye inyuse i-output ngexesha lomthwalo ophezulu ngokungaqhelekanga-kodwa ayenzi njalo. i-carte blanche ukuxuba ngokungazithandeli kwee-HDD ezicothayo kunye nee-SSD ezikhawulezayo kwidama elinye. Idama elingalinganiyo elinjalo liya kuhlala lisebenza ngesantya sesona sixhobo sicothayo, oko kukuthi, ngokungathi yenziwe ngokupheleleyo kwezo zixhobo.

vdev

Idama ngalinye lokugcina liqulathe isixhobo esinye okanye ngaphezulu esinenyani (vdev). Emva koko, i-vdev nganye ibandakanya enye okanye izixhobo zokwenyani. Uninzi lwezixhobo ezibonakalayo zisetyenziselwa ukugcinwa kwedatha elula, kodwa kukho iiklasi ezininzi zomncedisi we-vdev, kuquka i-CACHE, i-LOG, kunye ne-SPECIAL. Nganye kwezi ntlobo ze-vdev zinokuba ne-topology enye kwezintlanu: isixhobo esisodwa, i-RAIDz1, i-RAIDz2, i-RAIDz3 okanye isibuko.

I-RAIDz1, i-RAIDz2 kunye ne-RAIDz3 ziindidi ezikhethekileyo zento abantu abadala abanokuthi bayibize kabini (diagonal) parity RAID. I-1, 2 kunye ne-3 ibhekiselele ekubeni zingaphi iibhloko ze-parity ezabelwe umgca wedatha nganye. Endaweni yokuba neediski ezahlukeneyo ukunika ukulingana, izixhobo ze-RAIDz ezinenyani zisasaza ukulingana ngokulinganayo kuzo zonke iidiski. Uluhlu lwe-RAIDz lunokuphulukana neediski ezininzi njengoko zineebhloko zokulingana; ukuba ilahlekelwa enye, iya kusilela kwaye ithathe ichibi lokugcina kunye nayo.

Kwizixhobo zesipili esibonakalayo (isibuko vdev), ibhloko nganye igcinwa kwisixhobo ngasinye kwivdev. Nangona izibuko ezibanzi ezimbini zezona ziqhelekileyo, isibuko sinokuba naliphi na inani elingaqhelekanga lezixhobo-kwiifakelo ezinkulu, ii-triples zihlala zisetyenziselwa ukuphucula ukusebenza kokufunda kunye nokunyamezela impazamo. Isibuko se-vdev sinokuphila nakuphi na ukusilela okoko nje isixhobo esinye kwi-vdev sihlala sisebenza.

I-vdevs enye iyingozi ngokwendalo. Isixhobo esinjalo esibonakalayo asiyi kusinda ukusilela okukodwa - kwaye ukuba isetyenziswe njengendawo yokugcina okanye i-vdev ekhethekileyo, ngoko ukungaphumeleli kwayo kuya kukhokelela ekutshatyalalisweni kwechibi lonke. Lumka kakhulu, ulumke kakhulu apha.

I-CACHE, I-LOG, kunye nezixhobo ezikhethekileyo zenyani zinokudalwa kuyo nayiphi na i-topology engasentla - kodwa khumbula ukuba ukuphulukana nesixhobo esinenyani ESIKHETHEKILEYO kuthetha ukuphulukana nephuli, ngoko ke i-topology engafunekiyo iyacetyiswa kakhulu.

isixhobo

Eli mhlawumbi lelona gama lilula ukuliqonda kwi-ZFS - sisixhobo sokufikelela ngokungaqhelekanga. Khumbula ukuba izixhobo ezibonakalayo zenziwe ngezixhobo ezizimeleyo, kwaye ichibi lenziwe ngezixhobo ezibonakalayo.

Iidiski, nokuba yimagnethi okanye imeko eqinileyo, zezona zixhobo ziqhelekileyo zebhloko ezisetyenziswa njengeebhloko zokwakha zevdev. Nangona kunjalo, nasiphi na isixhobo esinesichazi kwi/dev siyakwenza - ke yonke ihardware RAID arrays ingasetyenziswa njengezixhobo ezizimeleyo.

Ifayile ekrwada elula yenye yezona zixhobo zibalulekileyo zebhloko apho i-vdev inokwakhiwa khona. Uvavanyo lwamachibi ukusuka iifayile ezinqabileyo yindlela efanelekileyo kakhulu yokujonga imiyalelo yephuli kwaye ubone ukuba singakanani na isithuba esikhoyo kwidama okanye isixhobo esibonakalayo setopology enikiweyo.

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Unokwenza ichibi lovavanyo kwiifayile ezinqabileyo kwimizuzwana nje embalwa - kodwa ungalibali ukucima yonke ichibi kunye nezinto zalo emva koko.

Masithi ufuna iseva yediski ezisibhozo kwaye ucwangcise ukusebenzisa i-10TB (~9300 GiB) iidiski, kodwa awuqinisekanga ukuba yeyiphi itopology evumelana neemfuno zakho. Kulo mzekelo ungasentla, sakha iqula lovavanyo lweefayile ezinqabileyo ngemizuzwana-kwaye ngoku siyazi ukuba i-RAIDz2 vdev yee-drive ezisibhozo ze-10TB ibonelela nge-50TiB yomthamo osebenzisekayo.

Olunye udidi olukhethekileyo lwezixhobo yi-SPARE. Izixhobo zokutshintsha okushushu, ngokungafaniyo nezixhobo eziqhelekileyo, zezedama lonke endaweni yesixhobo esinye senyani. Ukuba nayiphi na i-vdev echibini iyasilela kwaye isixhobo esisecaleni siqhagamshelwe echibini kwaye sikhona, siya kujoyina ngokuzenzekelayo i-vdev echaphazelekayo.

Nje ukuba uqhagamshelwe kwi-vdev echaphazelekayo, isixhobo sokubuyisela siqala ukufumana iikopi okanye ukwakhiwa kwakhona kwedatha ekufuneka ibe kwisixhobo esilahlekileyo. Kwi-RAID yendabuko oku kubizwa ngokuba "ukwakha kwakhona", kwaye kwi-ZFS "iyaguquguquka".

Kubalulekile ukuqaphela ukuba izixhobo ezitshintshileyo aziyithathi indawo ngokusisigxina izixhobo ezingaphumelelanga. Oku kukubuyisela okwexeshana kuphela ukunciphisa ixesha elithathayo kwi-vdev ukuthoba umgangatho. Emva kokuba umlawuli ethathe indawo yesixhobo se-vdev esingaphumelelanga, ukuphinda-phinda kubuyiselwe kweso sixhobo sisisigxina, kwaye i-SPARE iyacinywa kwi-vdev kwaye ibuyela ekubeni yi-spare ye-pool yonke.

Iiseti zedatha, iibhloko kunye namacandelo

Iseti elandelayo yeebhloko zokwakha ukuqonda kuhambo lwethu lwe-ZFS inxulumene kancinci ne-hardware kwaye ngaphezulu yokwenza nendlela idatha ngokwayo elungelelaniswe kwaye igcinwe ngayo. Sitsiba iileya ezimbalwa apha - ezinje nge-metaslab - ukunqanda ukudityaniswa kweenkcukacha ngelixa sigcina ukuqonda kolwakhiwo lulonke.

Iseti yedatha

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Xa siqala ukudala i-dataset, ibonisa yonke indawo ekhoyo yokubhukuda. Emva koko sibeka i-quota - kwaye sitshintshe indawo yokunyuka. Umlingo!

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
I-Zvol ubukhulu becala luluhlu lwedatha oluhluthweyo umaleko wenkqubo yefayile, esithi siyibuyisele apha ngenkqubo yefayile ye ext4 eqhelekileyo.

Iseti yedatha ye-ZFS iphantse yafana nenkqubo yefayile enyusiweyo eqhelekileyo. Njengenkqubo yefayile eqhelekileyo, ekuqaleni ibonakala "yenye ifolda." Kodwa njengeenkqubo zefayile eziphakanyisiweyo rhoqo, isethi nganye yedatha yeZFS ineseti yayo yezinto ezisisiseko.

Okokuqala, iseti yedatha inokuba nesabelo esabelweyo. Ukuba uyafaka zfs set quota=100G poolname/datasetname, ngoko awuzukwazi ukubhala kwincwadi enyusiweyo /poolname/datasetname ngaphezulu kwe-100 GiB.

Ngaba uyabubona ubukho—nokungabikho—kobukrwada ekuqaleni komgca ngamnye? Iseti nganye yedatha inendawo yayo kuzo zombini ulawulo lweZFS kunye nenkqubo yokunyuswa kwenkqubo. Akukho slash ekhokelayo kuluhlu lweZFS-uqala ngegama lephuli kwaye emva koko umendo osuka kwidatha enye ukuya kwelandelayo. Umzekelo, pool/parent/child kwiseti yedatha enegama child phantsi kweseti yedatha yomzali parent kwidama elinegama loyilo pool.

Ngokungagqibekanga, indawo yokunyuka yesethi yedatha iyakulingana negama layo kuluhlu lwe ZFS, kunye nesilayidi esikhokelayo- ichibi elinegama. pool inyuswe njenge /pool, iseti yedatha parent inyuswe ngaphakathi /pool/parent, kunye neseti yedatha yomntwana child inyuswe ngaphakathi /pool/parent/child. Nangona kunjalo, indawo yokuxhoma yenkqubo yesethi yedatha ingatshintshwa.

Ukuba sibonisa zfs set mountpoint=/lol pool/parent/child, emva koko iseti yedatha pool/parent/child ifakwe kwisixokelelwano njenge /lol.

Ukongeza kwiiseti zedatha, kufuneka sikhankanye imiqulu (zvols). Umthamo uphantse wafana neseti yedatha, ngaphandle kokuba eneneni ayinayo inkqubo yefayile-sisixhobo nje sokuthintela. Unokwenza umzekelo ukudala zvol Ngegama mypool/myzvol, emva koko uyifomethe ngendlela yefayile ye-ext4, kwaye emva koko unyuse indlela yefayile- ngoku unenkqubo yefayile ye-ext4, kodwa ngazo zonke iimpawu zokhuseleko ze-ZFS! Oku kunokubonakala kubudenge kwikhompyuter enye, kodwa kunengqiqo ngakumbi njenge-backend xa uthumela ngaphandle isixhobo se-iSCSI.

Iibhloko

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Ifayile imelwe yibhloko enye okanye ngaphezulu. Ibhloko nganye igcinwa kwisixhobo esinye esinenyani. Ubungakanani bebhloko buqhele ukulingana nepharamitha ubungakanani berekhodi, kodwa inokuncitshiswa ibe 2^ashift, ukuba iqulethe imethadatha okanye ifayile encinci.

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Thina ngokwenene ngokwenene Asihleki ngesohlwayo esikhulu sokusebenza ukuba ubeka i-shift ephantsi kakhulu

Kwi-pool ye-ZFS, yonke idatha, kuquka i-metadata, igcinwe kwiibhloko. Ubungakanani bebhloko ephezulu kwiseti yedatha nganye ichazwe kwipropati recordsize (ubungakanani berekhodi). Ubungakanani berekhodi bunokutshintsha, kodwa oku akuyi kutshintsha ubungakanani okanye indawo yazo naziphi na iibhloko esele zibhaliwe kwiseti yedatha - ichaphazela kuphela iibhloko ezintsha njengoko zibhaliwe.

Ngaphandle kokuba kuchazwe ngenye indlela, ubungakanani obukhoyo obungagqibekanga bongeniso yi-128 KB. Luhlobo lorhwebo olunzima apho ukusebenza kungazukufezeka, kodwa akuyi kuba yoyikeka kwiimeko ezininzi. Recordsize inokumiselwa kulo naliphi na ixabiso ukusuka kwi-4K ukuya kwi-1M (kunye nezicwangciso ezongezelelweyo recordsize ungafaka nangakumbi, kodwa oku akufane kube ngumbono olungileyo).

Nayiphi na ibhloko ibhekisa kwidatha yefayile enye kuphela-awukwazi ukucudisa iifayile ezimbini ezahlukeneyo kwibhloko enye. Ifayile nganye inebloko enye okanye ngaphezulu, kuxhomekeke kubungakanani bayo. Ukuba ubungakanani befayile buncinci kunobungakanani berekhodi, iya kugcinwa kwibhloko encinci-umzekelo, ibhloko equlathe ifayile ye-2KiB iya kuhlala kuphela icandelo elinye le-4KiB kwidiski.

Ukuba ifayile inkulu ngokwaneleyo ukuze ifune iibhloko ezininzi, ngoko ke onke amangeno alo fayile aya kuba nobukhulu recordsize - kubandakanywa ukungena kokugqibela, inxalenye ephambili enokuthi ibe indawo engasetyenziswanga.

Imiqulu yezol ayinayo ipropati recordsize - endaweni yoko banepropati elinganayo volblocksize.

Amacandelo

Ibhloko yokugqibela, eyona nto isisiseko sokwakha licandelo. Yeyona yunithi incinci yomzimba enokubhalwa okanye ifundwe kwisixhobo sokusingatha. Kwiminyaka emininzi, iidiski ezininzi zisebenzisa amacandelo angama-512-byte. Kwezi ntsuku, uninzi lokuqhuba lulungiselelwe amacandelo e-4KiB, kwaye ezinye-ingakumbi ii-SSD-zilungiselelwe amacandelo e-8KiB okanye nangaphezulu.

I-ZFS inomsebenzi okuvumela ukuba usete ubungakanani becandelo ngesandla. Le propati ashift. Ngandlel’ ithile ebhidayo, i-ashift ngamandla amabini. Umzekelo, ashift=9 kuthetha ubungakanani becandelo 2^9, okanye 512 bytes.

I-ZFS ibuza inkqubo yokusebenza ngolwazi oluthe kratya malunga nesixhobo sebhloko ngasinye xa sidityaniswa kwi-vdev entsha, kwaye ngokwethiyori ibeka i-ashift ngokufanelekileyo ngokusekwe kolo lwazi. Ngelishwa, iidrive ezininzi zixoka malunga nobungakanani becandelo labo ukuze kugcinwe ukuhambelana neWindows XP (eyayingakwaziyo ukuqonda iidrives kunye nobukhulu becandelo).

Oku kuthetha ukuba kucetyiswa kakhulu ukuba umlawuli we-ZFS azi ubungakanani becandelo lokwenyani lwezixhobo zabo kunye nokusetwa ngesandla ashift. Ukuba i-ashift iseti incinci kakhulu, inani lemisebenzi yokufunda/yokubhala yonyuka ngokweastronomi. Ke, ukubhala "amacandelo" angama-512-byte kwicandelo lokwenyani le-4KiB kuthetha ukuba kufuneka ubhale "icandelo" lokuqala, emva koko ufunde icandelo le-4KiB, ulilungise "ngecandelo" le-512-byte yesibini, libhale kwakhona kwicandelo elitsha le-4KiB. , njalo njalo kwingeniso nganye.

Ehlabathini lokwenyani, isohlwayo esinjalo sichaphazela i-Samsung EVO SSDs, ekufuneka isebenze kuyo ashift=13, kodwa ezi SSDs zixoka malunga nobungakanani becandelo labo, kwaye ke ukungagqibeki kumiselwe ashift=9. Ngaphandle kokuba umlawuli wenkqubo onamava uyalutshintsha olu seto, le SSD iyasebenza Kancincana rhoqo magnetic HDD.

Ukuthelekisa, ngokuba mkhulu kakhulu ashift akukho sohlwayo. Akukho msebenzi wokwenyani ubethile, kwaye ukonyuka kwendawo engasetyenziswanga akunasiphelo (okanye zero ukuba ucinezelo luvuliwe). Ke ngoko, sicebisa ngamandla ukuba kwanazo iidrive ezisebenzisa amacandelo e-512-byte zifake ashift=12 okanye ashift=13ukujonga ngokuzithemba kwikamva.

Ipropathi ashift ifakwe kwisixhobo ngasinye senyani vdev, kwaye hayi eyephuli, njengoko abantu abaninzi becinga ngempazamo, kwaye ayitshintshi emva kofakelo. Ukuba ubethe ngempazamo ashift Xa usongeza i-vdev entsha echibini, ungcolise ngokungenakuguqulwa elo dama ngesixhobo esisezantsi kwaye, njengomthetho, akukho ndlela yimbi ngaphandle kokutshabalalisa ichibi kwaye uqale phantsi. Nokucima i-vdev akuzukukusindisa kwisetingi esaphukileyo ashift!

Kopisha-ukubhala indlela

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Ukuba inkqubo yefayile yesiqhelo kufuneka iphinde ibhale idatha, ilungisa ibhloko nganye apho ikhoyo

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Inkqubo yefayile yokukhuphela-ngokubhala ibhala inguqulelo entsha yebhloko kwaye emva koko ivule inguqulelo endala

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Kwi-abstract, ukuba asihoyi olona lungiselelo lweebhloko, "data comet" yethu yenza lula "idata worm" ehamba ukusuka ekhohlo ukuya ekunene ukunqumla imephu yendawo ekhoyo.

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Ngoku sinokufumana umbono olungileyo wokuba zisebenza njani ii-snapshots zokukhuphela-ngokubhala-ibhloko nganye inokuba yeyomfanekiso okhawulezayo, kwaye iya kuqhubeka de zonke ii-snapshots ezinxulumeneyo zitshatyalaliswe.

Inkqubo yeCopy on Write (CoW) sisiseko esisisiseko sento eyenza iZFS ibe yinkqubo emangalisayo. Ingqikelelo esisiseko ilula - ukuba ucela inkqubo yefayile yemveli ukuba itshintshe ifayile, iyakwenza kanye le uyicelileyo. Ukuba ucela inkqubo yefayile yokukhuphela-ngokubhala ukuba yenze into efanayo, iya kuthi "kulungile" -kodwa iya kuxoka kuwe.

Endaweni yoko, inkqubo yefayile yokukhuphela-ngokubhala ibhala uguqulelo olutsha lwebhloko elungisiweyo, kwaye emva koko ihlaziye imetadata yefayile ukukhulula ibhloko endala kwaye iyinxulumanise nebhloko entsha osanda kuyibhala.

Ukukhulula ibhloko endala kunye nokudibanisa entsha kwenziwa kumsebenzi omnye, ngoko ayinako ukuphazamiseka - ukuba uphinde umise amandla emva kokuba oku kwenzekile, unoguqulelo olutsha lwefayile, kwaye ukuba uphinda usete amandla ngaphambili, ngoko unayo. inguqulelo endala. Kuyo nayiphi na imeko, akuyi kubakho zingquzulwano kwisixokelelwano sefayile.

Ukukopisha-ngokubhala kwi-ZFS akwenzeki kuphela kwinqanaba lefayile yefayile, kodwa nakwinqanaba lolawulo lwediski. Oku kuthetha ukuba i-ZFS ayinakuchaphazeleka kwisithuba esimhlophe kwirekhodi (umngxuma kwi-RAID) - into eyenzekayo xa umcu urekhodwe ngokuyinxenye kuphela phambi kokuba inkqubo iwele, nomonakalo kuluhlu emva kokuqalisa ngokutsha. Apha umgca ubhalwe nge-atom, i-vdev ihlala ilandelelana, kwaye UBob ngumalume wakho..

ZIL: Ilog yenjongo yeZFS

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
I-ZFS ibamba ukubhala okuhambelanayo ngendlela ekhethekileyo- ikugcina okwethutyana kodwa kwangoko kwi-ZIL ngaphambi kokuba ibhale ngokusisigxina kunye nokubhala okungavumelaniyo.

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Ngokuqhelekileyo, idatha ebhalwe kwi-ZIL ayiphinda ifundwe kwakhona. Kodwa oku kunokwenzeka emva kokusilela kwenkqubo

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
I-SLOG, okanye isixhobo se-LOG yesibini, yinto ekhethekileyo - kwaye ikhethwa ngokukhawuleza kakhulu - vdev apho i-ZIL inokugcinwa ngokwahlukileyo kwindawo yokugcina.

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Emva kokuphazamiseka, yonke idatha emdaka kwi-ZIL iphinda iphindwe- kule meko, i-ZIL ikwi-SLOG, kulapho iphinda idlalwe khona.

Kukho iindidi ezimbini eziphambili zokubhala-synchronous (sync) kunye ne-asynchronous (async). Ngobuninzi bemisebenzi emininzi, uninzi lokubhala luyi-asynchronous-inkqubo yefayile ivumela ukuba idityaniswe kwaye ikhutshwe kwiibhetshi, ukunciphisa ukuhlukana kunye nokwandisa kakhulu ukuphuma.

Ukurekhodwa kwe-synchronous ngumcimbi owahluke ngokupheleleyo. Xa isicelo sicela ukubhala ngongqamaniso, ixelela inkqubo yefayile: "Kufuneka wenze oku kwimemori engaguquguqukiyo. ngoku, de kube ngoko akusekho nto ndinokuyenza.” Ke ngoko, ukubhalwa kwe-synchronous kufuneka kuzibophelele kwidisk kwangoko-kwaye ukuba oko kwandisa ukuqhekeka okanye kunciphisa ukuphuma, makube njalo.

I-ZFS iphatha ngokubhala ngokuhambelanayo ngokungafaniyo kuneenkqubo zefayile eziqhelekileyo-endaweni yokuyigungxula ngokukhawuleza kwisitoreji esiqhelekileyo, i-ZFS ibophelela kwindawo ekhethekileyo yokugcina ebizwa ngokuba yi-ZFS Intent Log, okanye i-ZIL. Iqhinga kukuba ezi rekhodi kwakhona hlala kwinkumbulo, udityaniswe kunye nezicelo eziqhelekileyo zokubhala ezingavumelaniyo, ukuba kamva zigungxulwe kwindawo yokugcina njengesiqhelo ngokupheleleyo ii-TXGs (Amaqela eNtengiselwano).

Ngexesha lokusebenza okuqhelekileyo, i-ZIL ibhaliwe kwaye ayisayi kuphinda ifundwe kwakhona. Xa, emva kwemizuzu embalwa, iirekhodi ezivela kwi-ZIL zizinikele kwisitoreji esiphambili kwii-TXG eziqhelekileyo ezivela kwi-RAM, zikhutshwe kwi-ZIL. Ixesha kuphela into efundwayo kwi-ZIL kuxa ungenisa ichibi.

Ukuba ukuphazamiseka kwe-ZFS kwenzeka-ukuphazamiseka kwenkqubo yokusebenza okanye ukuphuma kwamandla-ngelixa kukho idatha kwi-ZIL, loo datha iya kufundwa ngexesha lokungeniswa kwe-pool elandelayo (umzekelo, xa inkqubo yokuphahlazeka iqaliswa kwakhona). Nantoni na ekwi-ZIL iya kufundwa, idityaniswe kwii-TXGs, izibophelele kwivenkile enkulu, kwaye emva koko ikhutshelwe kwi-ZIL ngexesha lenkqubo yokungenisa elizweni.

Enye yeeklasi zomncedisi we-vdev ibizwa ngokuba yi-LOG okanye i-SLOG, isixhobo se-LOG yesibini. Inenjongo enye - ukubonelela ichibi kunye eyahlukileyo kwaye ekhethwayo ngokukhawuleza kakhulu, bhala-resistant vdev isixhobo ukugcina ZIL, endaweni yokugcina ZIL kwi engundoqo yokugcina vdev. I-ZIL ngokwayo iziphatha ngendlela efanayo kungakhathaliseki indawo yokugcina, kodwa ukuba i-vdev ene-LOG inomsebenzi wokubhala ophezulu kakhulu, i-synchronous ibhala iya kukhawuleza.

Ukongeza i-vdev nge-LOG kwi-pool ayisebenzi akakwazi phucula ukusebenza kokubhala okungahambelaniyo - nokuba unyanzela bonke ukubhala kwi-ZIL nge zfs set sync=always, baya kuqhubeka bedibaniswa nokugcinwa okuphambili kwi-TXG ngendlela efanayo kunye nangesantya esifanayo nangaphandle kwelogi. Ukuphuculwa kokusebenza ngokuthe ngqo kukuphela kwe-synchronous ukubhala latency (njengoko izantya eziphezulu zelogi zenza imisebenzi ngokukhawuleza sync).

Nangona kunjalo, kwindawo esele ifuna ukubhalwa kwe-synchronous okuninzi, i-vdev LOG inokukhawulezisa ngokungathanga ngqo ukubhalwa kwe-asynchronous kunye nokufundwa okungafakwanga. Ukukhuphela iirekhodi ze-ZIL kwi-LOG ehlukeneyo ye-vdev kuthetha ukungavisisani okuncinci kwe-IOPS kwindawo yokugcina ephambili, ephucula ukusebenza kwakho konke ukufunda nokubhala ukuya kwinqanaba elithile.

Izifinyezo

Indlela yokukhuphela-ngokubhala kwakhona isisiseko esiyimfuneko kwi-ZFS ye-atomic snapshots kunye nokuphindaphinda okungafaniyo. Inkqubo yefayile esebenzayo inomthi wesalathisi ophawula onke amangeno anedatha yangoku-xa uthatha umfanekiso okhawulezayo, wenza ngokulula ikopi yaloo mthi wesalathisi.

Xa irekhodi libhalwe ngaphezulu kwisixokelelwano sefayile esebenzayo, iZFS ibhala kuqala inguqulelo entsha yebhloko kwindawo engasetyenziswanga. Emva koko ikhupha uguqulelo oludala lwebhloko kwinkqubo yangoku yefayile. Kodwa ukuba ezinye iireferensi zesnapshot ibhloko endala, ayitshintshi. Ibhloko endala ayizukubuyiselwa njengendawo ekhululekileyo de kube zonke izifinyezo ezibonisa loo block zitshatyalalisiwe!

Ukuphindaphinda

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Ilayibrari yam yeSteam ngo-2015 yayiyi-158 GiB kwaye iquka iifayile ze-126. Oku kusondele kakhulu kwimeko efanelekileyo ye-rsync - ukuphindaphinda kwe-ZFS kwinethiwekhi "kuphela" ngama-927% ngokukhawuleza.

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Kwinethiwekhi efanayo, ukuphindaphinda i-40GB enye Windows 7 ifayile yomfanekiso womatshini wenyani libali elahluke ngokupheleleyo. Ukuphindaphinda kwe-ZFS ngamaxesha angama-289 ngokukhawuleza kune-rsync-okanye "kuphela" amaxesha angama-161 ngokukhawuleza ukuba unesavvy ngokwaneleyo ukubiza i-rsync nge--inplace switch.

Iziseko zeZFS: Ukugcinwa kunye nokusebenza
Xa umfanekiso weVM ulinganisa, imiba ye-rsync isikali nayo. Ubungakanani be-1,9 TiB abukho bukhulu kangako kumfanekiso we-VM yanamhlanje- kodwa inkulu ngokwaneleyo ukuba ukuphindaphinda kwe-ZFS kuphindwe kayi-1148 ngokukhawuleza kune-rsync, kunye ne-rsync --inplace argument.

Nje ukuba uqonde indlela i-snapshots esebenza ngayo, kuya kuba lula ukuqonda undoqo wokuphindaphinda. Kuba i-snapshot ingumthi wezalathisi zerekhodi, kuyalandela ukuba siyakwenza zfs send i-snapshot, emva koko sithumela lo mthi kunye nazo zonke iirekhodi ezinxulumene nawo. Xa sidlula le zfs send в zfs receive kwinto ekujoliswe kuyo, ibhala zombini imixholo eyiyo yebhloko kunye nomthi wezalathisi ezibhekiselele kwiibhloko kwiseti yedatha ekujoliswe kuyo.

Izinto ziba nomdla ngakumbi kwisibini zfs send. Ngoku sineenkqubo ezimbini, nganye iqulethe poolname/datasetname@1, kwaye uthatha umfanekiso omtsha poolname/datasetname@2. Ke ngoko, kwiqula lomthombo onalo datasetname@1 и datasetname@2, kwaye kwi-pool ekujoliswe kuyo kukho i-snapshot yokuqala kuphela datasetname@1.

Ngenxa yokuba phakathi komthombo kunye nethagethi sine-snapshot eqhelekileyo datasetname@1, singayenza ngokwandayo zfs send phezu kwayo. Xa sixela inkqubo zfs send -i poolname/datasetname@1 poolname/datasetname@2, ithelekisa imithi emibini yokukhomba. Naziphi na izikhombisi ezikhoyo kuphela kwi @2, ngokucacileyo bhekisa kwiibhloko ezintsha - ke siyakufuna imixholo yezo blocks.

Kwinkqubo ekude, kusetyenzwa ngokunyuka send nje elula. Okokuqala sibhala onke amangeno amatsha afakwe kumsinga send, kwaye wongeze izikhombisi kwezi bhloko. Voila, sinayo @2 kwinkqubo entsha!

I-ZFS i-asynchronous eyongezayo yophindaphindo luphuculo olukhulu kwiindlela zangaphambili ezingasekwe kwi-snapshot njenge-rsync. Kuzo zombini iimeko, idatha etshintshiweyo kuphela idluliswa - kodwa i-rsync kufuneka kuqala funda ukusuka kwidiski yonke idatha kumacala omabini ukujonga isibalo kwaye uyithelekise. Ngokwahlukileyo, ukuphindaphinda kwe-ZFS ayifundi nantoni na ngaphandle kwemithi yesalathisi-kunye nazo naziphi na iibhloko ezingaboniswanga kwi-snapshot iyonke.

Uxinzelelo olwakhelwe ngaphakathi

Indlela yokukhuphela-ngokubhala kwakhona yenza lula inkqubo yocinezelo eyakhelwe-ngaphakathi. Kwinkqubo yefayile yemveli, ukucinezela kuyingxaki-zombini inguqulelo endala kunye nenguqulelo entsha yedatha etshintshileyo ihlala kwindawo enye.

Ukuba ucinga iqhekeza ledatha embindini wefayile eqala ubomi bayo njenge megabyte yeqanda ukusuka kwi 0x00000000 njalo njalo, kulula kakhulu ukuyicinezela ukuya kwicandelo elinye kwidiski. Kodwa kwenzeka ntoni ukuba sibuyisela le megabyte yeqanda nge-megabyte yedatha engacinezelekiyo, efana neJPEG okanye ingxolo yepseudo-random? Ngokukhawuleza, loo megabyte yedatha ayifuni enye, kodwa i-256 4KiB amacandelo, kwaye icandelo elinye kuphela ligcinwe kuloo ndawo yediski.

I-ZFS ayinayo le ngxaki kuba ukubhala okulungisiweyo kuhlala kubhalwe kwindawo engasetyenziswanga- ibhloko yokuqala ithatha kuphela icandelo le-4 KB, kodwa ukubhala okutsha kuya kuthatha i-256, kodwa ayisiyongxaki leyo- ichunk esandul' ukuguqulwa " middle" yefayile ibiya kubhalelwa kwindawo engasetyenziswanga nokuba ubungakanani bayo butshintshile okanye hayi, ke le yimeko eqhelekileyo yeZFS.

Uxinzelelo olwakhelwe ngaphakathi lwe-ZFS lukhutshaziwe ngokungagqibekanga, kwaye inkqubo ibonelela nge-algorithms epluggable-okwangoku ibandakanya i-LZ4, i-gzip (1-9), i-LZJB, kunye ne-ZLE.

  • LZ4 yialgorithm yokusasaza enikezela ngoxinzelelo olukhawulezayo kunye noxinzelelo kunye neenzuzo zokusebenza kuninzi lwamatyala osetyenziso-kwanakwiCPU ezicothayo.
  • GZIP yi-algorithm ehloniphekileyo bonke abasebenzisi be-Unix abayaziyo nabayithandayo. Inokuthi iphunyezwe ngamanqanaba oxinzelelo lwe-1-9, kunye nokunyuka komlinganiselo woxinzelelo kunye nokusetyenziswa kwe-CPU njengoko usondela kwinqanaba le-9. I-algorithm ifaneleka kakuhle kuzo zonke iitekisi (okanye ezinye iimeko ezixinzelelekileyo) zokusetyenziswa, kodwa zihlala zibangela imiba ye-CPU ngenye indlela. ngononophelo, ngakumbi kumanqanaba aphezulu.
  • LZJB -i-algorithm yoqobo kwi-ZFS. Iphelelwe lixesha kwaye akufunekanga iphinde isetyenziswe, i-LZ4 iphezulu ngandlela zonke.
  • KABI -Ukufakwa kweekhowudi kwinqanaba elingu-zero, iNqanaba le-Zero leekhowudi. Ayichukumisi idatha eqhelekileyo konke konke, kodwa icinezela ulandelelwano olukhulu lweero. Iluncedo kwiiseti zedatha ezinganyangekiyo ngokupheleleyo (ezifana neJPEG, MP4 okanye ezinye iifomathi esele zicinezelwe) njengoko ingayihoyi idatha engabonakaliyo kodwa icinezela indawo engasetyenziswanga kwiirekhodi ezibangelwayo.

Sincoma ucinezelo lwe-LZ4 phantse kuzo zonke iimeko zokusetyenziswa; isohlwayo sokusebenza xa ujongene nedatha engabonakaliyo incinci kakhulu, kwaye ukukhula ukusebenza kwedatha eqhelekileyo kubalulekile. Ukukopa umfanekiso womatshini wenyani wofakelo olutsha lwenkqubo yokusebenza yeWindows (i-OS esanda kufakwa, akukho datha ngaphakathi okwangoku) kunye compression=lz4 iphumelele ngama-27% ngokukhawuleza kunoko compression=nonengaphakathi olu vavanyo ukususela ngo-2015.

I-ARC-I-Adaptive Replacement Cache

I-ZFS kuphela kwenkqubo yefayile yanamhlanje esiyaziyo esebenzisa eyakhe indlela yokufunda yokugcina indawo, endaweni yokuxhomekeka kugcino lwephepha lenkqubo yokusebenza ukugcina iikopi zeebhloko ezisanda kufundwa kwi-RAM.

Nangona i-cache yendalo ingenazo iingxaki-i-ZFS ayinakuphendula kwizicelo zokwabiwa kwememori entsha ngokukhawuleza njenge-kernel, ngoko umnxeba omtsha. malloc() Unikezelo lwenkumbulo lunokusilela ukuba lufuna i-RAM ngoku ekwi-ARC. Kodwa kukho izizathu ezilungileyo zokusebenzisa i-cache yakho, ubuncinci okwangoku.

Zonke iinkqubo ezisebenzayo zanamhlanje, ezibandakanya iMacOS, iWindows, iLinux kunye ne-BSD, sebenzisa i-LRU (ekutsha nje iSetyenziselwe) i-algorithm ukuphumeza i-cache yephepha. Le yialgorithm yamandulo etyhala ibhloko egcinwe kwindawo efihlakeleyo "phezulu kumgca" emva kokufunda ngalunye kwaye ityhale iibhloko "ezantsi kumgca" njengoko kufuneka ukongeza uphoso lwecache entsha (iibhloko ebekufanele ukuba zifundwe kwidiski kunokuba ukusuka kwi-cache) ukuya phezulu.

Ngokuqhelekileyo i-algorithm isebenza kakuhle, kodwa kwiinkqubo ezineesethi ezinkulu zedatha yokusebenza, i-LRU ikhokelela ngokulula ekubhubhiseni-ukukhupha iibhloko ezifunekayo rhoqo ukwenza indawo yeebhloko ezingasayi kuphinda zifundwe kwi-cache kwakhona.

ARC yi-algorithm encinci yokungenangqondo enokuthi ithathwe njenge "weighted" cache. Ngalo lonke ixesha ibhloko egciniweyo ifundwa, iba “nzima” kancinci kwaye iba nzima ukuyikhupha - kwaye nasemva kokuba ibhloko ikhutshiwe. ilandelwe ngexesha elithile. Ibhloko ekhutshiweyo kodwa emva koko kufuneka ifundwe kwakhona kwi-cache nayo iya kuba nzima.

Isiphelo sayo yonke le nto i-cache ene-hit ratio ephezulu kakhulu-umlinganiselo phakathi kwe-cache hits (ufunda kwi-cache) kwaye uyaphosa (ufunda kwidiski). Eli libalo-manani elibaluleke kakhulu - ayikuphela nje ukuba i-cache iyazibetha ngokwazo ii-odolo zobungakanani obukhawulezayo, ukuphoswa kwe-cache nako kungabonelelwa ngokukhawuleza, kuba ukubetha kwe-cache kukho, izicelo ezimbalwa ezihambelanayo kwidisk kunye nokuthoba i-latency kwabo bashiyekileyo bephosile. leyo kufuneka inikezelwe nge diski.

isiphelo

Ngoku sele sigubungele i-semantics esisiseko ye-ZFS-indlela ikopi-ukubhala esebenza ngayo, kunye nobudlelwane phakathi kwamachibi okugcina, izixhobo ezibonakalayo, iibhloko, amacandelo, kunye neefayile-sikulungele ukuxoxa ngomsebenzi wehlabathi lokwenyani kunye. amanani okwenene.

Kwicandelo elilandelayo, siza kujonga eyona ntsebenzo ye-mirrored vdev kunye ne-RAIDz pools, xa kuthelekiswa enye kwenye, kwaye kwakhona xa kuthelekiswa ne-Linux kernel RAID topology esithe sayivavanya. ngaphambili.

Ekuqaleni besifuna ukugubungela nje iziseko-i-ZFS topologies ngokwabo-kodwa emva koko enjalo Siya kuba sikulungele ukuthetha malunga noqwalaselo oluqhubela phambili ngakumbi kunye nohlengahlengiso lwe-ZFS, kubandakanywa ukusetyenziswa kweentlobo ze-vdev ezincedisayo ezifana ne-L2ARC, i-SLOG kunye noLwabiwo oluKhethekileyo.

umthombo: www.habr.com

Yongeza izimvo