Dezyèm entèvyou ak Eduard Shishkin, pwomotè Reiser4 FS la

Dezyèm entèvyou ak Eduard Shishkin, pwomotè sistèm dosye Reiser4 la, te pibliye.

Pou kòmanse, tanpri raple lektè ki kote ak ki moun ou travay.

Mwen travay kòm yon achitek depo prensipal nan Huawei Technologies, German Research Center. Nan depatman Virtualization mwen fè fas ak divès aspè nan depo done. Aktivite mwen yo pa gen rapò ak yon sistèm operasyon espesifik.

Èske w ap komèt kounye a nan branch nwayo prensipal la?

Trè raman, epi sèlman si patwon mwen an mande sa. Dènye fwa a se te apeprè twa zan de sa, mwen te voye plak pou ogmante debi pou depo pataje sou tout pouvwa a lè l sèvi avèk pwotokòl 9p la (yon lòt non pou biznis sa a se VirtFS). Yon nòt enpòtan dwe fè isit la: byenke mwen te travay ak Linux pou yon tan long, mwen pa janm te yon fanatik li, se sa ki, mwen "respire respire," menm jan ak tout lòt bagay. An patikilye, si mwen remake yon defo, mwen ka lonje dwèt sou li omwen yon fwa. Se konsa ke ou ka Lè sa a, swiv yon moun ak konvenk yo - sa a pa pral rive.

Mwen sonje dènye fwa, dis ane de sa, ou te byen kritik nan style la devlopman nwayo. Soti nan pwen de vi ou (oswa petèt antrepriz), gen anyen ki chanje, èske kominote a vin pi reponn oswa ou pa? Si non, kiyès ou panse ki blame?

Mwen pa janm wè okenn chanjman pou pi bon. Pwoblèm prensipal kominote a se ranplasman syans ak teknoloji politik, relasyon pèsonèl, opinyon majorite, popilis, konsèy ki soti nan "vwa anndan yo," konpwomi pouri, nenpòt lòt bagay pase syans. Syans enfòmatik, tou sa yon moun ka di, se premye ak premye yon syans egzak. Men, si yon moun kòmanse pwoklame pwòp valè yo pou 2x2, diferan de 4, anba drapo "Linux way" la, oswa anba kèk lòt drapo, Lè sa a, sa a se fasil pote anyen lòt pase mal.

Tout pwoblèm yo se sitou akòz enkonpetans ak mank edikasyon moun ki pran desizyon. Si yon manadjè se enkonpetan, li pa kapab pran yon objektif, desizyon adekwa. Si li pa kiltive tou, li pa kapab jwenn yon espesyalis konpetan ki pral ba li bon konsèy. Avèk yon gwo pwobabilite, chwa a pral tonbe sou yon scammer ki di "bagay ki sanble kòrèk." Yon anviwònman koripsyon toujou devlope alantou lidè enkonpetan poukont yo. Anplis de sa, listwa pa konnen okenn eksepsyon nan sans sa a, ak kominote a se konfimasyon ki pi klè nan sa a.

Ki jan ou evalye pwogrè nan devlopman Btrfs? Èske FS sa a te debarase m de maladi timoun? Ki jan ou fè pozisyon li pou tèt ou - kòm yon FS "pou kay" oswa pou itilizasyon antrepriz tou?

Mwen pa t debarase m de li. Tout sa mwen te mansyone sa gen 11 ane toujou enpòtan jodi a. Youn nan pwoblèm yo ak Btrfs ki fè li pa apwopriye pou bezwen grav se pwoblèm nan nan espas gratis. Mwen pa menm pale sou lefèt ke itilizatè a mande pou kouri nan magazen an pou yon nouvo disk nan sitiyasyon kote nenpòt lòt FS ta montre anpil espas gratis sou patisyon an. Enkapasite pou konplete yon operasyon sou yon volim lojik akòz mank de espas gratis tou se pa bagay ki pi mal la. Bagay ki pi mal la se ke yon itilizatè san privilèj ka prèske toujou, kontoune nenpòt kota disk, anpeche tout moun nan espas gratis nan yon tan jistis kout.

Li sanble sa a (teste pou Linux Kernel 5.12). Yon script lanse sou yon sistèm ki fèk enstale, ki nan yon bouk kreye dosye ak sèten non nan anyè kay la, ekri done yo nan sèten konpanse, ak Lè sa a, efase fichye sa yo. Apre yon minit nan kouri script sa a, pa gen anyen dwòl k ap pase. Apre senk minit, pòsyon nan espas okipe sou patisyon an ogmante yon ti kras. Apre de a twa èdtan li rive nan 50% (ak yon valè inisyal 15%). Epi apre senk oswa sis èdtan travay, script la fè aksidan ak erè a "pa gen okenn espas gratis sou patisyon an." Apre sa, ou pa kapab ekri menm yon dosye 4K nan patisyon ou.

Yon sitiyasyon enteresan rive: ou te fini pa ekri anyen nan patisyon an, ak tout espas ki la gratis (apeprè 85%) disparèt yon kote. Analiz de yon seksyon sijè a yon atak konsa pral revele anpil noeuds pyebwa ki genyen yon sèl atik (yon objè ekipe ak yon kle), plizyè octets nan gwosè. Sa vle di, kontni an ki te deja okipe 15% nan espas ki la ki gen kapasite te tounen "anwoujman" respire sou patisyon an antye pou pa gen okenn kote yo ekri yon nouvo dosye, paske kle li yo pi gwo pase tout sa yo ki deja egziste, ak gratis la. blòk sou patisyon an fini.

Anplis, tout bagay sa yo rive deja sou konfigirasyon debaz Btrfs (san okenn snapshots, subvolumes, elatriye), epi li pa gen pwoblèm ki jan ou deside estoke kò dosye nan FS sa a (kòm "fragman" nan yon pye bwa, oswa kòm limit). nan blòk san fòma) - rezilta final la pral menm bagay la.

Ou p ap kapab sibi lòt sistèm dosye en nan yon atak konsa (kèlkeswa sa yo di ou). Mwen eksplike kòz pwoblèm nan depi lontan: sa a se yon pèvèsyon konplè nan konsèp B-tree nan Btrfs, ki fè li posib pou li espontaneman oswa entansyonèlman dejenere. An patikilye, anba sèten chaj, sistèm dosye ou a pral kontinyèlman "tonbe apa" pandan operasyon poukont li, san èd deyò. Li klè ke tout kalite "peze" pwosesis background pral sove jou a sèlman sou Desktop endividyèl yo.

Sou serveurs kolektif, yon atakè ap toujou kapab "jwenn devan" yo. Administratè sistèm lan p ap menm kapab detèmine kiyès ki entimide l. Fason ki pi rapid pou ranje pwoblèm sa a nan Btrfs se retabli estrikti yon B-pyebwa regilye, sa vle di. redesign fòma disk la ak reekri pòsyon enpòtan nan kòd Btrfs la. Sa a pral pran 8-10 ane, ki gen ladan debogaj, depi ke devlopè yo estrikteman swiv atik orijinal yo sou algoritm ki enpòtan yo ak estrikti done yo, epi yo pa t 'jwe jwèt la "telefòn kase", jan sa abitye (ak ankouraje) nan "Linux la". fason”.

Isit la nou bezwen tou ajoute tan ki nesesè pou devlopè yo konprann tout bagay sa yo. Sa a se kote li vin pi difisil. Antouka, 10 ane pa t ase pou yo konprann. Oke, jouk lè sa a ou pa ka espere pou yon mirak. Li pa pral rive nan fòm yon opsyon aliye "ki ou menm ak mwen pa t 'konnen sou", oswa nan fòm lan nan yon plak ki se "jis yon kesyon de biznis" yo prepare. Pou chak "ranje" prese konsa mwen pral prezante yon nouvo senaryo nan koripsyon. B-pyebwa yo se youn nan sijè pi renmen m ', e mwen dwe di ke estrikti sa yo pa tolere libète ak tèt yo!

