Udliwano-ndlebe lwesibini no-Eduard Shishkin, umphuhlisi weReiser4 FS

Udliwano-ndlebe lwesibini kunye no-Eduard Shishkin, umphuhlisi wenkqubo yefayile ye-Reiser4, ishicilelwe.

Ukuqala, nceda ukhumbuze abafundi apho kwaye usebenzela bani.

Ndisebenza njengoMyili oyiNqununu yokuGcina kwiHuawei Technologies, kwiziko loPhando lwaseJamani. Kwisebe le-virtualization ndijongene nemiba eyahlukeneyo yokugcina idatha. Imisebenzi yam ayinxulumananga nenkqubo ethile yokusebenza.

Ngaba ngoku uyazibophelela kwisebe le-kernel engundoqo?

Kunqabile kakhulu, kwaye kuphela ukuba umqeshi wam uyayifuna. Ixesha lokugqibela lalimalunga neminyaka emithathu edlulileyo, ndathumela ama-patches ukunyusa i-throughput yokugcina okwabelwana ngayo kwimikhosi usebenzisa i-9p protocol (elinye igama le shishini yiVirtFS). Inqaku elibalulekileyo kufuneka lenziwe apha: nangona bendisebenza neLinux ixesha elide, andizange ndibe ngumlandeli wayo, oko kukuthi, "ndiphefumla ngokulinganayo," njengayo yonke enye into. Ngokukodwa, ukuba ndiqaphela isiphene, ndiyakwazi ukusikhomba kanye. Kwaye ukuze emva koko ulandele umntu kwaye ubacenge - oku akuyi kwenzeka.

Ndikhumbula ixesha elidlulileyo, kwiminyaka elishumi eyadlulayo, wawugxeka kakhulu isimbo sophuhliso lwe-kernel. Ngokwembono yakho (okanye mhlawumbi yequmrhu), ngaba kukho nantoni na etshintshileyo, ngaba uluntu luye lwaphendula ngakumbi okanye akunjalo? Ukuba akunjalo, ucinga ukuba ngubani obekek’ ityala?

Andizange ndibone naluphi na utshintsho olungcono. Ingxaki ephambili yoluntu kukutshintshwa kwenzululwazi ngobuchwepheshe bezopolitiko, ubudlelwane bomntu, uluvo oluninzi, i-populism, iingcebiso ezivela "kumazwi angaphakathi," ukuthobelana okubolileyo, nantoni na ngaphandle kwesayensi. Inzululwazi yeKhompyutha, nantoni na enokuthi ithethwe, okokuqala kwaye iphambili isayensi echanekileyo. Kwaye ukuba umntu uqala ukubhengeza ixabiso lakhe le-2x2, eyahlukileyo kwi-4, phantsi kwe "Linux way" iflegi, okanye phantsi kwenye iflegi, oku akunakufane kuzise nantoni na ngaphandle kokwenzakala.

Zonke iingxaki ngokuyintloko zibangelwa kukungabi nabuchule nokungafundi kwabo benza izigqibo. Ukuba umphathi akakwazi, akakwazi ukwenza injongo, isigqibo esaneleyo. Ukuba naye akakhuliswanga, akakwazi ukufumana ingcali enobuchule eya kumnika iingcebiso ezifanelekileyo. Ngamathuba aphezulu, ukhetho luya kuwela kwi-scammer ethi "izinto ezibonakala ngathi zilungile." Imekobume yorhwaphilizo isoloko ikhula malunga neenkokeli ezingakwaziyo ukuzenzela nto. Ngaphezu koko, imbali ayizi nto ngaphandle koku, kwaye uluntu luqinisekisa ngokucacileyo oku.

Uyivavanya njani inkqubela phambili kuphuhliso lwe-Btrfs? Ngaba le FS yaziphelisa izifo zabantwana? Uzibeka njani kuwe - njengeFS "yekhaya" okanye ukusetyenziswa kweshishini?

Andizange ndiyilahle. Yonke into endayikhankanya kwiminyaka eyi-11 eyadlulayo isasebenza nanamhlanje. Enye yeengxaki nge-Btrfs eyenza ukuba ingafaneleki kwiimfuno ezinzulu yingxaki yendawo yamahhala. Andithethi nokuba umsebenzisi uceliwe ukuba abaleke evenkileni kwidiski entsha kwiimeko apho nayiphi na enye iFS ingabonisa indawo eninzi yasimahla kwisahlulelo. Ukungakwazi ukugqiba umsebenzi kumthamo onengqiqo ngenxa yokungabikho kwendawo ekhululekile nayo akuyona into embi kakhulu. Eyona nto imbi kakhulu kukuba umsebenzisi ongenalungelo unokuhlala edlula nayiphi na i-quotas yediski, avimbe wonke umntu indawo yasimahla ngexesha elifutshane.

Ijongeka ngolu hlobo (ivavanyelwe i-Linux kernel 5.12). Iskripthi siqaliswe kwinkqubo esanda kufakwa, ethi kwi-loop idale iifayile ezinamagama athile kulawulo lwasekhaya, ibhale idatha kubo kwii-offsets ezithile, kwaye emva koko izicime ezi fayile. Emva komzuzu wokuqhuba esi script, akukho nto ingaqhelekanga eyenzekayo. Emva kwemizuzu emihlanu, inxalenye yendawo ehlala kuyo iyanda. Emva kweeyure ezimbini ukuya kwezintathu zifikelela kwi-50% (ngexabiso lokuqala le-15%). Kwaye emva kweeyure ezintlanu okanye ezintandathu zomsebenzi, iskripthi siphazamiseka ngempazamo "akukho ndawo yasimahla kwisahlulelo." Emva koku, awusakwazi ukubhala nokuba ifayile ye-4K kwisahlulelo sakho.

Imeko enomdla iyenzeka: uphelile ukubhala nantoni na kwisahlulo, kwaye yonke indawo ekhululekile (malunga ne-85%) yanyamalala kwenye indawo. Uhlalutyo lwecandelo eliphantsi kohlaselo olunjalo luya kutyhila iindawo ezininzi zemithi eziqulathe nje into enye (into exhotyiswe ngesitshixo), iibyte ezininzi ngobukhulu. Oko kukuthi, umxholo owawuhlala ngaphambili kwi-15% yendawo yedisk wajika "utyhutywe" ngokulinganayo phezu kwesahlulelo sonke ukuze kungabikho ndawo yokubhala ifayile entsha, kuba isitshixo sayo sikhulu kunabo bonke abakhoyo, kwaye ikhululekile. iibhloko kwisahlulelo ziphelile.

Ngaphezu koko, konke oku sele kusenzeka kuqwalaselo olusisiseko lwe-Btrfs (ngaphandle kwe-snapshots, i-subvolumes, njl.), kwaye akunamsebenzi ukuba uthatha isigqibo sokugcina imizimba yefayile kuloo FS (njenge "amaqhekeza" emthini, okanye njengemilinganiselo. yeebhloko ezingalungiswanga) - isiphelo siya kufana.

Awunakukwazi ukubeka ezinye iinkqubo zefayile ezinyukayo kuhlaselo olunjalo (nokuba bakuxelela ntoni na). Ndachaza unobangela wengxaki kwakudala: oku kukugqwetheka okupheleleyo kwembono ye-B-tree kwi-Btrfs, eyenza kube nokwenzeka ukuba izenzekele ngokuzenzekelayo okanye ngenjongo. Ngokukodwa, phantsi kwemithwalo ethile, isixokelelwano sakho sefayile iya kuqhubeka "iqhekeka" ngexesha lokusebenza ngokwayo, ngaphandle koncedo lwangaphandle. Kucacile ukuba zonke iintlobo "zokucinezela" iinkqubo zangasemva ziya kugcina usuku kuphela kwiidesktops ezizimeleyo.

Kwiiseva ezidibeneyo, umhlaseli uya kuhlala ekwazi "ukuhamba phambili" kubo. Umlawuli wenkqubo akayi kukwazi nokufumanisa ukuba ngubani kanye kanye umxhaphazileyo. Indlela ekhawulezayo yokulungisa le ngxaki kwi-Btrfs kukubuyisela isakhiwo se-B-tree eqhelekileyo, okt. ukuyila ngokutsha ifomathi yediski kunye nokuphinda ubhale iinxalenye ezibalulekileyo zekhowudi ye-Btrfs. Oku kuyakuthatha iminyaka eyi-8-10, kubandakanywa nokulungiswa kweempazamo, ngaphandle kokuba abaphuhlisi balandele ngokungqongqo amanqaku okuqala kwii-algorithms ezifanelekileyo kunye nezakhiwo zedatha, kwaye abazange badlale umdlalo "wefowuni eyaphukileyo", njengoko kuqhelekile (kwaye kukhuthazwa) kwi "Linux. indlela".

Apha kwakhona kufuneka songeze ixesha elifunekayo ukuze abaphuhlisi bakuqonde konke oku. Kulapho kuba nzima khona. Phofu ke, iminyaka eli-10 yayinganelanga ukuba baqonde. Ewe, kude kube ngoko awukwazi ukulindela ummangaliso. Ayizukwenzeka ngendlela yokhetho lokunyuswa "ebe mna nawe besingazi ngayo," okanye ngendlela yesiqwenga esi "yinto nje yeshishini" ukuyilungiselela. Kwimeko nganye "yokulungisa" ngokukhawuleza ndiya kubonisa imeko entsha yokwehla. Imithi ye-B yenye yezihloko endizithandayo, kwaye kufuneka nditsho ukuba ezi zakhiwo azinyamezeli inkululeko kunye nazo!

