Ingxoxo yesibili no-Eduard Shishkin, umthuthukisi we-Reiser4 FS

Ingxoxo yesibili no-Eduard Shishkin, umthuthukisi wesistimu yefayela ye-Reiser4, ishicilelwe.

Ukuze uqale, sicela ukhumbuze abafundi ukuthi usebenzela bani nokuthi usebenzela bani.

Ngisebenza njengomakhi Oyinhloko Wesitoreji eHuawei Technologies, German Research Center. Emnyangweni we-virtualization ngibhekana nezici ezihlukahlukene zokugcinwa kwedatha. Imisebenzi yami ayihlobene nesistimu ethile yokusebenza.

Ingabe njengamanje uzibophezela egatsheni le-kernel eyinhloko?

Akuvamile, futhi kuphela uma umqashi wami ekudinga. Isikhathi sokugcina sasicishe sibe yiminyaka emithathu edlule, ngathumela ama-patches ukuze ngandise isitoreji esabiwe kubabungazi sisebenzisa iphrothokholi ye-9p (elinye igama laleli bhizinisi i-VirtFS). Kumele kwenziwe inothi elilodwa elibalulekile lapha: nakuba sengisebenze neLinux isikhathi eside, angikaze ngibe umlandeli wayo, okungukuthi, “ngiphefumula ngokulinganayo,” njengakho konke okunye. Ikakhulukazi, uma ngibona iphutha, ngingalikhomba kanye nje. Futhi ukuze ukwazi ukulandela umuntu futhi umncenge - lokhu ngeke kwenzeke.

Ngikhumbula okokugcina, eminyakeni eyishumi edlule, wawugxeka kakhulu isitayela sokuthuthukiswa kwe-kernel. Ngokombono wakho (noma mhlawumbe owebhizinisi), ingabe kukhona okushintshile, ingabe umphakathi ususabela kakhulu noma cha? Uma kungenjalo, ucabanga ukuthi ubani okufanele asolwe?

Angikaze ngibone izinguquko zibe ngcono. Inkinga enkulu yomphakathi ukushintshwa kwesayensi ngobuchwepheshe bezombangazwe, ubudlelwano bomuntu siqu, imibono yeningi, i-populism, izeluleko ezivela “kumazwi angaphakathi,” ukuyekethisa okubolile, nanoma yini enye ngaphandle kwesayensi. Isayensi yekhompiyutha, noma ngabe yini umuntu angasho, okokuqala futhi okubaluleke kakhulu isayensi eqondile. Futhi uma othile eqala ukumemezela inani lakhe le-2x2, ehlukile ku-4, ngaphansi kwefulegi elithi "Linux way", noma ngaphansi kwelinye ifulege, khona-ke lokhu ngeke kubangele noma yini enye ngaphandle kokulimala.

Zonke izinkinga ngokuyinhloko zibangelwa ukuntula ikhono nokuntula imfundo yalabo abathatha izinqumo. Uma umphathi engafaneleki, akakwazi ukwenza isinqumo esinomgomo, esanele. Uma naye engafundiswanga, akakwazi ukuthola uchwepheshe onekhono ozomnikeza izeluleko ezifanele. Ngamathuba aphezulu, ukukhetha kuzowela kumkhohlisi othi "izinto ezibonakala zilungile." Isimo esikhohlakele sihlala sikhula eduze kwabaholi abangabodwa abangenalwazi. Ngaphezu kwalokho, umlando awukwazi okuhlukile kulokhu, futhi umphakathi uwukuqinisekisa okucacile kwalokhu.

Uyihlola kanjani inqubekelaphambili ekuthuthukisweni kwe-Btrfs? Ingabe le FS yaziqeda izifo zezingane? Uzibeka kanjani wena - njenge-FS "yekhaya" noma ukusetshenziswa kwebhizinisi futhi?

Angizange ngikulahle. Konke engakusho eminyakeni engu-11 edlule kusabalulekile nanamuhla. Enye yezinkinga nge-Btrfs eyenza ingalungeli izidingo ezibucayi inkinga yendawo yamahhala. Angikhulumi ngisho nangeqiniso lokuthi umsebenzisi ucelwa ukuthi agijimele esitolo ukuze athole idiski entsha ezimweni lapho noma iyiphi enye i-FS izokhombisa indawo enkulu yamahhala ekuhlukaniseni. Ukungakwazi ukuqedela ukusebenza ngevolumu enengqondo ngenxa yokuntuleka kwendawo yamahhala nakho akuyona into embi kakhulu. Okubi kakhulu ukuthi umsebenzisi ongenamalungelo angakwazi cishe njalo, ukweqa noma yimaphi ama-quota ediski, aphuce wonke umuntu isikhala samahhala ngesikhathi esifushane.

Kubukeka kanjena (ihlolwe i-Linux kernel 5.12). Umbhalo wethulwa ohlelweni olusanda kufakwa, okuthi ngeluphu ludale amafayela anamagama athile kuhla lwemibhalo lwasekhaya, lubhale idatha kuwo kuma-offset athile, bese lususa lawa mafayela. Ngemuva komzuzu wokusebenzisa lesi script, akukho okungajwayelekile okwenzekayo. Ngemuva kwemizuzu emihlanu, ingxenye yesikhala esithathwe ekuhlukaniseni iyanda kancane. Ngemuva kwamahora amabili kuya kwamathathu ifinyelela ku-50% (ngenani lokuqala lika-15%). Futhi ngemuva kwamahora amahlanu noma ayisithupha okusebenza, umbhalo uphahlazeka ngephutha "asikho isikhala samahhala ekuhlukaniseni." Ngemva kwalokhu, awusakwazi ukubhala ngisho nefayela le-4K esabelweni sakho.

Kwenzeka isimo esithakazelisayo: ugcine ungabhali lutho ekuhlukaniseni, futhi yonke indawo yamahhala (cishe i-85%) yanyamalala endaweni ethile. Ukuhlaziywa kwesigaba esingaphansi kokuhlaselwa okunjalo kuzoveza izindawo eziningi zesihlahla eziqukethe into eyodwa kuphela (into efakwe ukhiye), amabhayithi ambalwa ngosayizi. Okusho ukuthi, okuqukethwe okwakuthatha i-15% yesikhala sediski kuye kwaphenduka "igcotshwe" ngokulinganayo phezu kwayo yonke i-partition ukuze kungabikho ndawo yokubhala ifayela elisha, ngoba ukhiye walo mkhulu kunawo wonke akhona, futhi mahhala. amabhulokhi ekuhlukaniseni aphelile.

Ngaphezu kwalokho, konke lokhu sekwenzekile kakade ekucushweni okuyisisekelo kwe-Btrfs (ngaphandle kwanoma yiziphi izifinyezo, amavolumu amancane, njll.), futhi akunandaba ukuthi unquma kanjani ukugcina imizimba yamafayela kuleyo FS ("njengezingcezu" esihlahleni, noma njengama-degrees. yamabhulokhi angafomethiwe) - umphumela uzofana.

Ngeke ukwazi ukubeka ngaphansi kwezinye izinhlelo zefayela ezikhuphukayo ekuhlaselweni okunjalo (kungakhathaliseki ukuthi zikutshelani). Ngachaza imbangela yenkinga esikhathini eside esidlule: lokhu kuwukuhlanekezelwa okuphelele komqondo we-B-tree kuma-Btrfs, okwenza kube nokwenzeka ukuba wonakaliswe ngokuzenzakalelayo noma ngamabomu. Ikakhulukazi, ngaphansi kwemithwalo ethile, isistimu yakho yefayela izoqhubeka "ihlakazeka" ngesikhathi sokusebenza ngokwayo, ngaphandle kosizo lwangaphandle. Kuyacaca ukuthi zonke izinhlobo zezinqubo zangemuva "zokucindezela" zizolondoloza usuku kuphela kumadeskithophu angawodwana.

Kumaseva eqoqo, umhlaseli uzokwazi “ukuba phambili” kuwo. Umphathi wohlelo ngeke akwazi ngisho nokunquma ukuthi ubani ngempela omqinele. Indlela eshesha kakhulu yokulungisa le nkinga kuma-Btrfs ukubuyisela ukwakheka kwesihlahla esivamile se-B, i.e. ukuklama kabusha ifomethi yediski futhi ubhale kabusha izingxenye ezibalulekile zekhodi ye-Btrfs. Lokhu kuzothatha iminyaka engu-8-10, okuhlanganisa ukulungisa iphutha, inqobo nje uma abathuthukisi belandela ngokuqinile izindatshana zangempela zama-algorithms afanelekile nezakhiwo zedatha, futhi bengawudlali umdlalo “wefoni ephukile”, njengoba kuwumkhuba (futhi kukhuthazwa) ku-“Linux. indlela".

Lapha sidinga futhi ukwengeza isikhathi esidingekayo ukuze onjiniyela baqonde konke lokhu. Yilapho kuba nzima khona. Kunoma yikuphi, iminyaka eyi-10 yayinganele ukuba bayiqonde. Hhayi-ke, kuze kube yileso sikhathi awukwazi ukuthemba isimangaliso. Ngeke kwenzeke ngendlela yenketho yokukhweza "mina nawe besingazi ngayo," noma ngesimo sesiqephu "okuyinto nje yebhizinisi" ukusilungiselela. Kulowo nalowo "ukulungisa" okuphuthumayo ngizokwethula isimo esisha sokuwohloka. Izihlahla ze-B zingenye yezihloko engizikhonzile, futhi kufanele ngisho ukuthi lezi zakhiwo azikubekezeleli inkululeko ngokwazo!