Kouman pou mwen pozisyon Btrfs pou tèt mwen? Kòm yon bagay ki absoliman pa ka rele yon sistèm fichye, se pou kont li itilize. Paske, pa definisyon, FS a se yon subsistèm OS ki responsab pou jesyon efikas resous "espas disk la", ki nou pa wè nan ka Btrfs. Ebyen, imajine ke ou te vin nan magazen an achte yon mont pou pa anreta nan travay, epi olye pou yo yon mont yo vann ou yon gri elektrik ak yon revèy pou yon maksimòm de 30 minit. Se konsa, sitiyasyon an ak Btrfs se menm vin pi mal.

Gade nan lis adrès, mwen souvan vin atravè deklarasyon an ki efektivman jere espas ki gen kapasite pa enpòtan ankò akòz bon mache a nan kondui. Sa a se yon istwa san sans konplè. San yon manadjè espas disk efikas, eksplwatasyon an ap vin vilnerab epi li pa ka itilize. Kèlkeswa kapasite disk yo sou machin ou an.

Mwen ta renmen mande kòmantè sou sispann sipò Btrfs nan RHEL.

Pa gen anyen espesyal pou fè kòmantè isit la, tout bagay trè klè. Yo menm tou yo te gen li kòm yon "aperçu teknoloji". Se konsa, mwen pa t 'ale nan sa a trè "aperçu". Pa kite etikèt sa a pann pou tout tan! Men, yo pa ka lanse yon pwodwi pa konsepsyon defo ak sipò konplè. RHEL se yon antrepriz, se sa ki preskri relasyon machandiz-lajan. Red Hat pa ka entimide itilizatè yo tankou yo fè sou lis adrès Btrfs la. Jis imajine sitiyasyon an: yon kliyan ki te peye lajan li di-touche pou disk la epi tou ou pou sipò, vle konprann ki kote espas disk li te ale apre li pa t ekri anyen. Kisa w ap reponn li pou sa?

Pli lwen. Kliyan Red Hat yo gen ladan gwo bank byen koni ak echanj. Imajine sa ki ta rive si yo te sijè a atak DoS ki baze sou vilnerabilite ki mansyone nan Btrfs. Kiyès ou panse ki responsab sa? Pou moun ki pral montre dwèt yo sou liy lisans GPL la, kote yo ekri ke otè a pa responsab anyen, mwen pral imedyatman di: "kache li!" Red Hat pral reponn, epi nan yon fason ke li pa pral sanble ase! Men, mwen konnen ke Red Hat pa fè fas a kalite pwoblèm sa a, akòz ekip patikilyèman solid yo nan enjenyè QA ak ki moun mwen te gen opòtinite pou travay kole kole nan tan mwen an.

Poukisa kèk konpayi kontinye sipòte Btrfs nan pwodwi antrepriz yo?

Tanpri sonje ke prefiks "antrepriz" nan non pwodwi a pa vle di anpil. Enterprise se yon mezi responsablite entegre nan relasyon an kontra ak kliyan an. Mwen konnen yon sèl antrepriz ki baze sou GNU/Linux - RHEL. Tout lòt bagay, nan pwen de vi mwen, se sèlman prezante kòm yon antrepriz, men se pa youn. Epi finalman, si gen yon demann pou yon bagay, Lè sa a, ap toujou gen yon rezèv (nan ka nou an, sa a se mansyone "sipò"). Gen demann pou absoliman tout bagay, enkli. ak lojisyèl ki pa ka itilize. Ki jan demann sa yo fòme ak kiyès ki gaz li se yon lòt sijè.

Se konsa, mwen pa ta vole nan okenn konklizyon apre yo fin fè rimè sou Facebook yo te deplwaye Btrfs sou serveurs li yo. Anplis, mwen ta rekòmande ak anpil atansyon kenbe adrès yo nan sa yo sèvè sekrè pou rezon ki anwo yo.

Poukisa yo te fè anpil efò nan netwaye kòd XFS la dènyèman? Apre yo tout, okòmansman sa a se yon sistèm dosye twazyèm-pati, ak ext4 te estab pou yon tan long epi li gen kontinwite nan vèsyon anvan yo egalman ki estab. Ki enterè Red Hat genyen nan XFS? Èske li fè sans aktivman devlope de sistèm dosye ki sanble nan objektif - ext4 ak XFS?

Mwen pa sonje sa ki te motive sa. Li se byen posib ke inisyativ la te soti nan kliyan Red Hat. Mwen sonje ke rechèch nan kalite sa a te fèt: sou kèk sistèm dosye ki soti nan en, yo te kreye yon kantite gwo objè sou kondui wo-fen nan nouvo jenerasyon an. Dapre rezilta yo, XFS te konpòte pi byen pase ext4. Se konsa, yo te kòmanse ankouraje li kòm pi pwomèt la. Nan nenpòt ka, mwen pa ta chèche pou anyen sansasyonalis isit la.

Pou mwen, se tankou yo te ranplase yon awl ak savon. Pa gen okenn pwen nan devlope ext4 ak XFS. Tou de nan paralèl ak nenpòt nan yo chwazi nan. Pa gen anyen ki bon ki pral soti nan sa a. Malgre ke, nan lanati gen souvan sitiyasyon lè gen yon anpil nan potansyèl pou kwasans, men pa gen okenn plas yo grandi. Nan ka sa a, plizyè nouvo kwasans ra lèd leve, kote tout moun montre dwèt la ("Oh, gade, sa ou pa pral wè nan lavi sa a!").

Èske w panse pwoblèm nan vyolasyon kouch yo te rezoud (nan yon sans negatif) ak avenman an nan fonksyon chifreman nan ext4, F2FS (nou pa mansyone ATAK nan Btrfs)?

An jeneral, entwodiksyon nenpòt nivo ak pran yon desizyon sou non-vyolasyon yo anjeneral se yon kesyon de politik, e mwen pa antreprann fè kòmantè sou anyen isit la. Aspè yo objektif nan vyolasyon kouch yo pa enterese nenpòt moun, men nou ka konsidere kèk nan yo lè l sèvi avèk egzanp lan nan vyolasyon "ki soti nan pi wo a," sètadi, aplikasyon an nan FS nan fonksyonalite ki deja egziste sou kouch blòk la. Yon "vyolasyon" sa yo jistifye ak sèlman eksepsyon ki ra. Pou chak ka sa yo, ou dwe premye pwouve de bagay: ke li vrèman nesesè, e ke konsepsyon an nan sistèm nan pa pral domaje lè w fè sa.

Pou egzanp, mirwar, ki tradisyonèlman te yon aktivite pou kouch blòk la, fè sans pou aplike nan nivo sistèm fichye a. Pou diferan rezon. Pou egzanp, koripsyon done "silans" (ti jan pouri) rive sou kondui ki gen kapasite. Sa a se lè aparèy la ap travay byen, men done blòk yo domaje san atann anba enfliyans yon pwopòsyon gamma difisil ki emèt pa yon kwazar byen lwen, elatriye. Bagay ki pi mal la se si blòk sa a vin tounen yon blòk sistèm FS (superblock, blòk bitmap, ne depo pyebwa, elatriye), paske sa a pral sètènman mennen nan yon panik nwayo.

