Ikaduha nga interbyu uban ni Eduard Shishkin, developer sa Reiser4 FS

Ang ikaduhang interbyu uban ni Eduard Shishkin, developer sa Reiser4 file system, gimantala.

Sa pagsugod, palihog pahinumdumi ang mga magbabasa asa ug kang kinsa ka nagtrabaho.

Nagtrabaho ko isip Principal Storage Architect sa Huawei Technologies, German Research Center. Sa departamento sa virtualization akong giatubang ang lainlaing mga aspeto sa pagtipig sa datos. Ang akong mga kalihokan walay kalabutan sa usa ka piho nga operating system.

Nagpasalig ka ba karon sa panguna nga sanga sa kernel?

Talagsa ra, ug kung gikinahanglan kini sa akong amo. Ang katapusang higayon mga tulo ka tuig na ang milabay, nagpadala ako og mga patch aron madugangan ang throughput alang sa pagtipig nga gipaambit sa mga host gamit ang 9p protocol (laing ngalan niini nga negosyo mao ang VirtFS). Usa ka importante nga nota kinahanglan nga himoon dinhi: bisan tuod ako nagtrabaho uban sa Linux sa dugay nga panahon, ako wala gayud usa ka fan niini, nga mao, ako "pagginhawa parehas," sama sa tanan nga uban pa. Sa partikular, kung nakamatikod ako nga usa ka sayup, mahimo nako kini itudlo labing kausa. Ug aron makasunod ka sa usa ka tawo ug madani sila - dili kini mahitabo.

Nahinumdom ko sa miaging higayon, napulo ka tuig na ang milabay, medyo kritikal ka sa estilo sa pagpalambo sa kernel. Gikan sa imong (o tingali corporate) nga punto sa panglantaw, aduna bay nausab, ang komunidad ba nahimong mas responsive o wala? Kung dili, kinsa sa imong hunahuna ang mabasol?

Wala gyud koy nakita nga mga pagbag-o alang sa labi ka maayo. Ang panguna nga problema sa komunidad mao ang pag-ilis sa siyensya sa mga teknolohiya sa politika, personal nga relasyon, opinyon sa kadaghanan, populismo, tambag gikan sa "mga tingog sa sulud," dunot nga pagkompromiso, tanan gawas sa siyensya. Ang siyensya sa kompyuter, bisan unsa ang isulti sa usa, una ug labaw sa tanan usa ka eksakto nga siyensya. Ug kung ang usa ka tawo magsugod sa pagmantala sa ilang kaugalingon nga kantidad alang sa 2x2, lahi sa 4, sa ilawom sa bandila nga "Linux way", o sa ilawom sa ubang bandila, nan kini dili tingali magdala bisan unsa gawas sa kadaot.

Ang tanan nga mga kasamok nag-una tungod sa kawalay katakus ug kakulang sa edukasyon sa mga naghimog mga desisyon. Kung ang usa ka manedyer walay katakus, dili siya makahimo sa usa ka tumong, igong desisyon. Kung dili usab siya kultura, dili siya makapangita usa ka takus nga espesyalista nga maghatag kaniya sa husto nga tambag. Uban sa usa ka taas nga posibilidad, ang pagpili mahulog sa usa ka scammer nga nag-ingon nga "daw husto nga mga butang." Ang usa ka dunot nga palibot kanunay nga naugmad sa palibot sa mga walay katakus nga nag-inusarang mga lider. Dugang pa, ang kasaysayan walay nahibal-an nga mga eksepsiyon niini nga bahin, ug ang komunidad mao ang labing klaro nga kumpirmasyon niini.

Giunsa nimo pagtimbang-timbang ang pag-uswag sa pag-uswag sa Btrfs? Nawala ba ning FS ang mga sakit sa bata? Giunsa nimo kini ibutang sa imong kaugalingon - isip usa ka FS "para sa balay" o alang usab sa paggamit sa korporasyon?

Wala nako gitangtang. Ang tanan nga akong gihisgutan 11 ka tuig na ang milabay may kalabutan gihapon karon. Usa sa mga problema sa Btrfs nga naghimo niini nga dili angay alang sa seryoso nga mga panginahanglan mao ang problema sa libre nga luna. Wala gani ako maghisgot mahitungod sa kamatuoran nga ang user gihangyo nga modagan ngadto sa tindahan alang sa usa ka bag-ong disk sa mga sitwasyon diin ang bisan unsang laing FS magpakita sa daghang libre nga luna sa partisyon. Ang kawalay katakus sa pagkompleto sa usa ka operasyon sa usa ka lohikal nga gidaghanon tungod sa kakulang sa libre nga luna dili usab ang pinakagrabe nga butang. Ang labing daotan nga butang mao nga ang usa ka dili pribilihiyo nga tiggamit hapit kanunay, makalikay sa bisan unsang mga quota sa disk, maghikaw sa tanan nga libre nga wanang sa mubo nga panahon.

Ingon niini (gisulayan alang sa Linux kernel 5.12). Ang usa ka script gilunsad sa usa ka bag-ong na-install nga sistema, nga sa usa ka loop nagmugna og mga file nga adunay piho nga mga ngalan sa direktoryo sa balay, nagsulat og mga datos ngadto kanila sa pipila ka mga offset, ug dayon gitangtang kini nga mga file. Human sa usa ka minuto sa pagpadagan niini nga script, walay talagsaon nga mahitabo. Human sa lima ka minuto, ang bahin sa giokupar nga luna sa partisyon motaas og gamay. Human sa duha ngadto sa tulo ka oras moabot kini sa 50% (nga adunay inisyal nga kantidad nga 15%). Ug pagkahuman sa lima o unom ka oras nga pagtrabaho, ang script nag-crash nga adunay sayup nga "wala’y libre nga wanang sa partisyon." Pagkahuman niini, dili ka na makasulat bisan usa ka 4K file sa imong partisyon.

Usa ka makapaikag nga sitwasyon ang nahitabo: wala ka nagsulat bisan unsa sa partisyon, ug ang tanan nga libre nga wanang (mga 85%) nawala sa usa ka lugar. Ang pag-analisa sa usa ka seksyon nga gipailalom sa ingon nga pag-atake magpadayag sa daghang mga buko sa kahoy nga adunay usa ra ka butang (usa ka butang nga adunay usa ka yawe), daghang mga byte ang kadako. Kana mao, ang sulud nga kaniadto nag-okupar sa 15% sa wanang sa disk nahimo nga parehas nga "gipahid" sa tibuuk nga partisyon aron wala’y masulat nga bag-ong file, tungod kay ang yawi niini mas dako kaysa sa tanan nga naa na, ug ang libre. nahurot na ang mga bloke sa partisyon.

Dugang pa, kining tanan nahitabo na sa batakang pag-configure sa Btrfs (nga walay bisan unsang mga snapshot, subvolumes, ug uban pa), ug dili igsapayan kung giunsa nimo pagdesisyon ang pagtipig sa mga file nga lawas sa kana nga FS (ingon nga "mga tipik" sa usa ka kahoy, o ingon nga mga gilapdon. sa wala ma-format nga mga bloke) - ang katapusan nga resulta mahimong pareho.

Dili nimo mahimo nga ipailalom ang ubang mga upstream file system sa ingon nga pag-atake (bisan unsa pa ang ilang isulti kanimo). Gipatin-aw nako ang hinungdan sa problema sa dugay na nga panahon: kini usa ka kompleto nga pagtuis sa konsepto sa B-tree sa Btrfs, nga nagpaposible nga kini kusang o tinuyo nga madaot. Sa partikular, ubos sa pipila ka mga load, ang imong file system padayon nga "maguba" sa panahon sa operasyon sa iyang kaugalingon, nga walay tabang sa gawas. Klaro nga ang tanan nga mga matang sa "pagpilit" nga mga proseso sa background makaluwas sa adlaw lamang sa indibidwal nga mga desktop.

Sa mga kolektibong server, ang usa ka tig-atake kanunay nga makahimo sa "pag-una" kanila. Dili gani matino sa system administrator kung kinsa gyud ang nag-bully niya. Ang pinakapaspas nga paagi sa pag-ayo niini nga problema sa Btrfs mao ang pagpasig-uli sa istruktura sa usa ka regular nga B-tree, i.e. pagdesinyo pag-usab sa format sa disk ug pagsulat pag-usab sa mahinungdanong bahin sa Btrfs code. Magkinahanglan kini og 8-10 ka tuig, lakip ang pag-debug, basta ang mga developers hugot nga nagsunod sa orihinal nga mga artikulo sa may kalabutan nga mga algorithm ug mga istruktura sa datos, ug wala magdula sa "broken phone" nga dula, sama sa naandan (ug gidasig) sa "Linux paagi”.