Ndizenza njani iiBtrfs kum? Njengento engenako ukubizwa ngokuba yinkqubo yefayile, singasathethi ke ngokusetyenziswa. Ngenxa yokuba, ngenkcazo, i-FS yinkqubo engaphantsi kwe-OS ejongene nolawulo olusebenzayo lwe "disk space" yomthombo, esingayiboniyo kwimeko ye-Btrfs. Ewe, khawufane ucinge ukuba uzile evenkileni uzothenga iwotshi ukuze ungafiki emva kwexesha emsebenzini, kwaye endaweni yewotshi bakuthengisele igrill yombane enesibali-xesha kangangemizuzu engama-30. Ke, imeko nge-Btrfs imbi ngakumbi.

Ukujonga kuluhlu lokuposa, ndihlala ndidibana nengxelo yokuba ukulawula ngokukuko isithuba sedisk akusasebenzi ngenxa yokungabi naxabiso kwedrive. Bubuvuvu obupheleleyo. Ngaphandle komphathi wediski osebenzayo, i-OS iya kuba sesichengeni kwaye ingasebenziseki. Nokuba zingakanani na umthamo weediski kumatshini wakho.

Ndingathanda ukucela izimvo malunga nokuyeka inkxaso ye-Btrfs kwi-RHEL.

Akukho nto ikhethekileyo yokuphawula apha, yonke into icacile. Kwakhona babenayo “njengembonakalo yetekhnoloji”. Ngoko, andizange ndihambe ngolu "mboniso" kakhulu. Ungavumeli le leyibhile ixhonywe ngonaphakade! Kodwa abanako ukuphehlelela imveliso engalunganga yoyilo ngenkxaso epheleleyo. I-RHEL lishishini, oko kukuthi, ubudlelwane obumiselweyo borhwebo nemali. I-Red Hat ayinakuxhaphaza abasebenzisi njengoko besenza kuluhlu lokuposa lwe-Btrfs. Khawucinge nje imeko: umxhasi ohlawule imali yakhe eyimali enzima kwidiski kunye nawe ngenkxaso, ufuna ukuqonda ukuba indawo yakhe yediski yahamba phi emva kokuba engazange abhale phantsi. Womphendula uthini na kule nto?

Ngokubhekele phaya. Abathengi be-Red Hat baquka iibhanki ezinkulu ezaziwayo kunye notshintshiselwano. Khawucinge ukuba bekuya kwenzeka ntoni ukuba bebephantsi kohlaselo lwe-DoS ngokusekelwe kubuthathaka obukhankanyiweyo kwii-Btrfs. Ucinga ukuba ngubani onoxanduva koku? Kwabo sele beza kukhomba umnwe wabo kumgca welayisensi ye-GPL, apho kubhaliwe ukuba umbhali akanalo uxanduva, ndiya kuthi ngokukhawuleza: "yifihle!" I-Red Hat iya kuphendula, kwaye ngendlela enokuthi ingabonakali ngokwaneleyo! Kodwa ndiyazi ukuba i-Red Hat ayijongani nolu hlobo lwengxaki, ngenxa yeqela labo elomeleleyo leenjineli ze-QA endithe ndafumana ithuba lokusebenza ngokusondeleyo ngexesha lam.

Kutheni ezinye iinkampani ziqhubeka nokuxhasa ii-Btrfs kwiimveliso zeshishini labo?

Nceda uqaphele ukuba isimaphambili "ishishini" kwigama lemveliso ayithethi kakhulu. Ishishini ngumlinganiselo woxanduva olufakwe kubudlelwane bekhontrakthi nomxhasi. Ndiyazi ngeshishini elinye kuphela elisekwe kwi-GNU/Linux - RHEL. Yonke enye into, ngokwembono yam, iboniswa kuphela njengeshishini, kodwa ayikho enye. Kwaye ekugqibeleni, ukuba kukho imfuno yento ethile, ngoko kuya kuhlala kukho ukubonelela (kwimeko yethu, oku kukhankanywe "inkxaso"). Kukho imfuno yayo yonke into ngokupheleleyo, kubandakanywa. kunye nesoftware engasebenzisekiyo. Indlela imfuno elolo hlobo yenziwe ngayo kwaye ngubani oyiphembelelayo sesinye isihloko.

Ke, andizukutsibela kuzo naziphi na izigqibo emva kokuba i-Facebook inamarhe okuba ithumele i-Btrfs kwiiseva zayo. Ngaphezu koko, ndingacebisa ngokugcina iidilesi zezo seva ziyimfihlo ngenxa yezizathu ezingentla.

Kutheni kwenziwe umzamo ongaka wokucoca ikhowudi ye-XFS mva nje? Emva kwayo yonke loo nto, ekuqaleni le yinkqubo yefayile yomntu wesithathu, kwaye i-ext4 izinzile ixesha elide kwaye inokuqhubekeka kwiinguqulelo zangaphambili ezizinzile ngokulinganayo. Ngowuphi umdla enawo iRed Hat kwi-XFS? Ngaba kunengqiqo ukuphuhlisa iinkqubo ezimbini zeefayile ezifanayo ngenjongo - ext4 kunye ne-XFS?

Andikhumbuli ukuba yintoni eyayikhuthaza oku. Kusenokwenzeka ukuba inyathelo lokuqala livela kubathengi be-Red Hat. Ndiyakhumbula ukuba uphando olulolu hlobo lwenziwa: kwezinye iinkqubo zefayile ukusuka phezulu, inani elikhulu lezinto zenziwa kwiidrive eziphezulu zesizukulwana esitsha. Ngokweziphumo, i-XFS iziphathe ngcono kune-ext4. Ngoko baqalisa ukuyikhuthaza njengeyona ithembisayo. Phofu andizujonga kwanto ebhadlileyo apha.

Kum, kufana nokuba batshintshe i-awl ngesepha. Akukho ndawo ekuphuhliseni i-ext4 kunye ne-XFS. Zombini ngokunxuseneyo kwaye nayiphi na kuzo ukukhetha kuzo. Akukho nto ilungileyo iya kuza kule nto. Nangona, kwindalo kukho iimeko ezininzi xa kukho amandla amaninzi okukhula, kodwa akukho ndawo yokukhula. Kule meko, kuvela ukukhula okutsha okungaqhelekanga, apho wonke umntu ekhomba umnwe ("Owu, jonga, into ongayi kuyibona kobu bomi!").

Ngaba ucinga ukuba umba wokwaphulwa kongqimba uye wasonjululwa (ngengqiqo embi) ngokufika kwemisebenzi yofihlo kwi-ext4, F2FS (singasathethi ke nge-RAID kwi-Btrfs)?

Ngokubanzi, ukungeniswa kwawo nawaphi na amanqanaba kunye nokwenza isigqibo malunga nokungaphulwa kwawo ngokuqhelekileyo ngumbandela womgaqo-nkqubo, kwaye andizimisele ukuphawula nantoni na apha. Imiba yenjongo yokuphulwa komgangatho ayinamdla omncinci nakubani na, kodwa sinokuqwalasela ezinye zazo zisebenzisa umzekelo wokuphulwa "ukusuka phezulu," oko kukuthi, ukuphunyezwa kwi-FS yokusebenza esele ikhona kwi-block layer. "Ukwaphulwa" okunjalo kuthetheleleka ngaphandle kwezinto ezinqabileyo kuphela. Kwimeko nganye enjalo, kufuneka uqale ungqine izinto ezimbini: ukuba ifuneka ngokwenene, kwaye ukuyilwa kwenkqubo akuyi kwenzakala ngokwenza oko.

Ngokomzekelo, i-mirroring, eye ngokuqhelekileyo ibe ngumsebenzi webhloko yebhloko, kunengqiqo ukuphumeza kwinqanaba lenkqubo yefayile. Ngezizathu ezahlukeneyo. Ngokomzekelo, ukonakala kwedatha "kuthe cwaka" (i-bit rot) kwenzeka kwiidiski zokuqhuba. Oku kuxa isixhobo sisebenza ngokufanelekileyo, kodwa idatha yebhloko yonakaliswe ngokungalindelekanga phantsi kwempembelelo ye-gamma quantum enzima ekhutshwe yi-quasar ekude, njl. Eyona nto imbi kakhulu ukuba le bloko ijika ibe yinkqubo ye-FS block (i-superblock, ibhloko ye-bitmap, indawo yokugcina umthi, njl.), kuba ngokuqinisekileyo oku kuya kukhokelela kwi-kernel panic.

Nceda uqaphele ukuba izibuko ezinikezelwa yi-block layer (ebizwa ngokuba yi-RAID 1) ayiyi kukusindisa kule ngxaki. Ewe, ngokwenene: umntu kufuneka ajonge iitshekhi kwaye afunde ikopi xa usilela? Ukongeza, kunengqiqo ukujonga nje yonke into, kodwa kuphela imethadatha. Ezinye iinkcukacha ezibalulekileyo (umzekelo, iifayile eziphunyeziweyo zezicelo ezibalulekileyo) zinokugcinwa njengemethadatha. Kule meko, bafumana iziqinisekiso ezifanayo zokhuseleko. Iyavakala ukuphathisa ukhuseleko lwedatha eseleyo kwezinye ii-subsystems (mhlawumbi nakwizicelo zabasebenzisi) - sinikeze zonke iimeko eziyimfuneko zoku.