Ngizibeka kanjani i-Btrfs kimina? Njengento engeke neze ibizwe ngokuthi isistimu yefayela, ingasaphathwa esetshenziswa. Ngoba, ngencazelo, i-FS iwuhlelo olungaphansi lwe-OS olubhekele ukuphathwa ngempumelelo kwensiza "yesikhala sediski", esingayiboni endabeni yama-Btrfs. Ake ucabange ukuthi uze esitolo uzothenga iwashi ukuze ungafiki sekwephuzile emsebenzini, futhi esikhundleni sewashi bakuthengisele i-grill kagesi enesibali sikhathi isikhathi esingangemizuzu engama-30. Ngakho-ke, isimo nge-Btrfs sibi nakakhulu.

Uma ngibheka uhlu lwamakheli, ngivame ukuhlangana nesitatimende sokuthi ukuphatha kahle isikhala sediski akusabalulekile ngenxa yokushibhile kwamadrayivu. Umbhedo ophelele lo. Ngaphandle komphathi wesikhala sediski esisebenzayo, i-OS izoba sengozini futhi ingasebenziseki. Noma ngabe angakanani umthamo wamadiski emshinini wakho.

Ngicela ukuphawula mayelana nokunqanyulwa kosekelo lwe-Btrfs ku-RHEL.

Akukho okukhethekile ongaphawula ngakho lapha, konke kucacile. Babenayo futhi “njengokubuka kuqala kobuchwepheshe”. Ngakho-ke, angizange ngidlule kulokhu "kuhlola kuqala" kakhulu. Ungavumeli le lebula ilembe unomphela! Kodwa abakwazi ukwethula umkhiqizo odizayinwe kahle onephutha ngokusekelwa okugcwele. I-RHEL iyibhizinisi, okungukuthi, ubudlelwano obunqunyiwe bempahla nemali. I-Red Hat ayikwazi ukuhlukumeza abasebenzisi njengoba benza ohlwini lwama-imeyili e-Btrfs. Cabanga nje isimo: iklayenti elikhokhele imali yalo eyisebenze kanzima yediski kanye nawe ukuze uthole ukwesekwa, lifuna ukuqonda ukuthi indawo yakhe yediski yashonaphi ngemva kokuba engabhalanga lutho. Uzomphendula uthini kulokhu?

Ngokuqhubekayo. Amaklayenti e-Red Hat ahlanganisa amabhange amakhulu aziwayo kanye nokuhwebelana. Cabanga ukuthi bekuzokwenzekani uma bebengaphansi kokuhlaselwa kwe-DoS okususelwe ekubeni sengozini okukhulunywe ngakho kuma-Btrfs. Ucabanga ukuthi ubani onecala kulokhu? Kulabo asebezokhomba umunwe emgqeni welayisensi ye-GPL, lapho kubhalwe khona ukuthi umbhali akanalo icala, ngizothi ngokushesha: "fihla!" I-Red Hat izophendula, futhi ngendlela yokuthi ngeke ibonakale ngokwanele! Kodwa ngiyazi ukuthi i-Red Hat ayibhekene nalolu hlobo lwenkinga, uma kubhekwa iqembu labo eliqinile lonjiniyela be-QA engaba nethuba lokusebenza eduze nabo ngesikhathi sami.

Kungani ezinye izinkampani ziqhubeka nokusekela ama-Btrfs emikhiqizweni yawo yebhizinisi?