Dinhi kinahanglan usab natong idugang ang oras nga gikinahanglan aron masabtan sa mga developer kining tanan. Dinhi kini mas lisud. Sa bisan unsa nga kahimtang, ang 10 ka tuig dili igo aron masabtan nila. Aw, hangtod niana dili ka makalaom sa usa ka milagro. Dili kini mahitabo sa porma sa usa ka mounting option “nga ikaw ug ako wala mahibalo,” o sa porma sa usa ka patch nga “usa lang ka butang sa negosyo” sa pag-andam. Alang sa matag usa ka dali nga "pag-ayo" akong ipresentar ang usa ka bag-ong senaryo sa pagkadaot. Ang mga B-tree usa sa akong paborito nga mga hilisgutan, ug kinahanglan kong isulti nga kini nga mga istruktura dili motugot sa mga kagawasan sa ilang kaugalingon!

Unsaon nako pagpahimutang ang mga Btrf para sa akong kaugalingon? Ingon usa ka butang nga dili gyud matawag nga file system, labi pa nga gigamit. Tungod kay, pinaagi sa kahulugan, ang FS usa ka OS subsystem nga responsable sa epektibo nga pagdumala sa "disk space" nga kapanguhaan, nga dili nato makita sa kaso sa Btrfs. Buweno, hunahunaa nga miadto ka sa tindahan aron mopalit ug relo aron dili maulahi sa trabaho, ug imbes nga relo gibaligyaan ka nilag electric grill nga may timer sulod sa labing taas nga 30 minutos. So, mas grabe pa ang sitwasyon sa mga Btrfs.

Sa pagtan-aw pinaagi sa mga mailing list, kanunay nakong makit-an ang pahayag nga ang epektibong pagdumala sa disk space dili na angay tungod sa kabarato sa mga drive. Kini mao ang bug-os nga walay pulos. Kung walay epektibo nga disk space manager, ang OS mahimong huyang ug dili magamit. Bisan unsa pa ang kapasidad sa mga disk sa imong makina.

Gusto kong mangayo og komento sa paghunong sa suporta sa Btrfs sa RHEL.

Walay espesyal nga komento dinhi, ang tanan klaro kaayo. Gikuha usab nila kini ingon usa ka "pagtan-aw sa teknolohiya". Busa, wala ko moagi niini nga "preview". Ayaw itugot nga kini nga label magbitay hangtod sa hangtod! Apan dili sila makalansad sa usa ka sayup nga produkto sa disenyo nga adunay bug-os nga suporta. Ang RHEL usa ka negosyo, nga mao, gireseta nga mga relasyon sa produkto-salapi. Ang Red Hat dili makadaog sa mga tiggamit sama sa ilang gibuhat sa Btrfs mailing list. Hunahunaa lang ang sitwasyon: ang usa ka kliyente nga mibayad sa iyang hard-earned money alang sa disk ug usab kanimo alang sa suporta, gusto nga masabtan kung asa ang iyang disk space miadto human siya wala magsulat bisan unsa. Unsay imong itubag niya niini?

Dugang pa. Ang mga kliyente sa Red Hat naglakip sa ilado nga dagkong mga bangko ug pagbayloay. Hunahunaa kung unsa ang mahitabo kung sila gipailalom sa mga pag-atake sa DoS base sa gihisgutan nga pagkahuyang sa Btrfs. Kinsa sa imong hunahuna ang responsable niini? Sa mga hapit na itudlo ang ilang tudlo sa linya sa lisensya sa GPL, diin nahisulat nga ang tagsulat dili responsable sa bisan unsang butang, ako dayon moingon: "itago kini!" Ang Red Hat motubag, ug sa paagi nga dili kini igo! Apan nahibal-an nako nga ang Red Hat wala mag-atubang sa kini nga klase nga problema, tungod sa ilang labi ka kusgan nga grupo sa mga inhenyero sa QA nga akong nakahigayon sa pagtrabaho pag-ayo sa akong panahon.

Ngano nga ang ubang mga kompanya nagpadayon sa pagsuporta sa Btrfs sa ilang mga produkto sa negosyo?

Palihug timan-i nga ang prefix nga "enterprise" sa ngalan sa produkto wala kaayo gipasabut. Ang negosyo usa ka sukod sa responsibilidad nga nalakip sa kontraktwal nga relasyon sa kliyente. Usa ra ang akong nahibal-an nga negosyo nga gibase sa GNU/Linux - RHEL. Ang tanan, gikan sa akong panan-aw, gipresentar lamang ingon usa ka negosyo, apan dili usa. Ug sa katapusan, kung adunay panginahanglan alang sa usa ka butang, nan adunay kanunay nga suplay (sa among kaso, kini ang gihisgutan nga "suporta"). Adunay panginahanglan alang sa hingpit nga tanan, lakip. ug dili magamit nga software. Sa unsang paagi naporma ang maong panginahanglan ug kinsay nagsugnod niini maoy laing topiko.

Mao nga, dili ako molukso sa bisan unsang mga konklusyon human ang Facebook gibalita nga nag-deploy sa mga Btrfs sa mga server niini. Dugang pa, irekomendar nako pag-ayo ang pagtipig sa mga adres sa mga server nga sekreto alang sa mga hinungdan sa ibabaw.

Ngano nga daghang paningkamot ang gihimo sa paglimpyo sa XFS code karong bag-o? Human sa tanan, sa sinugdanan kini usa ka ikatulo nga partido nga sistema sa file, ug ang ext4 lig-on sa dugay nga panahon ug adunay pagpadayon gikan sa nangagi nga parehas nga lig-on nga mga bersyon. Unsa ang interes sa Red Hat sa XFS? Makataronganon ba ang aktibong pagpalambo sa duha ka sistema sa file nga susama sa katuyoan - ext4 ug XFS?

Wala ko mahinumdom kon unsay nagtukmod niini. Posible nga ang inisyatiba gikan sa mga kliyente sa Red Hat. Nahinumdom ko nga ang panukiduki niini nga matang gihimo: sa pipila ka mga file system gikan sa upstream, usa ka dako nga gidaghanon sa mga butang ang gibuhat sa mga high-end drive sa bag-ong henerasyon. Sumala sa mga resulta, ang XFS naggawi nga mas maayo kaysa ext4. Busa gisugdan nila kini sa pagpasiugda ingon nga labing promising. Sa bisan unsa nga kaso, dili ko mangita og bisan unsa nga makahahadlok dinhi.

Para nako, murag giilisan nila og sabon ang usa ka awl. Walay kapuslanan ang pagpalambo sa ext4 ug XFS. Parehas nga managsama ug bisan kinsa kanila nga mapilian. Walay maayo nga mahitabo niini. Bisan pa, sa kinaiyahan kanunay adunay mga sitwasyon kung adunay daghang potensyal alang sa pagtubo, apan wala’y lugar nga motubo. Sa kini nga kaso, lainlain nga dili maayo nga mga bag-ong pagtubo ang mitungha, diin ang tanan nagpunting sa tudlo ("Oh, tan-awa, kung unsa ang dili nimo makita sa kini nga kinabuhi!").

Sa imong hunahuna ang isyu sa paglapas sa layer nahusay na (sa negatibo nga diwa) sa pag-abut sa mga function sa pag-encrypt sa ext4, F2FS (wala pay labot ang RAID sa Btrfs)?

Sa kinatibuk-an, ang pagpaila sa bisan unsang lebel ug paghimo og desisyon bahin sa ilang dili paglapas sa kasagaran usa ka butang sa palisiya, ug dili ako magtinguha nga magkomento sa bisan unsang butang dinhi. Ang tumong nga mga aspeto sa paglapas sa layer gamay ra ang interes ni bisan kinsa, apan mahimo natong tagdon ang pipila niini gamit ang panig-ingnan sa paglapas "gikan sa itaas," nga mao, ang pagpatuman sa FS sa functionality nga anaa na sa block layer. Ang ingon nga "paglapas" gipakamatarung nga adunay mga talagsaon nga mga eksepsiyon. Alang sa matag ingon nga kaso, kinahanglan nimo una nga pamatud-an ang duha ka mga butang: nga kini kinahanglan gayud, ug nga ang disenyo sa sistema dili makadaot sa pagbuhat niini.

Pananglitan, ang pagsalamin, nga sa naandan usa ka kalihokan alang sa block layer, makatarunganon nga ipatuman sa lebel sa file system. Alang sa lainlaing mga hinungdan. Pananglitan, ang "silent" data corruption (bit rot) mahitabo sa mga disk drive. Kini kung ang aparato nagtrabaho sa husto, apan ang block data wala damha nga nadaot ubos sa impluwensya sa usa ka gahi nga gamma quantum nga gipagawas sa usa ka layo nga quasar, ug uban pa. Ang pinakagrabe nga butang mao kung kini nga block nahimo nga FS system block (superblock, bitmap block, storage tree node, ug uban pa), tungod kay kini siguradong mosangpot sa usa ka kernel panic.