Izibuko ezinjalo "zezoqoqosho" zinelungelo lokuba khona, kwaye ziyakwazi ukulungelelaniswa ngokufanelekileyo kwinqanaba lefayile yefayile. Kungenjalo, ukunyhashwa kwenkqubo kuhlanganisa inkqubo engaphantsi enekhowudi ephindiweyo ngenxa yeenzuzo ezithile ezincinci. Umzekelo obalaseleyo wale nto kukuphunyezwa kwe-RAID-5 usebenzisa iFS. Izisombululo ezinjalo (ezakhe iRAID / LVM kwisixokelelwano sefayile) zibulala ezokugqibela ngokwemigaqo yezokwakha. Kufuneka kuqatshelwe apha ukuba ukunyhashwa kweengqikelelo “kubekwa kumjelo” ziindidi ezahlukeneyo zorhwaphilizo lwentengiso. Xa kungekho naziphi na izimvo, ukusebenza ekudala kuphunyeziwe kumanqanaba angabamelwane yongezwa kwiinkqubo ezisezantsi, oku kunikezelwa njengophawu olutsha oluluncedo kakhulu kwaye lutyhalwa ngenkuthalo.

U-Reiser4 utyholwa ngokuphula amanqanaba "asuka ngaphantsi". Ngokusekelwe kwinto yokuba inkqubo yefayile ayikho i-monolithic, njengazo zonke ezinye, kodwa i-modular, ingqikelelo engaqinisekiswanga yenziwe ukuba yenza oko inqanaba elingentla (VFS) kufuneka liyenze.

Ngaba kunokwenzeka ukuthetha ngokufa kweReiserFS v3.6 kwaye, umzekelo, iJFS? Kutshanje baye bafumana phantse akukho ngqalelo engundoqo. Ngaba ziphelelwe lixesha?

Apha kufuneka sichaze ukuba ukufa kwemveliso yesoftware kuthetha ntoni. Ngakolunye uhlangothi, zisetyenziswe ngempumelelo (yiloo nto zidalwe ngayo, emva kwayo yonke into), oko kuthetha ukuba baphila. Ngakolunye uhlangothi, andinakukwazi ukuthetha nge-JFS (Andazi kakhulu), kodwa i-ReiserFS (v3) inzima kakhulu ukuziqhelanisa neendlela ezintsha (ezivavanywa ngokusebenza). Oku kuthetha ukuba kwixesha elizayo abaphuhlisi baya kunikela ingqalelo kungekhona kuyo, kodwa kulabo kulula ukuziqhelanisa. Ukusuka kweli cala kuvela ukuba, yeha, ifile ngokwemigaqo yezakhiwo. Andizukusebenzisa ingcamango “yokuziphatha ephelelwe lixesha” konke konke. Kusebenza kakuhle, umzekelo, kwi-wardrobe, kodwa kungekhona kwimveliso yesofthiwe. Kukho ingqikelelo yokungaphantsi kunye nokuphakama kwinto ethile. Ndingatsho ngokuqinisekileyo ukuba i-ReserFS v3 ngoku ingaphantsi kweReiser4 kuyo yonke into, kodwa kwezinye iintlobo zomthwalo womsebenzi iphezulu kuzo zonke ezinye iiFS ezinyukayo.

Ngaba uyazi malunga nophuhliso lweFS Tux3 kunye neHAMMER/HAMMER2 (FS ye-DragonFly BSD)?

Ewe, siyazi. Kwi-Tux3 bendikhe ndanomdla kwitekhnoloji yee-snapshots zabo (ebizwa ngokuba "zizalathisi zenguqulelo"), kodwa kwi-Reiser4 sinokuhamba ngendlela eyahlukileyo. Ndikhe ndacinga malunga nokuxhasa imifanekiso eqingqiweyo ixesha elide kwaye andikagqibi sigqibo malunga nendlela yokuyiphumeza kwiivolumu ezilula zeReiser4. Inyaniso kukuba "ivila" entsha yereferensi yereferensi ecetywayo ngu-Ohad Rodeh isebenza kuphela kwimithi ye-B. Asinazo. Kwezo zakhiwo zedatha ezisetyenziswa kwi-Reiesr4, izixhobo zokubala "zobuvila" azichazwanga-ukuzezisa, kuyimfuneko ukuxazulula iingxaki ezithile ze-algorithmic, ekungekho mntu uthathayo okwangoku.

Ngokuka-HAMMER: Ndifunde inqaku kumdali. Andinamdla. Kwakhona, B-imithi. Olu lwakhiwo lwedatha luphelelwe lixesha. Sayiyeka kwinkulungwane edluleyo.

Uyivavanya njani imfuno ekhulayo yeqela lothungelwano FSs ezifana neCephFS/GlusterFS/etc? Ngaba le mfuno ithetha utshintsho kwizinto eziphambili zabaphuhlisi ukuya kwi-FS yothungelwano kunye nokungonelanga kwe-FS yendawo?

Ewe, olo tshintsho kwizinto ezibalulekileyo lwenzekile. Uphuhliso lweenkqubo zeefayile zasekhaya mile. Owu, ukwenza into ebalulekileyo kwimiqulu yasekhaya ngoku kunzima kwaye ayinguye wonke umntu onokuyenza. Akukho mntu ufuna ukutyala imali kuphuhliso lwabo. Oku kufana nokucela umbutho wezorhwebo ukuba wabele imali yophando lwemathematika - ngaphandle kokuthandabuza baya kukubuza ukuba ungayenza njani imali kwithiyori entsha. Ngoku iFS yasekuhlaleni yinto ebonakala ngomlingo “ngaphandle kwebhokisi” kwaye “ifanele isoloko isebenza,” kwaye ukuba ayisebenzi, ibangela ukukhalaza okungalungiselelwanga oku: “Ewe, bacinga ntoni!”

Yiyo loo nto ukungabikho kwengqwalasela kwiFS yendawo, nangona usemninzi umsebenzi kulo mmandla. Kwaye ewe, wonke umntu uphendukele kwisitoreji esabiweyo, esakhiwe ngesiseko seenkqubo zefayile zendawo esele zikhona. Isefashonini kakhulu ngoku. Ibinzana elithi "Idatha Enkulu" ibangela ukungxama kwe-adrenaline kwabaninzi, ukuyidibanisa neenkomfa, iindibano zocweyo, imivuzo emikhulu, njl.

Kusengqiqweni kangakanani ukuphumeza inkqubo yefayile yenethiwekhi kwindawo yekernel endaweni yendawo yomsebenzisi?

Indlela efanelekileyo kakhulu engekaphunyezwa naphi na. Ngokubanzi, umbuzo wokuba kwesiphi isithuba inkqubo yefayile yenethiwekhi kufuneka iphunyezwe “likrele elintlangothi-mbini.” Kulungile, makhe sijonge umzekelo. Umxhasi urekhode idatha kumatshini okude. Bawela kwi-cache yephepha lakhe ngendlela yamaphepha amdaka. Lo ngumsebenzi "wesango elincinane" inkqubo yefayile yenethiwekhi kwindawo yekernel. Emva koko inkqubo yokusebenza iyakucela ukuba ubhale loo maphepha kwidiski ukuze uwakhulule. Emva koko imodyuli ye-FS yenethiwekhi ye-IO-yokudlulisela (ukuthumela) iya kudlala. Imisela ukuba ngowuphi umatshini womncedisi (indawo yomncedisi) la maphepha azakuya kuwo.

Emva koko i-stack yenethiwekhi ithatha (kwaye, njengoko sisazi, iphunyezwa kwindawo ye-kernel). Emva koko, i-node yomncedisi ifumana loo pakethi ngedatha okanye imethadatha kwaye iyala imodyuli yokugcina i-backend (oko kukuthi, i-FS yendawo esebenza kwindawo ye-kernel) ukurekhoda zonke ezi zinto. Ke, siwunciphise umbuzo ukuba "ukuthumela" kunye "nokwamkela" iimodyuli kufuneka zisebenze. Ukuba nayiphi na kwezo modyuli zisebenza kwindawo yomsebenzisi, oku kuya kukhokelela ekutshintsheni umxholo (ngenxa yesidingo sokusebenzisa iinkonzo ze-kernel). Inani lokutshintsha okunjalo kuxhomekeke kwiinkcukacha zokuphunyezwa.

Ukuba kukho utshintsho oluninzi olunjalo, ngoko ukugcina ukugcinwa (i-I / O ukusebenza) kuya kuncipha. Ukuba ugcino lwakho lwasemva lwenziwe ngeediski ezicothayo, ngoko awuyi kuqaphela ukuhla okubalulekileyo. Kodwa ukuba uneediski ezikhawulezayo (i-SSD, i-NVRAM, njl.), ke ukutshintsha umxholo sele kuba "yi-bottleneck" kwaye, ngokugcina ukuguqulwa komxholo, ukusebenza kunokunyuswa kakhulu. Indlela eqhelekileyo yokugcina imali kukuhambisa iimodyuli kwindawo yekernel. Ngokomzekelo, sifumene ukuba ukuhambisa iseva ye-9p ukusuka kwi-QEMU ukuya kwi-kernel kumatshini wokubamba kukhokelela ekunyuseni okuphindwe kathathu ekusebenzeni kwe-VirtFS.

