Kev xam phaj thib ob nrog Eduard Shishkin, tus tsim tawm ntawm Reiser4 FS

Qhov kev xam phaj thib ob nrog Eduard Shishkin, tus tsim tawm ntawm Reiser4 cov ntaub ntawv kaw lus, tau luam tawm.

Txhawm rau pib, thov nco ntsoov nyeem qhov twg thiab koj ua haujlwm rau leej twg.

Kuv ua hauj lwm ua tus Thawj Tswj Kev Ruaj Ntseg ntawm Huawei Technologies, German Research Center. Hauv chav haujlwm virtualization kuv cuam tshuam nrog ntau yam ntawm cov ntaub ntawv khaws cia. Kuv cov dej num tsis cuam tshuam nrog ib qho kev ua haujlwm tshwj xeeb.

Tam sim no koj puas tau cog lus rau lub ntsiab kernel?

Tsis tshua muaj heev, thiab tsuas yog yog tias kuv qhov chaw ua haujlwm xav tau. Lub sijhawm kawg yog kwv yees li peb xyoos dhau los, kuv tau xa thaj ua rau thaj ua rau muaj kev sib koom ua ke ntawm cov tswv siv 9p raws tu qauv (lwm lub npe rau kev lag luam no yog VirtFS). Ib daim ntawv tseem ceeb yuav tsum tau ua ntawm no: txawm hais tias kuv tau ua haujlwm nrog Linux tau ntev, kuv tsis tau ua tus kiv cua ntawm nws, uas yog, kuv "ua pa sib npaug," ib yam li txhua yam. Tshwj xeeb, yog tias kuv pom qhov tsis txaus, kuv tuaj yeem taw qhia nws ib zaug. Thiab yog li ntawd koj tuaj yeem ua raws li ib tug neeg thiab yaum lawv - qhov no yuav tsis tshwm sim.

Kuv nco qab lub sij hawm dhau los, kaum xyoo dhau los, koj tau tseem ceeb heev ntawm kev txhim kho kernel style. Los ntawm koj (lossis tej zaum koom nrog) qhov kev xav, muaj dab tsi hloov pauv, puas yog lub zej zog tau teb ntau dua lossis tsis? Yog tsis yog, koj xav tias leej twg yuav liam?

Kuv yeej tsis pom muaj kev hloov pauv rau qhov zoo dua. Qhov teeb meem tseem ceeb ntawm lub zej zog yog kev hloov ntawm kev tshawb fawb nrog kev nom kev tswv technologies, kev sib raug zoo ntawm tus kheej, feem ntau xav, populism, cov lus qhia los ntawm "sab hauv lub suab," rotten compromises, txhua yam tsuas yog science. Kev tshawb fawb hauv computer, xijpeem ib tug yuav hais, yog thawj thiab foremost ib tug tseeb science. Thiab yog hais tias ib tug neeg pib tshaj tawm lawv tus kheej tus nqi rau 2x2, txawv ntawm 4, nyob rau hauv "Linux txoj kev" chij, los yog nyob rau hauv ib co lwm yam chij, ces qhov no tsis zoo li yuav coj lwm yam uas tsis yog kev puas tsuaj.

Txhua qhov teeb meem feem ntau yog vim qhov tsis muaj peev xwm thiab tsis muaj kev kawm ntawm cov neeg txiav txim siab. Yog tias tus thawj tswj hwm tsis muaj peev xwm, nws tsis tuaj yeem ua lub hom phiaj, kev txiav txim siab txaus. Yog hais tias nws kuj yog uncultured, nws tsis muaj peev xwm nrhiav tau ib tug kws tshaj lij uas yuav muab tswv yim rau nws. Nrog rau qhov tshwm sim siab, qhov kev xaiv yuav poob rau tus kws dag ntxias uas hais tias "zoo li qhov tseeb." Ib puag ncig tsis ncaj ncees ib txwm txhim kho nyob ib puag ncig cov thawj coj tsis muaj peev xwm. Ntxiv mus, keeb kwm paub tsis muaj kev zam rau qhov no, thiab lub zej zog yog qhov tseeb tshaj plaws ntawm qhov no.

Koj ntsuas qhov kev nce qib hauv Btrfs li cas? Qhov no puas tau FS tshem tawm cov kab mob thaum yau? Yuav ua li cas koj tso nws rau koj tus kheej - raws li FS "rau tsev" lossis rau kev lag luam siv ib yam nkaus?

Kuv tsis tau tshem ntawm nws. Txhua yam uas kuv tau hais 11 xyoo dhau los tseem muaj feem cuam tshuam rau niaj hnub no. Ib qho teeb meem nrog Btrfs uas ua rau nws tsis haum rau kev xav tau loj yog qhov teeb meem ntawm qhov chaw dawb. Kuv tseem tsis tau tham txog qhov tseeb tias tus neeg siv tau thov kom khiav mus rau lub khw rau lub disk tshiab nyob rau hauv cov xwm txheej uas lwm yam FS yuav qhia ntau qhov chaw dawb ntawm qhov muab faib. Qhov tsis muaj peev xwm ua kom tiav qhov kev ua haujlwm ntawm qhov ntim ntawm qhov laj thawj vim tsis muaj qhov chaw dawb kuj tsis yog qhov phem tshaj plaws. Qhov phem tshaj plaws yog tias tus neeg siv tsis tau muaj peev xwm yuav luag txhua lub sijhawm, hla ib qho disk quotas, deprive txhua tus ntawm qhov chaw dawb hauv lub sijhawm luv luv.

Nws zoo li qhov no (kuaj rau Linux ntsiav 5.12). Ib tsab ntawv tau tso tawm rau ntawm qhov kev teeb tsa tshiab tshiab, uas nyob rau hauv lub voj tsim cov ntaub ntawv nrog qee lub npe hauv cov npe hauv tsev, sau cov ntaub ntawv rau lawv ntawm qee qhov offsets, thiab tom qab ntawd tshem tawm cov ntaub ntawv no. Tom qab ib feeb ntawm kev khiav cov ntawv no, tsis muaj dab tsi txawv txav. Tom qab tsib feeb, feem ntawm qhov chaw nyob ntawm qhov muab faib nce me ntsis. Tom qab ob mus rau peb teev nws nce mus txog 50% (nrog tus nqi pib ntawm 15%). Thiab tom qab tsib lossis rau teev ntawm kev ua haujlwm, tsab ntawv poob nrog qhov yuam kev "tsis muaj qhov chaw dawb ntawm qhov muab faib." Tom qab no, koj tsis tuaj yeem sau txawm tias 4K cov ntaub ntawv rau koj qhov kev faib tawm.

Ib qho xwm txheej nthuav tshwm sim: koj tsis tau sau dab tsi rau qhov muab faib, thiab tag nrho qhov chaw dawb (txog 85%) ploj mus. Kev tshuaj xyuas ntawm ntu uas raug rau qhov kev tawm tsam no yuav nthuav tawm ntau cov ntoo ntawm cov ntoo uas tsuas muaj ib yam khoom (ib qho khoom nruab nrog tus yuam sij), ntau bytes loj. Ntawd yog, cov ntsiab lus uas yav dhau los nyob 15% ntawm qhov chaw disk tau muab sib npaug "smeared" rau tag nrho cov muab faib kom tsis muaj qhov twg los sau cov ntaub ntawv tshiab, vim tias nws qhov tseem ceeb yog qhov loj dua tag nrho cov uas twb muaj lawm, thiab cov dawb. blocks ntawm qhov muab faib tau khiav tawm.

Ntxiv mus, txhua yam no tau tshwm sim nyob rau hauv Btrfs configuration (tsis muaj snapshots, subvolumes, thiab lwm yam), thiab nws tsis muaj teeb meem li cas koj txiav txim siab khaws cov ntaub ntawv lub cev hauv FS (raws li "fragments" nyob rau hauv ib tsob ntoo, los yog raws li ntau yam. ntawm unformatted blocks) - qhov kawg tshwm sim yuav zoo ib yam.

Koj yuav tsis muaj peev xwm raug lwm cov ntaub ntawv ntws mus rau qhov kev tawm tsam (txawm lawv qhia koj li cas). Kuv tau piav qhia qhov ua rau ntawm qhov teeb meem ntev dhau los: qhov no yog qhov ua tiav ntawm B-ntoo lub tswv yim hauv Btrfs, uas ua rau nws ua tau rau nws tus kheej los yog txhob txwm degenerate. Tshwj xeeb, nyob rau hauv qee qhov kev thauj khoom, koj cov ntaub ntawv kaw lus yuav txuas ntxiv "poob" thaum lub sijhawm ua haujlwm ntawm nws tus kheej, yam tsis muaj kev pab sab nraud. Nws yog qhov tseeb tias txhua yam ntawm "nias" cov txheej txheem keeb kwm yav dhau yuav txuag tau ib hnub nkaus xwb ntawm tus kheej desktops.

Ntawm cov servers sib sau ua ke, tus neeg tawm tsam yuav ib txwm muaj peev xwm "ua ntej" ntawm lawv. Tus thawj tswj hwm yuav tsis tuaj yeem txiav txim siab tias leej twg thab nws. Txoj hauv kev nrawm tshaj plaws los kho qhov teeb meem no hauv Btrfs yog los kho cov qauv ntawm tsob ntoo B-ntoo li niaj zaus, i.e. redesigning lub disk hom thiab rewriting tseem ceeb feem ntawm Btrfs code. Qhov no yuav siv sij hawm 8-10 xyoo, suav nrog kev debugging, yog tias cov neeg tsim khoom nruj me ntsis ua raws li cov lus tseem ceeb ntawm cov algorithms thiab cov qauv ntaub ntawv, thiab tsis ua si "lub xov tooj tawg" kev ua si, raws li kev cai (thiab txhawb) hauv "Linux txoj kev".