Palihug timan-i nga ang mga salamin nga gitanyag sa block layer (gitawag nga RAID 1) dili makaluwas kanimo gikan niini nga problema. Aw, sa tinuud: adunay kinahanglan nga susihon ang mga checksum ug basahon ang replika kung adunay kapakyasan? Dugang pa, makatarunganon nga i-salamin dili lang ang tanan, apan ang metadata lamang. Pipila ka importante nga datos (pananglitan, mga executable nga mga file sa mga kritikal nga aplikasyon) mahimong tipigan isip metadata. Sa kini nga kaso, nakadawat sila sa parehas nga mga garantiya sa kaluwasan. Makatarunganon nga itugyan ang pagpanalipod sa nahabilin nga datos sa ubang mga subsystem (tingali bisan ang mga aplikasyon sa gumagamit) - gihatag namon ang tanan nga kinahanglanon nga mga kondisyon alang niini.

Ang ingon nga "ekonomikanhon" nga mga salamin adunay katungod nga maglungtad, ug mahimo lamang kini nga maorganisar nga epektibo sa lebel sa file system. Kung dili, ang paglapas sa layering mao ang pag-clutter sa usa ka subsystem nga adunay doble nga code alang sa pipila nga mga benepisyo sa mikroskopiko. Usa ka talagsaong pananglitan niini mao ang pagpatuman sa RAID-5 gamit ang FS. Ang ingon nga mga solusyon (kaugalingon nga RAID / LVM sa file system) nagpatay sa ulahi sa mga termino sa arkitektura. Kinahanglan usab nga matikdan dinhi nga ang paglapas sa layering "gibutang sa sapa" sa lainlaing mga klase sa mga scammers sa marketing. Kung wala’y bisan unsang mga ideya, ang pag-andar nga dugay nang gipatuman sa mga silingan nga lebel gidugang sa mga subsystem, gipresentar kini ingon usa ka bag-ong labi ka mapuslanon nga bahin ug aktibo nga giduso.

Si Reiser4 giakusahan nga nakalapas sa lebel "gikan sa ubos". Pinasukad sa kamatuoran nga ang sistema sa file dili monolitik, sama sa tanan, apan modular, usa ka wala’y basehanan nga pangagpas gihimo nga kini nagbuhat kung unsa ang kinahanglan buhaton sa lebel sa ibabaw (VFS).

Posible ba nga maghisgot bahin sa pagkamatay sa ReiserFS v3.6 ug, pananglitan, JFS? Karong bag-o halos wala sila'y pagtagad sa kinauyokan. Karaan na ba sila?

Dinhi kinahanglan naton mahibal-an kung unsa ang gipasabut sa pagkamatay sa usa ka produkto sa software. Sa usa ka bahin, sila malampuson nga gigamit (mao kana ang gibuhat nila, pagkahuman sa tanan), nga nagpasabut nga sila nabuhi. Sa laing bahin, dili ko makasulti alang sa JFS (wala kaayo koy nahibal-an), apan ang ReiserFS (v3) lisud kaayo nga ipahiangay sa bag-ong mga uso (gisulayan sa praktis). Kini nagpasabot nga sa umaabot nga mga developers pagtagad dili niini, apan sa mga mas sayon ​​sa pagpahiangay. Gikan niini nga kilid kini nahimo nga, alaut, kini patay sa mga termino sa arkitektura. Dili nako manipulahon ang konsepto sa "morally obsolete" sa tanan. Kini magamit nga maayo, pananglitan, sa usa ka aparador, apan dili sa mga produkto sa software. Adunay usa ka konsepto sa pagkaubos ug pagkalabaw sa usa ka butang. Ako hingpit nga makaingon nga ang ReserFS v3 karon ubos sa Reiser4 sa tanang butang, apan sa pipila ka mga matang sa workload mas labaw kini sa tanan nga mga upstream FSs.

Nahibal-an ba nimo ang bahin sa pag-uswag sa FS Tux3 ug HAMMER/HAMMER2 (FS para sa DragonFly BSD)?

Oo, nahibal-an namon. Sa Tux3 Interesado ako kaniadto sa teknolohiya sa ilang mga snapshot (ang gitawag nga "version pointers"), apan sa Reiser4 lagmit moadto kami sa lahi nga ruta. Naghunahuna ko bahin sa pagsuporta sa mga snapshot sa dugay nga panahon ug wala pa nakahukom kung giunsa kini ipatuman alang sa yano nga mga volume sa Reiser4. Ang tinuod mao nga ang bag-o nga "tapolan" nga reference counter nga teknik nga gisugyot ni Ohad Rodeh nagtrabaho lamang alang sa mga B-tree. Wala namo sila. Alang sa mga istruktura sa datos nga gigamit sa Reiesr4, ang mga "tapulan" nga mga counter wala gihubit - aron ipaila kini, kinahanglan nga sulbaron ang pipila nga mga problema sa algorithm, nga wala pa nakuha.

Sumala sa HAMMER: Nakabasa ko og artikulo gikan sa magbubuhat. Dili interesado. Pag-usab, B-kahoy. Kini nga istruktura sa datos wala’y paglaum nga karaan na. Among gibiyaan kini sa miaging siglo.

Giunsa nimo pag-assess ang nagkadako nga panginahanglan alang sa network cluster FSs sama sa CephFS/GlusterFS/etc? Kini ba nga panginahanglan nagpasabot sa pagbalhin sa mga prayoridad sa mga developers ngadto sa network FS ug dili igo nga pagtagad sa lokal nga FS?

Oo, ang ingon nga pagbag-o sa mga prayoridad nahitabo. Ang pag-uswag sa mga lokal nga sistema sa file nahunong. Alaut, ang pagbuhat sa usa ka butang nga hinungdanon alang sa lokal nga mga volume karon lisud na ug dili tanan makahimo niini. Walay gusto nga mamuhunan sa ilang kalamboan. Sama ra kini sa paghangyo sa usa ka komersyal nga organisasyon nga maggahin ug salapi alang sa panukiduki sa matematika - nga wala’y bisan unsang kadasig mangutana sila kanimo kung giunsa nimo pagkita salapi sa usa ka bag-ong teorama. Karon ang usa ka lokal nga FS usa ka butang nga milagrosong makita "gikan sa kahon" ug "kinahanglan kanunay nga molihok," ug kung dili kini molihok, kini hinungdan sa wala matubag nga pagbagulbol sama sa: "Oo, unsa ang ilang gihunahuna!"

Mao nga ang kakulang sa pagtagad sa lokal nga FS, bisan pa adunay daghang trabaho sa maong lugar. Ug oo, ang tanan mibalik sa giapod-apod nga pagtipig, nga gitukod pinasukad sa naa na nga mga lokal nga sistema sa file. Uso na kaayo karon. Ang hugpong sa mga pulong nga "Daghang Data" hinungdan sa pagdali sa adrenaline alang sa kadaghanan, nga gilangkit kini sa mga komperensya, workshop, dagkong suweldo, ug uban pa.

Unsa ka makatarunganon sa prinsipyo ang pagpatuman sa network file system sa kernel space kaysa sa user space?

Usa ka makatarunganon kaayo nga pamaagi nga wala pa gipatuman bisan asa. Sa kinatibuk-an, ang pangutana sa unsa nga luna ang usa ka network file system kinahanglan nga ipatuman usa ka "doble-edged sword." Aw, atong tan-awon ang usa ka pananglitan. Ang kliyente nagrekord sa datos sa usa ka hilit nga makina. Nahulog sila sa cache sa iyang panid sa porma sa hugaw nga mga panid. Kini ang trabaho alang sa usa ka "manipis nga ganghaan" nga sistema sa file sa network sa wanang sa kernel. Unya ang operating system sa madugay o sa madali mohangyo kanimo sa pagsulat sa mga panid sa disk aron mapahigawas kini. Unya ang IO-forwarding (pagpadala) network FS module moabut sa pagdula. Gitino niini kung asa nga makina sa server (server node) kini nga mga panid moadto.

Dayon ang network stack mopuli (ug, ingon sa atong nahibal-an, kini gipatuman sa kernel space). Sunod, ang server node makadawat sa packet nga adunay data o metadata ug magtudlo sa backend storage module (ie, ang lokal nga FS nga naglihok sa kernel space) aron irekord ang tanan niini nga mga butang. Mao nga, gipaminusan namon ang pangutana kung diin kinahanglan molihok ang "pagpadala" ug "pagdawat" nga mga module. Kung adunay bisan kinsa sa mga module nga modagan sa wanang sa tiggamit, kini dili kalikayan nga mosangpot sa pagbalhin sa konteksto (tungod sa panginahanglan sa paggamit sa mga serbisyo sa kernel). Ang gidaghanon sa maong mga switch nagdepende sa mga detalye sa pagpatuman.

Kung adunay daghan nga ingon nga mga switch, nan ang storage throughput (I/O performance) mokunhod. Kung ang imong backend storage gilangkuban sa hinay nga mga disk, nan dili nimo mamatikdan ang usa ka mahinungdanong pagtulo. Apan kung ikaw adunay paspas nga mga disk (SSD, NVRAM, ug uban pa), nan ang pagbalhin sa konteksto nahimo nang usa ka "bottleneck" ug, pinaagi sa pagtipig sa pagbalhin sa konteksto, mahimo’g madugangan ang pasundayag. Ang sukaranan nga paagi aron makatipig salapi mao ang pagbalhin sa mga module sa wanang sa kernel. Pananglitan, among nakita nga ang pagbalhin sa 9p server gikan sa QEMU ngadto sa kernel sa host machine mosangpot sa tulo ka pilo nga pagtaas sa performance sa VirtFS.