Oku, ngokuqinisekileyo, akusiyo i-FS yenethiwekhi, kodwa ibonisa ngokupheleleyo undoqo wezinto. Icala elisezantsi kolu lungiselelo yimiba yokuphatheka. Kwabanye, le yokugqibela inokuba yingozi. Umzekelo, i-GlusterFS ayinayo iimodyuli kwi-kernel konke konke. Enkosi koku, ngoku isebenza kumaqonga amaninzi, kubandakanya iNetBSD.

Zeziphi iingqikelelo ezinokuboleka ii-FS zasekuhlaleni kwezonathwekhi kwaye ngokuphendululekileyo?

Kule mihla, ii-FS zenethiwekhi, njengomthetho, zinezongezo ngaphezulu kwee-FS zasekhaya, ke andiqondi kakuhle ukuba ungayiboleka njani into kokugqibela. Ewe, ngokwenene, makhe siqwalasele inkampani yabasebenzi aba-4, apho wonke umntu wenza into yakhe: enye isasaza, enye ithumela, eyesithathu ifumana, ivenkile yesine. Kwaye umbuzo, yintoni enokuyiboleka inkampani kumqeshwa wayo oyigcinayo, ivakala ngandlela-thile ayilunganga (sele ikhona into ebenokuyiboleka kuye ixesha elide).

Kodwa iiFS zalapha ekhaya zinezinto ezininzi ekufuneka zifunde kwinethiwekhi. Okokuqala, kufuneka ufunde kubo indlela yokudibanisa imiqulu esengqiqweni kwinqanaba eliphezulu. Ngoku into ebizwa Iisistim “eziphambili” zefayile zalapha ekhaya zidibanisa imithamo enengqiqo ngokukodwa kusetyenziswa “isixhobo esibambekayo” itekhnoloji ebolekwe kwi-LVM (kwaloo nyhasho ifanayo yolwaphulo-mthetho olwathi lwaphunyezwa okokuqala kwi-ZFS). Ngamanye amazwi, ukuguqulelwa kweedilesi ezibonakalayo (amanani ebhloko) kwizinto zangempela kunye nomva kwenzeka kwinqanaba eliphantsi (oko kukuthi, emva kokuba inkqubo yefayile ikhuphe isicelo se-I / O).

Nceda uqaphele ukuba ukongeza kunye nokususa izixhobo kwimiqulu enengqiqo (kungekhona izibuko) ezicwangciswe kwi-block layer kukhokelela kwiingxaki ababoneleli bezo "mpawu" bathule ngokuthozama. Ndithetha ngokuqhekeka kwizixhobo zokwenyani, ezinokufikelela kumaxabiso anqabileyo, ngelixa kwisixhobo esibonakalayo yonke into ilungile. Nangona kunjalo, bambalwa abantu abanomdla kwizixhobo ezibonakalayo: wonke umntu unomdla kwinto eyenzekayo kwizixhobo zakho zokwenyani. Kodwa i-FS efana ne-ZFS (kunye nayo nayiphi na i-FS ngokubambisana ne-LVM) isebenza kuphela ngezixhobo zedisk enenyani (yabela iidilesi zedisk enenyani ukusuka phakathi kwezasimahla, ukuqhatha ezi zixhobo zibonakalayo, njl.njl.). Kwaye abayazi into eyenzekayo kwizixhobo zokwenyani!

Ngoku khawufane ucinge ukuba unoqhekeko kwisixhobo senyani (oko kukuthi, unomlinganiselo omnye omkhulu ohlala apho), wongeza idiski kwivolumu yakho yokubhaqa, kwaye emva koko ususe enye idiski engaqhelekanga kwivolyum yakho yokuqiqa kwaye emva koko ulungelelanise kwakhona. Kwaye amaxesha amaninzi. Akunzima ukucinga ukuba kwisixhobo esibonakalayo uya kuhlala unomlinganiselo ofanayo wokuphila, kodwa kwizixhobo zokwenyani awuyi kubona nto ilungileyo.

Eyona nto imbi kukuba awukwazi nokuyilungisa le meko! Inye kuphela into onokuyenza apha kukucela isixokelelwano sefayile ukucalula isixhobo esibonakalayo. Kodwa uya kukuxelela ukuba yonke into ilungile apho - kukho umlinganiselo omnye kuphela, ukuhlukana ngu-zero, kwaye akunakuba ngcono! Ngoko ke, imiqulu enengqiqo elungiselelwe kwinqanaba lebhloko ayijoliswanga ngokuphindaphindiweyo ukongezwa / ukususwa kwezixhobo. Ngendlela elungileyo, udinga kuphela ukudibanisa umthamo onengqondo kwinqanaba lebhloko kube kanye, uyinike inkqubo yefayile, kwaye ungenzi nto yimbi ngayo.

Ukongeza, indibaniselwano ye-FS + LVM ezimeleyo ye-subsystems ayivumeli ukuthathela ingqalelo uhlobo olwahlukileyo lokuqhuba apho imiqulu enengqiqo idityanisiwe. Ewe, cinga ukuba uqokelele ivolumu enengqiqo ukusuka kwi-HDD kunye nezixhobo eziqinileyo. Kodwa ke eyokuqala iya kufuna i-defragmentation, kwaye le yokugqibela ayiyi. Okokugqibela, kufuneka ukhuphe izicelo zokulahla, kodwa ezokuqala, hayi, njl. Nangona kunjalo, kule ndibaniselwano kunzima kakhulu ukubonisa ukhetho olunjalo.

Qaphela ukuba emva kokudala i-LVM yakho kwinkqubo yefayile, imeko ayibi ngcono. Ngaphezu koko, ngokwenza oku ngokwenene uphelisa ithemba lokuze uliphucule kwixesha elizayo. Oku kubi kakhulu. Iindidi ezahlukeneyo zokuqhuba zingaphila kumatshini omnye. Kwaye ukuba inkqubo yefayile ayahluli phakathi kwabo, ngubani oya kuthi?

Enye ingxaki kukulinda loo nto kuthiwa. Iinkqubo zefayile "Bhala-Naphi na" (oku kuquka iReiser4, ukuba ukhankanye imodeli yetransekshini efanelekileyo ngexesha lokunyuka). Ezo nkqubo zeefayile kufuneka zibonelele ngezixhobo zokuqhawuka ezingazange zibonwe ngaphambili kumandla azo. Kwaye umphathi wevolumu ephantsi akancedi apha, kodwa ungena kuphela endleleni. Inyani kukuba ngomphathi onjalo, iFS yakho iya kugcina imephu yeebhloko zasimahla zesixhobo esinye kuphela-esibonakalayo. Ngokufanelekileyo, unokwahlula kuphela isixhobo esibonakalayo. Oku kuthetha ukuba i-defragmenter yakho iya kusebenza ixesha elide, ixesha elide kwindawo enkulu enye yeedilesi zenyani.

Kwaye ukuba unabasebenzisi abaninzi ababhala ngaphezulu ngokungakhethiyo, ngoko ke isiphumo esiluncedo se-defragmenter enjalo iya kuncitshiswa ibe ngu-zero. Inkqubo yakho ngokuqinisekileyo iya kuqala ukucotha, kwaye kuya kufuneka usonge izandla kuphela phambi kokuxilongwa okuphoxayo "uyilo olwaphukileyo". Iidefragmenters ezininzi ezisebenza kwindawo enye yeedilesi ziya kuphazamisana kuphela. Ngumcimbi owahluke ngokupheleleyo ukuba ugcina imephu yakho yeebhloko zasimahla kwisixhobo ngasinye sokwenyani. Oku kuya kuhambelana ngokufanelekileyo nenkqubo yokwahlulwa.

Kodwa oku kunokwenziwa kuphela ukuba unomphathi wevolyum okwinqanaba eliphezulu. Iinkqubo zeefayile zengingqi ezinabaphathi abanjalo azizange zibekho ngaphambili (ubuncinci, andazi malunga nabo). Kuphela ziinkqubo zeefayile zenethiwekhi (umzekelo iGlusterFS) ezazinabaphathi abanjalo. Omnye umzekelo obaluleke kakhulu kukukhangela ingqibelelo yevolumu (fsck) usetyenziso. Ukuba ugcina imephu yakho ezimeleyo yeebhloko zasimahla kwi-subvolume nganye, ngoko inkqubo yokujonga umthamo onengqondo inokulinganisa ngokufanelekileyo. Ngamanye amazwi, imiqulu esengqiqweni enabaphathi abakumgangatho ophezulu iba ngcono.

Ukongeza, kunye nabaphathi bezinga eliphantsi lomthamo awuyi kukwazi ukuququzelela i-snapshots epheleleyo. Ngeefayile ze-LVM kunye ne-ZFS-ezifana ne-ZFS, unokuthatha kuphela izifinyezo zasekhaya, kodwa hayi ii-snapshots zehlabathi. Iifoto zalapha ekhaya zikuvumela ukuba ubuyisele umva kuphela imisebenzi eqhelekileyo yefayile. Kwaye akukho mntu uya kuphinda abuyisele umva imisebenzi kunye nemiqulu enengqondo (ukongeza / ukususa izixhobo). Makhe sijonge oku ngomzekelo. Ngexesha elithile, xa unomthamo onengqondo wezixhobo ezibini A kunye no-B eziqulethe iifayile ze-100, uthatha umfanekiso wenkqubo S kwaye wenze ezinye iifayile ezilikhulu.