Sicela uqaphele ukuthi isiqalo esithi "ibhizinisi" egameni lomkhiqizo asisho okuningi. Ibhizinisi isilinganiso somthwalo wemfanelo oshumekwe ebudlelwaneni benkontileka neklayenti. Ngazi ngebhizinisi elilodwa kuphela elisekelwe ku-GNU/Linux - RHEL. Konke okunye, ngokombono wami, kwethulwa kuphela njengebhizinisi, kodwa akuyona eyodwa. Futhi ekugcineni, uma kukhona isidingo sokuthile, khona-ke kuyoba khona njalo ukuhlinzeka (kithi, lokhu "ukusekelwa" okushiwo. Kunesidingo sayo yonke into, kuhlanganisa. kanye nesoftware engasebenziseki. Ukuthi isidingo esinjalo sakhiwa kanjani nokuthi ubani osibhebhezela esinye isihloko.

Ngakho-ke, ngeke ngifinyelele kunoma yiziphi iziphetho ngemuva kokuthi i-Facebook inamahemuhemu okuthi ikhiphe ama-Btrfs kumaseva ayo. Ngaphezu kwalokho, ngingancoma ukuthi kugcinwe ngokucophelela amakheli alawo maseva eyimfihlo ngenxa yezizathu ezingenhla.

Kungani kwenziwe umzamo omkhulu kangaka wokuhlanza ikhodi ye-XFS muva nje? Phela, ekuqaleni lolu uhlelo lwefayela lomuntu wesithathu, futhi i-ext4 izinzile isikhathi eside futhi inokuqhubeka ezinguqulweni zangaphambili ezizinzile ngokulinganayo. I-Red Hat inayiphi intshisekelo ku-XFS? Ingabe kunengqondo ukuthuthukisa izinhlelo ezimbili zefayela ezifanayo ngenjongo - ext4 ne-XFS?

Angikhumbuli ukuthi yini eyagqugquzela lokhu. Kungenzeka ukuthi lolu hlelo luvela kumakhasimende e-Red Hat. Ngikhumbula ukuthi ucwaningo lwalolu hlobo lwenziwa: kwezinye izinhlelo zefayela ezivela phezulu, inani elikhulu lezinto ladalwa kumadrayivu aphezulu esizukulwane esisha. Ngokwemiphumela, i-XFS iziphathe kangcono kune-ext4. Ngakho baqala ukuyikhuthaza njengethembisa kakhulu. Kunoma ikuphi, ngeke ngifune lutho oluhlaba umxhwele lapha.

Kimina, kufana nokuthi bashintshe insipho ngensipho. Alikho iphuzu ekuthuthukiseni i-ext4 ne-XFS. Kokubili ngokuhambisana nanoma yikuphi ongakhetha kukho. Akukho okuhle okuzovela kulokhu. Nakuba, emvelweni kuvame ukuba nezimo lapho kunamathuba amaningi okukhula, kodwa ayikho indawo yokukhula. Kulokhu, kuvela izinhlobonhlobo ezintsha ezimbi ngendlela exakile, lapho wonke umuntu ekhomba ngomunwe ("O, bheka, yini ongeke uyibone kulokhu kuphila!").

Ingabe ucabanga ukuthi indaba yokwephulwa kwesendlalelo isixazululiwe (ngomqondo ongemuhle) ngokufika kwemisebenzi yokubethela ku-ext4, F2FS (ingasaphathwa i-RAID kuma-Btrfs)?

Ngokuvamile, ukwethulwa kwanoma yimaphi amazinga kanye nokwenza isinqumo mayelana nokungaphulwa kwawo ngokuvamile kuyindaba yenqubomgomo, futhi angizibophezeli ukuphawula nganoma yini lapha. Izici ezihlosiwe zokwephulwa kwesendlalelo azinantshisekelo encane kunoma ubani, kodwa singacabangela ezinye zazo sisebenzisa isibonelo sokwephulwa "okusuka phezulu," okungukuthi, ukuqaliswa ku-FS yokusebenza osekuvele kukhona kungqimba lokuvimba. "Ukwephulwa" okunjalo kufaneleka ngaphandle nje kokungavamile. Esimweni ngasinye esinjalo, kufanele uqale ufakazele izinto ezimbili: ukuthi iyadingeka ngempela, nokuthi ukwakheka kohlelo ngeke kulinyazwe ngokwenza lokho.

Isibonelo, ukwenza isibuko, obekulokhu kuwumsebenzi we-block layer, kunengqondo ukusebenzisa ezingeni lesistimu yefayela. Ngezizathu ezahlukene. Isibonelo, inkohlakalo yedatha "ethule" (i-bit rot) ivela kumadrayivu ediski. Kulapho idivayisi isebenza kahle, kodwa idatha yokuvimba yonakaliswa ngokungalindelekile ngaphansi kwethonya le-gamma quantum eqinile ekhishwe i-quasar ekude, njll. Okubi kakhulu uma leli bhulokhi liphenduka ibhulokhi yesistimu ye-FS (i-superblock, i-bitmap block, i-node yesihlahla sokugcina, njll.), ngoba lokhu kuzoholela ekwesabeni kwe-kernel.

Sicela uqaphele ukuthi izibuko ezinikezwa yi-block layer (okuthiwa i-RAID 1) ngeke ikusindise kule nkinga. Yebo, ngempela: umuntu kufanele ahlole amasheke futhi afunde ikhophi uma kwenzeka ehluleka? Ngaphezu kwalokho, kunengqondo ukubukisa hhayi nje yonke into, kodwa imethadatha kuphela. Enye idatha ebalulekile (isibonelo, amafayela asebenzisekayo ezinhlelo zokusebenza ezibalulekile) ingagcinwa njengemethadatha. Kulokhu, bathola iziqinisekiso ezifanayo zokuphepha. Kunengqondo ukuphathisa ukuvikelwa kwedatha esele kwamanye amasistimu angaphansi (mhlawumbe nezinhlelo zokusebenza zabasebenzisi) - sinikeze zonke izimo ezidingekayo zalokhu.

Izibuko ezinjalo "zezomnotho" zinelungelo lokuba khona, futhi zingahlelwa ngokuphumelelayo kuphela ezingeni lesistimu yefayela. Uma kungenjalo, ukwephulwa kwezigaba kuhlanganisa isistimu engaphansi enekhodi eyimpinda ngenxa yezinzuzo ezithile ezincane. Isibonelo esimangalisayo salokhu ukuqaliswa kwe-RAID-5 kusetshenziswa i-FS. Izixazululo ezinjalo (i-RAID / LVM eyakhe ohlelweni lwefayela) zibulala lokhu kwakamuva ngokwemibandela yezakhiwo. Kufanele futhi kuqashelwe lapha ukuthi ukwephulwa kwezingqimba “kuyasakazwa” izinhlobo ezahlukahlukene zabakhwabanisi bokuthengisa. Uma ingekho imibono, ukusebenza osekunesikhathi eside kwenziwa emazingeni angomakhelwane kuyengezwa kumasistimu angaphansi, lokhu kwethulwa njengesici esisha esiwusizo kakhulu futhi siphushwa ngenkuthalo.

U-Reiser4 usolwa ngokwephula amazinga "asuka ngaphansi". Ngokusekelwe eqinisweni lokuthi isistimu yefayela ayiyona i-monolithic, njengazo zonke ezinye, kodwa i-modular, umcabango ongenasisekelo wenziwa ukuthi lenza lokho izinga elingenhla (VFS) okufanele lenze.

Kungenzeka yini ukukhuluma ngokufa kwe-ReiserFS v3.6 futhi, isibonelo, i-JFS? Muva nje abakaze bathole ukunakwa emnyombweni. Ingabe aphelelwe yisikhathi?

Lapha sidinga ukuchaza ukuthi kusho ukuthini ukufa komkhiqizo wesoftware. Ngakolunye uhlangothi, zisetshenziswa ngempumelelo (yilokho ezadalelwa khona, ngemva kwakho konke), okusho ukuthi ziphila. Ngakolunye uhlangothi, angikwazi ukukhuluma nge-JFS (angazi okuningi), kodwa i-ReiserFS (v3) inzima kakhulu ukuzivumelanisa nezimo ezintsha (ihlolwe ngokusebenza). Lokhu kusho ukuthi esikhathini esizayo abathuthukisi ngeke banake, kodwa kulabo okulula ukuzivumelanisa nezimo. Kulolu hlangothi kuvela ukuthi, maye, ifile ngokwemibandela yezakhiwo. Ngeke ngiguqule umqondo wokuthi "ukuziphatha okuphelelwe yisikhathi" nhlobo. Kusebenza kahle, isibonelo, ku-wardrobe, kodwa hhayi emikhiqizweni yesofthiwe. Kunomqondo wokungabi nalutho kanye nokuphakama kokuthile. Ngingasho nakancane ukuthi i-ReserFS v3 manje isingaphansi kwe-Reiser4 kukho konke, kodwa kwezinye izinhlobo zomthwalo womsebenzi ingaphezu kwawo wonke amanye ama-FS akhuphuka nomfula.

Ingabe uyazi mayelana nokuthuthukiswa kwe-FS Tux3 kanye ne-HAMMER/HAMMER2 (FS ye-DragonFly BSD)?

Yebo, siyazi. Ku-Tux3 ngake ngaba nentshisekelo kubuchwepheshe bezifinyezo zabo (okuthiwa “izikhombisi zenguqulo”), kodwa ku-Reiser4 cishe sizohamba ngendlela ehlukile. Bengicabanga ngokusekela izifinyezo isikhathi eside futhi angikakanqumi ukuthi ngingazisebenzisa kanjani kumavolumu alula we-Reiser4. Iqiniso liwukuthi i-counter counter yereferensi entsha "evilaphayo" ehlongozwe ngu-Ohad Rodeh isebenza kuphela ezihlahleni ze-B. Asinazo. Kulezo zakhiwo zedatha ezisetshenziswa ku-Reiesr4, izibali “ezivilaphayo” azichazwanga - ukuze uzethule, kuyadingeka ukuxazulula izinkinga ezithile ze-algorithmic, okungakaze kuthathwe muntu.

Ngokuka-HAMMER: Ngifunde isihloko esivela kumdali. Anginantshisekelo. Futhi, izihlahla ze-B. Lesi sakhiwo sedatha siphelelwe yisikhathi ngokungenathemba. Sayilahla ekhulwini leminyaka elidlule.

Usihlola kanjani isidingo esikhulayo se-network cluster FSs njenge-CephFS/GlusterFS/etc? Ingabe lesi sidingo sisho ukushintsha kokubalulekile konjiniyela ku-FS yenethiwekhi nokunganakwa okwanele kwe-FS yendawo?

Yebo, kuye kwenzeka ushintsho olunjalo ezintweni eziza kuqala. Ukuthuthukiswa kwezinhlelo zamafayela endawo kumile. Maye, ukwenza okuthile okubalulekile kumavolumu wendawo manje sekunzima kakhulu futhi akuwona wonke umuntu ongakwenza. Akekho ofuna ukutshala imali ekuthuthukisweni kwakhe. Lokhu kucishe kufane nokucela inhlangano yezohwebo ukuthi yabele imali yocwaningo lwezibalo - ngaphandle komdlandla izobuza ukuthi ungayenza kanjani imali ngethiyori entsha. Manje i-FS yendawo iyinto ebonakala ngomlingo “ngaphandle kwebhokisi” futhi “kufanele ihlale isebenza,” futhi uma ingasebenzi, ibangela ukukhononda okungaxazululeki njengokuthi: “Yebo, bacabangani!”

Ngakho ukunganakwa kwe-FS yendawo, nakuba usemkhulu umsebenzi kuleyo ndawo. Futhi yebo, wonke umuntu uphendukele kwisitoreji esabiwe, esakhiwe ngesisekelo sezinhlelo zamafayela endawo akhona kakade. Sekuyimfashini kakhulu manje. Inkulumo ethi "Idatha Enkulu" ibangela ukujaha kwe-adrenaline kwabaningi, ihlobanisa nezingqungquthela, ama-workshops, amaholo amakhulu, njll.

Kunengqondo kangakanani ngokomthetho ukusebenzisa isistimu yefayela yenethiwekhi endaweni ye-kernel kunesikhala somsebenzisi?

Indlela ephusile engakenziwa noma kuphi. Ngokuvamile, umbuzo wokuthi isistimu yefayela yenethiwekhi kufanele isetshenziswe kusiphi isikhala "kuyinkemba esika-kabili." Awu, ake sibheke isibonelo. Iklayenti lirekhode idatha emshinini oqhelile. Awela kunqolobane yekhasi lakhe ngendlela yamakhasi angcolile. Lona umsebenzi wesistimu yefayela yenethiwekhi "yesango elincane" endaweni ye-kernel. Khona-ke isistimu yokusebenza izokucela ngokushesha noma kamuva ukuthi ubhale lawo makhasi kudiski ukuze uwakhulule. Bese kudlala imojula ye-FS yenethiwekhi ye-IO-forwarding (ethumelayo). Inquma ukuthi yimuphi umshini weseva (i-server node) la makhasi azoya kuwo.

Khona-ke isitaki senethiwekhi sithatha indawo (futhi, njengoba sazi, sisetshenziswa endaweni ye-kernel). Okulandelayo, i-node yeseva ithola lelo phakethe ngedatha noma imethadatha futhi iyala imojula yokugcina i-backend (okungukuthi, i-FS yendawo esebenza esikhaleni se-kernel) ukurekhoda zonke lezi zinto. Ngakho-ke, sinciphise umbuzo ngokuthi amamojula “wokuthumela” kanye “nokwamukela” kufanele asebenze kuphi. Uma noma yimaphi kulawo mamojula asebenza endaweni yomsebenzisi, lokhu kuzoholela nakanjani ekushintsheni kokuqukethwe (ngenxa yesidingo sokusebenzisa izinsizakalo ze-kernel). Inani lamaswishi anjalo lincike emininingwaneni yokusebenzisa.

Uma kunamaswishi amaningi anjalo, khona-ke ukudlula kwesitoreji (ukusebenza kwe-I/O) kuzokwehla. Uma isitoreji sakho sangemuva sakhiwe ngamadiski ahamba kancane, khona-ke ngeke uqaphele ukwehla okuphawulekayo. Kodwa uma unamadiski asheshayo (i-SSD, i-NVRAM, njll.), khona-ke ukushintsha umongo sekuvele kuba "ibhodlela" futhi, ngokulondoloza ekushintsheni umongo, ukusebenza kungandiswa kakhulu. Indlela ejwayelekile yokonga imali ukuhambisa amamojula endaweni ye-kernel. Isibonelo, sithole ukuthi ukuhambisa iseva ye-9p kusuka ku-QEMU kuya ku-kernel emshinini wokusingathwa kuholela ekwandeni kokuphindwe kathathu ekusebenzeni kwe-VirtFS.

Lokhu, yiqiniso, akuyona inethiwekhi ye-FS, kodwa ibonisa ngokugcwele ingqikithi yezinto. Okubi kwalokhu kulungiselelwa izinkinga zokuphatheka. Kwabanye, lokhu kwakamuva kungase kube okubucayi. Isibonelo, i-GlusterFS ayinawo amamojula ku-kernel nhlobo. Ngenxa yalokhu, manje isebenza ezisekelweni eziningi, kuhlanganise ne-NetBSD.

Yimiphi imiqondo ama-FS endawo angayiboleka kweyenethiwekhi futhi ngokuphambene nalokho?

Namuhla, ama-FS enethiwekhi, njengomthetho, anezengezo kuma-FS wendawo, ngakho-ke angiqondi kahle ukuthi ungaboleka kanjani okuthile kokugcina. Yebo, ngempela, ake sicabangele inkampani yabasebenzi abangu-4, lapho wonke umuntu ezenzela khona: omunye uhambisa, omunye uthumela, owesithathu uthola, izitolo zesine. Futhi umbuzo, yini inkampani engayiboleka kusisebenzi sayo esiyigcinayo, izwakala ingalungile ngandlela-thile (isivele inalokho ebingayiboleka kuye isikhathi eside).

Kodwa ama-FS wendawo anokuningi okumele akufunde kumanethiwekhi. Okokuqala, kufanele ufunde kubo indlela yokuhlanganisa amavolumu anengqondo ezingeni eliphezulu. Manje okuthiwa Amasistimu wamafayela endawo “athuthukisiwe” ahlanganisa amavolumu anengqondo kusetshenziswa ubuchwepheshe “bedivayisi ebonakalayo” obubolekwe ku-LVM (lokho kuphulwa kwezigaba ezithathelwanayo okwaqaliswa ukusetshenziswa ku-ZFS). Ngamanye amazwi, ukuhunyushwa kwamakheli abonakalayo (izinombolo zokuvimba) abe awangempela nangemuva kwenzeka ezingeni eliphansi (okungukuthi, ngemva kokuba uhlelo lwefayela lukhiphe isicelo se-I/O).

Sicela uqaphele ukuthi ukwengeza nokukhipha amadivaysi kumavolumu anengqondo (hhayi izibuko) ahlelwe kungqimba lwamabhulokhi kuholela ezinkingeni abahlinzeki balezo “zici” abathula ngazo ngesizotha. Ngikhuluma ngokuhlukana kumadivayisi angempela, angafinyelela amanani amakhulu, kuyilapho kudivayisi ebonakalayo konke kuhamba kahle. Nokho, bambalwa abantu abanentshisekelo kumadivayisi abonakalayo: wonke umuntu unentshisekelo kokwenzekayo kumadivayisi akho angempela. Kodwa i-ZFS-like FS (kanye nanoma iyiphi i-FS ngokubambisana ne-LVM) isebenza kuphela ngamadivayisi wediski ebonakalayo (nikeza amakheli ediski abonakalayo phakathi kwamahhala, uhlukanise lawa madivayisi abonakalayo, njll.). Futhi abazi ukuthi kwenzekani kumadivayisi angempela!

Manje ake ucabange ukuthi awunaziro ukuhlukana kudivayisi ebonakalayo (okungukuthi, unezinga elilodwa nje elikhulu elihlala lapho), ungeza idiski kuvolumu yakho enengqondo, bese ususa enye idiski engahleliwe kuvolumu yakho enengqondo bese ubhalansisa. Futhi izikhathi eziningi. Akunzima ukucabanga ukuthi kudivayisi ebonakalayo usazoba nalelo zinga elifanayo lokuphila, kodwa kumadivayisi wangempela ngeke ubone lutho oluhle.

Okubi kakhulu ukuthi awukwazi ngisho nokusilungisa lesi simo! Into kuphela ongayenza lapha ukucela isistimu yefayela ukuthi ihlukanise idivayisi ebonakalayo. Kodwa uzokutshela ukuthi konke kuhle lapho - kunezinga elilodwa kuphela, ukuhlukana kungu-zero, futhi ngeke kube ngcono! Ngakho-ke, imiqulu enengqondo ehlelwe ezingeni le-block ayihloselwe ukwengeza okuphindaphindiwe / ukususwa kwamadivayisi. Ngendlela enhle, udinga kuphela ukuhlanganisa ivolumu enengqondo ezingeni le-block kanye, uyinike uhlelo lwefayela, bese ungenzi lutho olunye ngayo.

Ngaphezu kwalokho, inhlanganisela yezinhlelo ezingaphansi ezizimele ze-FS+LVM ayikuvumeli ukucabangela uhlobo oluhlukile lwamadrayivu lapho amavolumu anengqondo ahlanganiswa khona. Ngempela, ake sithi uhlanganise ivolumu enengqondo evela ku-HDD namadivayisi wesimo esiqinile. Kodwa-ke owokuqala uzodinga ukuhlukaniswa, futhi owesibili ngeke. Okokugcina, udinga ukukhipha izicelo zokulahla, kodwa ezokuqala, hhayi, njll. Nokho, kule nhlanganisela kunzima kakhulu ukubonisa ukukhetha okunjalo.

Qaphela ukuthi ngemuva kokudala i-LVM yakho ohlelweni lwefayela, isimo asibi ngcono kakhulu. Ngaphezu kwalokho, ngokwenza lokhu empeleni uqeda ithemba lokuyoke ulithuthukise esikhathini esizayo. Kubi kakhulu lokhu. Izinhlobo ezahlukene zamadrayivu zingaphila emshinini ofanayo. Futhi uma uhlelo lwefayela lungahlukanisi phakathi kwabo, ubani-ke ozokwazi?

Enye inkinga ilele ekulindeni okuthiwa. Amasistimu wefayela "Bhala-Noma kuphi" (lokhu kuhlanganisa ne-Reiser4, uma ucacise imodeli yokwenziwe efanele ngesikhathi sokukhweza). Lezo zinhlelo zamafayela kufanele zihlinzeke ngamathuluzi okuhlukanisa amandla angakaze abonwe ngaphambili. Futhi umphathi wevolumu yezinga eliphansi akasizi lapha, kodwa ungena kuphela endleleni. Iqiniso liwukuthi ngomphathi onjalo, i-FS yakho izogcina imephu yamabhulokhi wamahhala wedivayisi eyodwa kuphela - eyodwa ebonakalayo. Ngokuvumelana nalokho, ungahlukanisa kuphela idivayisi ebonakalayo. Lokhu kusho ukuthi i-defragmenter yakho izosebenza isikhathi eside, eside endaweni eyodwa enkulu yamakheli abonakalayo.

Futhi uma unabasebenzisi abaningi abenza ukubhala ngaphezulu okungahleliwe, umphumela owusizo we-defragmenter enjalo uzokwehliswa ube ziro. Isistimu yakho nakanjani izoqala ukwehlisa ijubane, futhi kuzodingeka ugoqe izandla kuphela phambi kokuxilongwa okudumazayo "umklamo ophukile". Ama-defragmenter amaningana asebenza endaweni eyodwa yamakheli azophazamisana kuphela. Kuyindaba ehluke ngokuphelele uma unakekela imephu yakho yamabhulokhi wamahhala kudivayisi ngayinye yangempela. Lokhu kuzohambisana ngokuphumelelayo nenqubo ye-defragmentation.

Kodwa lokhu kungenziwa kuphela uma unomphathi wevolumu enengqondo esezingeni eliphezulu. Izinhlelo zamafayela endawo anabaphathi abanjalo bezingekho ngaphambilini (okungenani, angazi ngazo). Amasistimu wamafayela enethiwekhi kuphela (isibonelo i-GlusterFS) ayenabaphathi abanjalo. Esinye isibonelo esibaluleke kakhulu uhlelo lokuhlola ubuqotho bevolumu (fsck). Uma ugcina imephu yakho ezimele yamabhulokhi wamahhala wevolumu ngayinye engaphansi, inqubo yokuhlola ivolumu enengqondo ingafaniswa ngempumelelo. Ngamanye amazwi, amavolumu anengqondo anabaphathi bezinga eliphezulu aba ngcono.

Ngaphezu kwalokho, ngabaphathi bevolumu yezinga eliphansi ngeke ukwazi ukuhlela izifinyezo ezigcwele. Ngezinhlelo zefayela ezifana ne-LVM ne-ZFS, ungathatha izifinyezo zendawo kuphela, kodwa hhayi izifinyezo zomhlaba. Izifinyezo zasendaweni zikuvumela ukuthi ubuyisele emuva ngokushesha kuphela imisebenzi evamile yefayela. Futhi akekho ozobuyisela emuva imisebenzi ngamavolumu anengqondo (ukwengeza/ukukhipha amadivaysi). Ake sibheke lokhu ngesibonelo. Ngesinye isikhathi, lapho unevolumu enengqondo yamadivayisi amabili A no-B aqukethe amafayela ayi-100, uthatha isifinyezo sohlelo S bese udala amanye amafayela ayikhulu.

Ngemva kwalokho, ungeza idivayisi C kuvolumu yakho, bese ekugcineni ubuyisela emuva isistimu yakho ukuze ithwebule S. Umbuzo: Mangaki amafayela namadivayisi umthamo wakho onengqondo oqukethwe ngemva kokuhlehliselwa ku-S? Kuzoba namafayela ayi-100, njengoba ungase uqagele, kodwa kuzoba namadivayisi angu-3 - lawa madivayisi afanayo A, B no-C, nakuba ngesikhathi kwakhiwa isifinyezo kwakunamadivayisi amabili kuphela ohlelweni (A no-B ). Umsebenzi wokwengeza idivayisi C awubuyelanga emuva, futhi uma manje ukhipha idivayisi C kukhompuyutha, izokonakalisa idatha yakho, ngakho ngaphambi kokuyisusa uzodinga ukuthi uqale wenze umsebenzi obizayo ukuze ususe idivayisi kuvolumu yokubhala kabusha enengqondo. izosakaza yonke idatha kusuka kudivayisi C iye kumadivayisi A no-B. Kodwa uma i-FS yakho isekela izifinyezo zomhlaba wonke, ukulinganisa kabusha okunjalo ngeke kudingeke, futhi ngemva kokuhlehliselwa emuva ngokushesha ku-S, ungakhipha idivayisi C ngokuphephile kukhompuyutha.

Ngakho-ke, izifinyezo zomhlaba zihle ngoba zikuvumela ukuthi ugweme ukukhishwa okubizayo (ukwengeza) kwedivayisi kusuka kuvolumu enengqondo (kuya kuvolumu enengqondo) ngenani elikhulu ledatha (yebo, uma ukhumbula "ukuthwebula" uhlelo lwakho. ngesikhathi esifanele). Ake ngikukhumbuze ukuthi ukwenza izifinyezo nokuhlehlisa uhlelo lwefayela kubo kuwumsebenzi osheshayo. Kungase kuphakame umbuzo: kungenzeka kanjani ukuthi ubuyisele emuva ukusebenza kwevolumu enengqondo ekuthathe izinsuku ezintathu? Kodwa kungenzeka! Kuncike ekutheni isistimu yakho yefayela iklanywe ngendlela efanele. Ngiqhamuke nombono walezo “zifinyezo ze-3D” eminyakeni emithathu edlule, futhi ngonyaka odlule ngathola ilungelo lobunikazi le nqubo.

Okulandelayo ama-FS endawo okufanele ayifunde kunethiwekhi ukugcina imethadatha kumadivayisi ahlukene ngendlela efanayo nama-FS wenethiwekhi ayigcina emishinini ehlukene (okubizwa ngamaseva emethadatha). Kukhona izinhlelo zokusebenza ezisebenza ngokuyinhloko ngemethadatha, futhi lezi zinhlelo zokusebenza zingasheshiswa kakhulu ngokubeka imethadatha kumadivayisi esitoreji asebenza kahle kakhulu abizayo. Ngenhlanganisela ye-FS+LVM, ngeke ukwazi ukukhombisa ukukhetha okunjalo: I-LVM ayazi ukuthi yini ekubhuloki odlulisele kuyo (idatha lapho noma imethadatha).

Ngeke uthole inzuzo enkulu ekusebenziseni i-LVM yakho esezingeni eliphansi ku-FS uma kuqhathaniswa nenhlanganisela ye-FS+LVM, kodwa ongakwenza kahle kakhulu ukuhlanganisa i-FS ukuze kamuva kube nzima ukusebenza ngekhodi yayo. I-ZFS ne-Btrfs, ephuthuma ngamadivayisi abonakalayo, zonke ziyizibonelo ezicacile zokuthi ukwephulwa kwe-laying kubulala kanjani isistimu ngokwemibandela yezakhiwo, kungani ngiyikho konke lokhu? Ngaphezu kwalokho, asikho isidingo sokufaka i-LVM yakho yezinga eliphansi ohlelweni lwefayela. Kunalokho, udinga ukuhlanganisa amadivaysi abe amavolumu anengqondo ezingeni eliphezulu, njengoba amanye amasistimu efayela enethiwekhi enza ngemishini ehlukene (amanodi okugcina). Yiqiniso, lokhu bakwenza ngokunengekayo ngenxa yokusebenzisa ama-algorithms amabi.

Izibonelo zama-algorithms asabekayo umhumushi we-DHT ohlelweni lwefayela le-GlusterFS kanye nalokho okubizwa ngokuthi imephu ye-CRUSH ohlelweni lwefayela le-Ceph. Awekho ama-algorithms engawabona anganelisa mayelana nobulula nokulinganisa okuhle. Ngakho kwadingeka ngikhumbule i-algebra futhi ngizisungulele yonke into ngokwami. Ngo-2015, ngenkathi ngizama izinqwaba ngaphezu kokusebenza kwe-hashi, ngathola futhi ngagunyaza okuthile okungifanele. Manje ngingasho ukuthi umzamo wokwenza konke lokhu ube yimpumelelo. Angiziboni izinkinga ngokulinganisa endleleni entsha.

Yebo, i-subvolume ngayinye izodinga isakhiwo esihlukile njenge-superblock enkumbulweni. Ingabe lokhu kuyethusa kakhulu? Ngokuvamile, angazi ukuthi ubani "ozobilisa ulwandle" futhi adale ivolumu enengqondo yamadivayisi angamakhulu ezinkulungwane noma ngaphezulu emshinini owodwa wendawo. Uma kukhona ongangichazela lokhu, ngizobonga kakhulu. Okwamanje, kimina lokhu kuwubuwula bokumaketha.

Ingabe izinguquko ohlelweni olungaphansi lwedivayisi ye-kernel block (isibonelo, ukubukeka kwe-blk-mq) kube nomthelela kanjani kuzidingo zokusetshenziswa kwe-FS?

Abazange babe nomthelela. Angazi ukuthi kuzokwenzekani ku-block layer ezokwenza kube nesidingo ukuklama i-FS entsha. Ukusebenzelana kwalezi zinhlelo ezingaphansi kubi kakhulu. Kusukela ohlangothini lomshayeli, i-FS kufanele ithinteke kuphela ngokubonakala kwezinhlobo ezintsha zokushayela, lapho ungqimba lwe-block luzolungiswa khona kuqala, bese kuba i-FS (ye-reiser4 lokhu kuzosho ukubonakala kwama-plugin amasha).

Ingabe ukuvela kwezinhlobo ezintsha zemidiya (isibonelo, i-SMR, noma indawo yonke yama-SSD) kusho izinselele ezintsha ngokuyisisekelo zokuklanywa kwesistimu yefayela?

Yebo. Futhi lezi yizikhuthazo ezivamile zokuthuthukiswa kwe-FS. Izinselele zingahluka futhi zingalindelekile ngokuphelele. Isibonelo, ngizwile ngamadrayivu lapho isivinini sokusebenza kwe-I/O sincike kakhulu kusayizi wocezu lwedatha nokusuka kwayo. Ku-Linux, lapho usayizi webhulokhi ye-FS ungenakudlula usayizi wekhasi, idrayivu enjalo ngeke ibonise amandla ayo aphelele ngokuzenzakalelayo. Nokho, uma uhlelo lwakho lwefayela luklanywe ngendlela efanele, khona-ke kunethuba lokuthola okuningi kulo.

Bangaki abantu okwamanje abasebenza ngekhodi ye-Reiser4 ngaphandle kwakho?

Ngaphansi kwalokho engingathanda, kodwa angiboni nokushoda okukhulu kwezinsiza. Ngeneliseke kakhulu ngesivinini sokuthuthukiswa kwe-Reiser4. Ngeke "ngishayele amahhashi" - akuyona indawo efanele lena. Lapha, "uma ushayela ngokuthula, uzoqhubeka!" Isistimu yefayela yesimanje iwuhlelo oluncane lwe-kernel oluyinkimbinkimbi kakhulu, izinqumo zedizayini ezingalungile ezingahlehlisa iminyaka eyalandela yomsebenzi womuntu.

Ngokunikela ngamavolontiya ukuthi asebenzise okuthile, ngihlala ngiqinisekisa ukuthi imizamo izoholela kumphumela olungile, okungaba yimfuneko yezidingo ezinkulu. Njengoba uqonda, azikho iziqinisekiso eziningi ezinjalo ngesikhathi esisodwa. Ngesikhathi esifanayo, angikwazi ukumela "izibalo" ezikhuthaza ngokungenamahloni "izici" zesofthiwe ngokusobala engenakusebenziseka, ekhohlisa amakhulu abasebenzisi nabathuthukisi, futhi ngesikhathi esifanayo ngihlezi futhi ngimamatheka ezingqungqutheleni ze-kernel.

Ingabe ikhona inkampani ezwakalise ukuzimisela ukusekela ukuthuthukiswa kwe-Reiser4?

Yebo, kwakukhona iziphakamiso ezinjalo, kuhlanganisa. nakumthengisi omkhulu. Kodwa ngenxa yalokhu kwadingeka ngithuthele kwelinye izwe. Ngeshwa, angisenaminyaka engu-30 ubudala, angikwazi ukugqashula ngihambe kanjalo lapho kushaywa ikhwela lokuqala.

Yiziphi izici ezingekho ku-Reiser4 okwamanje?

Awukho umsebenzi “wokushintsha usayizi” wamavolumu alula, afana nalawo atholakala ku-ReiserFS(v3). Ngaphezu kwalokho, ukusebenza kwefayela elinefulegi le-DIRECT_IO ngeke kube buhlungu. Okulandelayo, ngingathanda ukukwazi ukuhlukanisa ivolumu ibe "ama-semantic subvolumes", angenawo usayizi omisiwe, futhi angafakwa njengamavolumu azimele. Lezi zinkinga zilungele abaqalayo abafuna ukuzama isandla sabo "entweni yangempela."

Futhi ekugcineni, ngingathanda ukuba namavolumu anengqondo enethiwekhi ngokuqaliswa okulula nokuphatha (ama-algorithms anamuhla asevele evumela lokhu). Kodwa lokho i-Reiser4 engeke neze ibe nayo i-RAID-Z, izikhuhla, izinqolobane zesikhala samahhala, okuguquguqukayo okungu-128-bit kanye nobunye umbhedo wokumaketha obuvele ngenxa yokushoda kwemibono phakathi kwabathuthukisi bezinhlelo ezithile zamafayela.

Ingabe konke okungadingeka kungenziwa ngama-plugin?

Uma sikhuluma kuphela ngokuya nge-interfaces nama-plugin (amamojula) awasebenzisayo, akukhona konke. Kodwa uma futhi wethula ubudlelwano kulezi zindawo zokuxhumana, khona-ke, phakathi kwezinye izinto, uzoba nemibono yama-polymorphisms aphakeme, osuvele uwathole. Cabanga ukuthi ufrize ngokuqagela isistimu yesikhathi sokusebenza egxile entweni, uguqule inani lesikhombi somyalelo ukuze ukhombe kwenye i-plugin esebenzisa isixhumi esibonakalayo se-X, bese uqandisa isistimu ukuze iqhubeke nokusebenza.

Uma umsebenzisi wokugcina engakuqapheli lokho "ukushintshanisa," khona-ke sithi isistimu ine-polymorphism ye-zero-oda kusixhumi esibonakalayo se-X (noma isistimu ihlukile kusixhumi esibonakalayo sika-X, okuyinto efanayo). Uma manje ungenalo iqoqo le-interfaces kuphela, kodwa futhi unobudlelwane kuzo (igrafu yesixhumi esibonakalayo), khona-ke ungakwazi ukwethula ama-polymorphisms we-oda eliphezulu, okuzobonisa ukuhlukahluka kwesistimu kakade "kumakhelwane" wanoma iyiphi i-interface. Ngethula ukuhlukaniswa okunjalo kudala, kodwa, ngeshwa, akuzange kwenzeke.

Ngakho-ke, ngosizo lwama-plugin kanye nama-polymorphisms aphakeme kangaka, ungakwazi ukuchaza noma yisiphi isici esaziwayo, kanye "nokubikezela" lezo ezingakaze zishiwo. Angikwazanga ukufakazela lokhu ngokuqinile, kodwa futhi angisazi ngesibonelo esiphikisayo okwamanje. Ngokuvamile, lo mbuzo wangikhumbuza "Uhlelo lwe-Erlangen" lukaFelix Klein. Ngesinye isikhathi wazama ukumela yonke i-geometry njengegatsha le-algebra (ikakhulukazi, ithiyori yeqembu).

Manje embuzweni oyinhloko - izinto zihamba kanjani ngokukhuthazwa kwe-Reiser4 emnyombeni oyinhloko? Ingabe kukhona okushicilelwe ngokwakhiwa kwalolu hlelo lwamafayela okhulume ngakho kwinhlolokhono yokugcina? Ubaluleke kangakanani lo mbuzo ngokombono wakho?

Sekuphele iminyaka emithathu sicela ukufakwa egatsheni elikhulu. Ukuphawula kokugcina kukaReiser ochungechungeni lwasesidlangalaleni lapho isicelo senziwe khona kwahlala kungaphendulwanga. Ngakho yonke eminye imibuzo ayisiyona eyethu. Mina ngokwami ​​angiqondi ukuthi kungani sidinga "ukuhlanganisa" ohlelweni oluthile lokusebenza. Ku-Linux, ukukhanya akuzange kuhlangane njengeweji. Ngakho-ke, kukhona inqolobane ehlukile lapho kuzoba namachweba amagatsha amaningana wama-OS ahlukene. Noma ubani oyidingayo angakwazi ukuhlanganisa imbobo ehambisanayo futhi enze noma yini oyifunayo ngayo (ngaphakathi kwelayisensi, kunjalo). Hhayi-ke, uma umuntu engayidingi, ngakho-ke akuyona inkinga yami. Kuleli qophelo, ngiphakamisa ukucabangela umbuzo "wokukhushulwa ku-Linux kernel eyinhloko" njengoba uxazululiwe.

Ukushicilelwa kwezakhiwo ze-FS kuyasebenza, kodwa kuze kube manje ngithole kuphela isikhathi semiphumela yami emisha, engikubheka njengokubaluleke kakhulu. Enye into ukuthi ngingumfundi wezibalo, futhi ezibalweni noma yikuphi ukushicilelwa kufinyezwa kwemibono kanye nobufakazi bayo. Ukushicilela noma yini lapho ngaphandle kobufakazi kuwuphawu lokunambitheka okubi. Uma ngifakazela ngokuphelele noma ngiphikisa noma yisiphi isitatimende mayelana nokwakhiwa kwe-FS, umphumela uzoba yinqwaba kangangokuthi kuzoba nzima kakhulu ukudlula. Ubani oyidingayo? Kungenzeka ukuthi yingakho yonke into iqhubeka nokuhlala isesimweni sayo esidala - ikhodi yomthombo namazwana kuyo.

Yini entsha ku-Reiser4 eminyakeni embalwa edlule?

Ukuzinza obekukade kulindelwe sekugcine kwenzeka. Okukodwa kokugcina okuvelayo kwakuyisiphazamiso esiholele ezinhlwini “ezingenakusulwa”. Ubunzima kwakuwukuthi ivele kuphela ngokumelene nesizinda sokungqubuzana kwe-hashi kanye nendawo ethile yamarekhodi ohla lwemibhalo endaweni yesihlahla. Kodwa-ke, angikwazi ukuncoma i-Reiser4 yokukhiqiza: kulokhu udinga ukwenza umsebenzi othile ngokusebenzisana okusebenzayo nabaphathi besistimu yokukhiqiza.

Ekugcineni sikwazile ukusebenzisa umbono wethu osekunesikhathi eside ukhona - amamodeli okwenziwayo ahlukene. Ngaphambilini, iReiser4 ibisebenzisa imodeli eyodwa enekhodi eqinile yeMacdonald-Reiser. Lokhu kudale izinkinga zokuklama. Ikakhulukazi, izifinyezo azinakwenzeka kumodeli enjalo yezentengiselwano - zizonakaliswa ingxenye ye-athomu ebizwa ngokuthi "OVERWRITE SET". I-Reiser4 okwamanje isekela amamodeli amathathu okwenziwayo. Kwesinye sazo (Bhala-Noma Kuphi), ingxenye ye-athomu ethi OVERWRITE SET ihlanganisa amakhasi wesistimu kuphela (izithombe ze-disk bitmaps, njll.), ezingenakukwazi "ukuthwebula" (inkinga yenkukhu neqanda).

Ngakho-ke izithombe manje zingabonakala ngendlela engcono kakhulu. Kwenye imodeli yokwenziwayo, wonke amakhasi aguquliwe aya kuphela KU-OVERWRITE SET (okungukuthi, empeleni kuwukuloba okumsulwa). Le modeli eyalabo abakhononda ngokuhlukana okusheshayo kwezingxenye ze-Reiser4. Manje kule modeli ukwahlukanisa kwakho ngeke kuhlukane ngokushesha kuneReiserFS (v3). Womathathu amamodeli akhona, anokubhuka okuthile, aqinisekisa ukusebenza kwe-athomu, kodwa amamodeli anokulahlekelwa kwe-athomu nokugcina kuphela ubuqotho besigaba nawo angaba usizo. Amamodeli anjalo angaba usizo kuzo zonke izinhlobo zezinhlelo zokusebenza (izizindalwazi, njll.), esezivele zathatha eminye yale misebenzi. Kulula kakhulu ukwengeza lawa mamodeli ku-Reiser4, kodwa angizange ngikwenze, ngoba akekho owangibuza, futhi mina ngokwami ​​angiyidingi.

Kuvele izibalo zokuhlola imethadatha futhi muva nje ngizengeze ngezibuko “zezomnotho” (izinto ezisazinzile). Uma i-checksum yanoma iyiphi ibhulokhi ihluleka, i-Reiser4 ifunda ngokushesha ibhulokhi ehambisanayo kudivayisi yokukopisha. Qaphela ukuthi i-ZFS ne-Btrfs ayikwazi ukwenza lokhu: umklamo awukuvumeli. Lapho kufanele uqhube inqubo yokuskena yangemuva ekhethekile ebizwa ngokuthi “khuhla” bese ulinda ukuthi ifike endaweni eyinkinga. Abahleli bezinhlelo babiza izenzakalo ezinjalo ngokomfanekiso ngokuthi “izinduku.”

Ekugcineni, kuye kwavela imiqulu enengqondo ehlukahlukene, enikeza yonke into i-ZFS, i-Btrfs, i-block layer, kanye nenhlanganisela ye-FS+LVM ngokomgomo ayikwazi ukuhlinzeka - ukukala okuhambisanayo, i-O(1) i-disk address allocator, ukufuduka kwedatha okusobala phakathi kwama-subvolumes. Eyokugcina nayo ine-interface yomsebenzisi. Manje usungakwazi ukuhambisa kalula idatha eshisa kakhulu uyiyise kudrayivu esebenza kahle kakhulu kuvolumu yakho.

Ngaphezu kwalokho, kuyenzeka ukuthi usule ngokushesha noma yimaphi amakhasi angcolile kudrayivu enjalo, ngaleyo ndlela kusheshiswe kakhulu izinhlelo zokusebenza ezivame ukubiza i-fsync(2). Ngiyaqaphela ukuthi ukusebenza kongqimba lwebhulokhi, okubizwa ngokuthi i-bcache, akunikezeli nhlobo inkululeko enjalo yokwenza. Amavolumu amasha anengqondo asekelwe kuma-algorithms ami (kunamalungelo obunikazi ahambisanayo). Isoftware isivele izinzile, kungenzeka ukuyizama, ukukala ukusebenza, njll. Ukuphazamiseka kuphela ukuthi okwamanje udinga ukubuyekeza ukulungiselelwa kwevolumu futhi uyigcine endaweni ethile.

Kuze kube manje ngikwazile ukusebenzisa imibono yami ngamaphesenti angu-10 Nokho, ngiphumelele kulokho engangikubheka njengento enzima kakhulu - ukuxhuma amavolumu anengqondo ngenqubo ye-flash eyenza zonke izenzo ezihlehlisiwe ku-reiser4. Konke lokhu kusesegatsheni lokuhlola elithi "format41".

Ingabe i-Reiser4 iyaphumelela kuma-xfstest?

Okungenani ingenzele lapho ngilungiselela ukukhululwa kokugcina.

Kungenzeka yini ngokomthetho ukwenza i-Reiser4 ibe inethiwekhi (iqoqo) FS usebenzisa ama-plugin?

Kungenzeka, futhi kuyadingeka! Uma udala ifayela lenethiwekhi elisuselwe kusistimu yefayela yendawo eklanywe kahle, umphumela uyoba umxhwele kakhulu! Kuma-FS enethiwekhi yesimanje, angenelisekile ngokuba khona kwezinga lokugcina elingemuva, elisetshenziswa kusetshenziswa noma iyiphi i-FS yendawo. Ukuba khona kwaleli zinga akulungile neze. I-FS yenethiwekhi kufanele ihlanganyele ngokuqondile ne-block layer, futhi ingaceli i-FS yendawo ukuthi idale noma yimaphi amanye amafayela wesevisi!

Ngokuvamile, ukuhlukanisa amasistimu wefayela endaweni kanye nenethiwekhi kuvela komubi. Kwavela ekungapheleni kwama-algorithms asetshenziswa eminyakeni engamashumi amathathu edlule, futhi esikhundleni salokho akukho lutho olungakahlongozwa. Lesi futhi isizathu sokuvela kwenqwaba yezingxenye zesofthiwe ezingadingekile (izinsizakalo ezihlukahlukene, njll.). Ngendlela enhle, kufanele kube ne-FS eyodwa kuphela ngesimo semoduli ye-kernel kanye nesethi yezinsiza zabasebenzisi ezifakwe emshinini ngamunye - i-cluster node. Le FS iyindawo kanye nenethiwekhi. Futhi akukho okunye!

Uma kungekho okusebenza nge-Reiser4 ku-Linux, ngingathanda ukunikeza i-FS ye-FreeBSD (ingcaphuno evela kungxoxo yangaphambilini: “...I-FreeBSD... inezimpande zezemfundo... Futhi lokhu kusho ukuthi ngezinga eliphezulu lamathuba thina uzothola ulimi olujwayelekile nabathuthukisi”) ?

Ngakho-ke, njengoba sisanda kuthola, yonke into isivele isebenza kahle ngeLinux: kunechweba elihlukile le-Reiser4 elisebenzayo layo elisesimweni segatsha eliyinhloko lenqolobane yethu. Angikakhohlwa ngeFreeBSD! Nikeza! Ngikulungele ukusebenzisana eduze nalabo abazi kahle ingaphakathi leFreeBSD. Ngendlela: engikuthanda kakhulu ngomphakathi wabo ukuthi izinqumo zakhona zithathwa umkhandlu obuyekeziwe wochwepheshe abazimele, ongahlangene nokukhohlisa kukahulumeni komuntu oyedwa unomphela.

Uwukala kanjani umphakathi wabasebenzisi be-Linux namuhla? Ingabe isiphenduke "i-pop" eyengeziwe?

Uma kubhekwa uhlobo lomsebenzi wami, kunzima kimina ukuhlola lokhu. Ikakhulu abasebenzisi beza kimi nemibiko yesiphazamisi kanye nezicelo zokulungisa isigaba. Abasebenzisi njengabasebenzisi. Abanye banolwazi kakhulu, abanye bancane. Wonke umuntu uphathwa ngendlela efanayo. Hhayi-ke, uma umsebenzisi engayinaki imiyalelo yami, bese ungixolela: i-oda lokuziba lizofakwa nami.

Kungenzeka yini ukubikezela ukuthuthukiswa kwezinhlelo zamafayela eminyakeni emihlanu kuya kweyishumi ezayo? Ucabanga ukuthi yiziphi izinselelo ezinkulu abathuthukisi beFS abangabhekana nazo?

Yebo, akunzima ukwenza isibikezelo esinjalo. Sekuphele isikhathi eside kungekho ukuthuthukiswa kwezinhlelo zamafayela enhla nomfula. Ukubukeka okunjalo kuphela okudalwayo. Abathuthukisi bezinhlelo zamafayela endawo bahlangabezane nezinkinga ezihlobene nokuklama okubi. I-caveat idinga ukwenziwa lapha. Angikubheki lokho okubizwa ngokuthi “isitoreji”, “ukukhotha” kanye nokuthuthwa kwekhodi njengokuthuthukiswa nokuthuthuka. Futhi angikufaki ukungezwani okubizwa ngokuthi "i-Btrfs" njengentuthuko ngenxa yezizathu esengizichazile.

Isiqephu ngasinye senza izinkinga zaso zibe zimbi nakakhulu. Hhayi-ke. futhi kuhlale kunezinhlobo ezihlukahlukene “zabavangeli” “okusebenza konke” kubo. Ngokuyisisekelo, lezi yizingane zesikole nabafundi abeqa izinkulumo. Cabanga nje: kuyamsebenzela, kodwa uprofesa akakwenzi. Yeka ukujaha kwe-adrenaline lokhu! Ngokombono wami, umonakalo omkhulu udalwe “izingcweti” eziphuthume “ukukruna” ngentshiseko izici ezinhle ze-Btrfs kuzo zonke izinhlobo zezendlalelo ezifana ne-systemd, i-docker, njll. - lokhu kakade kufana nama-metastases.

Manje ake sizame ukwenza isibikezelo seminyaka emihlanu kuya kweyishumi. Sengike ngabalula kafushane esizokwenza ku-Reiser4. Inselele enkulu yabathuthukisi bendawo be-FS abavela enhla nomfula kuzoba (yebo, sekuvele kube) ukungakwazi ukwenza umsebenzi ohloniphekile ukuze uthole iholo. Ngaphandle kwanoma yimiphi imibono emkhakheni wokugcinwa kwedatha, bazoqhubeka nokuzama ukunamathisela lezi VFS, XFS kanye ne-ext4. Isimo nge-VFS sibukeka sihlekisa ikakhulukazi uma kuqhathaniswa nalesi sizinda, okusikhumbuza ukwenziwa kwesimanjemanje kwesitolo sokudla okungenabo abapheki khona, futhi kungekho bapheki abalindelekile.

Manje ikhodi ye-VFS, ngaphandle kwanoma yiziphi izimo, ikhiya amakhasi enkumbulo amaningana ngesikhathi esisodwa futhi imema i-FS engaphansi ukuthi isebenze kuwo. Lokhu kwethulwe ukuze kuthuthukiswe ukusebenza kwe-Ext4 ekususeni imisebenzi, kodwa njengoba kulula ukukuqonda, ukukhiya okunjalo ngasikhathi sinye akuhambisani ngokuphelele namamodeli wokwenziwe athuthukile. Okusho ukuthi, ngeke ukwazi ukumane wengeze ukusekelwa kolunye uhlelo lwefayela oluhlakaniphile ku-kernel. Angazi ukuthi isimo sinjani kwezinye izindawo ze-Linux, kodwa mayelana nezinhlelo zamafayela, noma iyiphi intuthuko lapha mancane amathuba okuthi ihambisane nenqubomgomo elandelwa yi-Torvalds ngokoqobo (amaphrojekthi ezemfundo ayakhahlelwa ngaphandle, kanye nabakhwabanisi abasebenzisa le nqubomgomo. angazi ukuthi yini i-B-tree , amakhredithi angapheli okuthenjwa akhishwa). Ngakho-ke, kwabekwa inkambo yokubola kancane. Yebo, bazozama ngawo wonke amandla abo ukukudlulisa “njengentuthuko”.

Ngaphezu kwalokho, "abagcini" bezinhlelo zefayela, beqaphela ukuthi awukwazi ukuzuza okuningi "kwisitoreji" kuphela, bazozama isandla sabo ebhizinisini elinenzuzo eyengeziwe. Lawa, njengomthetho, amasistimu wefayela asabalalisiwe kanye ne-virtualization. Mhlawumbe bazofaka i-ZFS yemfashini kwenye indawo lapho ingekho khona. Kodwa, njengawo wonke ama-FS avela phezulu, afana nesihlahla soNyaka Omusha: uma ungakwazi ukulenga ezinye izinto ezincane phezulu, khona-ke awukwazi ukujula. Ngiyavuma ukuthi kungenzeka ukwakha uhlelo lwebhizinisi olujulile olusekelwe ku-ZFS, kodwa njengoba manje sixoxa ngekusasa, ngingasho ngokudabukisayo ukuthi i-ZFS ayinathemba kulokhu: ngemishini yabo ebonakalayo, abafana bawunqamule umoya-mpilo. bona kanye nezizukulwane ezizayo ukuze bathuthuke. I-ZFS yinto yesikhathi esedlule. Futhi i-ext4 ne-XFS ayilona usuku lwayizolo.

Kuyafaneleka ukubalula ngokwehlukana ngomqondo ohlaba umxhwele “wesistimu yefayela ye-Linux yesizukulwane esilandelayo”. Lena iphrojekthi yezombangazwe neyokumaketha ngokuphelele edalelwe ithuba, ngomqondo ongokomfanekiso, “ukuphina ikusasa lezinhlelo zamafayela” ku-Linux ngemuva kwezinhlamvu ezithile. Iqiniso liwukuthi i-Linux yayivame ukuba "yokuzijabulisa". Kodwa manje isiwumshini wokwenza imali ngokuyinhloko. Zenziwe kukho konke okungenzeka. Isibonelo, kunzima kakhulu ukwakha umkhiqizo wesofthiwe omuhle, kodwa "abathuthukisi" abahlakaniphile baye baqaphela isikhathi eside ukuthi asikho isidingo sokuzikhandla: ungakwazi ukuthengisa ngempumelelo isofthiwe engekho eyamenyezelwa futhi yakhuthazwa kuzo zonke izinhlobo zomphakathi. imicimbi - into esemqoka ukuthi amaslayidi ezethulo kufanele aqukathe "izici" eziningi.

Amasistimu wefayela alungele lokhu, ngoba ungakwazi ukuxoxisana ngokuphephile iminyaka eyishumi ngomphumela. Nokho, uma othile kamuva ekhononda ngokuntuleka kwalo mphumela, khona-ke akaqondi lutho ngezinhlelo zamafayela! Lokhu kukhumbuza umbhoshongo wezezimali: phezulu kukhona abahamba phambili abaqala le nkinga, nalabo abambalwa "ababenenhlanhla": "bahoxise izabelo," i.e. wathola imali yokuthuthuka, wathola umsebenzi okhokhelwayo njengabaphathi, “wabonakala” ezingqungqutheleni, njll.

Okulandelayo kuza labo “abaneshwa”: bazobala ukulahlekelwa, babhekane nemiphumela yokuthumela umkhiqizo wesoftware ongasebenziseki ekukhiqizeni, “njll. Ziningi ezinye zazo. Yebo, phansi kwephiramidi kunenqwaba enkulu yabathuthukisi "ababona" ​​ikhodi engenamsebenzi. Yibo abalahlekelwa kakhulu, ngoba isikhathi esichithiwe asikwazi ukubuyiswa. Imibhoshongo enjalo izuzisa kakhulu uTorvalds nabangane bakhe. Futhi ukwanda kwala maphiramidi, kuba ngcono kuwo. Ukondla imibhoshongo enjalo, noma yini ingafakwa emnyombweni. Yebo, emphakathini basho okuphambene. Kodwa kahluleli ngamazwi kodwa ngezenzo.

Ngakho-ke, "ikusasa lezinhlelo zamafayela ku-Linux" kungenye futhi isoftware ekhuthazwa kakhulu, kodwa engasebenziseki neze. Ngemuva kwe-Btrfs, okungenzeka kakhulu, indawo "yekusasa" elinjalo izothathwa yi-Bcachefs, okungomunye umzamo wokuwela ungqimba lwebhulokhi ye-Linux ngesistimu yefayela (isibonelo esibi siyathathelwana). Futhi yini ejwayelekile: kunezinkinga ezifanayo njengaku-Btrfs. Ngakusola lokhu isikhathi eside, futhi ngandlela-thile angikwazanga ukumelana futhi ngabheka ikhodi - kuyiqiniso!

Ababhali be-Bcachefs kanye ne-Btrfs, lapho bedala i-FS yabo, basebenzisa imithombo yabanye abantu ngenkuthalo, beqonda okuncane ngayo. Lesi simo sisikhumbuza kakhulu umdlalo wezingane “wocingo oluphukile.” Futhi ngingacabanga ukuthi le khodi izofakwa kanjani ku-kernel. Empeleni, akekho ozobona "ama-rakes" (wonke umuntu uzowanyathela kamuva). Ngemuva kwezingxabano eziningi mayelana nesitayela sekhodi, ukumangalelwa kokwephulwa okungekho, njll., kuzokwenziwa isiphetho mayelana "nobuqotho" bombhali, ukuthi "usebenzisana" kahle kangakanani nabanye abathuthukisi, nokuthi konke lokhu kungaphumelela kanjani. bese ithengiswe ezinkampanini.

Umphumela wokuphela ngeke uthakasele muntu. Eminyakeni engamashumi amabili edlule, mhlawumbe, ngabe nginesithakazelo, kodwa manje imibuzo ibuzwa ngokuhlukile: ingabe kuzokwazi ukukhuthaza lokhu ukuze abantu abathile baqashwe phakathi neminyaka eyishumi ezayo. Futhi, maye, akuyona inkambiso ukuzibuza ngomphumela wokugcina.

Ngokuvamile, ngingakweluleka ngokuqinile ngokumelene nokuqala kabusha isistimu yakho yefayela kusukela ekuqaleni. Ngoba ngisho nokutshalwa kwezimali okubalulekile ngeke kwanele ukuthola okuthile okuncintisana eminyakeni eyishumi. Impela, ngikhuluma ngamaphrojekthi abalulekile, hhayi ngalawo okuhloswe ukuthi “aphushwe” ku-kernel. Ngakho-ke, indlela ephumelela kakhulu yokuziveza iwukujoyina intuthuko yangempela, njengathi. Lokhu, kunjalo, akulula ukukwenza - kodwa kunjalo kunoma iyiphi iphrojekthi yezinga eliphezulu.

Okokuqala, uzodinga ukunqoba ngokuzimela inkinga engizokunikeza yona. Ngemva kwalokho, ngiqiniseka ngokungathí sina kwezinhloso zakho, ngizoqala ukukusiza. Ngokwesiko, sisebenzisa intuthuko yethu kuphela. Okuhlukile ama-algorithms wokucindezela neminye imisebenzi ye-hash. Asithumeli abathuthukisi ukuthi baye ezingqungqutheleni, bese singahlali futhi sihlanganise imibono yabanye abantu ("mhlawumbe kuzokwenzekani"), njengoba kuvamile ekuqaliseni okuningi.

Sithuthukisa wonke ama-algorithms ngokwethu. Okwamanje nginentshisekelo ku-algebraic nezici ezihlanganisiwe zesayensi yokugcinwa kwedatha. Ikakhulukazi, izinkambu ezilinganiselwe, ama-asymptotics, ubufakazi bokungalingani. Kukhona nomsebenzi wabahleli bezinhlelo abavamile, kodwa kufanele ngikuxwayise ngaso leso sikhathi: zonke iziphakamiso zokuthi "bheka enye i-FS futhi wenze okufanayo" azinakwa. Ama-patches ahloselwe ukuhlanganiswa eduze ne-Linux nge-VFS nawo azoya lapho.

Ngakho-ke, asinalo iraki, kodwa sinokuqonda lapho kudingeka sithuthele khona, futhi siyaqiniseka ukuthi le ndlela iyona efanele. Lokhu kuqonda akuzange kufike kusimo semana evela ezulwini. Ake ngikukhumbuze ukuthi sineminyaka engama-29 yesipiliyoni sokuthuthuka ngemuva kwethu, amasistimu amabili wamafayela abhalwe kusukela ekuqaleni. Nenombolo efanayo yezinsiza zokutholwa kwedatha. Futhi lokhu kuningi!

Source: opennet.ru

Engeza amazwana