Kini, siyempre, dili usa ka network FS, apan kini bug-os nga nagpakita sa esensya sa mga butang. Ang downside niini nga optimization mao ang portability isyu. Alang sa pipila, ang ulahi mahimong kritikal. Pananglitan, ang GlusterFS walay modules sa kernel. Salamat niini, kini karon nagtrabaho sa daghang mga platform, lakip ang NetBSD.

Unsa nga mga konsepto ang mahimong mahulaman sa mga lokal nga FS gikan sa mga network ug vice versa?

Karong panahona, ang mga network FS, ingon nga usa ka lagda, adunay mga add-on sa mga lokal nga FS, mao nga wala ako makasabut kung giunsa nimo paghulam ang usa ka butang gikan sa naulahi. Aw, sa tinuud, atong tagdon ang usa ka kompanya sa 4 nga mga empleyado, diin ang tanan naghimo sa ilang kaugalingon nga butang: ang usa nag-apod-apod, ang lain nagpadala, ang ikatulo nakadawat, ang ikaupat nga mga tindahan. Ug ang pangutana, unsa may mahulam sa kompanya sa iyang empleyado nga nag-store niini, murag dili sakto (naa na sad ang pwede untang maulaman niya sa dugay na nga panahon).

Apan ang mga lokal nga FS adunay daghang makat-unan gikan sa mga network. Una, kinahanglan ka makakat-on gikan kanila kung giunsa ang pagtipon sa mga lohikal nga volume sa taas nga lebel. Karon ang gitawag nga Ang "advanced" nga mga lokal nga sistema sa file naghiusa sa mga lohikal nga volume nga eksklusibo gamit ang teknolohiya nga "virtual device" nga hinulaman gikan sa LVM (kanang parehas nga makatakod nga paglapas sa layering nga una nga gipatuman sa ZFS). Sa laing pagkasulti, ang paghubad sa mga virtual nga adres (block number) ngadto sa tinuod ug balik mahitabo sa ubos nga lebel (ie, human ang file system nag-isyu og I/O request).

Palihug timan-i nga ang pagdugang ug pagtangtang sa mga himan ngadto sa lohikal nga mga volume (dili mga salamin) nga gihan-ay sa block layer mosangpot sa mga problema nga ang mga suppliers sa maong mga "features" kasarangan nga hilom. Naghisgot ako bahin sa pagkabahinbahin sa tinuud nga mga aparato, nga makaabut sa daghang mga kantidad, samtang sa usa ka virtual nga aparato ang tanan maayo. Bisan pa, pipila ka mga tawo ang interesado sa mga virtual nga aparato: ang tanan interesado sa kung unsa ang nahitabo sa imong tinuud nga mga aparato. Apan ang sama sa ZFS nga FS (maingon man ang bisan unsang FS inubanan sa LVM) nagtrabaho lamang sa mga virtual disk device (paggahin og mga adres sa virtual disk gikan sa mga libre, pag-defragment niini nga mga virtual device, ug uban pa). Ug wala silay ideya kung unsa ang nahitabo sa tinuod nga mga aparato!

Karon hunahunaa nga ikaw adunay zero fragmentation sa virtual device (nga mao, ikaw adunay usa lamang ka higanteng gidak-on nga nagpuyo didto), imong idugang ang usa ka disk sa imong lohikal nga gidaghanon, ug unya kuhaa ang laing random nga disk gikan sa imong lohikal nga gidaghanon ug dayon ibalanse. Ug sa daghang mga higayon. Dili lisud ang paghanduraw nga sa virtual nga aparato makabaton ka gihapon sa parehas nga gidak-on sa pagkinabuhi, apan sa tinuud nga mga aparato dili nimo makita ang bisan unsang maayo.

Ang labing daotan nga butang mao nga dili nimo matul-id ang kini nga kahimtang! Ang bugtong butang nga imong mahimo dinhi mao ang paghangyo sa file system sa pag-defragment sa virtual device. Apan sultihan ka niya nga ang tanan maayo didto - adunay usa ra ka gidak-on, ang pagkabahin mao ang zero, ug dili kini mahimong mas maayo! Mao nga, ang mga lohikal nga volume nga gihan-ay sa lebel sa block wala gituyo alang sa gibalikbalik nga pagdugang / pagtangtang sa mga aparato. Sa usa ka maayo nga paagi, kinahanglan nimo nga mag-assemble sa usa ka lohikal nga volume sa lebel sa block kausa, ihatag kini sa file system, ug dayon wala’y laing buhaton niini.

Dugang pa, ang kombinasyon sa mga independente nga FS + LVM subsystems wala magtugot sa pagkonsiderar sa lain-laing kinaiya sa mga drive diin ang lohikal nga mga volume giipon. Sa tinuud, ingnon ta nga nagtigum ka usa ka lohikal nga volume gikan sa HDD ug solid-state nga mga aparato. Apan unya ang nahauna magkinahanglan og defragmentation, ug ang ulahi dili. Alang sa naulahi, kinahanglan nimo nga mag-isyu sa mga hangyo sa pagtangtang, apan alang sa nauna, dili, ug uban pa. Bisan pa, sa kini nga kombinasyon lisud nga ipakita ang ingon nga pagkapili.

Timan-i nga human sa paghimo sa imong kaugalingon nga LVM sa file system, ang sitwasyon dili kaayo maayo. Dugang pa, pinaagi sa pagbuhat niini imong gitapos ang paglaom nga mapauswag pa kini sa umaabot. Kini daotan kaayo. Ang lainlaing klase sa mga drive mahimong mabuhi sa parehas nga makina. Ug kung ang sistema sa file dili makaila sa taliwala nila, nan kinsa ang gusto?

Ang laing problema anaa sa paghulat alang sa gitawag nga. "Write-Anywhere" nga mga sistema sa file (kini usab naglakip sa Reiser4, kung imong gipiho ang angay nga transactional nga modelo sa panahon sa pag-mount). Ang ingon nga mga sistema sa file kinahanglan maghatag mga himan sa defragmentation nga wala pa kaniadto sa ilang gahum. Ug ang ubos nga lebel nga tagdumala sa volume dili makatabang dinhi, apan nakababag lamang. Ang tinuod mao nga sa ingon nga manager, ang imong FS magtipig usa ka mapa nga libre nga mga bloke sa usa ra ka aparato - usa ka virtual. Tungod niini, mahimo ra nimo nga i-defragment ang usa ka virtual nga aparato. Kini nagpasabut nga ang imong defragmenter molihok sa dugay, dugay nga panahon sa usa ka dako nga wanang sa mga virtual nga adres.

Ug kung daghan ka nga mga tiggamit nga naghimo sa mga random nga pag-overwrite, nan ang mapuslanon nga epekto sa ingon nga defragmenter makunhuran sa zero. Ang imong sistema dili kalikayan nga magsugod sa paghinay, ug kinahanglan nimo nga ipilo ang imong mga kamot sa atubangan sa makapahigawad nga diagnosis nga "buak nga disenyo". Daghang mga defragmenter nga nagdagan sa parehas nga espasyo sa adres makabalda sa usag usa. Kini usa ka hingpit nga lahi nga butang kung imong gipadayon ang imong kaugalingon nga mapa sa libre nga mga bloke alang sa matag tinuud nga aparato. Kini epektibo nga moparehas sa proseso sa defragmentation.

Apan mahimo ra kini kung ikaw adunay taas nga lebel nga tagdumala sa lohikal nga volume. Ang mga lokal nga sistema sa file nga adunay ingon nga mga manedyer wala kaniadto (labing menos, wala ako kahibalo bahin kanila). Ang mga sistema sa file sa network lamang (pananglitan GlusterFS) ang adunay ingon nga mga manedyer. Laing importante kaayo nga pananglitan mao ang volume integrity check (fsck) utility. Kung gitipigan nimo ang imong kaugalingon nga independente nga mapa sa libre nga mga bloke alang sa matag subvolume, nan ang pamaagi sa pagsusi sa usa ka lohikal nga gidaghanon mahimong epektibo nga parallelized. Sa laing pagkasulti, ang lohikal nga mga volume nga adunay taas nga lebel nga mga manedyer mas maayo.

Dugang pa, uban sa ubos nga lebel nga volume managers dili ka makahimo sa pag-organisar sa hingpit nga mga snapshot. Uban sa LVM ug ZFS nga sama sa mga file system, mahimo ka lang makakuha og mga lokal nga snapshot, apan dili global snapshot. Gitugotan ka sa lokal nga mga snapshot nga ibalik dayon ang mga regular nga operasyon sa file. Ug walay usa nga mo-roll back sa mga operasyon nga adunay lohikal nga mga volume (pagdugang / pagtangtang sa mga aparato). Atong tan-awon kini uban ang usa ka pananglitan. Sa usa ka punto sa panahon, kung ikaw adunay usa ka lohikal nga gidaghanon sa duha ka mga aparato nga A ug B nga adunay sulud nga 100 nga mga file, magkuha ka usa ka snapshot sa sistema S ug dayon maghimo usa ka gatus nga mga file.