Tanpri sonje ke miwa yo ofri nan kouch blòk la (sa yo rele RAID 1) pa pral sove ou soti nan pwoblèm sa a. Oke, reyèlman: yon moun ta dwe tcheke chèk yo epi li kopi a nan ka ta gen echèk? Anplis de sa, li fè sans nan glas pa sèlman tout bagay, men sèlman metadata yo. Gen kèk done enpòtan (pa egzanp, dosye ègzèkutabl nan aplikasyon kritik) ka estoke kòm metadata. Nan ka sa a, yo resevwa menm garanti sekirite yo. Li fè sans pou konfye pwoteksyon an nan done ki rete yo nan lòt subsistèm (petèt menm aplikasyon itilizatè) - nou te bay tout kondisyon ki nesesè pou sa.

Miwa "ekonomik" sa yo gen dwa pou yo egziste, epi yo ka sèlman òganize efektivman nan nivo sistèm dosye yo. Sinon, vyolasyon kouch se ankonbre yon subsistèm ak kòd kopi pou dedomajman pou kèk benefis mikwoskopik. Yon egzanp frapan nan sa a se aplikasyon an nan RAID-5 lè l sèvi avèk FS. Solisyon sa yo (pwòp RAID / LVM nan sistèm dosye a) touye lèt la nan tèm achitekti. Li ta dwe tou remake isit la ke vyolasyon kouch se "mete sou kouran" pa divès kalite SCAMMERS maketing. Nan absans nenpòt lide, fonksyonalite ki depi lontan te aplike nan nivo vwazen yo ajoute nan subsistèm yo, sa a prezante kòm yon nouvo karakteristik trè itil epi li aktivman pouse.

Reiser4 te akize de vyole nivo yo "soti anba a". Baze sou lefèt ke sistèm fichye a pa monolitik, tankou tout lòt yo, men modilè, yo te fè yon sipozisyon san fondasyon ke li fè sa nivo ki pi wo a (VFS) ta dwe fè.

Èske li posib pou pale sou lanmò ReiserFS v3.6 ak, pou egzanp, JFS? Dènyèman yo te resevwa prèske pa gen okenn atansyon nan nwayo a. Èske yo demode?

Isit la nou bezwen defini kisa lanmò yon pwodwi lojisyèl vle di. Sou yon bò, yo avèk siksè itilize (se sa yo te kreye pou, apre tout), ki vle di yo ap viv. Nan lòt men an, mwen pa ka pale pou JFS (mwen pa konnen anpil), men ReiserFS (v3) trè difisil pou adapte yo ak nouvo tandans (teste nan pratik). Sa vle di ke nan tan kap vini devlopè yo pral peye atansyon pa li, men nan moun ki pi fasil pou adapte yo. Soti nan bò sa a li vire soti ke, Ay, li se mouri nan tèm achitekti. Mwen pa ta manipile konsèp nan "moralman demode" ditou. Li aplike byen, pou egzanp, nan yon pandri, men se pa nan pwodwi lojisyèl. Gen yon konsèp nan enferyorite ak siperyorite nan yon bagay. Mwen ka absoliman di ke ReserFS v3 se kounye a enferyè a Reiser4 nan tout bagay, men nan kèk kalite kantite travay li siperyè ak tout lòt FSs en.

èske w konnen devlopman FS Tux3 ak HAMMER/HAMMER2 (FS pou DragonFly BSD)?

Wi, nou konnen. Nan Tux3 mwen te yon fwa enterese nan teknoloji a nan snapshots yo (sa yo rele "endikasyon yo vèsyon"), men nan Reiser4 nou pral gen plis chans ale nan yon wout diferan. Mwen te panse sou sipòte snapshots pou yon tan long epi yo poko deside ki jan yo aplike yo pou komèsan Reiser4 senp. Reyalite a se ke nouvo teknik "parese" referans ki te pwopoze pa Ohad Rodeh sèlman travay pou B-pyebwa. Nou pa genyen yo. Pou estrikti done sa yo ki itilize nan Reiesr4, kontwa "parese" yo pa defini - pou prezante yo, li nesesè pou rezoud sèten pwoblèm algoritmik, ki pa gen moun ki te pran ankò.

Dapre HAMMER: Mwen li yon atik ki soti nan kreyatè a. Pa entèrese. Ankò, B-pyebwa. Estrikti done sa a se san espwa demode. Nou te abandone li nan dènye syèk lan.

Ki jan ou evalye demann k ap grandi pou FS gwoup rezo tankou CephFS / GlusterFS / elatriye? Èske demann sa a vle di yon chanjman nan priyorite devlopè yo nan direksyon rezo FS ak ensifizan atansyon a FS lokal yo?

Wi, yon chanjman konsa nan priyorite te fèt. Devlopman nan sistèm dosye lokal yo te stagnation. Ay, fè yon bagay enpòtan pou komèsan lokal yo kounye a se byen difisil epi se pa tout moun ki ka fè li. Okenn moun pa vle envesti nan devlopman yo. Sa a se apeprè menm jan ak mande yon òganizasyon komèsyal yo asiyen lajan pou rechèch matematik - san okenn antouzyasm yo pral mande w ki jan ou ka fè lajan sou yon nouvo teyorèm. Koulye a, yon FS lokal se yon bagay ki majik parèt "soti nan bwat la" ak "ta dwe toujou travay," epi si li pa travay, li lakòz bougonnen san adrès tankou: "Wi, ki sa yo panse!"

Pakonsekan mank de atansyon a lokal FS, byenke gen toujou anpil travay nan zòn sa a. Ak repons lan se wi, tout moun te tounen vin jwenn distribye depo, ki se bati sou baz la ki deja egziste sistèm dosye lokal yo. Li trè alamòd kounye a. Fraz "Big Data" la lakòz yon gwo adrenalin pou anpil moun, asosye li ak konferans, atelye, gwo salè, elatriye.

Kouman rezonab li nan prensip aplike sistèm fichye rezo a nan espas nwayo olye ke nan espas itilizatè?

Yon apwòch trè rezonab ki poko aplike okenn kote. An jeneral, kesyon an nan ki espas yon sistèm dosye rezo a ta dwe aplike se yon "nepe de bò." Oke, ann gade nan yon egzanp. Kliyan an anrejistre done sou yon machin aleka. Yo tonbe nan kachèt paj li sou fòm paj sal. Sa a se travay la pou yon sistèm fichye rezo "passerèl mens" nan espas nwayo. Lè sa a, sistèm operasyon an pral pi bonè oswa pita mande w ekri paj sa yo sou disk pou libere yo. Lè sa a, IO-transfè (voye) rezo FS modil la antre nan jwèt. Li detèmine nan ki machin sèvè (nœud sèvè) paj sa yo pral ale.

Lè sa a, pile rezo a pran sou (e, jan nou konnen, li aplike nan espas nwayo). Apre sa, ne sèvè a resevwa pake sa a ak done oswa metadata epi li enstwi modil depo backend la (sa vle di, FS lokal ki opere nan espas nwayo) pou anrejistre tout bagay sa yo. Se konsa, nou te redwi kesyon an nan ki kote "voye" ak "resevwa" modil yo ta dwe travay. Si nenpòt nan modil sa yo kouri nan espas itilizatè, sa pral inevitableman mennen nan chanje kontèks (akòz bezwen nan sèvi ak sèvis nwayo). Nimewo a nan switch sa yo depann sou detay yo aplikasyon.