Ntawm no peb kuj yuav tsum tau ntxiv lub sijhawm xav tau rau cov neeg tsim khoom kom nkag siab tag nrho cov no. Qhov no yog qhov uas nws nyuaj dua. Txawm li cas los xij, 10 xyoo tsis txaus rau lawv nkag siab. Zoo, txog thaum ntawd koj tsis tuaj yeem cia siab rau qhov txuj ci tseem ceeb. Nws yuav tsis tshwm sim nyob rau hauv daim ntawv ntawm kev xaiv mounting "uas koj thiab kuv tsis paub txog," los yog nyob rau hauv daim ntawv ntawm ib thaj uas yog "tsuas yog ib qho teeb meem ntawm kev lag luam" los npaj. Rau txhua qhov nrawm "kho" Kuv yuav nthuav qhia qhov xwm txheej tshiab ntawm degeneration. B-ntoo yog ib yam uas kuv nyiam tshaj, thiab kuv yuav tsum hais tias cov qauv no tsis zam kev ywj pheej nrog lawv tus kheej!

Kuv yuav muab Btrfs rau kuv tus kheej li cas? Raws li ib yam dab tsi uas tsis tuaj yeem hu ua cov ntaub ntawv kaw lus, cia ib leeg siv. Vim tias, los ntawm kev txhais, FS yog OS subsystem lub luag haujlwm rau kev tswj hwm zoo ntawm "disk chaw" cov peev txheej, uas peb tsis pom nyob rau hauv rooj plaub ntawm Btrfs. Zoo, xav txog tias koj tuaj rau tom khw los yuav ib lub moos kom tsis txhob ua haujlwm lig, thiab tsis yog lub moos lawv muag koj lub tshuab hluav taws xob nrog lub sijhawm ntev tshaj 30 feeb. Yog li, qhov xwm txheej nrog Btrfs tseem phem dua.

Saib los ntawm cov npe xa ntawv, kuv feem ntau tuaj hla cov lus hais tias kev tswj hwm qhov chaw disk tsis muaj feem cuam tshuam vim qhov pheej yig ntawm drives. Qhov no yog qhov tsis muaj tseeb. Yog tias tsis muaj tus tswj hwm qhov chaw disk zoo, OS yuav dhau los ua qhov tsis zoo thiab siv tsis tau. Txawm hais tias muaj peev xwm ntawm cov disks ntawm koj lub tshuab.

Kuv xav thov kev tawm tswv yim txog kev txiav tawm ntawm Btrfs kev txhawb nqa hauv RHEL.

Tsis muaj ib yam dab tsi tshwj xeeb los tawm tswv yim ntawm no, txhua yam yog meej heev. Lawv kuj muaj nws li "kev saib ua ntej thev naus laus zis". Yog li, kuv tsis tau mus dhau qhov "saib ua ntej". Tsis txhob cia daim ntawv no dai mus ib txhis! Tab sis lawv tsis tuaj yeem tso tawm qhov tsis zoo los ntawm kev tsim khoom nrog kev txhawb nqa tag nrho. RHEL yog ib qho kev lag luam, uas yog, kev sib raug zoo ntawm cov khoom-nyiaj. Red Hat tsis tuaj yeem thab cov neeg siv zoo li lawv ua hauv Btrfs mailing list. Cia li xav txog qhov xwm txheej: tus neeg siv khoom uas tau them nws cov nyiaj khwv tau los nyuaj rau disk thiab koj kuj tau txais kev txhawb nqa, xav nkag siab qhov twg nws qhov chaw disk mus tom qab nws tsis sau dab tsi. Koj yuav teb nws li cas rau qhov no?

Ntxiv mus. Red Hat cov neeg siv khoom suav nrog cov tsev txhab nyiaj paub zoo thiab kev sib pauv. Xav txog dab tsi yuav tshwm sim yog tias lawv raug rau DoS kev tawm tsam raws li hais txog qhov tsis zoo hauv Btrfs. Koj xav tias leej twg yog tus lav ris rau qhov no? Rau cov neeg uas tab tom yuav taw tes rau ntawm txoj kab ntawm daim ntawv tso cai GPL, qhov twg nws tau sau tias tus sau tsis muaj lub luag haujlwm rau ib yam dab tsi, kuv yuav tam sim ntawd hais tias: "Ntaus nws tam sim ntawd!" Red Hat yuav teb, thiab zoo li nws yuav tsis txaus! Tab sis kuv paub tias Red Hat tsis ntsib qhov teeb meem no, muab lawv cov pab pawg muaj zog tshwj xeeb ntawm QA engineers uas kuv muaj sijhawm los ua haujlwm ze rau kuv lub sijhawm.

Vim li cas qee lub tuam txhab tseem txhawb nqa Btrfs hauv lawv cov khoom lag luam?

Thov nco ntsoov tias cov lus ua ntej "kev lag luam" hauv cov khoom npe tsis txhais tau ntau. Enterprise yog ib qho kev ntsuas ntawm lub luag hauj lwm embedded nyob rau hauv daim ntawv cog lus kev sib raug zoo nrog tus neeg siv khoom. Kuv paub tsuas yog ib lub lag luam raws li GNU/Linux - RHEL. Txhua yam ntxiv, ntawm kuv qhov kev xav, tsuas yog nthuav tawm raws li kev lag luam, tab sis tsis yog ib qho. Thiab thaum kawg, yog tias muaj kev thov rau ib yam dab tsi, ces yuav muaj ib qho khoom siv (hauv peb rooj plaub, qhov no yog qhov hais txog "kev txhawb nqa"). Muaj kev thov rau txhua yam, incl. thiab software tsis siv. Yuav ua li cas xws li kev thov yog tsim thiab leej twg fuels nws yog lwm lub ntsiab lus.

Yog li, kuv yuav tsis dhia mus rau ib qho kev txiav txim siab tom qab Facebook tau rumored tau xa Btrfs ntawm nws cov servers. Ntxiv mus, kuv xav kom ua tib zoo khaws cov chaw nyob ntawm cov servers zais cia rau cov laj thawj saum toj no.

Vim li cas thiaj tau siv zog ntau heev los ntxuav XFS chaws tsis ntev los no? Tom qab tag nrho, thaum xub thawj qhov no yog qhov thib peb-tog cov ntaub ntawv kaw lus, thiab ext4 tau ruaj khov rau lub sijhawm ntev thiab muaj kev txuas ntxiv los ntawm cov qauv qub sib npaug. Red Hat muaj kev txaus siab dab tsi hauv XFS? Nws puas ua rau muaj kev cuam tshuam los tsim ob lub tshuab ua haujlwm uas zoo sib xws hauv lub hom phiaj - ext4 thiab XFS?

Kuv tsis nco qab dab tsi txhawb qhov no. Nws yog qhov ua tau heev uas qhov pib los ntawm Red Hat cov neeg siv khoom. Kuv nco qab tias kev tshawb fawb ntawm hom no tau ua tiav: ntawm qee cov ntaub ntawv hauv nruab nrab ntawm cov dej ntws, cov khoom loj heev tau tsim nyob rau hauv high-end drives ntawm tiam tshiab. Raws li qhov tshwm sim, XFS coj zoo dua li ext4. Yog li ntawd lawv tau pib txhawb nws ua qhov kev cog lus tshaj plaws. Txawm li cas los xij, kuv yuav tsis nrhiav dab tsi sensational ntawm no.

Rau kuv, nws zoo li lawv tau hloov lub awl nrog xab npum. Tsis muaj teeb meem hauv kev tsim ext4 thiab XFS. Ob leeg nyob rau hauv parallel thiab ib qho ntawm lawv xaiv los ntawm. Tsis muaj dab tsi zoo yuav los ntawm qhov no. Txawm hais tias, nyob rau hauv qhov xwm txheej muaj ntau zaus thaum muaj peev xwm loj hlob, tab sis tsis muaj chaw loj hlob. Hauv qhov no, ntau yam kev loj hlob txawv txawv txawv txawv tshwm sim, uas txhua tus taw tes rau tus ntiv tes ("Auj, saib, yam koj yuav tsis pom hauv lub neej no!").

Koj puas xav tias qhov teeb meem ntawm kev ua txhaum txheej txheej tau daws (hauv qhov tsis zoo) nrog rau qhov tshwm sim ntawm encryption functions hauv ext4, F2FS (tsis hais RAID hauv Btrfs)?

Feem ntau, kev qhia txog txhua qib thiab kev txiav txim siab txog lawv qhov kev tsis ua txhaum cai feem ntau yog ib qho teeb meem ntawm txoj cai, thiab kuv tsis lees paub txog txhua yam ntawm no. Lub hom phiaj ntawm kev ua txhaum txheej txheej tsis txaus siab rau leej twg, tab sis peb tuaj yeem xav txog qee qhov ntawm lawv siv qhov piv txwv ntawm kev ua txhaum cai "los ntawm saum toj no," uas yog, kev siv hauv FS ntawm kev ua haujlwm uas twb muaj nyob rau ntawm txheej thaiv. Xws li "kev ua txhaum cai" yog tsim nyog tsuas yog tsis tshua muaj kev zam. Rau txhua qhov xwm txheej no, koj yuav tsum xub ua pov thawj ob yam: nws yog qhov xav tau tiag tiag, thiab qhov tsim ntawm lub kaw lus yuav tsis raug mob los ntawm kev ua li ntawd.

Piv txwv li, mirroring, uas ib txwm ua ib qho kev ua ub no rau lub thaiv txheej, ua rau kev txiav txim siab los siv ntawm cov ntaub ntawv kaw lus. Vim txawv. Piv txwv li, "tseem ceeb" cov ntaub ntawv kev noj nyiaj txiag (me ntsis rot) tshwm sim ntawm disk drives. Qhov no yog thaum lub cuab yeej ua haujlwm zoo, tab sis cov ntaub ntawv thaiv tau poob nthav raug puas tsuaj nyob rau hauv kev cuam tshuam ntawm ib qho nyuaj gamma quantum emitted los ntawm quasar nyob deb, thiab lwm yam. Qhov phem tshaj plaws yog tias qhov thaiv no dhau los ua FS system thaiv (superblock, bitmap block, cia ntoo ntawm, thiab lwm yam), vim tias qhov no yuav ua rau muaj kev ntxhov siab.