Pagkahuman niana, imong idugang ang aparato C sa imong volume, ug sa katapusan i-rollback ang imong sistema sa snapshot S. Pangutana: Pila ka mga file ug aparato ang naa sa imong lohikal nga volume pagkahuman sa pag-rollback sa S? Adunay 100 ka mga file, ingon sa imong natag-an, apan adunay 3 nga mga aparato - parehas kini nga mga aparato A, B ug C, bisan kung sa panahon nga gihimo ang snapshot adunay duha ra nga aparato sa sistema (A ug B ). Ang operasyon sa pagdugang sa aparato C wala magbalikbalik, ug kung imong tangtangon karon ang aparato C gikan sa kompyuter, kini makadaot sa imong data, mao nga sa dili pa matangtang kinahanglan nimo nga maghimo una usa ka mahal nga operasyon aron makuha ang aparato gikan sa lohikal nga gidaghanon sa pagbalanse, nga isabwag ang tanang data gikan sa device C ngadto sa mga device A ug B. Apan kon ang imong FS nagsuporta sa global snapshots, ang maong rebalancing dili na kinahanglan, ug human sa usa ka instant rollback ngadto sa S, mahimo nimong luwas nga makuha ang device C gikan sa computer.

Busa, ang mga global snapshot maayo tungod kay gitugotan ka niini nga malikayan ang mahal nga pagtangtang (pagdugang) sa usa ka aparato gikan sa usa ka lohikal nga volume (ngadto sa usa ka lohikal nga volume) nga adunay daghang data (siyempre, kung nahinumduman nimo nga "snapshot" ang imong sistema. sa saktong panahon). Tugoti ako nga pahinumdoman ka nga ang paghimo og mga snapshot ug pag-roll back sa file system ngadto kanila mga dali nga operasyon. Mahimong motungha ang pangutana: sa unsang paagi posible nga ibalik dayon ang usa ka operasyon sa usa ka lohikal nga volume nga nagkuha kanimo tulo ka adlaw? Apan kini posible! Kon ang imong file system kay gidesinyo sa husto. Nakahunahuna ko sa ingon nga "3D snapshots" tulo ka tuig na ang milabay, ug sa miaging tuig akong gipatuman kini nga teknik.

Ang sunod nga butang nga angay makat-unan sa mga lokal nga FS gikan sa mga network mao ang pagtipig sa metadata sa lahi nga mga aparato sa parehas nga paagi nga gitipigan kini sa mga FS sa network sa lain nga mga makina (ang gitawag nga metadata server). Adunay mga aplikasyon nga nag-una sa pagtrabaho sa metadata, ug kini nga mga aplikasyon mahimong mapaspasan pag-ayo pinaagi sa pagbutang sa metadata sa mahal nga mga aparato sa pagtipig nga adunay taas nga performance. Uban sa kombinasyon sa FS+LVM, dili nimo mapakita ang ingon nga pagkapili: Wala mahibal-an sa LVM kung unsa ang naa sa block nga imong gipasa niini (data didto o metadata).

Dili ka makakuha og daghang kaayohan gikan sa pagpatuman sa imong kaugalingon nga ubos nga lebel nga LVM sa FS kumpara sa kombinasyon sa FS + LVM, apan kung unsa ang imong mahimo nga maayo mao ang pag-clutter sa FS aron sa ulahi mahimo’g imposible nga magtrabaho sa code niini. Ang ZFS ug Btrfs, nga nagdali sa mga virtual nga aparato, tanan klaro nga mga pananglitan kung giunsa ang paglapas sa layering nagpatay sa sistema sa mga termino sa arkitektura. Busa, nganong ako kining tanan? Dugang pa, dili kinahanglan nga i-install ang imong kaugalingon nga ubos nga lebel nga LVM sa file system. Hinunoa, kinahanglan nimo nga i-aggregate ang mga himan ngadto sa lohikal nga mga volume sa taas nga lebel, sama sa gibuhat sa ubang mga network file system sa lain-laing mga makina (storage nodes). Tinuod, gibuhat nila kini nga dulumtanan tungod sa paggamit sa dili maayo nga mga algorithm.

Ang mga pananglitan sa hingpit nga makalilisang nga mga algorithm mao ang tighubad sa DHT sa GlusterFS file system ug ang gitawag nga CRUSH nga mapa sa Ceph file system. Walay usa sa mga algorithm nga akong nakita ang nakatagbaw kanako sa mga termino sa kayano ug maayo nga scalability. Mao nga kinahanglan nakong hinumdoman ang algebra ug ako mismo ang nag-imbento sa tanan. Sa 2015, samtang nag-eksperimento sa mga bundle sa mga function sa hash, nakahunahuna ko ug nag-patent sa usa ka butang nga angay kanako. Karon makaingon ko nga ang pagsulay sa pagbuhat niining tanan malampuson. Wala koy nakitang problema sa scalability sa bag-ong pamaagi.

Oo, ang matag subvolume nanginahanglan usa ka lahi nga istruktura sama sa usa ka superblock sa memorya. Makahadlok ba kaayo kini? Sa kinatibuk-an, wala ko mahibal-an kung kinsa ang "moluto sa dagat" ug maghimo lohikal nga mga volume sa gatusan ka libo o daghan pa nga mga aparato sa usa ka lokal nga makina. Kung adunay makapatin-aw niini kanako, ako mapasalamaton kaayo. Sa kasamtangan, alang kanako kini mao ang marketing bullshit.

Giunsa ang mga pagbag-o sa subsystem sa aparato nga block sa kernel (pananglitan, ang dagway sa blk-mq) nakaapekto sa mga kinahanglanon alang sa pagpatuman sa FS?

Wala silay epekto. Wala ko kahibalo kung unsa ang mahitabo sa block layer nga kinahanglan nga magdesinyo og bag-ong FS. Ang interface sa interaksyon niini nga mga subsystem dili maayo. Gikan sa bahin sa drayber, ang FS kinahanglan nga maapektuhan lamang sa dagway sa bag-ong mga matang sa mga drive, diin ang block layer una nga i-adjust, ug dayon ang FS (alang sa reiser4 kini nagpasabut sa dagway sa bag-ong mga plugins).

Ang pagtumaw ba sa bag-ong mga matang sa media (pananglitan, SMR, o ang ubiquity sa SSDs) nagpasabot sa sukaranang bag-ong mga hagit alang sa disenyo sa file system?

Oo. Ug kini mao ang normal nga mga insentibo alang sa pagpalambo sa FS. Ang mga hagit mahimong lahi ug hingpit nga wala damha. Pananglitan, nakadungog ko bahin sa mga drive diin ang katulin sa usa ka operasyon sa I/O nagdepende kaayo sa gidak-on sa usa ka piraso sa datos ug sa offset niini. Sa Linux, diin ang gidak-on sa FS block dili molapas sa gidak-on sa panid, ang ingon nga drive dili magpakita sa hingpit nga kapabilidad niini pinaagi sa default. Bisan pa, kung ang imong sistema sa file gidisenyo sa husto, nan adunay higayon nga makakuha og daghan pa gikan niini.

Pila ka mga tawo ang karon nagtrabaho kauban ang Reiser4 code gawas kanimo?

Ubos sa akong gusto, apan wala usab ako makasinati og grabe nga kakulang sa mga kapanguhaan. Mas natagbaw ko sa dagan sa kalamboan sa Reiser4. Dili ako "magmaneho sa mga kabayo" - dili kini ang husto nga lugar. Dinhi, "kung hilom ka nga magmaneho, magpadayon ka!" Ang moderno nga sistema sa file mao ang pinakakomplikado nga kernel subsystem, ang sayop nga mga desisyon sa disenyo nga mahimong maka-undo sa mosunod nga mga tuig sa trabaho sa tawo.

Pinaagi sa pagtanyag sa mga boluntaryo aron ipatuman ang usa ka butang, kanunay kong gigarantiyahan nga ang mga paningkamot siguradong modala sa husto nga sangputanan, nga mahimo’g gipangayo alang sa seryoso nga mga panginahanglanon. Sama sa imong nasabtan, dili mahimo nga daghang ingon nga mga garantiya sa usa ka higayon. Sa samang higayon, dili ko makabarog sa "mga numero" nga walay kaulaw nga nagpasiugda sa "mga bahin" sa klaro nga dili magamit nga software, naglimbong sa gatusan ka mga tiggamit ug mga developers, ug sa samang higayon naglingkod ug nagpahiyom sa kernel summits.

Aduna bay kompanya nga nagpahayag nga andam nga suportahan ang pag-uswag sa Reiser4?