Si gen anpil switch sa yo, lè sa a depo depo (pèfòmans I/O) ap diminye. Si depo backend ou a fèt ak disk dousman, Lè sa a, ou pa pral remake yon gout enpòtan. Men, si ou gen disk vit (SSD, NVRAM, elatriye), Lè sa a, chanje kontèks deja vin tounen yon "kou boutèy" epi, pa ekonomize sou chanje kontèks, pèfòmans ka ogmante anpil. Fason estanda pou ekonomize lajan se deplase modil yo nan espas nwayo. Pou egzanp, nou te jwenn ke deplase sèvè a 9p soti nan QEMU nan nwayo a sou machin lame a mennen nan yon ogmantasyon twa fwa nan pèfòmans VirtFS.

Sa a, nan kou, se pa yon rezo FS, men li konplètman reflete sans nan bagay sa yo. Dezavantaj nan optimize sa a se pwoblèm portabilite. Pou kèk moun, lèt la ka kritik. Pou egzanp, GlusterFS pa gen okenn modil nan nwayo a ditou. Mèsi a sa a, kounye a li travay sou anpil platfòm, ki gen ladan NetBSD.

Ki konsèp FS lokal yo ta ka prete nan men rezo yo ak vis vèrsa?

Sèjousi, rezo FS yo, kòm yon règ, gen ajoute sou FS lokal yo, kidonk mwen pa byen konprann ki jan ou ka prete yon bagay nan lèt la. Oke, tout bon, ann konsidere yon konpayi ki gen 4 anplwaye, kote chak moun fè bagay pa yo: youn distribye, yon lòt voye, twazyèm lan resevwa, katriyèm magazen an. Ak kesyon an, ki sa konpayi an ka prete nan men anplwaye li yo ki estoke li, son yon jan kanmenm kòrèk (li te deja gen sa li te kapab prete nan men l 'pou yon tan long).

Men, FS lokal yo gen anpil bagay pou aprann nan men rezo yo. Premyèman, ou ta dwe aprann nan men yo ki jan yo total volim lojik nan yon nivo segondè. Koulye a, sa yo rele an Sistèm fichye lokal "avanse" rasanble volim lojik sèlman lè l sèvi avèk teknoloji "aparèy vityèl" prete nan LVM (menm vyolasyon kouch enfektye sa a ki te premye aplike nan ZFS). Nan lòt mo, tradiksyon adrès vityèl (nimewo blòk) nan adrès reyèl epi tounen nan yon nivo ki ba (sa vle di, apre sistèm dosye a te bay yon demann I/O).

Tanpri sonje ke ajoute ak retire aparèy nan volim lojik (pa miwa) ranje sou kouch blòk la mennen nan pwoblèm ke founisè nan "karakteristik" sa yo modèstman silans sou. M ap pale de fwagmantasyon sou aparèy reyèl, ki ka rive jwenn valè kolosal, pandan y ap sou yon aparèy vityèl tout bagay anfòm. Sepandan, gen kèk moun ki enterese nan aparèy vityèl: tout moun enterese nan sa k ap pase sou aparèy reyèl ou yo. Men, FS ki sanble ak ZFS (kòm byen ke nenpòt FS ansanm ak LVM) travay sèlman ak aparèy vityèl ki gen kapasite (bay adrès disk vityèl nan mitan yo gratis, defragmantasyon aparèy vityèl sa yo, elatriye). Epi yo pa gen okenn lide sa k ap pase sou aparèy reyèl!

Koulye a, imajine ke ou gen zewo fwagmantasyon sou aparèy vityèl la (ki se, ou gen jis yon sèl limit jeyan k ap viv la), ou ajoute yon disk nan volim lojik ou, ak Lè sa a, retire yon lòt disk o aza nan volim lojik ou ak Lè sa a, reekilib. Ak anpil fwa. Li pa difisil imajine ke sou aparèy vityèl la ou pral toujou gen menm limit k ap viv, men sou aparèy reyèl ou pa pral wè anyen ki bon.

Bagay ki pi mal la se ke ou pa menm kapab korije sitiyasyon sa a! Sèl bagay ou ka fè isit la se mande sistèm dosye a defragmente aparèy vityèl la. Men, li pral di ou ke tout bagay se gwo la - gen yon sèl limit, fwagmantasyon se zewo, epi li pa ka pi bon! Se konsa, volim lojik ranje nan nivo blòk yo pa fèt pou repete adisyon / retire aparèy. Nan yon bon fason, ou sèlman bezwen rasanble yon volim ki lojik nan nivo blòk yon fwa, bay li nan sistèm nan dosye, ak Lè sa a, pa fè anyen lòt bagay ak li.

Anplis de sa, konbinezon an nan subsistèm endepandan FS + LVM pa pèmèt pran an kont nati a diferan nan kondui yo ki soti nan ki volim lojik yo rasanble. Vreman vre, sipoze ou te rasanble yon volim lojik soti nan HDD ak aparèy eta solid. Men, Lè sa a, ansyen an pral mande pou defragmantasyon, ak dènye a pa pral. Pou lèt la, ou bezwen bay demann jete, men pou ansyen an, pa, elatriye. Sepandan, nan konbinezon sa a li trè difisil pou demontre selektivite sa yo.

Remake byen ke apre ou fin kreye pwòp LVM ou sou sistèm dosye a, sitiyasyon an pa jwenn pi bon. Anplis, lè w fè sa ou aktyèlman mete fen nan pwospè pou tout tan tout tan amelyore li nan tan kap vini an. Sa a se trè move. Diferan kalite kondui ka viv sou menm machin nan. Men, si sistèm nan dosye pa fè distenksyon ant yo, Lè sa a, ki moun ki pral?

Yon lòt pwoblèm manti nan tann pou sa yo rele an. Sistèm dosye "Write-Anywhere" (sa a gen ladan tou Reiser4, si ou espesifye modèl tranzaksyon apwopriye a pandan mòn). Sistèm dosye sa yo dwe bay zouti defragmantasyon ki san parèy nan pouvwa yo. Ak manadjè a volim ki ba-nivo pa ede isit la, men sèlman vin nan chemen an. Reyalite a se ke ak yon manadjè konsa, FS ou a pral estoke yon kat jeyografik nan blòk gratis nan yon sèl aparèy - yon sèl vityèl. An konsekans, ou ka sèlman defragmente yon aparèy vityèl. Sa vle di ke defragmenter ou a ap travay pou yon bon bout tan sou yon gwo espas sèl nan adrès vityèl.

Men, si ou gen yon anpil nan itilizatè ki fè ranplasman o aza, Lè sa a, efè a itil nan tankou yon defragmenter ap redwi a zewo. Sistèm ou a pral inevitableman kòmanse ralanti, epi ou pral sèlman gen yo pliye men ou devan dyagnostik la enèvan "konsepsyon kase". Plizyè defragmantè ki kouri sou menm espas adrès la pral sèlman entèfere youn ak lòt. Li se yon pwoblèm konplètman diferan si ou kenbe kat pwòp ou a nan blòk gratis pou chak aparèy reyèl. Sa a pral efektivman paralelize pwosesis la defragmantasyon.

Men, sa ka fèt sèlman si ou gen yon wo nivo manadjè volim lojik. Sistèm dosye lokal ak administratè sa yo pa t egziste deja (omwen, mwen pa konnen sou yo). Se sèlman sistèm fichye rezo yo (pa egzanp GlusterFS) te gen administratè sa yo. Yon lòt egzanp trè enpòtan se sèvis piblik chèk entegrite volim (fsck). Si ou estoke pwòp kat endepandan ou a nan blòk gratis pou chak subvolume, Lè sa a, pwosedi a pou tcheke yon volim lojik ka efektivman paralelize. Nan lòt mo, komèsan lojik ak manadjè wo nivo echèl pi byen.

Anplis de sa, ak administratè volim ki ba-nivo ou pa yo pral kapab òganize snapshots plen véritable. Avèk sistèm dosye LVM ak ZFS, ou ka sèlman pran snapshot lokal yo, men se pa snapshots mondyal. Snapshots lokal yo pèmèt ou imedyatman woule tounen sèlman operasyon dosye regilye. Epi pa gen moun ki pral woule tounen operasyon ak komèsan lojik (ajoute / retire aparèy). Ann gade sa a ak yon egzanp. Nan kèk pwen nan tan, lè ou gen yon volim lojik de aparèy A ak B ki gen 100 fichye, ou pran yon snapshot nan sistèm S la ak Lè sa a, kreye yon lòt santèn fichye.

Apre sa, ou ajoute aparèy C nan volim ou, epi finalman rollback sistèm ou a nan snapshot S. Kesyon: Konbyen fichye ak aparèy volim lojik ou genyen apre rollback nan S? Pral gen 100 fichye, jan ou ka devine, men pral gen 3 aparèy - sa yo se menm aparèy yo A, B ak C, byenke nan moman sa a snapshot la te kreye te gen sèlman de aparèy nan sistèm nan (A ak B). ). Operasyon an ajoute aparèy C pa t 'retounen, epi si ou kounye a retire aparèy C nan òdinatè a, li pral koripsyon done ou yo, kidonk anvan efase w ap bezwen premye fè yon operasyon chè yo retire aparèy la soti nan volim nan lojik reekilib, ki. pral gaye tout done ki soti nan aparèy C a nan aparèy A ak B. Men, si FS ou a sipòte snapshots mondyal, reekilib sa yo pa ta dwe obligatwa, epi apre yon Rollback enstantane nan S, ou ka san danje retire aparèy C nan òdinatè a.