Thov nco ntsoov tias cov iav uas muab los ntawm cov txheej thaiv (hu ua RAID 1) yuav tsis cawm koj ntawm qhov teeb meem no. Zoo, tiag tiag: ib tug neeg yuav tsum xyuas cov checksums thiab nyeem cov replica nyob rau hauv cov ntaub ntawv ntawm tsis ua hauj lwm? Tsis tas li ntawd, nws ua rau kev nkag siab tsis yog txhua yam, tab sis tsuas yog cov metadata xwb. Qee cov ntaub ntawv tseem ceeb (piv txwv li, cov ntaub ntawv siv tau ntawm cov ntawv thov tseem ceeb) tuaj yeem muab khaws cia ua metadata. Nyob rau hauv cov ntaub ntawv no, lawv tau txais tib yam guarantees ntawm kev nyab xeeb. Nws ua rau kev nkag siab zoo rau kev tso siab rau kev tiv thaiv cov ntaub ntawv ntxiv rau lwm cov subsystems (tej zaum txawm tias cov neeg siv kev siv) - peb tau muab tag nrho cov xwm txheej tsim nyog rau qhov no.

Cov iav "kev lag luam" zoo li no muaj cai muaj nyob, thiab lawv tsuas yog tuaj yeem txhim kho tau zoo ntawm cov ntaub ntawv kaw lus. Txwv tsis pub, kev ua txhaum txheej txheej yog cluttering lub subsystem nrog duplicated code rau lub hom phiaj ntawm ib co kev pab cuam microscopic. Ib qho piv txwv zoo ntawm qhov no yog kev siv RAID-5 siv FS. Xws li cov kev daws teeb meem (tus kheej RAID / LVM hauv cov ntaub ntawv kaw lus) tua cov tom kawg hauv cov ntsiab lus architectural. Nws tseem yuav tsum tau muab sau tseg ntawm no tias kev ua txhaum txheej txheej yog "muab rau hauv kwj" los ntawm ntau hom kev lag luam scammers. Thaum tsis muaj ib lub tswv yim, kev ua haujlwm uas tau siv ntev ntev ntawm cov neeg nyob sib ze tau ntxiv rau cov subsystems, qhov no tau nthuav tawm raws li qhov tseem ceeb tshiab thiab muaj txiaj ntsig zoo.

Reiser4 raug liam tias ua txhaum cov theem "los ntawm hauv qab". Raws li qhov tseeb tias cov ntaub ntawv kaw lus tsis yog monolithic, zoo li tag nrho lwm tus, tab sis modular, qhov kev xav tsis txaus ntseeg tau ua kom nws ua li qib siab saum toj no (VFS) yuav tsum ua.

Puas muaj peev xwm tham txog kev tuag ntawm ReiserFS v3.6 thiab, piv txwv li, JFS? Tsis ntev los no lawv tau txais yuav luag tsis muaj kev saib xyuas hauv lub hauv paus. Puas yog lawv obsolete?

Ntawm no peb yuav tsum tau txhais qhov kev tuag ntawm cov khoom siv software txhais tau tias. Ntawm ib sab, lawv tau ua tiav siv (qhov ntawd yog qhov lawv tau tsim rau, tom qab tag nrho), uas txhais tau tias lawv nyob. Ntawm qhov tod tes, kuv tsis tuaj yeem hais lus rau JFS (Kuv tsis paub ntau), tab sis ReiserFS (v3) yog qhov nyuaj heev los hloov mus rau cov qauv tshiab (kuaj hauv kev xyaum). Qhov no txhais tau hais tias yav tom ntej developers yuav xyuam xim tsis mus rau nws, tab sis rau cov uas yooj yim rau hloov. Los ntawm sab no nws hloov tawm hais tias, alas, nws yog tuag nyob rau hauv architectural ntsiab lus. Kuv yuav tsis hloov lub tswvyim ntawm "kev coj ncaj ncees" kiag li. Nws siv tau zoo, piv txwv li, rau lub wardrobe, tab sis tsis yog rau cov khoom siv software. Muaj ib lub tswv yim ntawm inferiority thiab superiority nyob rau hauv ib yam dab tsi. Kuv tuaj yeem hais meej tias ReserFS v3 tam sim no qis dua rau Reiser4 hauv txhua yam, tab sis hauv qee hom kev ua haujlwm nws zoo dua rau tag nrho lwm cov FSs.

Koj puas paub txog kev txhim kho FS Tux3 thiab HAMMER / HAMMER2 (FS rau DragonFly BSD)?

Yog lawm, peb paub. Hauv Tux3 ib zaug kuv xav paub txog cov thev naus laus zis ntawm lawv cov snapshots (lub npe hu ua "version pointers"), tab sis hauv Reiser4 peb feem ntau yuav mus rau txoj kev sib txawv. Kuv twb tau xav txog kev txhawb nqa snapshots ntev heev thiab tseem tsis tau txiav txim siab yuav ua li cas los siv rau qhov yooj yim Reiser4 ntim. Qhov tseeb yog tias cov txheej txheem tshiab "tub nkeeg" siv cov txheej txheem los ntawm Ohad Rodeh tsuas yog ua haujlwm rau B-ntoo. Peb tsis muaj lawv. Rau cov ntaub ntawv cov qauv uas siv nyob rau hauv Reiesr4, "tub nkeeg" txee tsis tau txhais - los qhia lawv, nws yog ib qho tsim nyog los daws qee qhov teeb meem algorithmic, uas tsis muaj leej twg tau ua.

Raws li HAMMER: Kuv nyeem ib tsab xov xwm los ntawm tus tsim. Tsis txaus siab. Ib zaug ntxiv, B-ntoo. Cov qauv ntaub ntawv no yog hopelessly outdated. Peb tau tso tseg nws nyob rau hauv lub xyoo pua xeem.

Koj ntsuas qhov kev thov loj hlob li cas rau pawg FSs xws li CephFS/GlusterFS/etc? Puas yog qhov kev thov no txhais tau tias muaj kev hloov pauv hauv qhov tseem ceeb ntawm cov neeg tsim khoom ntawm FS network thiab tsis txaus siab rau FS hauv zos?

Yog lawm, xws li kev hloov pauv hauv qhov tseem ceeb tau tshwm sim. Txoj kev loj hlob ntawm cov ntaub ntawv hauv zos tau stagnated. Alas, ua qee yam tseem ceeb rau cov ntim hauv zos tam sim no nyuaj heev thiab tsis yog txhua tus tuaj yeem ua tau. Tsis muaj leej twg xav nqis peev rau lawv txoj kev loj hlob. Qhov no yog hais txog tib yam li nug ib lub koom haum ua lag luam los faib nyiaj rau kev tshawb fawb lej - tsis muaj kev txaus siab lawv yuav nug koj seb koj tuaj yeem khwv tau nyiaj li cas ntawm lub theorem tshiab. Tam sim no ib lub zos FS yog ib yam dab tsi zoo li "tawm ntawm lub thawv" thiab "yuav tsum ua haujlwm ib txwm," thiab yog tias nws tsis ua haujlwm, nws ua rau tsis muaj kev yws yws xws li: "Yog, lawv xav li cas!"

Li no qhov tsis muaj kev saib xyuas rau FS hauv zos, txawm hais tias tseem muaj ntau txoj haujlwm hauv cheeb tsam ntawd. Thiab yog, txhua leej txhua tus tau tig mus rau kev faib khoom, uas yog tsim los ntawm cov ntaub ntawv hauv zos uas twb muaj lawm. Nws yog fashionable heev tam sim no. Cov kab lus "Cov Ntaub Ntawv Loj" ua rau adrenaline maj nrawm rau ntau tus, koom nrog kev sib tham, kev cob qhia, nyiaj hli loj, thiab lwm yam.

Yuav ua li cas tsim nyog nws nyob rau hauv lub hauv paus ntsiab lus los siv lub network cov ntaub ntawv system nyob rau hauv kernel chaw es tsis nyob rau hauv cov neeg siv qhov chaw?

Ib txoj hauv kev tsim nyog heev uas tseem tsis tau muab coj los siv nyob qhov twg. Feem ntau, lo lus nug ntawm qhov chaw twg lub network cov ntaub ntawv yuav tsum tau ua yog "ob-edged ntaj." Zoo, cia peb saib ib qho piv txwv. Tus neeg siv tau kaw cov ntaub ntawv ntawm lub tshuab chaw taws teeb. Lawv poob rau hauv nws nplooj ntawv cache hauv daim ntawv ntawm nplooj ntawv qias neeg. Qhov no yog txoj haujlwm rau "thin gateway" network file system nyob rau hauv qhov chaw kernel. Tom qab ntawd lub operating system yuav sai dua los yog tom qab hais kom koj sau cov nplooj ntawv rau disk kom dawb lawv. Tom qab ntawd IO-forwarding (xa) network FS module los ua si. Nws txiav txim siab seb lub tshuab server twg (server node) cov nplooj ntawv no yuav mus rau.

Tom qab ntawd lub network pawg yuav siv sij hawm (thiab, raws li peb paub, nws yog siv nyob rau hauv kernel chaw). Tom ntej no, tus neeg rau zaub mov node tau txais cov pob ntawv nrog cov ntaub ntawv lossis cov metadata thiab qhia cov backend cia module (piv txwv li, FS hauv zos uas ua haujlwm hauv qhov chaw kernel) los sau tag nrho cov khoom no. Yog li, peb tau txo cov lus nug mus rau qhov twg "xa" thiab "tau txais" modules yuav tsum ua haujlwm. Yog tias ib qho ntawm cov modules khiav hauv cov neeg siv qhov chaw, qhov no yuav ua rau muaj kev hloov pauv hauv cov ntsiab lus (vim qhov xav tau siv cov kev pabcuam kernel). Tus naj npawb ntawm cov keyboards no nyob ntawm cov ntsiab lus ntawm kev siv.