Oo, adunay ingon nga mga sugyot, lakip. ug gikan sa usa ka mayor nga vendor. Apan tungod niini kinahanglan kong mobalhin sa laing nasod. Ikasubo, dili na ako 30 anyos, dili ako makabiya ug mobiya nga ingon niana sa una nga whistle.

Unsa nga mga bahin ang nawala karon gikan sa Reiser4?

Walay "resize" function alang sa yano nga mga volume, susama sa makita sa ReiserFS(v3). Dugang pa, ang mga operasyon sa file nga adunay bandila nga DIRECT_IO dili makadaot. Sunod, gusto nako nga ma-segregate ang usa ka volume sa "semantic subvolumes", nga wala’y piho nga gidak-on, ug mahimo’g i-mount ingon independente nga mga volume. Kini nga mga problema maayo alang sa mga nagsugod nga gusto nga sulayan ang ilang kamot sa "tinuod nga butang."

Ug sa katapusan, gusto nako nga adunay mga lohikal nga volume sa network nga adunay yano nga pagpatuman ug pagdumala (gitugotan na kini sa mga modernong algorithm). Apan kung unsa ang siguradong dili makuha sa Reiser4 mao ang RAID-Z, scrub, libre nga mga cache sa wanang, 128-bit nga mga variable ug uban pang kabuangan sa pagpamaligya nga mitungha batok sa backdrop sa kakulang sa mga ideya sa mga nag-develop sa pipila nga mga sistema sa file.

Mahimo bang ipatuman sa mga plugin ang tanan nga gikinahanglan?

Kung nagsulti lamang kami sa mga termino sa mga interface ug mga plugins (modules) nga nagpatuman niini, nan dili tanan. Apan kung gipaila usab nimo ang mga relasyon sa kini nga mga interface, nan, taliwala sa ubang mga butang, makabaton ka mga konsepto sa mas taas nga polymorphism, nga mahimo nimong makuha. Hunahunaa nga hypothetically imong gi-froze ang usa ka object-oriented runtime system, giusab ang bili sa instruction pointer aron itudlo ang laing plugin nga nag-implementar sa samang X interface, ug dayon i-unfroze ang sistema aron kini magpadayon sa pagpatuman.

Kung ang end user wala makamatikod sa ingon nga "pagpuli," nan kami moingon nga ang sistema adunay zero-order polymorphism sa X interface (o ang sistema heterogeneous sa X interface, nga mao ra ang butang). Kung karon dili ka lamang adunay usa ka hugpong sa mga interface, apan adunay mga relasyon usab sa kanila (interface graph), nan mahimo nimong ipaila ang mga polymorphism sa mas taas nga mga order, nga magpaila sa heterogeneity sa sistema nga naa sa "kasilinganan" sa bisan unsang interface. Gipaila nako ang ingon nga klasipikasyon sa dugay na nga panahon, apan, sa kasubo, wala kini mahitabo.

Mao nga, sa tabang sa mga plugins ug ingon nga mas taas nga polymorphism, mahimo nimong ihulagway ang bisan unsang nahibal-an nga bahin, ingon man ang "pagtagna" sa mga wala pa nahisgutan. Wala pa nako mapamatud-an nga estrikto kini, apan wala usab ako nahibal-an nga usa ka kontra nga pananglitan. Sa kinatibuk-an, kini nga pangutana nagpahinumdom kanako sa "Erlangen Program" ni Felix Klein. Sa usa ka higayon misulay siya sa pagrepresentar sa tanang geometry isip usa ka sanga sa algebra (partikular, grupo nga teorya).

Karon sa panguna nga pangutana - kung giunsa ang pag-uswag sa Reiser4 sa panguna nga kinauyokan? Aduna bay bisan unsang publikasyon sa arkitektura sa kini nga sistema sa file nga imong gihisgutan sa miaging interbyu? Unsa ka mahinungdanon kini nga pangutana gikan sa imong panglantaw?

Sa kinatibuk-an, kami nangayo nga ilakip sa panguna nga sanga sa tulo ka tuig. Ang kataposang komento ni Reiser sa public thread diin gihimo ang pull request wala matubag. Busa ang tanang dugang nga mga pangutana dili para kanato. Ako personal nga wala makasabut ngano nga kita kinahanglan nga "paghiusa" ngadto sa usa ka piho nga operating system. Sa Linux, ang kahayag wala magtapok sama sa usa ka wedge. Busa, adunay usa ka bulag nga repository diin adunay daghang mga branch-port alang sa lainlaing mga OS. Bisan kinsa nga nanginahanglan niini mahimo’g i-clone ang katugbang nga pantalan ug buhaton kung unsa ang gusto nimo niini (sa sulod sa lisensya, siyempre). Aw, kung ang usa ka tawo wala magkinahanglan niini, nan kini dili akong problema. Niini nga punto, gisugyot nako nga ikonsiderar ang pangutana sa "pag-promosyon sa panguna nga kernel sa Linux" ingon nga nahusay.

Ang mga publikasyon sa arkitektura sa FS adunay kalabotan, apan hangtod karon nakit-an ra nako ang oras alang sa akong bag-ong mga resulta, nga giisip nako nga mas taas nga prayoridad. Ang laing butang mao nga ako usa ka mathematician, ug sa matematika ang bisan unsang publikasyon usa ka summary sa mga teorema ug ang ilang mga pruweba. Ang pagmantala sa bisan unsang butang didto nga walay ebidensya usa ka timaan sa dili maayo nga lami. Kung hingpit nakong pamatud-an o ipanghimakak ang bisan unsang pahayag bahin sa arkitektura sa FS, nan ang resulta mao ang mga tambak nga lisud nga maagian. Kinsa ang nagkinahanglan niini? Kini tingali ang hinungdan ngano nga ang tanan nagpadayon sa pagpabilin sa iyang daan nga porma - ang gigikanan nga code ug mga komento niini.

Unsa ang bag-o sa Reiser4 sa miaging pipila ka tuig?

Ang dugay nang gipaabot nga kalig-on sa kataposan natuman. Usa sa katapusang nagpakita mao ang usa ka bug nga mitultol sa "dili matanggal" nga mga direktoryo. Ang kalisud mao nga kini nagpakita lamang batok sa background sa name hash collisions ug sa usa ka piho nga lokasyon sa mga rekord sa direktoryo sa usa ka tree node. Bisan pa, dili gihapon nako irekomenda ang Reiser4 alang sa produksiyon: alang niini kinahanglan nimo nga buhaton ang pipila ka trabaho nga adunay aktibo nga pakig-uban sa mga tagdumala sa sistema sa produksiyon.

Sa katapusan nakahimo kami sa pagpatuman sa among dugay na nga ideya - lain-laing mga modelo sa transaksyon. Kaniadto, ang Reiser4 nagpadagan lamang sa usa ka hardcoded nga modelo sa Macdonald-Reiser. Naghimo kini og mga problema sa disenyo. Sa partikular, ang mga snapshot dili mahimo sa ingon nga transactional nga modelo - kini madaot sa usa ka atomic nga sangkap nga gitawag nga "OVERWRITE SET". Ang Reiser4 karon nagsuporta sa tulo ka mga modelo sa transaksyon. Sa usa niini (Write-Anywhere), ang atomic component nga OVERWRITE SET naglakip lamang sa mga pahina sa sistema (mga hulagway sa mga bitmap sa disk, ug uban pa), nga dili "makuhaan og litrato" (ang problema sa manok ug itlog).

Busa ang mga hulagway mahimo nang matuman sa pinakamaayong paagi. Sa lain nga modelo sa transaksyon, ang tanan nga gibag-o nga mga panid moadto lamang sa OVERWRITE SET (nga mao, kini usa ka lunsay nga journaling). Kini nga modelo alang sa mga nagreklamo bahin sa paspas nga pagkabahinbahin sa mga partisyon sa Reiser4. Karon sa kini nga modelo ang imong partisyon mabahin nga dili mas paspas kaysa sa ReiserFS (v3). Ang tanan nga tulo nga naglungtad nga mga modelo, nga adunay pipila nga mga reserbasyon, naggarantiya sa atomicity sa mga operasyon, apan ang mga modelo nga adunay pagkawala sa atomicity ug pagpreserbar lamang sa integridad sa seksyon mahimo usab nga mapuslanon. Ang ingon nga mga modelo mahimong mapuslanon alang sa tanan nga mga matang sa aplikasyon (mga database, ug uban pa), nga nakakuha na sa pipila niini nga mga gimbuhaton. Sayon ra kaayo nga idugang kini nga mga modelo sa Reiser4, apan wala nako kini buhata, tungod kay wala’y nangutana kanako, ug ako mismo wala magkinahanglan niini.