Emva koko, wongeza isixhobo C kwivolumu yakho, kwaye ekugqibeleni ubuyisele umva inkqubo yakho kwi-snapshot S. Umbuzo: Zingaphi iifayile kunye nezixhobo ezinomthamo wakho wokuqiqa emva kokubuyela umva kwi-S? Kuya kubakho iifayile ze-100, njengoko unokucinga, kodwa kuya kubakho izixhobo ezi-3 - ezi zizixhobo ezifanayo A, B kunye no-C, nangona ngexesha lokudalwa kwe-snapshot kwakukho izixhobo ezimbini kuphela kwinkqubo (A kunye no-B). ). Isixhobo sokongeza isixhobo C asizange sibuyele umva, kwaye ukuba ngoku ususa isixhobo C kwikhompyuter, siya konakalisa idatha yakho, ngoko ke ngaphambi kokuba ucime kuya kufuneka uqale wenze umsebenzi obiza kakhulu ukususa isixhobo kwivolumu enengqondo elungelelanisiweyo. izakuchithachitha yonke idata ukusuka kwisixhobo C ukuya kwisixhobo A kunye no-B. Kodwa ukuba iFS yakho ixhasa imifanekiso ekhawulezayo yehlabathi, ukulungelelaniswa kwakhona okunjalo akunakufuneka, kwaye emva kokubuyisela umva ngoko nangoko kwi-S, ungasisusa ngokukhuselekileyo isixhobo C kwikhompyuter.

Ngoko ke, i-snapshots yehlabathi ilungile kuba ikuvumela ukuba ugweme ukususwa kweendleko (ukongeza) kwesixhobo ukusuka kumthamo onengqondo (ukuya kumthamo onengqondo) kunye nenani elikhulu ledatha (ngokuqinisekileyo, ukuba ukhumbula "ukufota" inkqubo yakho. ngexesha elifanelekileyo). Makhe ndikukhumbuze ukuba ukwenza izifinyezo kunye nokuhlenga umva inkqubo yefayile kubo yimisebenzi yangoko nangoko. Umbuzo unokuvela: kwenzeka njani ukuba ubuyisele umva umsebenzi ngokukhawuleza kwivolumu enengqiqo ekuthathe iintsuku ezintathu? Kodwa inokwenzeka! Ngaphandle kokuba isixokelelwano sakho sefayile siyilwe ngokuchanekileyo. Ndeza nombono we "3D snapshots" kwiminyaka emithathu eyadlulayo, kwaye kulo nyaka uphelileyo ndinelungelo lobunikazi lobu buchule.

Into elandelayo ekufuneka ii-FSs zasekhaya zifunde kuthungelwano kukugcina imetadata kwizixhobo ezahlukeneyo ngendlela efanayo ii-FS zenethiwekhi ezizigcina ngayo koomatshini abahlukeneyo (ekuthiwa ziiseva zemethadatha). Kukho izicelo ezisebenza ngokuyintloko ngemethadatha, kwaye ezi zicelo zinokukhawuleziswa kakhulu ngokubeka imethadatha kwizixhobo zogcino ezibizayo eziphezulu zokusebenza. Ngendibaniselwano ye-FS+LVM, awuyi kukwazi ukubonisa ukhetho olunjalo: I-LVM ayiyazi into ekwibhloko ogqithise kuyo (idatha apho okanye i-metadata).

Awuyi kufumana nzuzo enkulu ekuphumezeni i-LVM yakho ephantsi kwi-FS xa kuthelekiswa ne-FS + LVM indibaniselwano, kodwa into onokuyenza kakuhle kakhulu kukudibanisa i-FS ukuze kamva kube nzima ukusebenza ngekhowudi yayo. I-ZFS kunye nee-Btrfs, eziye zangxama ngezixhobo ezibonakalayo, yonke imizekelo ecacileyo yendlela ukwaphulwa kwenkqubo ebulala ngayo inkqubo ngokwemigaqo yolwakhiwo ke, kutheni ndiyiyo yonke le nto? Ngaphezu koko, akukho mfuneko yokufaka eyakho inqanaba eliphantsi iLVM kwinkqubo yefayile. Endaweni yoko, kufuneka udibanise izixhobo zibe yimiqulu enengqiqo kwinqanaba eliphezulu, njengoko ezinye iinkqubo zefayile zenethiwekhi zenza ngoomatshini abahlukeneyo (iindawo zokugcina). Enyanisweni, le nto bayenza ngendlela ecekisekayo ngenxa yokusetyenziswa kwee-algorithms ezimbi.

Imizekelo yee-algorithms ezimbi ngokupheleleyo ngumguquleli we-DHT kwinkqubo yefayile ye-GlusterFS kunye nento ebizwa ngokuba yimephu ye-CRUSH kwinkqubo yefayile ye-Ceph. Akukho nanye i-algorithms endiyibonileyo eyandanelisayo malunga nokulula kunye nokulinganisa okulungileyo. Ngoko kwafuneka ndikhumbule ialgebra kwaye ndizenzele yonke into ngokwam. Ngo-2015, ngelixa ndizama iinyanda kwimisebenzi ye-hash, ndeza kwaye ndanelungelo elilodwa lomenzi into endifaneleyo. Ngoku ndingatsho ukuba iinzame zokusebenzisa zonke ezi zinto zibe yimpumelelo. Andiboni naziphi na iingxaki ngokulinganisa kwindlela entsha.

Ewe, i-subvolume nganye iya kufuna isakhiwo esahlukileyo njenge-superblock kwimemori. Ngaba oku kuyoyikisa kakhulu? Ngokubanzi, andiyazi ukuba ngubani oza "kubilisa ulwandle" kwaye enze imiqulu enengqiqo yamakhulu amawaka okanye izixhobo ezingaphezulu kumatshini omnye wendawo. Ukuba nabani na unokundichazela oku, ndiya kubulela kakhulu. Okwangoku, kum oku kukuthengisa i-bullshit.

Ingaba utshintsho kwindlela esezantsi yesixhobo se-kernel block (umzekelo, inkangeleko ye-blk-mq) ichaphazele iimfuno zokuphunyezwa kweFS?

Abazange babe nayo nayiphi na impembelelo. Andazi ukuba kuya kwenzeka ntoni kuluhlu lwebhloko oluya kwenza kube yimfuneko ukuyila iFS entsha. Ujongano lwentsebenziswano yezi ndlela zisezantsi zimbi kakhulu. Ukusuka kwicala lomqhubi, i-FS kufuneka ichaphazeleke kuphela ngokubonakala kweentlobo ezintsha zokuqhuba, apho i-block layer iya kulungiswa kuqala, kwaye emva koko i-FS (kwi-reiser4 oku kuya kuthetha ukubonakala kweeplagi ezintsha).

Ngaba ukuvela kweentlobo ezintsha zemithombo yeendaba (umzekelo, i-SMR, okanye ubuninzi bee-SSD) kuthetha ukuba imingeni emitsha yoyilo lwenkqubo yefayile?

Ewe. Kwaye ezi zizikhuthazi eziqhelekileyo zophuhliso lweFS. Imingeni inokwahluka kwaye ingalindelekanga ngokupheleleyo. Umzekelo, ndivile ngeedrives apho isantya se-I/O operation sixhomekeke kakhulu kubungakanani beqhekeza ledatha kunye ne-offset yayo. Kwi-Linux, apho ubungakanani bebhloko yeFS bungenako ukugqitha ubungakanani bephepha, olo qhubo aluyi kubonisa ubunakho obupheleleyo ngokungagqibekanga. Nangona kunjalo, ukuba inkqubo yakho yefayile iyilwe ngokuchanekileyo, kukho ithuba lokufumana okuninzi kuyo.

Bangaphi abantu abasebenza ngoku ngekhowudi yeReiser4 ngaphandle kwakho?

Ngaphantsi kunokuba bendingathanda, kodwa andifumani nqongophalo yezixhobo zokusebenza. Ndaneliseke ngakumbi ngesantya sophuhliso lweReiser4. Andiyi "kuqhuba amahashe" - ayisiyiyo indawo efanelekileyo le. Apha, "ukuba uqhuba ngokuthe cwaka, uya kuqhubeka!" Isixokelelwano sefayili sale mihla sesona sixokelelwano sekernel esintsonkothileyo, izigqibo zoyilo ezingalunganga ezinokurhoxisa iminyaka elandelayo yomsebenzi womntu.

Ngokunikezela ngamavolontiya ukuphumeza into ethile, ndihlala ndiqinisekisa ukuba iinzame ngokuqinisekileyo ziya kukhokelela kwisiphumo esichanekileyo, esinokuthi sifune iimfuno ezinzulu. Njengoko uqonda, akunakubakho ziqinisekiso ezininzi ngaxeshanye. Ngelo xesha, andinako ukuma "amanani" akhuthaza ngokungenazintloni "iimpawu" zesoftware engabonakaliyo, ekhohlisa amakhulu abasebenzisi kunye nabaphuhlisi, kwaye kwangaxeshanye bahlale kwaye bancume kwiingqungquthela ze-kernel.