Se konsa, snapshots mondyal yo bon paske yo pèmèt ou evite retire koute chè (ajoute) nan yon aparèy soti nan yon volim lojik (nan yon volim lojik) ak yon gwo kantite done (nan kou, si ou sonje "snapshot" sistèm ou a). nan bon moman). Kite m 'fè ou sonje ke kreye snapshots ak woule tounen sistèm nan dosye yo se operasyon enstantane. Kesyon an ka leve: ki jan li menm posib imedyatman woule tounen yon operasyon sou yon volim lojik ki te pran ou twa jou? Men, li posib! Depi sistèm fichye ou a fèt kòrèkteman. Mwen te vini ak lide "3D snapshots" sa yo twa ane de sa, ak ane pase a mwen patante teknik sa a.

Pwochen bagay ke FS lokal yo ta dwe aprann nan men sa yo rezo a se estoke metadata sou aparèy separe nan menm fason an ke FS rezo yo estoke yo sou machin separe (sa yo rele sèvè metadata yo). Gen aplikasyon ki travay prensipalman ak metadata, epi aplikasyon sa yo ka akselere anpil lè yo mete metadata yo sou aparèy depo pèfòmans chè. Avèk konbinezon FS + LVM, ou p ap kapab demontre selektivite sa a: LVM pa konnen ki sa ki sou blòk ou te pase li (done la oswa metadata).

Ou p ap jwenn anpil avantaj lè w aplike pwòp LVM nivo ba ou a nan FS la konpare ak konbinezon FS + LVM, men sa ou ka fè trè byen se dezord FS la pou pita li vin enposib pou travay ak kòd li a. ZFS ak Btrfs, ki kouri ak aparèy vityèl, se tout egzanp klè sou fason vyolasyon kouch touye sistèm nan an tèm achitekti Se konsa, poukisa mwen tout sa a? Anplis, pa gen okenn nesesite enstale pwòp LVM nivo ba ou a nan sistèm dosye a. Olye de sa, ou bezwen total aparèy nan volim lojik nan yon nivo segondè, tankou kèk sistèm dosye rezo fè ak machin diferan (nœuds depo). Se vre, yo fè sa degoutans akòz itilizasyon algoritm move.

Egzanp algoritm absoliman terib yo se tradiktè DHT nan sistèm fichye GlusterFS la ak kat jeyografik sa yo rele CRUSH nan sistèm fichye Ceph la. Okenn nan algorithm yo ke mwen te wè satisfè m 'an tèm de senplisite ak bon évolutivité. Se konsa, mwen te oblije sonje aljèb ak envante tout bagay tèt mwen. Nan 2015, pandan m ap fè eksperyans ak pakèt sou fonksyon hash, mwen te vini ak patante yon bagay ki kostim mwen. Koulye a, mwen ka di ke tantativ pou mete tout bagay sa yo an pratik te reyisi. Mwen pa wè okenn pwoblèm ak évolutivité nan nouvo apwòch la.

Wi, chak subvolume pral mande pou yon estrikti separe tankou yon superblok nan memwa. Èske sa fè pè anpil? An jeneral, mwen pa konnen ki moun ki pral "bouyi oseyan an" ak kreye komèsan lojik dè santèn de milye oswa plis aparèy sou yon sèl machin lokal yo. Si yon moun ka esplike m sa, m ap rekonesan anpil. Nan entre-temps la, pou mwen sa a se yon move bagay maketing.

Ki jan chanjman nan subsistèm aparèy blòk nwayo a (pa egzanp, aparans blk-mq) te afekte kondisyon pou aplikasyon FS?

Yo pa t gen okenn enpak. Mwen pa konnen ki sa ki ta rive sou kouch blòk la ki ta fè li nesesè yo desine yon nouvo FS. Koòdone nan entèraksyon nan subsystems sa yo trè pòv. Soti nan bò chofè a, FS a ta dwe sèlman afekte pa aparans nan nouvo kalite kondui, nan ki kouch blòk la pral ajiste an premye, ak Lè sa a, FS la (pou reiser4 sa a pral vle di aparans nan nouvo grefon).

Èske aparisyon nouvo kalite medya (pa egzanp, SMR, oswa omniprésente nan SSD) vle di fondamantalman nouvo defi pou konsepsyon sistèm dosye?

Wi. Ak sa yo se ankourajman nòmal pou devlopman nan FS. Defi yo ka diferan ak konplètman inatandi. Pou egzanp, mwen te tande pale de kondui kote vitès la nan yon operasyon I/O se trè depann sou gwosè a nan yon moso nan done ak konpanse li yo. Nan Linux, kote gwosè a nan blòk FS la pa ka depase gwosè paj la, tankou yon kondwi pa pral montre kapasite konplè li yo pa default. Sepandan, si sistèm dosye ou a fèt kòrèkteman, Lè sa a, gen yon chans jwenn yon anpil plis soti nan li.

Konbyen moun k ap travay kounye a ak kòd Reiser4 anplis ou?

Mwens pase mwen ta renmen, men mwen pa fè eksperyans yon mank de resous tou. Mwen plis pase satisfè ak mach la nan devlopman nan Reiser4. Mwen pa pral "kondwi chwal" - sa a se pa zòn nan dwa. Isit la, "si ou kondwi plis trankilman, ou pral kontinye!" Yon sistèm fichye modèn se sous-sistèm nwayo ki pi konplèks, desizyon konsepsyon ki mal yo ka defèt ane apre yo nan travay imen.

Lè yo ofri volontè pou aplike yon bagay, mwen toujou garanti ke efò yo pral sètènman mennen nan rezilta ki kòrèk la, ki ka nan demann pou bezwen grav. Kòm ou konprann, pa ka gen anpil garanti sa yo nan yon fwa. An menm tan an, mwen pa ka kanpe "figi" ki san wont ankouraje "karakteristik" nan lojisyèl evidamman inutilisables, twonpe dè santèn de itilizatè yo ak devlopè, epi an menm tan an chita ak souri nan somè nwayo.

Èske nenpòt konpayi eksprime volonte pou sipòte devlopman Reiser4?