Ang mga metadata checksum nagpakita ug bag-o lang akong gidugangan kini og "ekonomikanhon" nga mga salamin" (dili pa lig-on nga materyal). Kung mapakyas ang checksum sa bisan unsang block, basahon dayon sa Reiser4 ang katugbang nga block gikan sa replica device. Timan-i nga ang ZFS ug Btrfs dili makahimo niini: ang disenyo wala magtugot niini. Didto kinahanglan ka magpadagan sa usa ka espesyal nga proseso sa pag-scan sa background nga gitawag nga "scrub" ug maghulat nga kini makaabut sa problema nga bloke. Ang mga programmer mahulagwayong nagtawag sa maong mga panghitabo nga “mga crutches.”

Ug sa katapusan, ang heterogeneous logical volumes nagpakita, nga nagtanyag sa tanan nga ZFS, Btrfs, block layer, ingon man ang FS + LVM nga mga kombinasyon sa prinsipyo dili makahatag - parallel scaling, O(1) disk address allocator, transparent data migration tali sa subvolumes. Ang ulahi adunay usab usa ka user interface. Karon dali nimo mabalhin ang pinakainit nga datos sa pinakataas nga performance drive sa imong volume.

Dugang pa, posible nga dinalian nga i-flush ang bisan unsang hugaw nga mga panid sa ingon nga drive, sa ingon labi ka paspas nga pagpadali sa mga aplikasyon nga kanunay nagtawag sa fsync (2). Namatikdan nako nga ang pag-andar sa block layer, nga gitawag nga bcache, wala gyud maghatag ingon nga kagawasan sa paglihok. Ang bag-ong lohikal nga mga volume gibase sa akong mga algorithm (adunay katugbang nga mga patente). Ang software lig-on na, posible nga sulayan kini, sukdon ang pasundayag, ug uban pa. Ang bugtong kahasol mao nga sa pagkakaron kinahanglan nimo nga mano-mano nga i-update ang pagsumpo sa volume ug ibutang kini sa usa ka dapit.

Sa pagkakaron nakahimo na ko sa pagpatuman sa akong mga ideya sa porsyento nga 10. Apan, milampos ko sa akong giisip nga labing lisud nga butang - ang pagkonektar sa lohikal nga mga volume gamit ang flash procedure nga nagpahigayon sa tanang mga deferred action sa reiser4. Kining tanan anaa pa sa eksperimento nga "format41" nga sanga.

Ang Reiser4 ba nakapasa sa xfstests?

Labing menos kini alang kanako sa dihang akong giandam ang kataposang pagpagawas.

Posible ba sa prinsipyo ang paghimo sa Reiser4 nga usa ka network (cluster) FS gamit ang mga plugins?

Posible kini, ug kinahanglan pa! Kung maghimo ka usa ka network file base sa usa ka husto nga pagkadisenyo nga lokal nga sistema sa file, ang sangputanan makapahingangha kaayo! Sa modernong network FSs, wala ko matagbaw sa presensya sa backend storage level, nga gipatuman gamit ang bisan unsang lokal nga FS. Ang paglungtad niini nga lebel hingpit nga dili makatarunganon. Ang network FS kinahanglang direktang makig-interact sa block layer, ug dili mangutana sa lokal nga FS sa paghimo ug bisan unsang ubang service files!

Sa kinatibuk-an, ang pagbahin sa mga file system sa lokal ug network gikan sa daotan. Kini mitumaw gikan sa pagkadili hingpit sa mga algorithm nga gigamit katloan ka tuig na ang milabay, ug sa dapit nga wala pa gisugyot. Kini usab ang hinungdan sa pagpakita sa usa ka masa sa wala kinahanglana nga mga sangkap sa software (lainlain nga mga serbisyo, ug uban pa). Sa usa ka maayo nga paagi, kinahanglan adunay usa lamang ka FS sa porma sa usa ka kernel module ug usa ka set sa mga gamit sa gumagamit nga gi-install sa matag makina - usa ka cluster node. Kini nga FS kay lokal ug network. Ug wala na!

Kung wala’y mahimo sa Reiser4 sa Linux, gusto nako nga magtanyag usa ka FS para sa FreeBSD (kinutlo gikan sa miaging interbyu: "...FreeBSD... adunay mga ugat sa akademya... Ug kini nagpasabut nga adunay taas nga lebel sa posibilidad nga kita makakaplag sa usa ka komon nga pinulongan uban sa mga developers") ?

Mao nga, sa bag-o lang namon nahibal-an, ang tanan nahimo na nga hingpit sa Linux: adunay usa ka separado nga nagtrabaho nga Reiser4 nga pantalan alang niini sa porma sa usa ka master branch sa among repository. Wala ko kalimot bahin sa FreeBSD! Pagtanyag! Andam ako nga makigtambayayong pag-ayo sa mga nakahibalo sa sulod sa FreeBSD. Pinaagi sa dalan: ang gusto nako sa ilang komunidad mao nga ang mga desisyon didto gihimo sa usa ka bag-ong konseho sa mga independente nga eksperto, nga wala’y kalabotan sa paglimbong sa gobyerno sa usa ka permanente nga tawo.

Giunsa nimo pag-rate ang komunidad sa tiggamit sa Linux karon? Kini ba nahimong mas "pop"?

Tungod sa kinaiya sa akong trabaho, medyo lisud alang kanako ang pagtimbang-timbang niini. Kasagaran ang mga tiggamit moanhi kanako nga adunay mga ulat sa bug ug mga hangyo nga ayohon ang seksyon. Mga tiggamit isip tiggamit. Ang uban mas batid, ang uban dili kaayo. Parehas ang pagtratar sa tanan. Aw, kung ang tiggamit dili magtagad sa akong mga panudlo, unya pasayloa ako: ang dili pagbaliwala nga order ipasulod usab sa akong bahin.

Posible ba nga matagna ang pag-uswag sa mga sistema sa file sa sunod nga lima hangtod napulo ka tuig? Unsa sa imong hunahuna ang nag-unang mga hagit nga mahimong atubangon sa mga developer sa FS?

Oo, dili lisud ang paghimo sa ingon nga panagna. Wala’y pag-uswag sa mga sistema sa file sa taas nga panahon sa dugay nga panahon. Ang dagway lamang sa ingon ang gibuhat. Ang mga nag-develop sa mga lokal nga sistema sa file adunay mga problema nga may kalabotan sa dili maayo nga disenyo. Ang usa ka caveat kinahanglan nga buhaton dinhi. Wala nako isipa ang gitawag nga "storage", "licking" ug porting of code nga development ug development. Ug wala nako giklasipikar ang dili pagsinabtanay nga gitawag og "Btrfs" isip usa ka kalamboan sa mga rason nga ako nang gipasabot.

Ang matag patch nagpasamot lang sa mga problema niini. Aw. ug kanunay adunay lain-laing mga matang sa "ebanghelista" nga alang kanila "ang tanan molihok." Sa panguna, kini mga bata sa eskuylahan ug mga estudyante nga naglaktaw sa mga lektyur. Hunahunaa lang: kini nagtrabaho alang kaniya, apan ang propesor wala. Pagkadakong adrenaline rush kini! Gikan sa akong panan-aw, ang labing dako nga kadaot gipahinabo sa "mga artesano" nga nagdali sa madasigon nga "pag-screw" sa matahum nga mga bahin sa Btrfs sa tanan nga mga lahi sa mga layer sama sa systemd, docker, ug uban pa. - kini susama na sa metastases.

Atong sulayan karon ang paghimo og forecast sulod sa lima ngadto sa napulo ka tuig. Gilista na nako sa makadiyot kung unsa ang atong buhaton sa Reiser4. Ang nag-unang hagit alang sa mga lokal nga developer sa FS gikan sa upstream mao ang (oo, nahimo na kini) ang kawalay katakus sa pagbuhat sa usa ka desente nga trabaho alang sa usa ka suweldo. Kung wala’y bisan unsang ideya sa natad sa pagtipig sa datos, magpadayon sila sa pagsulay sa pag-patch niining mga alaot nga VFS, XFS ug ext4. Ang kahimtang sa VFS labi ka kataw-anan batok sa kini nga background, nga nagpahinumdum sa kagubot nga modernisasyon sa usa ka restawran diin wala’y mga chef, ug wala’y mga chef nga gipaabut.

Karon ang VFS code, nga wala’y bisan unsang mga kondisyon, nag-lock sa daghang mga panid sa panumduman sa parehas nga oras ug giimbitahan ang nagpahiping FS nga molihok niini. Gipaila kini aron mapauswag ang pasundayag sa Ext4 sa mga operasyon sa pagtangtang, apan ingon dali sabton, ang ingon nga dungan nga pag-lock hingpit nga dili tugma sa mga advanced nga modelo sa transaksyon. Kana mao, dili ka makadugang sa suporta alang sa pipila ka mga smart file system sa kernel. Wala ko mahibal-an kung unsa ang kahimtang sa ubang mga lugar sa Linux, apan kung bahin sa mga sistema sa file, ang bisan unsang pag-uswag dinhi dili mahimo nga mahiuyon sa palisiya nga gisunod sa Torvalds sa praktis (ang mga proyekto sa akademiko gipapahawa, ug mga scammers nga walay ideya kung unsa ang usa ka B-tree , walay katapusan nga mga kredito sa pagsalig ang gihatag). Busa, usa ka kurso ang gitakda alang sa hinay nga pagkadunot. Siyempre, sila maningkamot sa tibuok nilang kusog nga ipasa kini ingong “kauswagan.”