Ngaba ikhona inkampani evakalise ukuvuma ukuxhasa uphuhliso lweReiser4?

Ewe, bekukho izindululo ezinjalo, kubandakanywa. kunye nomthengisi omkhulu. Kodwa ngenxa yoku kwafuneka ndifudukele kwelinye ilizwe. Ngelishwa, andisenaminyaka engama-30 ubudala, andikwazi ukwahlukana kwaye ndihambe ngolo hlobo kwimpempe yokuqala.

Zeziphi izinto ezingekhoyo ngoku kwiReiser4?

Akukho "resize" umsebenzi wemithamo elula, efana naleyo ifumaneka kwiReiserFS(v3). Ukongeza, ukusebenza kwefayile ngeDIRECT_IO iflegi ayinakulimaza. Emva koko, ndingathanda ukukwazi ukwahlula umthamo kwi "semantic subvolumes", ezingenalo ubungakanani obusisigxina, kwaye ezinokuxhonywa njengemiqulu ezimeleyo. Ezi ngxaki zilungile kubaqalayo abafuna ukuzama isandla sabo "kwinto yokwenyani."

Kwaye ekugqibeleni, ndingathanda ukuba nemitha yengqiqo yenethiwekhi kunye nokuphunyezwa okulula kunye nolawulo (i-algorithms zanamhlanje sele zivumela oku). Kodwa eyona nto i-Reiser4 ayinakuze ibenayo ngokuqinisekileyo yi-RAID-Z, ukukhuhla, indawo yokugcina indawo yasimahla, iinguqu ze-128-bit kunye nobunye ubuvuvu bokuthengisa obuvela ngokuchasene nomqolo wokunqongophala kwezimvo phakathi kwabaphuhlisi bezinye iinkqubo zefayile.

Ngaba yonke into enokufuneka iphunyezwe ngeeplagi?

Ukuba sithetha kuphela kwi-interfaces kunye neeplagi (iimodyuli) eziziphumezayo, ngoko akusiyo yonke into. Kodwa ukuba wazisa ubudlelwane kolu nxibelelwano, ke, phakathi kwezinye izinto, uya kuba neengqikelelo zeepolymorphisms eziphezulu, onokuthi udlule ngazo. Khawufane ucinge ukuba ungqinisise umkhenkce inkqubo yexesha lokusebenza ejolise kwinto, utshintshe ixabiso lesalathiso somyalelo ukukhomba kwenye iplagin ephumeza ujongano olufanayo lwe-X, kwaye emva koko uyeke umkhenkce inkqubo ukuze iqhubeke ngokuphumeza.

Ukuba umsebenzisi wokugqibela akayiqapheli into enjalo "i-substitution," ngoko sitsho ukuba inkqubo ine-polymorphism ye-zero-odolo kwi-interface ye-X (okanye inkqubo i-heterogeneous kwi-interface ye-X, into efanayo). Ukuba ngoku awunayo kuphela isethi ye-interfaces, kodwa unobudlelwane kubo (i-interface yegrafu), ngoko unokwazisa i-polymorphisms yemiyalelo ephezulu, eya kubonakalisa ukungafani kwenkqubo esele "kubumelwane" kuyo nayiphi na i-interface. Ndazisa ukuhlelwa okunjalo kwakudala, kodwa, ngelishwa, akuzange kwenzeke.

Ngoko ke, ngoncedo lweeplagi kunye neepolymorphisms ezinjalo eziphezulu, unokuchaza nayiphi na into eyaziwayo, kunye "nokuqikelela" ezo zingazange zikhankanywe. Andikwazanga ukungqina ngokungqongqo oku, kodwa andiwazi nomzekelo ochaseneyo okwangoku. Ngokubanzi, lo mbuzo wandikhumbuza "iNkqubo ye-Erlangen" kaFelix Klein. Ngaxa lithile wazama ukumela yonke ijometri njengesebe lealgebra (ngokukodwa, ithiyori yeqela).

Ngoku kumbuzo ophambili - zihamba njani izinto ngokunyuswa kweReiser4 ukuya kweyona nto iphambili? Ngaba bekukho naluphi na upapasho kuyilo lwale nkqubo yefayile othethe ngayo kudliwano-ndlebe lokugqibela? Ubaluleke kangakanani lo mbuzo ngokwembono yakho?

Ngokubanzi, kudala sicela ukubandakanywa kwisebe eliphambili iminyaka emithathu. Izimvo zokugqibela zikaReiser kumsonto woluntu apho isicelo sokutsalwa senziwe sahlala singaphendulwanga. Ngoko yonke imibuzo eyongezelelekileyo ayisiyiyo yethu. Mna ngokwam andiqondi ukuba kutheni kufuneka "sidibanise" kwinkqubo ethile yokusebenza. Kwi-Linux, ukukhanya akuzange kuhlangane njenge wedge. Ke, kukho indawo yokugcina eyahlukileyo apho kuya kubakho iizibuko zesebe ezininzi zee-OS ezahlukeneyo. Nabani na oyidingayo unokubumba izibuko elihambelanayo kwaye enze nantoni na oyifunayo ngayo (ngaphakathi kwelayisensi, kunjalo). Ewe, ukuba umntu akayidingi, ngoko akuyongxaki yam. Okwangoku, ndicebisa ukuba ndithathele ingqalelo umbuzo "wokunyuselwa kwi-Linux kernel" njengoko uzinzile.

Upapasho kuyilo lweFS lufanelekile, kodwa ukuza kuthi ga ngoku ndifumene ixesha leziphumo zam ezitsha, endizithatha njengezona zibalulekileyo. Enye into kukuba ndiyingcali yezibalo, kwaye kwimathematika naluphi na upapasho sisishwankathelo sethiyori kunye nobungqina bazo. Ukupapasha nantoni na apho ngaphandle kobungqina luphawu lwencasa embi. Ukuba ndingqina ngokucokisekileyo okanye ndiphikisa nasiphi na isitatimenti malunga noyilo lweFS, iziphumo ziya kuba ziimfumba kangangokuba kuya kuba nzima kakhulu ukudlula. Ngubani oyidingayo? Oku mhlawumbi kutheni yonke into iqhubeka nokuhlala kwimo yayo endala - ikhowudi yomthombo kunye nezimvo kuyo.

Yintoni entsha kwiReiser4 kule minyaka imbalwa idlulileyo?

Uzinzo ekudala lulindelwe luye lwabonakala. Enye yezokugqibela ukubonakala yayisisiphene esikhokelele “kungacimekiyo” oovimba beefayili. Ubunzima yayikukuba ivele kuphela ngokuchasene nemvelaphi yongquzulwano lwe-hash kunye nendawo ethile yeerekhodi zolawulo kwindawo yomthi. Nangona kunjalo, andikwazi ukucebisa iReiser4 kwimveliso: koku kufuneka wenze umsebenzi othile ngonxibelelwano olusebenzayo nabalawuli benkqubo yemveliso.

Ekugqibeleni sikwazile ukuphumeza umbono wethu ekudala simi - iimodeli ezahlukeneyo zentengiselwano. Ngaphambili, iReiser4 yayiqhuba imodeli enye enekhowudi yeMacdonald-Reiser. Oku kudale iingxaki zoyilo. Ngokukodwa, i-snapshots ayinakwenzeka kwimodeli enjalo yentengiselwano - iya konakaliswa licandelo le-athomu elibizwa ngokuba yi-"OVERWRITE SET". I-Reiser4 okwangoku ixhasa iimodeli ezintathu zentengiselwano. Kwenye yazo (Bhala-Naphi na), i-atomic component OVERWRITE SET ibandakanya amaphepha enkqubo kuphela (imifanekiso ye-disk bitmaps, njl.), engenakukwazi "ukufotwa" (ingxaki yenkukhu kunye neqanda).

Ngoko imifanekiso ngoku inokuphunyezwa ngeyona ndlela ibalaseleyo. Kwenye imodeli yetransekshini, onke amaphepha alungisiweyo aya kuphela kwi-OVERWRITE SET (oko kukuthi, kukubhalwa kweendaba okunyulu). Le modeli yeyabo bakhalaze malunga nokuqhekeka okukhawulezayo kwezahlulo zeReiser4. Ngoku kule modeli isahlulelo sakho asiyi kuqhekeka ngokukhawuleza kuneReiserFS (v3). Zontathu iimodeli ezikhoyo, ezinogcino oluthile, ziqinisekisa i-atomicity yokusebenza, kodwa iimodeli ezinokulahleka kwe-atomicity kunye nokugcina kuphela imfezeko yecandelo kunokuba luncedo. Iimodeli ezinjalo zinokuba luncedo kuzo zonke iintlobo zezicelo (i-database, njl.), esele ithathelwe eminye yale misebenzi. Kulula kakhulu ukongeza ezi modeli kwiReiser4, kodwa andizange ndiyenze, kuba akukho mntu wandibuzayo, kwaye mna andiyidingi.

I-metadata checksums ivele kwaye ndisandul 'ukuzongezelela ngezipili "zezoqoqosho" (izinto ezingazinzanga). Ukuba i-checksum yayo nayiphi na ibhloko iyasilela, iReiser4 ngokukhawuleza ifunda ibhloko ehambelana nayo kwisixhobo sokukopisha. Qaphela ukuba i-ZFS kunye ne-Btrfs ayikwazi ukwenza oku: uyilo aluvumeli. Apho kufuneka uqhube inkqubo ekhethekileyo yokuskena yangasemva ebizwa ngokuba yi "scrub" kwaye ulinde ukuba ifike kwibhloko eyingxaki. Abacwangcisi benkqubo ngokufuziselayo babiza ezo ziganeko “ziintonga.”