Yog tias muaj ntau yam hloov pauv no, tom qab ntawd cov khoom siv cia (I / O kev ua haujlwm) yuav txo qis. Yog tias koj lub backend cia yog ua los ntawm qeeb disks, ces koj yuav tsis pom qhov poob tseem ceeb. Tab sis yog tias koj muaj cov disks ceev (SSD, NVRAM, thiab lwm yam), ces cov ntsiab lus hloov pauv tau dhau los ua "lub caj dab" thiab, los ntawm kev txuag ntawm cov ntsiab lus hloov pauv, kev ua tau zoo tuaj yeem nce ntxiv. Txoj hauv kev uas yuav txuag tau nyiaj yog txav cov modules mus rau hauv qhov chaw kernel. Piv txwv li, peb pom tias txav 9p neeg rau zaub mov los ntawm QEMU mus rau lub ntsiav ntawm lub tshuab ua haujlwm ua rau muaj kev nce peb zaug hauv VirtFS kev ua haujlwm.

Qhov no, ntawm chav kawm, tsis yog lub network FS, tab sis nws qhia tag nrho cov ntsiab lus ntawm txhua yam. Lub downside ntawm no optimization yog teeb meem portability. Rau qee qhov, qhov kawg yuav yog qhov tseem ceeb. Piv txwv li, GlusterFS tsis muaj modules nyob rau hauv lub kernel txhua. Ua tsaug rau qhov no, tam sim no nws ua haujlwm ntawm ntau lub platform, suav nrog NetBSD.

Cov ntsiab lus dab tsi tuaj yeem FSs hauv zos qiv los ntawm lub network thiab rov ua dua?

Niaj hnub no, network FSs, raws li txoj cai, muaj add-ons tshaj FSs hauv zos, yog li kuv tsis nkag siab tias koj tuaj yeem qiv qee yam ntawm yav tom ntej. Zoo, qhov tseeb, cia peb xav txog ib lub tuam txhab ntawm 4 tus neeg ua haujlwm, uas txhua tus ua lawv tus kheej: ib qho khoom xa tuaj, qhov thib peb tau txais, plaub lub khw muag khoom. Thiab cov lus nug, lub tuam txhab tuaj yeem qiv dab tsi los ntawm nws cov neeg ua haujlwm uas khaws nws, suab qee qhov tsis raug (nws twb muaj dab tsi nws tuaj yeem qiv los ntawm nws ntev).

Tab sis FSs hauv zos muaj ntau yam kawm los ntawm cov network. Ua ntej, koj yuav tsum kawm los ntawm lawv yuav ua li cas sau cov ntsiab lus ntawm qhov siab. Tam sim no lub npe "advanced" cov ntaub ntawv hauv zos cov ntaub ntawv sib sau ua ke tshwj xeeb tsuas yog siv "virtual device" thev naus laus zis qiv los ntawm LVM (qhov kev ua txhaum tib yam kis kab mob uas tau ua thawj zaug hauv ZFS). Hauv lwm lo lus, kev txhais lus ntawm qhov chaw nyob virtual (tus lej thaiv) rau hauv cov neeg tiag tiag thiab rov qab tshwm sim nyob rau theem qis (piv txwv li, tom qab cov ntaub ntawv kaw lus tau muab daim ntawv thov I / O).

Thov nco ntsoov tias ntxiv thiab tshem tawm cov khoom siv rau cov khoom siv logic (tsis yog iav) txheej txheem ntawm txheej thaiv ua rau muaj teeb meem uas cov neeg muag khoom ntawm "tus yam ntxwv" zoo li ntsiag to. Kuv tab tom tham txog kev tawg ntawm cov khoom siv tiag tiag, uas tuaj yeem ncav cuag qhov muaj txiaj ntsig zoo, thaum nyob rau ntawm lub tshuab virtual txhua yam zoo. Txawm li cas los xij, ob peb tus neeg txaus siab rau cov khoom siv virtual: txhua tus nyiam qhov tshwm sim ntawm koj cov khoom siv tiag tiag. Tab sis ZFS-zoo li FS (nrog rau ib qho FS ua ke nrog LVM) tsuas yog ua haujlwm nrog cov khoom siv virtual disk (xws li chaw nyob virtual disk los ntawm cov dawb, defragment cov khoom siv virtual, thiab lwm yam). Thiab lawv tsis paub dab tsi tshwm sim ntawm cov khoom siv tiag tiag!

Tam sim no xav txog tias koj muaj pes tsawg fragmentation ntawm lub virtual ntaus ntawv (uas yog, koj tsuas muaj ib tug loj loj npaum li cas nyob rau ntawd), koj ntxiv ib tug disk rau koj cov logical ntim, thiab ces tshem tawm lwm random disk los ntawm koj cov logical ntim thiab ces rebalance. Thiab ntau zaus. Nws tsis nyuaj rau xav txog tias ntawm lub cuab yeej virtual koj tseem yuav muaj tib yam kev nyob, tab sis ntawm cov khoom siv tiag tiag koj yuav tsis pom dab tsi zoo.

Qhov phem tshaj yog tias koj tseem tsis tuaj yeem kho qhov xwm txheej no! Qhov tsuas yog qhov koj tuaj yeem ua ntawm no yog nug cov ntaub ntawv kaw lus kom defragment lub tshuab virtual. Tab sis nws yuav qhia rau koj tias txhua yam yog qhov zoo nyob ntawd - tsuas muaj ib qho xwb, kev tawg paj yog xoom, thiab nws tsis tuaj yeem zoo dua! Yog li, cov ntaub ntawv pov thawj ntawm cov txheej txheem thaiv tsis yog rau kev rov ntxiv / tshem tawm cov khoom siv. Nyob rau hauv ib txoj kev zoo, koj tsuas yog yuav tsum tau sib sau ua ke ib lub laj thawj ntim ntawm qib thaiv ib zaug, muab nws rau cov ntaub ntawv kaw lus, thiab tom qab ntawd tsis muaj dab tsi ntxiv nrog nws.

Tsis tas li ntawd, kev sib xyaw ua ke ntawm kev ywj pheej FS + LVM subsystems tsis tso cai rau kev coj mus rau hauv tus account qhov sib txawv ntawm cov drives los ntawm cov ntaub ntawv sib xyaw ua ke. Xwb, xav tias koj tau sib sau ua ke ib qhov kev xav tau los ntawm HDD thiab cov khoom siv hauv lub xeev. Tab sis tom qab ntawd tus qub yuav xav tau defragmentation, thiab tom kawg yuav tsis. Rau qhov kawg, koj yuav tsum tau muab pov tseg thov, tab sis rau yav dhau los, tsis yog, thiab lwm yam. Txawm li cas los xij, hauv kev sib xyaw ua ke no nws nyuaj heev los ua kom pom qhov kev xaiv zoo li no.

Nco ntsoov tias tom qab tsim koj tus kheej LVM ntawm cov ntaub ntawv kaw lus, qhov xwm txheej tsis tau zoo dua. Tsis tas li ntawd, los ntawm kev ua qhov no koj ua tiav qhov kev cia siab ntawm kev txhim kho nws yav tom ntej. Qhov no phem heev. Ntau hom tsav tuaj yeem nyob ntawm tib lub tshuab. Thiab yog tias cov ntaub ntawv kaw lus tsis paub qhov txawv ntawm lawv, ces leej twg yuav?

Lwm qhov teeb meem nyob tos rau lub npe hu ua. "Sau-Txhua qhov chaw" cov ntaub ntawv kaw lus (qhov no kuj suav nrog Reiser4, yog tias koj tau teev cov qauv kev hloov pauv tsim nyog thaum mount). Cov ntaub ntawv zoo li no yuav tsum muab cov cuab yeej defragmentation uas tsis tau pom dua hauv lawv lub zog. Thiab tus thawj tswj hwm qib qis tsis pab ntawm no, tab sis tsuas yog tau txais hauv txoj kev. Qhov tseeb yog tias nrog tus thawj tswj hwm zoo li no, koj FS yuav khaws ib daim ntawv qhia dawb ntawm ib lub cuab yeej - ib qho virtual. Raws li, koj tsuas tuaj yeem defragment lub tshuab virtual. Qhov no txhais tau hais tias koj tus defragmenter yuav ua haujlwm ntev, ntev ntawm qhov chaw loj loj ntawm qhov chaw nyob virtual.

Thiab yog tias koj muaj ntau tus neeg siv ua random overwrite, tom qab ntawd cov txiaj ntsig muaj txiaj ntsig ntawm xws li defragmenter yuav raug txo kom xoom. Koj lub kaw lus yuav inevitably pib qeeb, thiab koj tsuas yog yuav tsum tuav koj txhais tes nyob rau hauv pem hauv ntej ntawm qhov kev kuaj mob tsis txaus ntseeg "tawg tsim". Ob peb defragmenters khiav ntawm tib qhov chaw nyob yuav tsuas cuam tshuam rau ib leeg. Nws yog qhov sib txawv kiag li yog tias koj tuav koj tus kheej daim ntawv qhia ntawm cov blocks dawb rau txhua lub cuab yeej tiag. Qhov no yuav ua tau zoo parallelize cov txheej txheem defragmentation.

Tab sis qhov no tsuas yog ua tau yog tias koj muaj tus thawj tswj hwm qhov ntim siab. Cov ntaub ntawv hauv zos nrog cov thawj tswj hwm tsis tau muaj yav tas los (tsawg kawg, kuv tsis paub txog lawv). Tsuas yog cov ntaub ntawv network (piv txwv li GlusterFS) muaj cov tswj hwm zoo li no. Lwm qhov piv txwv tseem ceeb heev yog qhov ntim kev ntseeg siab (fsck) kev siv hluav taws xob. Yog tias koj khaws koj tus kheej daim ntawv qhia kev ywj pheej ntawm cov blocks dawb rau txhua qhov subvolume, tom qab ntawd cov txheej txheem rau kev tshuaj xyuas qhov ntim qhov muaj peev xwm ua tau zoo sib luag. Hauv lwm lo lus, cov ntaub ntawv muaj txiaj ntsig nrog cov thawj tswj hwm qib siab zoo dua.