Wi, te gen pwopozisyon sa yo, enkli. ak nan yon gwo machann. Men pou sa mwen te oblije deplase nan yon lòt peyi. Malerezman, mwen pa gen 30 an ankò, mwen pa ka kraze epi kite konsa nan premye siflèt la.

Ki karakteristik ki manke kounye a nan Reiser4?

Pa gen okenn fonksyon "redimansyone" pou volim senp, menm jan ak sa yo jwenn nan ReiserFS(v3). Anplis de sa, operasyon dosye ak drapo DIRECT_IO la pa ta fè mal. Apre sa, mwen ta renmen kapab separe yon volim nan "subvolumes semantik", ki pa gen yon gwosè fiks, epi ki ka monte kòm volim endepandan. Pwoblèm sa yo bon pou débutan ki vle eseye men yo nan "bagay reyèl la."

Epi finalman, mwen ta renmen gen komèsan rezo ki lojik ak aplikasyon senp ak administrasyon (algoritm modèn deja pèmèt sa a). Men, sa ki Reiser4 pral definitivman pa janm genyen se RAID-Z, scrubs, kachèt espas gratis, varyab 128-bit ak lòt istwa san sans maketing ki te parèt nan yon seri ide nan mitan devlopè yo nan kèk sistèm dosye.

Èske tout bagay ki ta ka bezwen aplike pa grefon?

Si nou pale sèlman an tèm de interfaces ak grefon (modil) ki aplike yo, Lè sa a, pa tout bagay. Men, si ou tou prezante relasyon sou interfaces sa yo, lè sa a, pami lòt bagay, ou pral gen konsèp nan pi wo polimorfism, ki ou ka deja jwenn ak. Imajine ke ipotetik ou te jele yon sistèm ègzekutabl oryante objè, chanje valè konsèy enstriksyon an lonje dwèt sou yon lòt plugin ki aplike menm koòdone X la, ak Lè sa a, debloke sistèm nan pou li kontinye egzekite.

Si itilizatè final la pa remake tankou yon "sibstitisyon," Lè sa a, nou di ke sistèm nan gen polimorfism zewo-lòd nan koòdone X la (oswa sistèm nan se etewojèn nan koòdone X, ki se menm bagay la). Si kounye a ou pa sèlman gen yon seri koòdone, men tou, gen relasyon sou yo (graf koòdone), Lè sa a, ou ka prezante polimorfism nan pi wo lòd, ki pral karakterize eterojenite a nan sistèm nan deja nan "katye a" nan nenpòt ki koòdone. Mwen te prezante yon klasifikasyon konsa depi lontan, men, malerezman, li pa janm rive.

Se konsa, avèk èd nan grefon ak polimorfism sa yo ki pi wo, ou ka dekri nenpòt karakteristik li te ye, osi byen ke "predi" sa yo ki pa janm te menm mansyone. Mwen pa te kapab estrikteman pwouve sa a, men mwen menm mwen pa konnen nan yon kont-egzanp ankò. An jeneral, kesyon sa a te fè m sonje "Pwogram Erlangen" Felix Klein. Nan yon moman li te eseye reprezante tout jeyometri kòm yon branch nan aljèb (espesyalman, teyori gwoup).

Koulye a, nan kesyon prensipal la - ki jan bagay yo ale ak pwomosyon nan Reiser4 nan nwayo prensipal la? Èske te gen nenpòt piblikasyon sou achitekti sistèm dosye sa a ke ou te pale nan dènye entèvyou a? Ki enpòtan kesyon sa a nan pwen de vi ou?

An jeneral, nou te mande pou enklizyon nan branch prensipal la pou twa zan. Dènye kòmantè Reiser nan fil piblik kote yo te fè demann lan te rete san repons. Se konsa, tout lòt kesyon yo pa pou nou. Mwen pèsonèlman pa konprann poukisa nou bezwen "fizyone" nan yon sistèm opere espesifik. Sou Linux, limyè a pa t 'konvèje tankou yon bon rapò sere. Se konsa, gen yon depo separe nan ki pral gen plizyè branch-pò pou OS diferan. Nenpòt moun ki bezwen li ka klonaj pò korespondan an epi fè tou sa ou vle ak li (nan lisans lan, nan kou). Oke, si yon moun pa bezwen li, Lè sa a, se pa pwoblèm mwen an. Nan pwen sa a, mwen pwopoze yo konsidere kesyon an nan "pwomosyon nan nwayo prensipal Linux la" kòm rezoud.

Piblikasyon sou achitekti FS yo enpòtan, men jiskaprezan mwen te sèlman jwenn tan pou nouvo rezilta mwen yo, ke mwen konsidere yo dwe yon pi gwo priyorite. Yon lòt bagay se ke mwen se yon matematisyen, ak nan matematik nenpòt piblikasyon se yon rezime teyorèm ak prèv yo. Pibliye anyen la san prèv se yon siy move gou. Si mwen byen pwouve oswa demanti nenpòt deklarasyon sou achitekti FS la, Lè sa a, rezilta a pral pil konsa ke li pral byen difisil jwenn nan. Ki moun ki bezwen li? Sa a se pwobableman poukisa tout bagay kontinye rete nan ansyen fòm li yo - kòd sous la ak kòmantè sou li.

Ki nouvo nan Reiser4 pandan kèk ane ki sot pase yo?

Estabilite ki long dire a te finalman konkretize. Youn nan dènye yo parèt se te yon ensèk ki te mennen nan anyè "undeletable". Difikilte a te ke li te parèt sèlman kont background nan nan kolizyon hash non ak ak yon sèten kote nan dosye anyè nan yon ne pye bwa. Sepandan, mwen toujou pa ka rekòmande Reiser4 pou pwodiksyon: pou sa ou bezwen fè kèk travay ak entèraksyon aktif ak administratè sistèm pwodiksyon an.

Nou finalman jere aplike lide depi lontan nou an - modèl tranzaksyon diferan. Précédemment, Reiser4 te kouri sèlman yon modèl Macdonald-Reiser ki te kode. Sa a te kreye pwoblèm konsepsyon. An patikilye, snapshots yo pa posib nan tankou yon modèl tranzaksyon - yo pral pèvèti pa yon eleman atomik ki rele "OVERWRITE SET". Reiser4 kounye a sipòte twa modèl tranzaksyon. Nan youn nan yo (Write-Anywhere), eleman atomik OVERWRITE SET gen ladan sèlman paj sistèm (imaj nan bitmap disk, elatriye), ki pa ka "fotografi" (pwoblèm nan poul ak ze).

Se konsa, foto yo ka kounye a reyalize nan pi bon fason posib. Nan yon lòt modèl tranzaksyon, tout paj modifye ale sèlman nan OVERWRITE SET (ki vle di, li se esansyèlman pi jounal). Modèl sa a se pou moun ki plenyen sou fwagmantasyon rapid nan patisyon Reiser4. Koulye a, nan modèl sa a patisyon ou a pa pral fragman pi vit pase ak ReiserFS (v3). Tout twa modèl ki egziste deja, ak kèk rezèvasyon, garanti atomite operasyon yo, men modèl ki gen pèt atomite ak prezève sèlman entegrite seksyon an kapab itil tou. Modèl sa yo ka itil pou tout kalite aplikasyon (baz done, elatriye), ki te deja pran kèk nan fonksyon sa yo. Li trè fasil pou ajoute modèl sa yo nan Reiser4, men mwen pa t 'fè li, paske pa gen moun ki mande m', epi mwen pèsonèlman pa bezwen li.