Dugang pa, ang mga "custodian" sa mga sistema sa file, nga nakaamgo nga dili ka makakuha og dako gikan sa "storage" nga nag-inusara, mosulay sa ilang kamot sa usa ka mas mapuslanon nga negosyo. Kini, ingon nga usa ka lagda, gipang-apod-apod nga mga sistema sa file ug virtualization. Tingali ilang i-port ang uso nga ZFS sa ubang lugar kung diin wala pa kini. Apan kini, sama sa tanan nga FS gikan sa upstream, susama sa usa ka punoan sa Bag-ong Tuig: kung mahimo nimong ibitay ang ubang gagmay nga mga butang sa ibabaw, nan dili ka na mahimong mas lawom. Giangkon nako nga posible nga magtukod usa ka seryoso nga sistema sa negosyo nga gibase sa ZFS, apan tungod kay naghisgot kami karon sa umaabot, mahimo ra nako nga ipahayag nga ang ZFS wala’y paglaum bahin niini: sa ilang mga virtual nga aparato, giputol sa mga lalaki ang oxygen. alang sa ilang kaugalingon ug sa umaabot nga mga henerasyon para sa dugang kalamboan. Ang ZFS usa ka butang sa nangagi. Ug ang ext4 ug XFS dili bisan sa miaging adlaw.

Angayan nga hisgutan nga gilain bahin sa makahahadlok nga konsepto sa "Linux file system sa sunod nga henerasyon". Kini usa ka hingpit nga proyekto sa politika ug pagpamaligya nga gihimo alang sa oportunidad, ingnon ta, aron "i-pin ang kaugmaon sa mga sistema sa file" sa Linux luyo sa piho nga mga karakter. Ang tinuod mao nga ang Linux kaniadto "para lang sa kalingawan". Apan karon kini sa panguna usa ka makina sa paghimog salapi. Gihimo sila sa tanan nga posible. Pananglitan, lisud kaayo ang paghimo sa usa ka maayo nga produkto sa software, apan ang mga maalamon nga "mga developer" dugay nang nakaamgo nga dili na kinahanglan nga mag-straight: mahimo nimo nga malampuson nga ibaligya ang wala nga software nga gipahibalo ug gipasiugda sa tanan nga matang sa publiko. mga panghitabo - ang panguna nga butang mao nga ang mga slide sa presentasyon kinahanglan adunay daghang "mga bahin".

Ang mga sistema sa file perpekto alang niini, tungod kay mahimo ka nga luwas nga makig-bargain sulod sa napulo ka tuig sa resulta. Aw, kung ang usa ka tawo sa ulahi nagreklamo bahin sa kakulang sa kini nga sangputanan, nan wala gyud siya makasabut bisan unsa bahin sa mga file system! Kini nagpahinumdom sa usa ka pinansyal nga piramide: sa ibabaw mao ang mga adventurer nga nagsugod niini nga kagubot, ug kadtong pipila nga "swerte": sila "nag-withdraw sa mga dividend," i.e. nakadawat og kwarta alang sa kalamboan, nakakuha og maayong suweldo nga trabaho isip mga manedyer, "nagpakita" sa mga komperensya, ug uban pa.

Sunod moabut kadtong mga "walay swerte": mag-ihap sila sa mga pagkawala, atubangon ang mga sangputanan sa pag-deploy sa usa ka dili magamit nga produkto sa software sa produksiyon, "ug uban pa. Daghan pa sila. Aw, sa base sa piramide adunay usa ka dako nga masa sa mga developers nga "nagsawo" nga walay pulos nga code. Sila ang labing dako nga pildi, tungod kay ang nausik nga oras dili na mabalik. Ang ingon nga mga piramide labi ka mapuslanon sa Torvalds ug sa iyang mga kauban. Ug ang daghan niini nga mga piramide, mas maayo alang kanila. Aron mapakaon ang ingon nga mga piramide, ang bisan unsang butang mahimong makuha sa kinauyokan. Siyempre, sa publiko sukwahi ang ilang gisulti. Apan dili ako mohukom pinaagi sa pulong kondili pinaagi sa mga buhat.

Mao nga, "ang kaugmaon sa mga sistema sa file sa Linux" usa pa nga gipauswag, apan halos dili magamit nga software. Pagkahuman sa Btrfs, nga adunay taas nga posibilidad, ang lugar sa ingon nga "kaugmaon" kuhaon sa Bcachefs, nga usa pa nga pagsulay sa pagtabok sa layer sa block sa Linux nga adunay file system (usa ka dili maayo nga panig-ingnan ang makatakod). Ug unsa ang kasagaran: adunay parehas nga mga problema sama sa Btrfs. Gisuspetsahan ko kini sa dugay nga panahon, ug unya sa usa ka paagi dili ako makasukol ug gitan-aw ang code - kini tinuod!

Ang mga tagsulat sa Bcachefs ug Btrfs, sa paghimo sa ilang FS, aktibo nga gigamit ang mga gigikanan sa ubang mga tawo, gamay ra ang nasabtan bahin kanila. Ang sitwasyon makapahinumdom kaayo sa dula sa mga bata nga “broken phone.” Ug halos mahanduraw nako kung giunsa kini nga code maapil sa kernel. Sa pagkatinuod, walay usa nga makakita sa mga "rake" (ang tanan motunob kanila sa ulahi). Pagkahuman sa daghang mga pagduhaduha bahin sa istilo sa code, mga akusasyon sa wala’y mga paglapas, ug uban pa, usa ka konklusyon ang himuon bahin sa "pagkamaunongon" sa tagsulat, kung unsa ka maayo ang iyang "interaksyon" sa ubang mga developer, ug kung unsa ka malampuson ang tanan niini. unya ibaligya sa mga korporasyon.

Ang katapusan nga resulta dili makapainteres ni bisan kinsa. Kaluhaan ka tuig ang milabay, tingali, interesado ako, apan karon lahi na ang mga pangutana: posible ba nga ipasiugda kini aron adunay pipila ka mga tawo nga magamit sa sunod nga napulo ka tuig. Ug, alaot, dili naandan nga maghunahuna bahin sa katapusan nga sangputanan.

Sa kinatibuk-an, kusganon kong itambag batok sa pagsugod pag-usab sa imong file system gikan sa wala. Tungod kay bisan ang hinungdanon nga pagpamuhunan sa pinansyal dili igo aron makakuha usa ka butang nga kompetisyon sa napulo ka tuig. Siyempre, naghisgot ako mahitungod sa seryoso nga mga proyekto, ug dili mahitungod sa mga gituyo nga "iduso" ngadto sa kernel. Busa, ang usa ka mas epektibo nga paagi sa pagpahayag sa imong kaugalingon mao ang pag-apil sa tinuod nga mga kalamboan, sama kanamo. Kini, siyempre, dili sayon ​​​​buhaton - apan kini ang kaso sa bisan unsang taas nga lebel nga proyekto.

Una, kinahanglan nimo nga independente nga mabuntog ang problema nga akong itanyag. Pagkahuman, kombinsido sa kaseryoso sa imong mga katuyoan, magsugod ako sa pagtabang. Sa naandan, gigamit lang namo ang among kaugalingong mga kalamboan. Ang mga eksepsiyon mao ang compression algorithm ug pipila ka hash functions. Dili kami magpadala sa mga developers sa pagbiyahe ngadto sa mga komperensya, ug unya dili kami molingkod ug maghiusa sa mga ideya sa ubang mga tawo ("tingali unsa ang mahitabo"), ingon sa naandan sa kadaghanan sa mga startup.

Gipalambo namon ang tanan nga mga algorithm sa among kaugalingon. Interesado ako karon sa algebraic ug combinatorial nga mga aspeto sa data storage science. Sa partikular, may kinutuban nga mga natad, asymptotics, pamatuod sa dili managsama. Adunay usab trabaho alang sa ordinaryong mga programmer, apan kinahanglan ko nga pasidan-an ka dayon: ang tanan nga mga sugyot sa "pagtan-aw sa lain nga FS ug buhaton ang parehas" wala panumbalinga. Ang mga patch nga gitumong sa mas duol nga panagsama sa Linux pinaagi sa VFS moadto usab didto.

Busa, wala kami usa ka rake, apan kami adunay pagsabut kung diin kami kinahanglan nga mobalhin, ug kami adunay pagsalig nga kini nga direksyon mao ang husto. Kini nga pagsabut wala moabut sa porma sa mana gikan sa langit. Tugoti ako nga pahinumdoman ka nga kami adunay 29 ka tuig nga kasinatian sa pag-uswag sa luyo namo, duha ka mga sistema sa file nga gisulat gikan sa wala. Ug ang sama nga gidaghanon sa data recovery utilities. Ug kini daghan!

Source: opennet.ru

Idugang sa usa ka comment