Tsis tas li ntawd, nrog cov tswj hwm qib qis koj yuav tsis tuaj yeem npaj cov duab thaij duab puv puv. Nrog LVM thiab ZFS-zoo li cov ntaub ntawv tshuab, koj tuaj yeem nqa cov duab hauv zos nkaus xwb, tab sis tsis yog lub ntiaj teb snapshots. Snapshots hauv zos tso cai rau koj rov qab tam sim ntawd tsuas yog cov ntaub ntawv ua haujlwm tsis tu ncua. Thiab tsis muaj leej twg yuav rov qab ua haujlwm nrog cov khoom siv logic (ntxiv / tshem tawm cov khoom siv). Cia peb saib qhov no nrog ib qho piv txwv. Nyob rau qee lub sijhawm, thaum koj muaj qhov kev xav tau ntawm ob lub cuab yeej A thiab B uas muaj 100 cov ntaub ntawv, koj siv lub kaw lus S thiab tom qab ntawd tsim lwm pua ​​cov ntaub ntawv.

Tom qab ntawd, koj ntxiv cov cuab yeej C rau koj lub ntim, thiab thaum kawg rollback koj lub kaw lus rau snapshot S. Lus nug: Muaj pes tsawg cov ntaub ntawv thiab cov khoom siv puas koj lub ntim ntim muaj tom qab rollback rau S? Yuav muaj 100 cov ntaub ntawv, raws li koj tau twv, tab sis yuav muaj 3 cov khoom siv - cov no yog tib yam li A, B thiab C, txawm hais tias thaum lub sijhawm snapshot tau tsim muaj tsuas yog ob lub cuab yeej hauv lub cev (A thiab B. ). Cov cuab yeej ntxiv C ua haujlwm tsis thim rov qab, thiab yog tias koj tam sim no tshem tawm cov cuab yeej C los ntawm lub khoos phis tawj, nws yuav ua rau koj cov ntaub ntawv tsis raug, yog li ua ntej rho tawm koj yuav tsum tau ua thawj zaug ua haujlwm kim kom tshem tawm cov cuab yeej los ntawm cov khoom siv rov ua kom zoo dua qub, uas. yuav tawg tag nrho cov ntaub ntawv los ntawm ntaus ntawv C mus rau pab kiag li lawm A thiab B. Tab sis yog hais tias koj FS txhawb thoob ntiaj teb snapshots, xws li rebalancing yuav tsis tau, thiab tom qab ib tug instant rollback rau S, koj yuav xyuam xim tshem tawm ntaus ntawv C ntawm lub computer.

Yog li, lub ntiaj teb snapshots yog qhov zoo vim tias lawv tso cai rau koj kom tsis txhob raug tshem tawm (ntxiv) ntawm ib lub cuab yeej los ntawm cov khoom siv logic (mus rau qhov ntim ntawm cov ntaub ntawv) nrog ntau cov ntaub ntawv (tau kawg, yog tias koj nco ntsoov "snapshot" koj lub cev. ntawm lub sijhawm). Cia kuv ceeb toom koj tias tsim snapshots thiab dov rov qab cov ntaub ntawv kaw lus rau lawv yog cov haujlwm tam sim. Cov lus nug yuav tshwm sim: yuav ua li cas nws thiaj li tuaj yeem rov qab ua haujlwm tam sim ntawd ntawm qhov kev xav tau uas coj koj peb hnub? Tab sis nws muaj peev xwm! Muab hais tias koj cov ntaub ntawv system yog tsim kom raug. Kuv tuaj nrog lub tswv yim ntawm xws li "3D snapshots" peb xyoos dhau los, thiab xyoo tas los kuv tau patented cov txheej txheem no.

Qhov txuas ntxiv uas FSs hauv zos yuav tsum kawm los ntawm cov network yog khaws cov metadata ntawm cov khoom siv sib cais hauv tib txoj kev uas network FSs khaws cia rau ntawm cov tshuab cais (lub npe hu ua metadata servers). Muaj cov ntawv thov uas ua haujlwm feem ntau nrog cov metadata, thiab cov ntawv thov no tuaj yeem ua kom nrawm heev los ntawm kev tso cov metadata ntawm cov khoom siv kim heev. Nrog FS + LVM kev sib xyaw ua ke, koj yuav tsis tuaj yeem ua qhov kev xaiv zoo li no: LVM tsis paub tias yog dab tsi ntawm qhov thaiv uas koj dhau mus rau nws (cov ntaub ntawv muaj lossis metadata).

Koj yuav tsis tau txais txiaj ntsig ntau los ntawm kev siv koj tus kheej qib qis LVM hauv FS piv rau FS + LVM ua ke, tab sis qhov koj tuaj yeem ua tau zoo heev yog clutter FS kom tom qab ntawd nws yuav ua tsis tau nrog nws cov cai. ZFS thiab Btrfs, uas tau nrawm nrog cov khoom siv virtual, yog tag nrho cov piv txwv tseeb ntawm kev ua txhaum txheej txheej li cas tua cov kab ke hauv cov ntsiab lus architectural. Yog li, vim li cas kuv txhua qhov no? Ntxiv mus, tsis tas yuav nruab koj tus kheej qib qis LVM hauv cov ntaub ntawv kaw lus. Hloov chaw, koj yuav tsum tau muab cov cuab yeej sib sau ua ke rau hauv cov khoom sib xyaw ua ke ntawm qib siab, raws li qee lub network cov ntaub ntawv ua nrog cov tshuab sib txawv (kho cov nodes). Tseeb, lawv ua qhov no disgustingly vim siv cov algorithms phem.

Piv txwv ntawm cov algorithms txaus ntshai yog tus txhais lus DHT hauv GlusterFS cov ntaub ntawv kaw lus thiab lub npe hu ua CRUSH daim ntawv qhia hauv Ceph file system. Tsis muaj ib qho ntawm cov algorithms uas kuv pom txaus siab rau kuv nyob rau hauv cov nqe lus ntawm simplicity thiab zoo scalability. Yog li kuv yuav tsum nco ntsoov algebra thiab tsim txhua yam ntawm kuv tus kheej. Nyob rau hauv 2015, thaum sim nrog bundles tshaj hash functions, kuv tuaj nrog thiab patented ib yam dab tsi suits kuv. Tam sim no kuv tuaj yeem hais tias qhov kev sim ua txhua yam no rau hauv kev xyaum tau ua tiav. Kuv tsis pom muaj teeb meem nrog scalability nyob rau hauv txoj kev tshiab.

Yog lawm, txhua qhov subvolume yuav xav tau cov qauv sib cais xws li superblock hauv nco. Qhov no puas txaus ntshai? Feem ntau, kuv tsis paub leej twg yuav mus rau "kua dej hiav txwv" thiab tsim cov khoom siv ntau pua txhiab lossis ntau dua ntawm ib lub tshuab hauv zos. Yog leejtwg piav tau qhov no rau kuv, kuv yuav ua tsaug ntau. Lub sijhawm no, rau kuv qhov no yog kev lag luam bullshit.

Yuav ua li cas hloov cov ntsiav thaiv cov cuab yeej subsystem (piv txwv li, cov tsos ntawm blk-mq) cuam tshuam cov kev xav tau rau kev siv FS?

Lawv tsis muaj kev cuam tshuam. Kuv tsis paub dab tsi yuav tshwm sim ntawm txheej thaiv uas yuav ua rau nws tsim nyog los tsim FS tshiab. Kev sib cuam tshuam ntawm cov subsystems no tsis zoo heev. Los ntawm cov neeg tsav tsheb sab, FS yuav tsum tsuas yog cuam tshuam los ntawm cov tsos ntawm cov tshiab hom tsav, uas cov txheej thaiv yuav raug kho ua ntej, thiab tom qab ntawd FS (rau reiser4 qhov no yuav txhais tau tias cov tsos ntawm cov plugins tshiab).

Puas yog qhov tshwm sim ntawm hom xov xwm tshiab (piv txwv li, SMR, lossis qhov chaw nyob ntawm SSDs) txhais tau tias muaj kev sib tw tshiab rau kev tsim cov ntaub ntawv?

Yog lawm. Thiab cov no yog ib qho kev txhawb siab rau kev txhim kho FS. Kev sib tw tuaj yeem sib txawv thiab tsis xav txog. Piv txwv li, kuv tau hnov ​​​​txog cov tsav uas qhov ceev ntawm kev ua haujlwm I / O yog nyob ntawm qhov loj ntawm cov ntaub ntawv thiab nws cov offset. Hauv Linux, qhov twg qhov loj ntawm FS thaiv tsis tuaj yeem tshaj nplooj ntawv loj, xws li tsav yuav tsis qhia nws lub peev xwm tag nrho los ntawm lub neej ntawd. Txawm li cas los xij, yog tias koj cov ntaub ntawv kaw lus raug tsim raug, ces muaj caij nyoog kom tau txais ntau ntau ntawm nws.

Muaj pes tsawg tus neeg tam sim no ua haujlwm nrog Reiser4 code dua koj?

Tsawg tshaj li qhov kuv xav tau, tab sis kuv tsis muaj qhov tsis txaus ntawm cov peev txheej ib yam. Kuv txaus siab ntau dua nrog kev txhim kho ntawm Reiser4. Kuv tsis mus "tsav nees" - qhov no tsis yog qhov chaw zoo. Ntawm no, "yog tias koj tsav tsheb ntau ntsiag to, koj yuav mus ntxiv!" Cov ntaub ntawv niaj hnub no yog qhov nyuaj tshaj plaws kernel subsystem, qhov kev txiav txim siab tsim tsis raug uas tuaj yeem thim rov qab xyoo tom ntej ntawm tib neeg kev ua haujlwm.

Los ntawm muab cov neeg tuaj yeem pab dawb los siv qee yam, kuv ib txwm lav tias qhov kev siv zog yuav ua rau muaj qhov tseeb, uas tuaj yeem ua rau muaj kev xav tau loj. Raws li koj nkag siab, tsis tuaj yeem muaj ntau yam kev lees paub ib zaug. Nyob rau tib lub sijhawm, kuv tsis tuaj yeem sawv ntsug "cov duab" uas tsis txaj muag txhawb "tus yam ntxwv" ntawm cov software siv tsis tau zoo, dag ntau pua tus neeg siv thiab cov tsim tawm, thiab tib lub sijhawm zaum thiab luag nyav ntawm cov rooj sib tham kernel.