Metadata checksums te parèt epi mwen dènyèman konplete yo ak miwa "ekonomik" (materyèl ki toujou enstab). Si total chèk nenpòt blòk echwe, Reiser4 imedyatman li blòk ki koresponn lan nan aparèy la kopi. Remake byen ke ZFS ak Btrfs pa ka fè sa: konsepsyon an pa pèmèt li. Gen ou dwe kouri yon pwosesis espesyal optik background ki rele "fwote" epi tann pou li rive nan blòk la pwoblèm. Nan sans senbolik pwogramè yo rele evènman sa yo “beki”.

Epi finalman, volim eterojèn lojik yo te parèt, ofri tout bagay ki ZFS, Btrfs, kouch blòk, osi byen ke konbinezon FS + LVM nan prensip pa ka bay - dekale paralèl, O (1) disk adrès alokatè, transparan migrasyon done ant subvolumes. Lèt la tou gen yon koòdone itilizatè. Koulye a, ou ka fasilman deplase done ki pi cho yo nan kondwi a pi wo-pèfòmans sou volim ou.

Anplis de sa, li posib yo ijan kole nenpòt paj sal nan yon kondwi konsa, kidonk siyifikativman akselere aplikasyon ki souvan rele fsync(2). Mwen sonje ke fonksyonalite kouch blòk la, ki rele bcache, pa bay libète aksyon sa yo ditou. Nouvo komèsan lojik yo baze sou algoritm mwen yo (gen patant korespondan). Lojisyèl la deja byen estab, li byen posib pou eseye li, mezire pèfòmans, elatriye. Deranjman an sèlman se ke pou kounye a ou bezwen manyèlman mete ajou konfigirasyon an volim epi estoke li yon kote.

Jiskaprezan mwen te kapab aplike lide m 'pa 10 pousan Sepandan, mwen te reyisi nan sa mwen konsidere kòm bagay ki pi difisil - konekte volim lojik ak yon pwosedi flash ki fè tout aksyon difere nan reiser4. Tout bagay sa yo toujou nan branch eksperimantal "format41".

Èske Reiser4 pase xfstests?

Omwen li te fè pou mwen lè mwen te prepare dènye lage a.

Èske li posib nan prensip fè Reiser4 yon rezo (cluster) FS lè l sèvi avèk grefon?

Li posib, e menm nesesè! Si w kreye yon fichye rezo ki baze sou yon sistèm dosye lokal ki byen fèt, rezilta a pral trè enpresyonan! Nan rezo modèn FSs, mwen pa satisfè ak prezans nan yon nivo depo backend, ki se aplike lè l sèvi avèk nenpòt FS lokal yo. Egzistans la nan nivo sa a se konplètman enjistis. FS rezo a dwe dirèkteman kominike avèk kouch blòk la, epi li pa mande FS lokal la pou kreye nenpòt lòt dosye sèvis!

An jeneral, divize sistèm fichye an lokal ak rezo se soti nan sa ki mal la. Li te soti nan enpèfeksyon nan algoritm yo ki te itilize trant ane de sa, ak nan plas kote pa gen anyen ki poko pwopoze. Sa a se tou rezon an pou aparans nan yon mas nan eleman lojisyèl nesesè (divès kalite sèvis, elatriye). Nan yon bon fason, ta dwe gen sèlman yon sèl FS nan fòm lan nan yon modil nwayo ak yon seri sèvis piblik itilizatè enstale sou chak machin - yon ne grap. FS sa a se tou de lokal ak rezo. E anyen ankò!

Si pa gen anyen ki mache ak Reiser4 sou Linux, mwen ta renmen ofri yon FS pou FreeBSD (sitasyon nan yon entèvyou anvan: "...FreeBSD... gen rasin akademik... E sa vle di ke ak yon wo degre de pwobabilite nou pral jwenn yon lang komen ak devlopè yo")?

Se konsa, jan nou jis dekouvri, tout bagay te deja travay pafètman ak Linux: gen yon pò Reiser4 k ap travay apa pou li nan fòm lan nan yon branch mèt nan depo nou an. Mwen pa bliye sou FreeBSD! Ofri! Mwen pare pou m travay sere sere ak moun ki konnen byen anndan FreeBSD. By the way: sa mwen reyèlman renmen nan kominote yo a se ke desizyon yo pran pa yon konsèy mete ajou nan ekspè endepandan, ki pa gen anyen fè ak twonpe gouvènman an nan yon sèl moun pèmanan.

Ki jan ou evalye kominote itilizatè Linux jodi a? Èske li vin pi "pòp"?

Etandone nati travay mwen an, li trè difisil pou mwen evalye sa a. Sitou itilizatè yo vin jwenn mwen ak rapò ensèk ak demann pou ranje seksyon an. Itilizatè yo kòm itilizatè yo. Gen kèk ki gen plis konprandr, kèk mwens. Yo trete tout moun menm jan. Oke, si itilizatè a inyore enstriksyon mwen an, Lè sa a, eskize m ': lòd la inyore yo pral antre sou pati mwen tou.

Èske li posib pou predi devlopman nan sistèm dosye pou senk a dis ane kap vini yo? Ki sa ou panse se defi prensipal yo ke devlopè FS ka fè fas a?

Wi, li pa difisil pou fè yon pwedi konsa. Pa te gen okenn devlopman nan sistèm dosye nan en a pou yon tan long. Se sèlman aparans nan sa yo kreye. Devlopè nan sistèm dosye lokal yo te rankontre pwoblèm ki asosye ak konsepsyon pòv yo. Yon avètisman bezwen fè isit la. Mwen pa konsidere sa yo rele "depo", "niche" ak pòsyon nan kòd yo dwe devlopman ak devlopman. Apre sa, mwen pa klase enkonpreyansyon ki rele "Btrfs" kòm yon devlopman pou rezon sa yo ke mwen te deja eksplike.

Chak patch sèlman fè pwoblèm li yo vin pi mal. Oke. epi toujou gen plizyè kalite “evanjelis” pou yo “tout bagay ap mache”. Fondamantalman, sa yo se timoun lekòl ak elèv sote konferans. Jis imajine: li travay pou li, men pwofesè a pa fè sa. Ala yon adrenalin rush sa a ye! Soti nan pwen de vi mwen, pi gwo mal la ki te koze pa "atizan yo" ki te kouri nan antouzyasm "vis" karakteristik yo bèl nan Btrfs sou tout kalite kouch tankou systemd, docker, elatriye. - sa a deja sanble ak metastaz.

Koulye a, se pou nou eseye fè yon pwevwa pou senk a dis ane. Mwen te deja make yon ti tan sa nou pral fè nan Reiser4. Defi prensipal la pou devlopè lokal FS soti nan en pral (wi, li te deja vin) enkapasite a fè yon travay desan pou yon salè. San okenn lide nan domèn depo done, yo pral kontinye eseye patch sa yo malere VFS, XFS ak ext4. Sitiyasyon an ak VFS sanble espesyalman komik sou background sa a, okoumansman de modènizasyon an frenetik nan yon restoran nan ki pa gen okenn chèf, epi yo pa gen okenn chèf espere.

Koulye a, kòd VFS la, san okenn kondisyon, fèmen plizyè paj memwa an menm tan epi envite FS ki kache pou opere sou yo. Sa a te prezante amelyore pèfòmans Ext4 a sou operasyon efase, men kòm li fasil pou konprann, sa yo bloke konkouran se konplètman enkonpatib ak modèl tranzaksyon avanse. Sa vle di, ou pa pral kapab tou senpleman ajoute sipò pou kèk sistèm dosye entelijan nan nwayo a. Mwen pa konnen ki sitiyasyon an ye nan lòt zòn nan Linux, men an sa ki konsène sistèm fichye yo, nenpòt devlopman isit la pa gen anpil chans pou yo konpatib ak politik Torvalds yo te pouswiv nan pratik (pwojè akademik yo te voye deyò, ak SCAMMERS ki pa gen okenn lide ki sa yon B-tree, kredi kontinuèl nan konfyans yo bay). Se poutèt sa, yo te fikse yon kou pou pouri dousman. Natirèlman, yo pral eseye ak tout fòs yo pou yo pase sa kòm "devlopman".