Kwaye okokugqibela, kuye kwavela imiqulu yengqiqo ebanzi, enikezela ngayo yonke into ethi ZFS, Btrfs, block layer, kunye neFS + LVM indibaniselwano ngokomgaqo ayinako ukubonelela - ukulinganisa okuhambelanayo, i-O (1) idilesi yedisk eyabiwayo, ukufuduka kwedatha ecacileyo phakathi kwee-subvolumes. Le yokugqibela nayo inojongano lomsebenzisi. Ngoku ungahambisa ngokulula eyona datha ishushu kweyona drive iphezulu yokusebenza kwivolumu yakho.

Ukongeza, kuyenzeka ukugungxula ngokungxamisekileyo nawaphi na amaphepha amdaka kuqhubo olunjalo, ngalo ndlela ukhawulezisa kakhulu izicelo ezihlala zibiza fsync(2). Ndiyaqaphela ukuba umsebenzi we-block layer, ebizwa ngokuba yi-bcache, ayinikezeli inkululeko enjalo konke konke. Imiqulu emitsha enengqondo isekwe kwi-algorithms yam (kukho iipatent ezihambelanayo). Isoftware sele izinzile, kunokwenzeka ukuyizama, ukulinganisa ukusebenza, njl. Ukuphazamiseka kuphela kukuba okwangoku kufuneka uhlaziye ngesandla ukucwangciswa kwevolumu kwaye uyigcine kwindawo ethile.

Ukuza kuthi ga ngoku ndiye ndakwazi ukuphumeza izimvo zam ngeepesenti ezili-10, nangona kunjalo, ndiphumelele kwinto endiyithathele ingqalelo eyona nto inzima - ukudibanisa imiqulu enengqiqo kunye nenkqubo yeflash eyenza zonke iintshukumo ezimisiweyo kwi-reiser4. Konke oku kusekwisebe lokulinga "format41".

Ngaba iReiser4 iyaphumelela xfstests?

Ubuncinane yenzekile kum xa ndandilungiselela ukukhululwa kokugqibela.

Ngaba kuyenzeka ngokomgaqo ukwenza iReiser4 inethiwekhi (iqela) FS usebenzisa iiplagi?

Inokwenzeka, kwaye iyimfuneko! Ukuba wenza ifayile yenethiwekhi esekwe kwindlela yefayile yendawo eyilwe ngokufanelekileyo, isiphumo siya kuba nomtsalane kakhulu! Kwii-FSs zothungelwano lwanamhlanje, andinelisekanga kubukho benqanaba lokugcina umva, eliphunyezwa kusetyenziswa nayiphi na iFS yendawo. Ubukho beli nqanaba akulunganga ngokupheleleyo. I-FS yenethiwekhi kufuneka idibanise ngokuthe ngqo kunye ne-block layer, kwaye ingaceli i-FS yendawo ukuba yenze naziphi na ezinye iifayile zenkonzo!

Ngokubanzi, ukwahlula iinkqubo zefayile kwindawo kunye nomsebenzi womnatha uvela kongendawo. Yavela ngenxa yokungafezeki kwe-algorithms eyayisetyenziswa kwiminyaka engamashumi amathathu edlulileyo, kwaye endaweni apho akukho nto iphakanyisiweyo. Oku kukwasisizathu sokubonakala kobuninzi bezinto ezingadingekile zesoftware (iinkonzo ezahlukeneyo, njl.). Ngendlela efanelekileyo, kufuneka kubekho iFS enye kuphela ngendlela yemodyuli ye-kernel kunye nesethi yezixhobo zomsebenzisi ezifakwe kumatshini ngamnye - i-cluster node. Le FS yeyendawo kunye nenethiwekhi. Kwaye akukho okunye!

Ukuba akukho nto isebenzayo kunye neReiser4 kwiLinux, ndingathanda ukunika iFS ye-FreeBSD (icatshulwa kudliwano-ndlebe lwangaphambili: "... I-FreeBSD ... ineengcambu zemfundo ... Kwaye oku kuthetha ukuba ngeqondo eliphezulu lokunokwenzeka thina uya kufumana ulwimi oluqhelekileyo kunye nabaphuhlisi")?

Ke, njengoko sisanda kufumanisa, yonke into sele isebenze ngokugqibeleleyo kunye neLinux: kukho ichweba elisebenzayo leReiser4 elisebenza kuyo ngendlela yesebe eliphambili lendawo yethu yokugcina. Andilibalanga ngeFreeBSD! Unikezo! Ndikulungele ukusebenza ngokusondeleyo nabo bawaziyo i-insides ye-FreeBSD kakuhle. Ngendlela: eyona nto ndiyithandayo malunga noluntu lwabo kukuba izigqibo apho zenziwa libhunga elihlaziyiweyo leengcali ezizimeleyo, elingenanto yakwenza nokuqhathwa kukarhulumente komntu omnye osisigxina.

Ulilinganisela njani uluntu lwabasebenzisi beLinux namhlanje? Ngaba iye yaba "pop" ngakumbi?

Ngenxa yobume bomsebenzi wam, kunzima kakhulu kum ukukuvavanya oku. Uninzi lwabasebenzisi beza kum ngeengxelo ze-bug kunye nezicelo zokulungisa icandelo. Abasebenzisi njengabasebenzisi. Abanye banolwazi ngakumbi, abanye bangaphantsi. Wonke umntu uphathwa ngokufanayo. Ewe, ukuba umsebenzisi uyayihoya imiyalelo yam, ndixolele: umyalelo wokungahoyi uya kufakwa nam.

Ngaba kunokwenzeka ukuqikelela ukuphuhliswa kweenkqubo zefayile kwiminyaka emihlanu ukuya kwelishumi ezayo? Ucinga ukuba yeyiphi imingeni ephambili abanokuthi abaphuhlisi beFS bajongane nayo?

Ewe, akunzima ukwenza uqikelelo olunjalo. Akuzange kubekho uphuhliso lweenkqubo zefayile kwindawo ephezulu ixesha elide. Kuphela inkangeleko enjalo idalwe. Abaphuhlisi benkqubo yefayile yendawo babaleke kwiingxaki ezinxulumene noyilo olubi. Kufuneka kwenziwe i-caveat apha. Andiyiboni into ebizwa ngokuthi "ukugcinwa", "ukukhotha" kunye nokuthuthwa kwekhowudi njengophuhliso kunye nophuhliso. Kwaye andiyikuhlula ukungaqondi kakuhle okubizwa ngokuba yi "Btrfs" njengophuhliso ngenxa yezizathu esele ndizichazile.

Isiqwenga ngasinye senza iingxaki zaso zibe mandundu. Kulungile. yaye kusoloko kukho iintlobo ngeentlobo “zabavangeli” abathi “basebenzela yonke into” yabo. Ngokusisiseko, aba ngabantwana besikolo kunye nabafundi abatsiba iintetho. Khawucinge nje: kuyamsebenzela, kodwa unjingalwazi akakwenzi. Okunjani kona ukungxama kweadrenaline! Ngokombono wam, owona monakalo mkhulu ubangelwa "ziingcibi" eziye zakhawuleza "ukukrola" ngentshiseko iimpawu ezimangalisayo zeBtrfs kuzo zonke iintlobo zeeleya ezifana ne-systemd, docker, njl. - oku sele kufana ne-metastases.

Ngoku makhe sizame ukwenza uqikelelo lweminyaka emihlanu ukuya kwelishumi. Sele ndidwelise ngokufutshane into esiza kuyenza kwiReiser4. Owona mceli mngeni uphambili kubaphuhlisi be-FS bengingqi ukusuka phezulu kuya kuba (ewe, sele iyinto) ukungakwazi ukwenza umsebenzi endilisekileyo womvuzo. Ngaphandle kwazo naziphi na izimvo kummandla wogcino lwedatha, baya kuqhubeka nokuzama ukupakisha ezi VFS zilishwa, XFS kunye ne ext4. Imeko ye-VFS ikhangeleka ihlekisa ngokukodwa xa ithelekiswa nale mvelaphi, ikhumbuza ukuhlaziywa kwamaxesha angoku kwindawo yokutyela apho kungekho bapheki, kwaye kungalindelwe bapheki.

Ngoku ikhowudi ye-VFS, ngaphandle kwayo nayiphi na imiqathango, itshixa amaphepha enkumbulo amaninzi ngexesha elinye kwaye imema iFS ephantsi ukuba isebenze kuwo. Oku kwaziswa ukuphucula ukusebenza kwe-Ext4 kwimisebenzi yokucima, kodwa njengoko kulula ukuyiqonda, ukutshixa okufana noko akuhambelani ngokupheleleyo neemodeli zentengiselwano eziphambili. Oko kukuthi, awuyi kukwazi ukongeza nje inkxaso yenkqubo yefayile ehlakaniphile kwi-kernel. Andazi ukuba imeko ithini na kwezinye iindawo zeLinux, kodwa ngokubhekiselele kwiinkqubo zefayile, naluphi na uphuhliso olulapha alunakwenzeka ukuba luhambelane nomgaqo-nkqubo olandelwa yiTorvalds ngokusebenza (iiprojekthi zemfundo ziyakhatyelwa ngaphandle, kunye nabaqhathayo. Andazi ukuba yintoni a B-tree, iikhredithi ezingapheliyo zokuthembela zikhutshiwe). Ngoko ke, kwamiselwa ikhondo lokubola kancinci. Ewe kunjalo, baya kuzama ngamandla abo onke ukuyigqithisa “njengophuhliso.”