Puas muaj ib lub tuam txhab qhia kev txaus siab los txhawb kev txhim kho ntawm Reiser4?

Yog, muaj cov tswv yim zoo li no, incl. thiab los ntawm tus neeg muag khoom loj. Tab sis rau qhov no kuv yuav tsum tau tsiv mus rau lwm lub teb chaws. Hmoov tsis zoo, kuv tsis muaj 30 xyoo lawm, kuv tsis tuaj yeem tawg thiab tawm zoo li ntawd thaum thawj xuav.

Dab tsi nta tam sim no ploj lawm los ntawm Reiser4?

Tsis muaj "resize" muaj nuj nqi rau cov ntim yooj yim, zoo ib yam li pom hauv ReiserFS(v3). Tsis tas li ntawd, cov ntaub ntawv ua haujlwm nrog DIRECT_IO chij yuav tsis mob. Tom ntej no, kuv xav kom muaj peev xwm cais lub ntim rau hauv "semantic subvolumes", uas tsis muaj qhov loj me, thiab qhov twg tuaj yeem txuas tau raws li cov ntim ywj siab. Cov teeb meem no yog qhov zoo rau cov pib tshiab uas xav sim lawv txhais tes ntawm "qhov tiag."

Thiab thaum kawg, kuv xav kom muaj kev sib txuas lus sib txuas nrog kev siv yooj yim thiab kev tswj hwm (cov algorithms niaj hnub twb tso cai rau qhov no). Tab sis dab tsi Reiser4 yuav yeej tsis muaj yog RAID-Z, scrubs, qhov chaw pub dawb, 128-ntsis hloov pauv thiab lwm yam kev lag luam tsis zoo uas tau tshwm sim tawm tsam qhov tsis txaus ntawm cov tswv yim ntawm cov tsim tawm ntawm qee cov ntaub ntawv.

Puas yog txhua yam uas yuav xav tau siv los ntawm plugins?

Yog hais tias peb hais tsuas yog nyob rau hauv cov nqe lus ntawm interfaces thiab plugins (modules) uas siv lawv, ces tsis yog txhua yam. Tab sis yog tias koj kuj qhia txog kev sib raug zoo ntawm cov kev sib tshuam no, tom qab ntawd, ntawm lwm yam, koj yuav muaj cov ntsiab lus ntawm ntau dua polymorphisms, uas koj tuaj yeem tau txais los ntawm. Xav txog tias koj hypothetically froze ib yam khoom-oriented runtime system, hloov tus nqi ntawm cov lus qhia pointer taw tes rau lwm plugin uas siv tib X interface, thiab tom qab ntawd unfroze lub kaw lus kom nws txuas ntxiv ua.

Yog tias tus neeg siv kawg tsis pom qhov "hloov pauv," ces peb hais tias lub kaw lus muaj xoom-order polymorphism hauv X interface (los yog lub kaw lus yog heterogeneous hauv X interface, uas yog tib yam). Yog tias tam sim no koj tsis tsuas yog muaj cov txheej txheem sib txuas, tab sis kuj muaj kev sib raug zoo ntawm lawv (interface graph), tom qab ntawd koj tuaj yeem qhia txog polymorphisms ntawm kev txiav txim siab dua, uas yuav qhia txog qhov sib txawv ntawm cov kab ke uas twb muaj nyob hauv "cov zej zog" ntawm txhua qhov kev sib tshuam. Kuv tau qhia qhov kev faib tawm no ntev dhau los, tab sis, hmoov tsis, nws yeej tsis tshwm sim.

Yog li, nrog kev pab los ntawm plugins thiab ntau dua polymorphisms, koj tuaj yeem piav qhia txhua yam uas paub, nrog rau "xav" cov uas tsis tau hais txog. Kuv tsis tau muaj peev xwm ua pov thawj nruj me ntsis, tab sis kuv kuj tsis paub txog qhov piv txwv tsis tau. Feem ntau, lo lus nug no ua rau kuv nco txog Felix Klein's "Erlangen Program". Nyob rau hauv ib lub sij hawm nws sim sawv cev rau tag nrho cov geometry raws li ib ceg ntawm algebra (tshwj xeeb, pab pawg neeg txoj kev xav).

Tam sim no rau lo lus nug tseem ceeb - yuav ua li cas nrog kev nce qib ntawm Reiser4 mus rau lub ntsiab tseem ceeb? Puas muaj cov ntawv tshaj tawm ntawm cov qauv ntawm cov ntaub ntawv no uas koj tau tham txog hauv kev sib tham zaum kawg? Cov lus nug no cuam tshuam li cas los ntawm koj qhov kev xav?

Feem ntau, peb tau thov kom suav nrog hauv ceg tseem ceeb tau peb xyoos. Reiser lub ntsiab lus kawg hauv cov xov xwm pej xeem uas qhov kev thov rub tawm tseem tsis tau teb. Yog li tag nrho cov lus nug ntxiv tsis yog rau peb. Kuv tus kheej tsis nkag siab vim li cas peb yuav tsum "merge" rau hauv ib qho kev khiav hauj lwm tshwj xeeb. Nyob rau Linux, lub teeb tsis converge zoo li ib tug wedge. Yog li, muaj ib qho chaw cia khoom cais uas yuav muaj ob peb ceg-chaw nres nkoj rau ntau OSes. Leej twg xav tau nws tuaj yeem clone qhov chaw sib txuas thiab ua txhua yam koj xav tau nrog nws (hauv daim ntawv tso cai, tau kawg). Zoo, yog tias ib tug neeg tsis xav tau, ces nws tsis yog kuv qhov teeb meem. Ntawm no, kuv thov kom xav txog cov lus nug ntawm "kev txhawb nqa rau hauv lub ntsiab Linux ntsiav" raws li tau hais tseg.

Kev tshaj tawm ntawm FS architecture yog qhov cuam tshuam, tab sis tam sim no kuv tsuas pom lub sijhawm rau kuv cov txiaj ntsig tshiab, uas kuv xav tias yog qhov tseem ceeb dua. Lwm qhov yog tias kuv yog lej, thiab hauv lej ib qho kev tshaj tawm yog cov ntsiab lus ntawm theorems thiab lawv cov ntawv pov thawj. Kev tshaj tawm txhua yam nyob rau ntawd yam tsis muaj pov thawj yog qhov qhia txog kev tsis zoo. Yog tias kuv ua pov thawj los yog tsis lees paub cov lus hais txog kev tsim vaj tsev ntawm FS, ces qhov tshwm sim yuav yog pawg uas nws yuav nyuaj heev kom dhau mus. Leej twg xav tau nws? Qhov no tej zaum yog vim li cas txhua yam tseem nyob rau hauv nws daim ntawv qub - cov cai thiab cov lus rau nws.

Dab tsi tshiab hauv Reiser4 ob peb xyoos dhau los?

Qhov ntev-awaited stability tau thaum kawg materialized. Ib qho ntawm qhov kawg tshwm sim yog kab laum uas ua rau "Undeletable" directory. Qhov nyuaj yog tias nws tsuas yog tshwm sim tawm tsam keeb kwm ntawm lub npe hash kev sib tsoo thiab nrog qee qhov chaw ntawm cov ntaub ntawv teev npe hauv ib tsob ntoo ntawm qhov chaw. Txawm li cas los xij, kuv tseem tsis tuaj yeem pom zoo Reiser4 rau kev tsim khoom: rau qhov no koj yuav tsum ua qee yam haujlwm nrog kev sib cuam tshuam nrog cov thawj coj tsim khoom.

Thaum kawg peb tau tswj hwm los siv peb lub tswv yim ntev ntev - cov qauv sib txawv. Yav dhau los, Reiser4 tsuas yog khiav ib qho hardcoded Macdonald-Reiser qauv. Qhov no tsim teeb meem tsim. Tshwj xeeb, snapshots tsis tuaj yeem ua tau hauv cov qauv kev lag luam - lawv yuav raug cuam tshuam los ntawm cov khoom siv atomic hu ua "OVERWRITE SET". Reiser4 tam sim no txhawb peb cov qauv kev lag luam. Nyob rau hauv ib qho ntawm lawv (Sau-Txhua qhov chaw), atomic tivthaiv OVERWRITE SET suav nrog tsuas yog nplooj ntawv kab ke (duab ntawm disk bitmaps, thiab lwm yam), uas tsis tuaj yeem "duab" (qhov teeb meem nqaij qaib thiab qe).

Yog li cov duab tam sim no tuaj yeem paub txog qhov zoo tshaj plaws. Hauv lwm cov qauv kev hloov pauv, txhua nplooj ntawv hloov kho tsuas yog mus rau OVERWRITE SET (uas yog, nws yog qhov tseem ceeb ntawm kev sau ntawv dawb huv). Cov qauv no yog rau cov neeg tsis txaus siab txog kev tawg sai ntawm Reiser4 partitions. Tam sim no nyob rau hauv cov qauv no koj muab faib yuav tawg sai dua nrog ReiserFS (v3). Tag nrho peb cov qauv uas twb muaj lawm, nrog rau qee qhov tshwj xeeb, lav lub atomicity ntawm kev ua haujlwm, tab sis cov qauv nrog kev poob ntawm atomicity thiab khaws cia tsuas yog kev ncaj ncees ntawm seem kuj tseem yuav pab tau. Cov qauv zoo li no tuaj yeem siv tau rau txhua yam kev siv (databases, thiab lwm yam), uas twb tau siv qee yam ntawm cov haujlwm no. Nws yooj yim heev los ntxiv cov qauv no rau Reiser4, tab sis kuv tsis ua nws, vim tsis muaj leej twg nug kuv, thiab kuv tus kheej tsis xav tau.

Metadata checksums tshwm sim thiab kuv tsis ntev los no tau ntxiv rau lawv nrog "kev lag luam" iav" (tseem cov khoom tsis ruaj khov). Yog tias qhov checksum ntawm ib qho thaiv tsis ua haujlwm, Reiser4 tam sim ntawd nyeem cov ntawv thaiv los ntawm cov khoom siv rov ua dua. Nco ntsoov tias ZFS thiab Btrfs tsis tuaj yeem ua qhov no: tus qauv tsim tsis tso cai. Nyob ntawd koj yuav tsum tau khiav cov txheej txheem scanning tshwj xeeb hu ua "scrub" thiab tos kom nws nkag mus rau qhov teeb meem thaiv. Programmers figuratively hu cov xwm txheej no "crutches."