Pli lwen, "gadyen yo" nan sistèm dosye, reyalize ke ou pa ka touche anpil nan "depo" pou kont li, pral eseye men yo nan yon biznis ki pi pwofitab. Sa yo se, kòm yon règ, distribye sistèm dosye ak Virtualization. Petèt yo pral pò ZFS alamòd yon lòt kote kote li poko egziste. Men, li, tankou tout FS soti nan en an, sanble ak yon pye bwa New Year: si ou ka pann kèk lòt ti bagay sou tèt, Lè sa a, ou pa ka jwenn nenpòt ki pi fon. Mwen admèt ke li se posib yo bati yon sistèm antrepriz serye ki baze sou ZFS, men depi kounye a nou ap diskite sou lavni an, mwen ka sèlman malerezman deklare ke ZFS se san espwa nan sans sa a: ak aparèy vityèl yo, mesye yo te koupe oksijèn nan. pou tèt yo ak jenerasyon kap vini yo pou plis devlopman. ZFS se yon bagay ki sot pase a. Ak ext4 ak XFS yo pa menm jou anvan yè.

Li se vo mansyone separeman sou konsèp nan sansasyonalis nan "Linux fichye sistèm nan pwochen jenerasyon". Sa a se yon pwojè konplètman politik ak maketing ki te kreye pou opòtinite, se konsa pale, "pin lavni nan sistèm dosye" nan Linux dèyè karaktè espesifik. Reyalite a se ke Linux te itilize yo dwe "jis pou plezi". Men koulye a, li se prensipalman yon machin fè lajan. Yo fè sou tout sa ki posib. Pou egzanp, li trè difisil yo kreye yon bon pwodwi lojisyèl, men entelijan "devlopè" gen lontan reyalize ke pa gen okenn bezwen souch nan tout: ou ka avèk siksè vann lojisyèl ki pa egziste ki te anonse ak ankouraje nan tout kalite piblik. evènman - bagay prensipal la se ke glisad prezantasyon yo ta dwe gen plis "karakteristik".

Sistèm dosye yo pafè pou sa a, paske ou ka san danje negosye pou dis ane sou rezilta a. Oke, si yon moun pita plenyen sou mank de rezilta sa a, Lè sa a, li tou senpleman pa konprann anyen sou sistèm dosye! Sa a se okoumansman de yon piramid finansye: nan tèt la se avanturyé yo ki te kòmanse dezòd sa a, ak kèk moun ki te "chans": yo "retire dividann," i.e. te resevwa lajan pou devlopman, te resevwa yon travay byen peye kòm manadjè, "montre" nan konferans, elatriye.

Apre sa, moun ki gen "malchans": yo pral konte pèt, fè fas ak konsekans yo nan deplwaye yon pwodwi lojisyèl ki pa ka itilize nan pwodiksyon, "etc. Genyen anpil plis nan yo. Oke, nan baz la nan piramid la gen yon mas gwo devlopè "sye" kòd initil. Yo se pi gwo pèdan yo, paske tan gaspiye yo pa ka retounen. Piramid sa yo trè benefik pou Torvalds ak asosye li yo. Ak plis nan piramid sa yo, pi bon an pou yo. Pou manje piramid sa yo, anyen ka pran nan nwayo a. Natirèlman, an piblik yo di opoze a. Men, mwen pa jije pa pawòl men ak aksyon.

Se konsa, "avni sistèm dosye nan Linux" se ankò yon lòt lojisyèl trè ankouraje, men diman ka itilize. Apre Btrfs, ak yon gwo pwobabilite, Bcachefs pral pran plas yon "avni" konsa, ki se yon lòt tantativ pou travèse kouch blòk Linux ak yon sistèm dosye (yon move egzanp se kontajye). Ak sa ki tipik: gen pwoblèm yo menm jan ak nan Btrfs. Mwen sispèk sa a pou yon tan long, ak Lè sa a, yon jan kanmenm mwen pa t 'kapab reziste epi gade nan kòd la - se vre!

Otè yo nan Bcachefs ak Btrfs, lè yo kreye FS yo, aktivman itilize sous lòt moun, konprann ti kras sou yo. Sitiyasyon an trè okoumansman de jwèt timoun yo "tefòn domaje". Apre sa, mwen ka apeprè imajine ki jan kòd sa a pral enkli nan nwayo a. Aktyèlman, pèsonn pa pral wè "rato" yo (tout moun ap mache sou yo pita). Apre anpil diskisyon sou style kòd la, akizasyon de vyolasyon ki pa egziste, elatriye, yo pral fè yon konklizyon sou "lwayote a" nan otè a, ki jan li byen "kominike" ak lòt devlopè, ak ki jan siksè tout bagay sa a kapab. Lè sa a, yo dwe vann bay kòporasyon yo.

Rezilta final la pa pral enterese pèsonn. Sa gen 20 an, petèt, mwen ta enterese, men kounye a kesyon yo poze yon lòt jan: èske l ap posib pou ankouraje sa a pou sèten moun yo pral anplwaye nan dizan pwochen yo. Epi, Ay, li pa òdinè mande sou rezilta final la.

An jeneral, mwen ta konseye anpil kont kòmanse reenvante sistèm fichye ou a nan grafouyen. Paske menm siyifikatif envèstisman finansye pa pral ase pou jwenn yon bagay konpetitif nan dis ane. Natirèlman, mwen ap pale de pwojè grav, epi yo pa sou sa yo ki gen entansyon yo dwe "pouse" nan nwayo a. Se konsa, yon fason ki pi efikas eksprime tèt ou se rantre nan devlopman reyèl, tankou nou. Sa a, nan kou, se pa fasil fè - men sa a se ka a ak nenpòt pwojè wo nivo.

Premyèman, w ap bezwen poukont simonte pwoblèm mwen pral ofri a. Apre sa, konvenki nan gravite a nan entansyon ou, mwen pral kòmanse ede. Tradisyonèlman, nou itilize sèlman devlopman pwòp nou yo. Eksepsyon yo se algoritm konpresyon ak kèk fonksyon hash. Nou pa voye devlopè yo vwayaje nan konferans, epi Lè sa a, nou pa chita epi konbine lide lòt moun ("petèt sa ki pral rive"), jan sa abitye nan pifò startups.

Nou devlope tout algoritm tèt nou. Kounye a mwen enterese nan aspè aljebrik ak konbinatwa nan syans depo done. An patikilye, jaden fini, asenptotik, prèv inegalite. Genyen tou travay pou pwogramè òdinè, men mwen dwe avèti ou touswit: tout sijesyon pou "gade yon lòt FS epi fè menm bagay la" yo inyore. Patch ki vize a pi pre entegrasyon ak Linux atravè VFS pral tou ale la.

Se konsa, nou pa gen yon rato, men nou gen yon konpreyansyon sou kote nou bezwen deplase, epi nou gen konfyans ke direksyon sa a se youn nan dwa. Konpreyansyon sa a pa t vini sou fòm laman ki soti nan syèl la. Kite m raple nou ke nou gen 29 ane eksperyans nan devlopman dèyè nou, de sistèm dosye ekri nan grafouyen. Ak menm kantite sèvis piblik rekiperasyon done. Epi sa a se anpil!

Sous: opennet.ru

Add nouvo kòmantè