Ukuqhubela phambili, "abagcini" beenkqubo zefayile, beqonda ukuba awukwazi ukufumana imali eninzi "kwisitoreji" sodwa, baya kuzama isandla sabo kwishishini elinenzuzo ngakumbi. Ezi, njengomthetho, iinkqubo zefayile ezisasazwayo kunye ne-virtualization. Mhlawumbi baya kubamba i-ZFS enefashoni kwenye indawo apho ingekabikho khona. Kodwa, njengazo zonke i-FS ezivela phezulu, zifana nomthi woNyaka omtsha: ukuba unokuxhoma ezinye izinto ezincinci phezulu, ngoko awukwazi ukufumana ubunzulu. Ndiyavuma ukuba kunokwenzeka ukwakha inkqubo yeshishini enzulu esekwe kwi-ZFS, kodwa ekubeni ngoku sixoxa ngekamva, ndingatsho nje kabuhlungu ukuba iZFS ayinathemba kulo mba: ngezixhobo zabo ezibonakalayo, abafana bayinqumle ioksijini. bona kunye nezizukulwana ezizayo ukwenzela uphuhliso olungaphezulu. I-ZFS yinto yakudala. Kwaye i-ext4 kunye ne-XFS azikho kwayizolo.

Kufanelekile ukukhankanya ngokwahlukeneyo malunga nomxholo ochukumisayo "wenkqubo yefayile yeLinux yesizukulwana esilandelayo". Le yiprojekthi yezopolitiko ngokupheleleyo kunye nentengiso eyenzelwe ithuba, ngoko kuthetha, "ukuphina ikamva leenkqubo zefayile" kwiLinux ngasemva kwabalinganiswa abathile. Inyani yeyokuba iLinux ibikade “iyinto nje yokuzonwabisa”. Kodwa ngoku ubukhulu becala ngumatshini wokwenza imali. Zenziwe kuyo yonke into enokwenzeka. Ngokomzekelo, kunzima kakhulu ukwenza imveliso yesofthiwe elungileyo, kodwa "abaphuhlisi" abahlakaniphile baye baqaphela ixesha elide ukuba akukho mfuneko yokunyamezela konke: unokuthengisa ngempumelelo isofthiwe engekhoyo eyabhengezwa kwaye yakhuthazwa kuzo zonke iintlobo zoluntu. Iziganeko - eyona nto iphambili kukuba izilayidi zokubonisa kufuneka ziqulathe "iimpawu" ezininzi.

Iinkqubo zefayile zifanelekile kule nto, kuba ungathengisa ngokukhuselekileyo iminyaka elishumi ngesiphumo. Ewe, ukuba umntu kamva uyakhalaza ngokungabikho kwesi siphumo, ngoko akayiqondi nantoni na malunga neenkqubo zefayile! Oku kukhumbuza ipiramidi yezemali: phezulu ngabaqhubi abaqala le nkunkuma, kwaye abo bambalwa "banenhlanhla": "barhoxisa izabelo," okt. wafumana imali yophuhliso, wafumana umsebenzi ohlawulwa kakuhle njengabaphathi, "wabonakala" kwiinkomfa, njl.

Okulandelayo kuza abo "bangenathamsanqa": baya kubala ilahleko, bajongane neziphumo zokuthumela imveliso yesoftware engasebenzisekiyo kwimveliso, "njl. Zininzi ngakumbi zazo. Ewe, kwisiseko sephiramidi kukho inkitha enkulu yabaphuhlisi "ababona" ​​ikhowudi engenamsebenzi. Bangabona balahlekileyo kakhulu, kuba ixesha elichithiweyo alinakubuyiswa. Iiphiramidi ezinjalo ziluncedo kakhulu kuTorvalds kunye nezinxulumani zakhe. Kwaye okukhona kwezi pyramid, kokukhona kungcono kubo. Ukondla iiphiramidi ezinjalo, nantoni na inokuthatyathwa ibe ngundoqo. Ewe, esidlangalaleni bathetha ngokuchaseneyo. Ke andigwebi ngamazwi, kodwa ngezenzo.

Ke, "ikamva leenkqubo zefayile kwiLinux" yenye enye ekhuthazwa kakhulu, kodwa isoftware engenakusebenziseka. Emva kwe-Btrfs, ngokunokwenzeka okuphezulu, indawo ye "ikamva" elinjalo liya kuthathwa yi-Bcachefs, enye inzame yokuwela umgca webhlokhi ye-Linux kunye nenkqubo yefayile (umzekelo ombi uyasulela). Kwaye yintoni eqhelekileyo: kukho iingxaki ezifanayo njengakwi-Btrfs. Ndiyikrokrele le nto ixesha elide, kwaye ngandlela thile andikwazanga ukumelana kwaye ndijonge kwikhowudi - yinyani!

Ababhali be-Bcachefs kunye ne-Btrfs, xa bedala iFS yabo, basebenzisa ngokusebenzayo imithombo yabanye abantu, beqonda okuncinci malunga nabo. Le meko ifana kakhulu nomdlalo wabantwana “wefowuni eyaphukileyo.” Kwaye ndiyakwazi ukucinga ukuba le khowudi iya kufakwa njani kwi-kernel. Enyanisweni, akukho mntu uya kubona "ii-rakes" (wonke umntu uya kunyathela emva koko). Emva kweengxabano ezininzi malunga nesitayela sekhowudi, izityholo zokuphulwa kwezinto ezingekhoyo, njl. njl., kuya kwenziwa isigqibo malunga "nokunyaniseka" kombhali, ukuba "usebenzisana njani" nabanye abaphuhlisi, kunye nendlela ephumelelayo ngayo yonke le nto. emva koko kuthengiswe kumaqumrhu.

Isiphumo sokugqibela asiyi kuba nomdla nabani na. Kwiminyaka engamashumi amabini edlulileyo, mhlawumbi, bendiya kuba nomdla, kodwa ngoku imibuzo ibuzwa ngokuhlukileyo: ngaba kuya kwenzeka ukukhuthaza oku ukuze abantu abathile baqeshwe kwiminyaka elishumi ezayo. Kwaye, yeha, akuqhelekanga ukuzibuza ngesiphumo sokugqibela.

Ngokubanzi, ndingacebisa ngamandla ukuba ungaqalisi ukuyila kwakhona inkqubo yefayile yakho ukusuka ekuqaleni. Ngenxa yokuba utyalo-mali olubalulekileyo aluyi kukwanela ukufumana into ekhuphisanayo kwiminyaka elishumi. Ewe, ndithetha ngeeprojekthi ezinzulu, kwaye hayi malunga nezo zenzelwe ukuba "zityhalwe" kwi-kernel. Ke, indlela esebenzayo yokuzibonakalisa kukujoyina uphuhliso lokwenyani, njengathi. Oku, ngokuqinisekileyo, akukho lula ukwenza - kodwa oku kunjalo nakweyiphi na iprojekthi ephezulu.

Okokuqala, kuya kufuneka ukuba uzimele woyise ingxaki endiya kunika yona. Emva koko, ndiqinisekile ngobunzulu beenjongo zakho, ndiya kuqala ukukunceda. Ngokwemveli, sisebenzisa uphuhliso lwethu kuphela. Izinto ezingaphandle zi-algorithms zoxinzelelo kunye neminye imisebenzi ye-hash. Asithumeli abaphuhlisi ukuba bahambe kwiinkomfa, kwaye emva koko asihlali kwaye sidibanise iingcamango zabanye abantu ("mhlawumbi kuya kwenzeka ntoni"), njengoko kuqhelekile kwi-startups ezininzi.

Siphuhlisa zonke ii-algorithms ngokwethu. Ngoku ndinomdla kwi-algebraic kunye nemiba edibeneyo yokugcinwa kwedatha yesayensi. Ngokukodwa, imimandla enesiphelo, i-asymptotics, ubungqina bokungalingani. Kukho nomsebenzi wabaprogram abaqhelekileyo, kodwa kufuneka ndikulumkise kwangoko: zonke iingcebiso zokuthi "jonga enye iFS kwaye wenze okufanayo" azihoywa. Iipetshi ezijolise ekudityanisweni ngokusondeleyo neLinux ngeVFS nazo ziya kuya apho.

Ke, asinayo iraki, kodwa sinokuqonda apho kufuneka sihambe khona, kwaye sinethemba lokuba olu lwalathiso lolona lufanelekileyo. Oku kuqonda akuzange kufike kuhlobo lwemana evela ezulwini. Makhe ndikukhumbuze ukuba sineminyaka eyi-29 yamava ophuhliso emva kwethu, iinkqubo ezimbini zefayile ezibhaliweyo ukusuka ekuqaleni. Kwaye inani elifanayo lezixhobo zokubuyisela idatha. Kwaye oku kuninzi!

umthombo: opennet.ru

Yongeza izimvo