Thiab thaum kawg, heterogeneous logical tagnrho tau tshwm sim, muab txhua yam uas ZFS, Btrfs, thaiv txheej, nrog rau FS + LVM kev sib txuas hauv txoj cai tsis tuaj yeem muab - parallel scaling, O(1) disk chaw faib, pob tshab cov ntaub ntawv tsiv teb tsaws ntawm subvolumes. Lub tom kawg kuj muaj tus neeg siv interface. Tam sim no koj tuaj yeem yooj yim txav cov ntaub ntawv kub tshaj plaws mus rau qhov ua tau zoo tshaj plaws ntawm koj lub ntim.

Tsis tas li ntawd, nws muaj peev xwm maj mam yaug cov nplooj ntawv qias neeg mus rau qhov tsav no, yog li ua kom nrawm rau cov ntawv thov uas feem ntau hu rau fsync(2). Kuv nco ntsoov tias qhov thaiv txheej ua haujlwm, hu ua bcache, tsis muab kev ywj pheej ntawm kev ua txhua yam. Cov ntaub ntawv pov thawj tshiab yog raws li kuv cov algorithms (muaj cov ntaub ntawv sib xws). Lub software twb ruaj khov heev, nws muaj peev xwm sim nws, ntsuas kev ua tau zoo, thiab lwm yam. Qhov tsis yooj yim tsuas yog rau tam sim no koj yuav tsum hloov kho lub ntim ntim thiab khaws cia rau qhov chaw.

Txog tam sim no kuv tau ua tiav kuv cov tswv yim los ntawm 10 feem pua. Txawm li cas los xij, kuv tau ua tiav qhov kuv suav tias yog qhov nyuaj tshaj plaws - txuas cov ntsiab lus sib xyaw nrog cov txheej txheem flash uas ua tiav txhua qhov kev txiav txim ncua hauv reiser4. Qhov no yog txhua yam tseem nyob hauv kev sim "format41" ceg.

Puas yog Reiser4 dhau xfstests?

Tsawg kawg nws ua rau kuv thaum kuv tab tom npaj qhov kev tso tawm kawg.

Puas yog nws ua tau hauv txoj cai los ua Reiser4 lub network (cluster) FS siv plugins?

Nws yog ua tau, thiab txawm tsim nyog! Yog tias koj tsim cov ntaub ntawv network raws li cov ntaub ntawv tsim nyog hauv zos, qhov tshwm sim yuav zoo heev! Nyob rau hauv niaj hnub network FSs, kuv tsis txaus siab rau lub xub ntiag ntawm ib tug backend cia qib, uas yog siv nyob rau hauv lub zos FS. Lub hav zoov ntawm qib no yog tsis ncaj ncees kiag li. Lub network FS yuav tsum ncaj qha cuam tshuam nrog txheej thaiv, thiab tsis txhob nug FS hauv zos los tsim lwm cov ntaub ntawv pabcuam!

Feem ntau, faib cov ntaub ntawv rau hauv zos thiab network yog los ntawm qhov phem. Nws tau tshwm sim los ntawm qhov tsis zoo ntawm cov algorithms uas tau siv peb caug xyoo dhau los, thiab nyob rau hauv qhov chaw uas tsis muaj dab tsi tseem tau thov. Qhov no kuj yog vim li cas rau cov tsos ntawm ib tug loj ntawm tsis tsim nyog software Cheebtsam (ntau yam kev pab, thiab lwm yam). Nyob rau hauv ib txoj kev zoo, yuav tsum muaj tsuas yog ib qho FS nyob rau hauv daim ntawv ntawm cov ntsiav module thiab ib txheej ntawm cov neeg siv khoom siv tau nruab rau ntawm txhua lub tshuab - pawg node. Qhov no FS yog ob qho tib si hauv zos thiab network. Thiab tsis muaj dab tsi ntxiv!

Yog tias tsis muaj dab tsi ua haujlwm nrog Reiser4 ntawm Linux, kuv xav muab FS rau FreeBSD (hais los ntawm kev xam phaj dhau los: "...FreeBSD... muaj cov hauv paus kev kawm... yuav nrhiav tau ib hom lus nrog cov developers")?

Yog li, raws li peb nyuam qhuav pom, txhua yam tau ua tiav zoo kawg nkaus nrog Linux: muaj ib qho chaw ua haujlwm Reiser4 cais rau nws nyob rau hauv daim ntawv ntawm tus tswv ceg ntawm peb lub chaw cia khoom. Kuv tsis tau hnov ​​qab txog FreeBSD! Muab! Kuv npaj siab ua haujlwm ze nrog cov neeg paub txog sab hauv ntawm FreeBSD zoo. Los ntawm txoj kev: qhov kuv nyiam tiag tiag txog lawv lub zej zog yog qhov kev txiav txim siab muaj los ntawm lub rooj sib tham tshiab ntawm cov kws tshaj lij ywj pheej, uas tsis muaj dab tsi cuam tshuam nrog tsoomfwv kev dag ntxias ntawm ib tus neeg mus tas li.

Koj ua li cas rau cov neeg siv Linux niaj hnub no? Puas yog nws dhau los ua "pop" ntau dua?

Muab qhov xwm txheej ntawm kuv txoj haujlwm, nws nyuaj heev rau kuv los ntsuas qhov no. Feem ntau cov neeg siv tuaj rau kuv nrog cov ntawv ceeb toom kab mob thiab thov kom kho qhov seem. Cov neeg siv raws li cov neeg siv. Qee tus paub ntau dua, qee qhov tsawg dua. Txhua tus neeg raug kho tib yam nkaus. Zoo, yog tias tus neeg siv tsis quav ntsej kuv cov lus qhia, thov zam txim rau kuv: qhov kev txiav txim tsis quav ntsej yuav raug nkag rau ntawm kuv qhov thiab.

Nws puas tuaj yeem kwv yees kev txhim kho cov ntaub ntawv rau tsib mus rau kaum xyoo tom ntej? Koj xav li cas yog cov teeb meem tseem ceeb uas FS cov neeg tsim khoom yuav ntsib?

Yog lawm, nws tsis yooj yim los ua qhov kev kwv yees zoo li no. Tsis muaj kev txhim kho cov ntaub ntawv hauv cov dej ntws mus ntev. Tsuas yog cov tsos ntawm xws li yog tsim. Cov neeg tsim tawm ntawm cov ntaub ntawv hauv zos tau khiav mus rau cov teeb meem cuam tshuam nrog kev tsim tsis zoo. Yuav tsum tau ua ib tug caveat ntawm no. Kuv tsis xav txog qhov hu ua "kho", "licking" thiab porting code los ua kev txhim kho thiab kev loj hlob. Thiab kuv tsis cais qhov kev nkag siab yuam kev hu ua "Btrfs" raws li kev txhim kho rau cov laj thawj uas kuv tau piav qhia lawm.

Txhua thaj tsuas ua rau nws cov teeb meem loj dua. Zoo. thiab muaj ib txwm muaj ntau yam "txoj moo zoo" rau leej twg "txhua yam ua haujlwm." Qhov tseeb, cov no yog cov menyuam kawm ntawv thiab cov menyuam kawm ntawv hla kev qhuab qhia. Cia li xav txog: nws ua haujlwm rau nws, tab sis tus xibfwb tsis ua. Qhov no yog adrenaline maj! Los ntawm kuv qhov kev xav, qhov kev puas tsuaj loj tshaj plaws yog tshwm sim los ntawm "cov kws ua haujlwm" uas tau maj nrawm mus rau qhov zoo siab "ntsia hlau" cov yam ntxwv zoo ntawm Btrfs mus rau txhua hom txheej xws li systemd, docker, thiab lwm yam. - qhov no twb zoo li metastases.

Tam sim no cia peb sim ua qhov kev kwv yees rau tsib mus rau kaum xyoo. Kuv twb tau sau luv luv tias peb yuav ua dab tsi hauv Reiser4. Qhov kev sib tw tseem ceeb rau cov neeg tsim khoom FS hauv zos los ntawm cov dej ntws yuav yog (yog, nws twb dhau los lawm) qhov tsis muaj peev xwm ua tau haujlwm zoo rau cov nyiaj hli. Yog tsis muaj ib lub tswv yim nyob rau hauv qhov chaw ntawm cov ntaub ntawv cia, lawv yuav txuas ntxiv mus sim kho cov tsis muaj hmoo VFS, XFS thiab ext4. Qhov xwm txheej nrog VFS zoo li tshwj xeeb tshaj yog comical tiv thaiv keeb kwm yav dhau los, nco txog kev hloov kho tshiab ntawm lub tsev noj mov uas tsis muaj kws ua zaub mov, thiab tsis muaj kws ua zaub mov xav tau.

Tam sim no VFS code, tsis muaj tej yam kev mob, xauv ob peb lub cim xeeb nplooj ntawv tib lub sijhawm thiab caw cov FS hauv qab los ua haujlwm rau lawv. Qhov no tau qhia txog kev txhim kho Ext4 qhov kev ua tau zoo ntawm kev tshem tawm cov haujlwm, tab sis raws li kev nkag siab yooj yim, xws li kev sib txuas sib txuas yog qhov tsis sib xws nrog cov qauv kev lag luam siab heev. Ntawd yog, koj yuav tsis tuaj yeem yooj yim ntxiv kev txhawb nqa rau qee cov ntaub ntawv ntse hauv lub ntsiav. Kuv tsis paub tias qhov xwm txheej zoo li cas hauv lwm qhov chaw ntawm Linux, tab sis raws li cov ntaub ntawv muaj kev txhawj xeeb, ib qho kev txhim kho ntawm no tsis zoo li yuav ua tau raws li txoj cai raws li Torvalds hauv kev xyaum (cov haujlwm kev kawm raug ncaws tawm, thiab cov neeg dag ntxias uas tsis muaj lub tswv yim dab tsi B-ntoo, cov qhab nia kawg ntawm kev ntseeg tau tawm). Yog li ntawd, ib chav kawm tau teem rau qeeb qeeb. Tau kawg, lawv yuav sim tag nrho lawv lub peev xwm kom dhau los ua "kev txhim kho."

Tsis tas li ntawd, "cov neeg saib xyuas" ntawm cov ntaub ntawv kaw lus, paub tias koj tsis tuaj yeem khwv tau ntau los ntawm "kho" ib leeg, yuav sim lawv tes ntawm kev lag luam muaj txiaj ntsig ntau dua. Cov no yog, raws li txoj cai, faib cov ntaub ntawv thiab virtualization. Tej zaum lawv yuav xa cov qauv ZFS nyob rau lwm qhov uas nws tseem tsis tau muaj. Tab sis nws, zoo li tag nrho FS los ntawm cov dej ntws, zoo li tsob ntoo Xyoo Tshiab: yog tias koj tuaj yeem dai qee yam me me rau saum, ces koj tsis tuaj yeem nkag mus tob dua. Kuv lees tias nws muaj peev xwm tsim kom muaj kev lag luam loj raws li ZFS, tab sis txij li tam sim no peb tab tom tham txog yav tom ntej, kuv tsuas tuaj yeem tu siab hais tias ZFS tsis muaj kev cia siab rau qhov no: nrog lawv cov khoom siv virtual, cov txiv neej tau txiav tawm cov pa oxygen. rau lawv tus kheej thiab cov tiam tom ntej rau kev txhim kho ntxiv. ZFS yog ib yam ntawm yav dhau los. Thiab ext4 thiab XFS tsis yog ib hnub ua ntej nag hmo.

Nws yog ib qho tsim nyog hais cais txog lub tswv yim zoo ntawm "Linux file system ntawm lwm tiam". Qhov no yog ib txoj haujlwm ua nom ua tswv thiab kev lag luam uas tsim los rau lub sijhawm, yog li hais, "pin lub neej yav tom ntej ntawm cov ntaub ntawv" hauv Linux tom qab cov cim tshwj xeeb. Qhov tseeb yog tias Linux siv los ua "kev lom zem xwb". Tab sis tam sim no nws feem ntau yog lub tshuab ua nyiaj txiag. Lawv raug tsim los ntawm txhua yam ua tau. Piv txwv li, nws yog qhov nyuaj heev los tsim cov khoom lag luam software zoo, tab sis cov neeg tsim khoom ntse "tsim" tau pom ntev ntev tias tsis tas yuav muaj kev ntxhov siab: koj tuaj yeem ua tiav muag cov software uas tsis muaj nyob uas tau tshaj tawm thiab tshaj tawm txhua hom pej xeem. cov xwm txheej - qhov tseem ceeb tshaj plaws yog qhov kev nthuav qhia slides yuav tsum muaj ntau dua "features".

Cov txheej txheem ua ntaub ntawv zoo meej rau qhov no, vim tias koj tuaj yeem muaj kev nyab xeeb ntawm kev sib tw rau kaum xyoo ntawm qhov tshwm sim. Zoo, yog tias ib tug neeg tom qab yws txog qhov tsis muaj qhov tshwm sim no, ces nws tsuas yog tsis to taub dab tsi txog cov ntaub ntawv kaw lus! Qhov no yog reminiscent ntawm lub pyramid nyiaj txiag: nyob rau sab saum toj yog cov neeg taug txuj kev nyuaj uas pib qhov kev ntxhov siab, thiab ob peb tus uas "muaj hmoo": lawv "tshem tawm nyiaj," piv txwv li. tau txais nyiaj rau kev txhim kho, tau txais txoj haujlwm tau txais txiaj ntsig zoo li cov thawj coj, "tso tawm" ntawm cov rooj sib tham, thiab lwm yam.

Tom ntej no tuaj cov neeg uas "tsis muaj hmoo": lawv yuav suav cov kev poob, cuam tshuam nrog cov txiaj ntsig ntawm kev xa cov khoom siv tsis tau siv rau hauv kev tsim khoom, "thiab lwm yam. Muaj ntau ntau ntawm lawv. Zoo, nyob rau hauv lub hauv paus ntawm lub pyramid muaj ib tug loj loj ntawm developers "sawing" code tsis siv. Lawv yog cov neeg poob loj tshaj plaws, vim tias lub sijhawm nkim tsis tuaj yeem rov qab los. Cov pyramids no muaj txiaj ntsig zoo rau Torvalds thiab nws cov koom tes. Thiab qhov ntau ntawm cov pyramids, qhov zoo dua rau lawv. Txhawm rau pub cov pyramids, txhua yam tuaj yeem coj mus rau hauv lub hauv paus. Tau kawg, nyob rau hauv pej xeem lawv hais qhov opposite. Tab sis kuv txiav txim tsis yog los ntawm cov lus tab sis los ntawm kev ua.

Yog li, "lub neej yav tom ntej ntawm cov ntaub ntawv hauv Linux" tseem yog lwm qhov kev txhawb nqa siab, tab sis tsis tshua siv tau software. Tom qab Btrfs, nrog qhov muaj peev xwm ua tau siab, qhov chaw xws li "yav tom ntej" yuav raug coj los ntawm Bcachefs, uas yog lwm qhov kev sim hla Linux thaiv txheej nrog cov ntaub ntawv kaw lus (qhov piv txwv tsis zoo yog kis tau). Thiab qhov zoo li cas: muaj teeb meem tib yam li hauv Btrfs. Kuv xav tias qhov no tau ntev, thiab tom qab ntawd qee qhov kuv tsis tuaj yeem tiv taus thiab saib rau hauv cov cai - nws yog qhov tseeb!

Cov kws sau ntawv ntawm Bcachefs thiab Btrfs, thaum tsim lawv FS, nquag siv lwm tus neeg cov peev txheej, nkag siab me ntsis txog lawv. Qhov xwm txheej tseem ceeb heev ntawm cov menyuam yaus qhov kev ua si "lub xov tooj tawg." Thiab kuv tuaj yeem kwv yees kwv yees li cas cov lej no yuav suav nrog hauv cov ntsiav. Qhov tseeb, tsis muaj leej twg yuav pom "rakes" (txhua tus yuav nqis los tom qab). Tom qab ntau quibbles txog cov qauv ntawm cov cai, cov lus iab liam ntawm kev ua txhaum cai tsis muaj nyob, thiab lwm yam, cov lus xaus yuav raug txiav txim siab txog "kev ncaj ncees" ntawm tus sau, nws zoo npaum li cas "kev cuam tshuam" nrog lwm tus neeg tsim tawm, thiab ua tiav tag nrho qhov no tuaj yeem ua tiav. tom qab ntawd muab muag rau cov tuam txhab lag luam.

Qhov kawg tshwm sim yuav tsis txaus siab rau leej twg. Nees nkaum xyoo dhau los, tej zaum, kuv xav tau, tab sis tam sim no cov lus nug tau teeb tsa txawv: nws puas tuaj yeem txhawb nqa qhov no kom qee cov neeg yuav ua haujlwm hauv kaum xyoo tom ntej. Thiab, alas, nws tsis yog kev cai los xav txog qhov kawg tshwm sim.

Feem ntau, kuv xav tawm tswv yim tawm tsam pib rov tsim koj cov ntaub ntawv kaw lus los ntawm kos. Vim tias txawm tias kev nqis peev nyiaj txiag tseem ceeb yuav tsis txaus kom tau txais qee yam kev sib tw hauv kaum xyoo. Tau kawg, kuv tab tom tham txog cov haujlwm loj, thiab tsis yog hais txog cov uas tau npaj yuav "thawb" rau hauv cov ntsiav. Yog li, ib txoj hauv kev zoo dua los qhia koj tus kheej yog koom nrog kev txhim kho tiag tiag, zoo li peb. Qhov no, ntawm chav kawm, tsis yooj yim ua - tab sis qhov no yog qhov teeb meem nrog txhua qhov haujlwm siab.

Ua ntej, koj yuav tsum tau ua kom nws tus kheej kov yeej qhov teeb meem uas kuv yuav muab. Tom qab ntawd, ntseeg ntawm qhov hnyav ntawm koj lub siab nyiam, kuv yuav pib pab. Kev lig kev cai, peb tsuas yog siv peb tus kheej kev txhim kho. Cov kev zam yog compression algorithms thiab qee qhov hash functions. Peb tsis xa cov neeg tsim khoom mus rau kev sib tham, thiab tom qab ntawd peb tsis zaum thiab sib txuas lwm tus neeg lub tswv yim ("tej zaum yuav muaj dab tsi"), raws li kev cai hauv kev pib ua haujlwm feem ntau.

Peb tsim txhua algorithms peb tus kheej. Tam sim no kuv txaus siab rau algebraic thiab combinatorial yam ntawm cov ntaub ntawv khaws cia science. Hauv particular, finite teb, asymptotics, pov thawj ntawm kev tsis sib xws. Kuj tseem muaj kev ua haujlwm rau cov programmers zoo tib yam, tab sis kuv yuav tsum ceeb toom koj tam sim ntawd: txhua qhov lus qhia kom "saib lwm FS thiab ua tib yam" tsis quav ntsej. Patches tsom rau kev sib raug zoo nrog Linux ntawm VFS tseem yuav mus rau ntawd.

Yog li, peb tsis muaj rake, tab sis peb muaj kev nkag siab txog qhov peb yuav tsum txav mus los, thiab peb muaj kev ntseeg siab tias qhov kev taw qhia no yog qhov yog. Qhov kev nkag siab no tsis tuaj nyob rau hauv daim ntawv ntawm manna los saum ntuj ceeb tsheej. Cia kuv ceeb toom rau koj tias peb muaj 29 xyoo ntawm kev txhim kho tom qab peb, ob lub kaw lus sau los ntawm kos. Thiab tib tus naj npawb ntawm cov ntaub ntawv rov qab siv hluav taws xob. Thiab qhov no yog ntau heev!

Tau qhov twg los: opennet.ru

Ntxiv ib saib