ʻO ka nīnauele lua me Eduard Shishkin, ka mea hoʻomohala o ka Reiser4 FS

Ua paʻi ʻia ka lua o ka ninaninau me Eduard Shishkin, ka mea hoʻomohala o ka ʻōnaehana faila Reiser4.

No ka hoʻomaka ʻana, e ʻoluʻolu e hoʻomanaʻo i ka poʻe heluhelu i hea a no wai kāu hana.

Hana wau ma ke ʻano he Principal Storage Architect ma Huawei Technologies, German Research Center. Ma ka ʻoihana virtualization e pili ana au i nā ʻano like ʻole o ka mālama ʻikepili. ʻAʻole pili kaʻu mau hana i kahi ʻōnaehana hana kikoʻī.

Ke hana nei ʻoe i kēia manawa i ka lālā kernel nui?

Kakaʻikahi loa, a inā makemake kaʻu haku hana. ʻO ka manawa hope ma kahi o ʻekolu mau makahiki i hala aku nei, ua hoʻouna au i nā pākuʻi e hoʻonui i ka throughput no ka mālama ʻana i kaʻana like ʻana ma nā pūʻali me ka hoʻohana ʻana i ka protocol 9p (kahi inoa ʻē aʻe no kēia ʻoihana ʻo VirtFS). Pono e hana ʻia ma ʻaneʻi kekahi memo koʻikoʻi: ʻoiai ua lōʻihi koʻu hana ʻana me Linux, ʻaʻole wau i makemake nui iā ia, ʻo ia hoʻi, "hanu like wau," e like me nā mea āpau. ʻO ka mea nui, inā ʻike wau i kahi hemahema, hiki iaʻu ke kuhikuhi iā ia i hoʻokahi manawa. A i hiki iā ʻoe ke hahai i kekahi a hoʻohuli iā lākou - ʻaʻole hiki kēia.

Ke hoʻomanaʻo nei au i ka manawa i hala, he ʻumi makahiki i hala, ua koʻikoʻi ʻoe i ke ʻano hoʻomohala kernel. Mai kou manaʻo (a i ʻole ʻoihana paha), ua loli paha kekahi mea, ua ʻoi aku ka pane o ke kaiāulu a i ʻole? Inā ʻaʻole, ʻo wai kou manaʻo e hewa?

ʻAʻole au i ʻike i nā loli no ka maikaʻi. ʻO ka pilikia nui o ke kaiāulu, ʻo ia ka hoʻololi ʻana o ka ʻepekema me nā ʻenehana politika, ka pilina pilikino, ka manaʻo nui, ka populism, ka ʻōlelo aʻoaʻo mai "nā leo i loko," nā kuʻikahi popopo, nā mea ʻē aʻe ma waho o ka ʻepekema. ʻO ka ʻepekema kamepiula, ʻo kēlā me kēia mea e ʻōlelo ai, ʻo ia ka mua a me ka mea nui he ʻepekema pololei. A inā hoʻomaka kekahi e hoʻolaha i kāna waiwai ponoʻī no 2x2, ʻokoʻa mai ka 4, ma lalo o ka hae "Linux way", a i ʻole ma lalo o kekahi hae ʻē aʻe, a laila ʻaʻole paha kēia e lawe mai i kekahi mea ʻē aʻe ma mua o ka pōʻino.

ʻO nā pilikia a pau ma muli o ka hemahema a me ka nele o ka hoʻonaʻauao o ka poʻe e hoʻoholo. Inā ʻaʻohe mākaukau o ka luna, ʻaʻole hiki iā ia ke hoʻoholo i kahi pahuhopu kūpono. Inā ʻaʻole ʻo ia i moʻomeheu, ʻaʻole hiki iā ia ke ʻimi i kahi loea mākaukau nāna e hāʻawi iā ia i ka ʻōlelo aʻo kūpono. Me ke kūlana kiʻekiʻe, e hāʻule ka koho ma luna o kahi scammer e ʻōlelo nei "nā mea pololei." Ke ulu mau nei kahi kaiapuni palaho a puni nā alakaʻi kaʻawale ʻole. Eia kekahi, ʻaʻole ʻike ka mōʻaukala i nā ʻokoʻa ma kēia ʻano, a ʻo ke kaiāulu ka hōʻoia maopopo loa o kēia.

Pehea ʻoe e loiloi ai i ka holomua o ka hoʻomohala ʻana o Btrfs? Ua hoopau anei keia FS i na mai kamalii? Pehea ʻoe e hoʻonoho ai iā ʻoe iho - ma ke ʻano he FS "no ka home" a i ʻole no ka hoʻohana ʻana i ka hui?

ʻAʻole au i hoʻopau. ʻO nā mea a pau aʻu i ʻōlelo ai he 11 mau makahiki i hala e pili mau ana i kēia lā. ʻO kekahi o nā pilikia me nā Btrfs i kūpono ʻole i nā pono koʻikoʻi ʻo ia ka pilikia o kahi kaʻawale. ʻAʻole wau e kamaʻilio e pili ana i ka ʻoiaʻiʻo ua noi ʻia ka mea hoʻohana e holo i ka hale kūʻai no kahi disk hou i nā kūlana kahi e hōʻike ai kekahi FS ʻē aʻe i ka nui o ka hakahaka ma ka pā. ʻO ka hiki ʻole ke hoʻopau i kahi hana ma ka leo logical ma muli o ka nele o kahi kaʻawale ʻaʻole ia ka mea ʻino loa. ʻO ka mea maikaʻi loa, ʻo ka mea hoʻohana pono ʻole hiki i nā manawa a pau, e kāpae i nā quotas disk, hoʻonele i kēlā me kēia kanaka i kahi kaʻawale i ka manawa pōkole.

Me he mea lā (i hoʻāʻo ʻia no Linux kernel 5.12). Hoʻokuʻu ʻia kahi palapala ma kahi ʻōnaehana i hoʻokomo hou ʻia, kahi i hana ai i nā faila me kekahi mau inoa i ka papa kuhikuhi home, kākau i ka ʻikepili iā lākou ma kekahi mau offset, a laila holoi i kēia mau faila. Ma hope o hoʻokahi minuke o ka holo ʻana i kēia ʻatikala, ʻaʻohe mea maʻamau. Ma hope o ʻelima mau minuke, piʻi iki ka hapa o ka wahi i noho ʻia ma ka pā. Ma hope o ʻelua a ʻekolu mau hola hiki i ka 50% (me ka waiwai mua o 15%). A ma hope o ʻelima a ʻeono mau hola o ka hana, hāʻule ka palapala me ka hewa "ʻaʻohe wahi kaʻawale ma ka pā." Ma hope o kēia, ʻaʻole hiki iā ʻoe ke kākau hou i kahi faila 4K i kāu ʻāpana.

Aia kekahi kūlana hoihoi: ua pau ʻoe i ka kākau ʻole ʻana i kekahi mea i ka pā, a nalo nā wahi āpau āpau (ma kahi o 85%) ma kahi. ʻO ka nānā ʻana o kahi ʻāpana e pili ana i ia hoʻouka ʻana e hōʻike i nā node kumulāʻau he hoʻokahi wale nō mea (kahi mea i hoʻolako ʻia me kahi kī), he mau bytes ka nui. ʻO ia hoʻi, ʻo ka ʻike i noho mua ʻia ma 15% o ka disk space i hoʻololi ʻia i ka "smeared" ma luna o ka ʻāpana holoʻokoʻa a ʻaʻohe wahi e kākau ai i kahi faila hou, no ka mea, ʻoi aku ka nui o kāna kī ma mua o nā mea āpau, a me ka manuahi. ua pau na poloka ma ka paku.

Eia kekahi, ua hana ʻia kēia ma ka hoʻonohonoho Btrfs kumu (me ka ʻole o nā snapshots, subvolumes, etc.), a ʻaʻole ia he mea nui pehea ʻoe e hoʻoholo ai e mālama i nā kino faila i kēlā FS (ma ke ʻano he "'āpana" i loko o kahi kumulāʻau, a i ʻole he mea nui. o nā poloka unformatted) - e like ka hopena.

ʻAʻole hiki iā ʻoe ke hoʻokau i nā ʻōnaehana faila ʻē aʻe i ka hoʻouka ʻana (no ka mea a lākou e haʻi ai iā ʻoe). Ua wehewehe au i ke kumu o ka pilikia i ka wā ma mua: he hoʻololi piha kēia o ka manaʻo B-lāʻau ma Btrfs, kahi e hiki ai ke hoʻohaʻahaʻa i ka manawa a i ʻole ka manaʻo. ʻO ka mea kūikawā, ma lalo o kekahi mau ukana, e hoʻomau mau ʻia kāu ʻōnaehana faila i ka wā e hana ai iā ia iho, me ke kōkua ʻole o waho. ʻIke ʻia ʻo nā ʻano kaʻina hana "paʻi" āpau e mālama i ka lā ma nā pākaukau pākahi.

Ma nā kikowaena hui, hiki i ka mea hoʻouka ke "hele i mua" o lākou. ʻAʻole hiki i ka luna ʻōnaehana ke hoʻoholo i ka mea nāna i hoʻoweliweli iā ia. ʻO ke ala wikiwiki loa e hoʻoponopono ai i kēia pilikia ma Btrfs, ʻo ia ka hoʻihoʻi ʻana i ke ʻano o kahi lāʻau B maʻamau, ʻo ia hoʻi. hoʻolālā hou i ke ʻano disk a kākau hou i nā ʻāpana koʻikoʻi o ke code Btrfs. E lawe kēia i nā makahiki 8-10, me ka debugging, inā ua hahai pono nā mea hoʻomohala i nā ʻatikala kumu e pili ana i nā algorithms pili a me nā hoʻolālā data, a ʻaʻole i pāʻani i ka pāʻani "kelepona haʻihaʻi", e like me ka mea maʻamau (a paipai ʻia) i ka "Linux. ala”.

Maanei pono mākou e hoʻohui i ka manawa e pono ai nā mea hoʻomohala e hoʻomaopopo i kēia mau mea āpau. ʻO kēia kahi e paʻakikī ai. Eia naʻe, ʻaʻole lawa nā makahiki he 10 no lākou e hoʻomaopopo. ʻAe, a hiki i kēlā manawa ʻaʻole hiki iā ʻoe ke manaʻolana i kahi hana mana. ʻAʻole ia e hana ʻia ma ke ʻano o kahi koho kau ʻana "a ʻoe a ʻaʻole wau i ʻike e pili ana," a i ʻole ma ke ʻano o kahi ʻāpana "he mea ʻoihana wale nō" e hoʻomākaukau ai. No kēlā me kēia "hoʻoponopono" wikiwiki e hōʻike wau i kahi hiʻohiʻona hou o ka degeneration. ʻO nā kumulāʻau B kekahi o kaʻu mau kumuhana punahele, a pono wau e ʻōlelo ʻaʻole ʻae kēia mau hale i nā kūʻokoʻa me lākou iho!

Pehea wau e hoʻonoho ai i nā Btrfs noʻu iho? Ma ke ʻano he mea hiki ʻole ke kapa ʻia he ʻōnaehana faila, waiho wale ʻia. No ka mea, ma ka wehewehe ʻana, ʻo ka FS kahi subsystem OS ke kuleana no ka hoʻokele maikaʻi ʻana o ka punawai "disk space", ʻaʻole mākou i ʻike i ka hihia o Btrfs. ʻAe, e noʻonoʻo ʻoe i hele mai i ka hale kūʻai e kūʻai i kahi wati i ʻole e lohi i ka hana, a ma kahi o kahi wati ua kūʻai aku lākou iā ʻoe i kahi pahu uila me ka manawa no ka lōʻihi o 30 mau minuke. No laila, ʻoi aku ka maikaʻi o ke kūlana me Btrfs.

Ke nānā nei au ma nā papa inoa leka uila, ʻike pinepine au i ka ʻōlelo ʻana ʻaʻole pili pono ka hoʻokele pono ʻana o ka disk space ma muli o ka liʻiliʻi o nā drive. He lapuwale loa keia. Me ka loaʻa ʻole o kahi mana disk space disk kūpono, e lilo ka OS i mea palupalu a hiki ʻole ke hoʻohana. Me ka nānā ʻole i ka hiki o nā disks ma kāu mīkini.

Makemake wau e noi i ka manaʻo no ka hoʻopau ʻana i ke kākoʻo Btrfs ma RHEL.

ʻAʻohe mea kūikawā e ʻōlelo ai ma aneʻi, maopopo loa nā mea a pau. Ua loaʻa iā lākou he "ʻike ʻenehana". No laila, ʻaʻole wau i hele i kēia "nānā". Mai ʻae i kēia lepili e kau mau loa! Akā ʻaʻole hiki iā lākou ke hoʻomaka i kahi huahana hoʻolālā hemahema me ke kākoʻo piha. He ʻoihana ʻo RHEL, ʻo ia hoʻi, i kuhikuhi ʻia i nā pilina waiwai-kālā. ʻAʻole hiki iā Red Hat ke hoʻoweliweli i nā mea hoʻohana e like me kā lākou hana ma ka papa leka uila Btrfs. E noʻonoʻo wale i ke kūlana: makemake ka mea kūʻai aku i kāna kālā paʻakikī no ka disk a me ʻoe no ke kākoʻo, makemake e hoʻomaopopo i kahi i hele ai kāna wahi disk ma hope o kāna kākau ʻole ʻana i kekahi mea. He aha kāu e pane aku ai iā ia i kēia?

Eia hou aku. Loaʻa i nā mea kūʻai aku o Red Hat nā panakō nui kaulana a me nā hoʻololi. E noʻonoʻo i ka mea e hiki mai ana inā pili lākou i nā hoʻouka DoS e pili ana i ka nāwaliwali i ʻōlelo ʻia ma Btrfs. ʻO wai kou manaʻo ke kuleana o kēia? I ka poʻe e kokoke ana e kuhikuhi i ko lākou manamana lima ma ka laina o ka laikini GPL, kahi i kākau ʻia ʻaʻole kuleana o ka mea kākau i kekahi mea, e ʻōlelo koke wau: "huna ia!" E pane ʻo Red Hat, a ma ke ʻano ʻaʻole lawa! Akā ʻike wau ʻaʻole e kū nei ʻo Red Hat i kēia ʻano pilikia, hāʻawi ʻia i kā lākou hui ikaika o nā ʻenekini QA i loaʻa iaʻu ka manawa e hana kokoke ai i koʻu manawa.

No ke aha e hoʻomau ai kekahi mau hui i ke kākoʻo ʻana i nā Btrfs i kā lākou huahana ʻoihana?

E ʻoluʻolu, ʻaʻole manaʻo nui ka prefix "enterprise" ma ka inoa huahana. ʻO ka ʻoihana kahi ana o ke kuleana i hoʻokomo ʻia i ka pilina aelike me ka mea kūʻai aku. ʻIke wau i hoʻokahi ʻoihana e pili ana i ka GNU/Linux - RHEL. ʻO nā mea ʻē aʻe, mai koʻu manaʻo, ua hōʻike ʻia ma ke ʻano he ʻoihana, akā ʻaʻole hoʻokahi. A ʻo ka hope, inā he koi no kekahi mea, a laila e loaʻa mau kahi lako (i kā mākou hihia, ʻo ia ka "kākoʻo" i ʻōlelo ʻia). Loaʻa ke koi no nā mea āpau, incl. a me ka lako polokalamu hiki ʻole ke hoʻohana. Pehea i hoʻokumu ʻia ai ia koi a ʻo wai ka mea e hoʻoulu ai ia mea he kumuhana ʻē aʻe.

No laila, ʻaʻole wau e lele i kekahi manaʻo ma hope o ka lono ʻia ʻana o Facebook e kau ana i nā Btrfs ma kāna mau kikowaena. Eia kekahi, makemake wau e mālama pono i nā helu o kēlā mau kikowaena no nā kumu i luna.

No ke aha i hoʻoikaika nui ʻia ai i ka hoʻomaʻemaʻe ʻana i ka code XFS i kēia mau lā? Ma hope o nā mea a pau, i ka hoʻomaka ʻana he ʻōnaehana waihona ʻaoʻao ʻekolu kēia, a ua paʻa ka ext4 no ka manawa lōʻihi a loaʻa ka hoʻomau mai nā mana like ʻole. He aha ka hoihoi a Red Hat i XFS? Maikaʻi anei ka hoʻomohala ikaika ʻana i ʻelua ʻōnaehana faila e like me ke kumu - ext4 a me XFS?

ʻAʻole wau e hoʻomanaʻo i ka mea i hoʻoikaika i kēia. Hiki paha ke hele mai ka manaʻo mai nā mea kūʻai aku ʻo Red Hat. Ke hoʻomanaʻo nei au ua hana ʻia ka noiʻi ʻana o kēia ʻano: ma kekahi mau ʻōnaehana faila mai luna mai, ua hana ʻia kahi helu nui o nā mea ma nā pahu kiʻekiʻe o ka hanauna hou. Wahi a nā hopena, ʻoi aku ka maikaʻi o ka XFS ma mua o ext4. No laila, hoʻomaka lākou e hoʻolaha iā ia ma ke ʻano he ʻoi loa. ʻO kēlā me kēia hihia, ʻaʻole au e ʻimi i kahi mea hoʻohiwahiwa ma ʻaneʻi.

Noʻu, me he mea lā ua hoʻololi lākou i kahi awl me ke kopa. ʻAʻohe kumu o ka hoʻomohala ʻana i ka ext4 a me XFS. ʻO nā mea like a me kekahi o lākou e koho mai. ʻAʻohe mea maikaʻi e hiki mai i kēia. ʻOiai, ma ke ʻano he mau manawa i ka nui o ka hiki ke ulu, akā ʻaʻohe wahi e ulu ai. I kēia hihia, kū mai nā ʻano ulu hou ʻino, kahi e kuhikuhi ai nā mea a pau i ka manamana lima ("ʻAe, e nānā, he aha kāu e ʻike ʻole ai i kēia ola!").

Manaʻo ʻoe ua hoʻoponopono ʻia ka hihia o ka ʻae ʻana i ka papa (ma ke ʻano maikaʻi ʻole) me ka hiki ʻana mai o nā hana hoʻopunipuni ma ext4, F2FS (ʻaʻole e haʻi iā RAID ma Btrfs)?

Ma keʻano laulā, ʻo ka hoʻokomo ʻana i nā pae āpau a me ka hoʻoholo ʻana e pili ana i kā lākou hana ʻole ʻana he mea maʻamau ia o ke kulekele, a ʻaʻole wau e manaʻo e ʻōlelo i kekahi mea ma aneʻi. ʻO nā hiʻohiʻona pahuhopu o ka uhaki papa he mea liʻiliʻi ia i kekahi, akā hiki iā mākou ke noʻonoʻo i kekahi o lākou me ka hoʻohana ʻana i ka laʻana o ka uhaki "mai luna mai," ʻo ia hoʻi, ka hoʻokō ʻana i ka FS o ka hana i loaʻa i ka papa poloka. ʻO ia ʻano "hewa" e hoʻāpono ʻia me nā mea ʻokoʻa wale nō. No kēlā me kēia hihia, pono ʻoe e hōʻoia mua i ʻelua mau mea: pono maoli ia, a ʻaʻole e pōʻino ka hoʻolālā ʻana o ka ʻōnaehana ma ka hana ʻana pēlā.

No ka laʻana, ʻo ke aniani ʻana, kahi hana maʻamau no ka papa poloka, kūpono ke hoʻokō ma ka pae ʻōnaehana faila. No nā kumu like ʻole. No ka laʻana, hiki mai ka palaho ʻikepili "silent" (bit rot) ma nā disk drive. ʻO kēia ka manawa e hana pono ai ka hāmeʻa, akā ua pōʻino ʻole ka ʻikepili poloka ma lalo o ka mana o kahi quantum gamma paʻakikī i hoʻokuʻu ʻia e kahi quasar mamao, etc. ʻO ka mea ʻino loa inā lilo kēia poloka i poloka ʻōnaehana FS (superblock, bitmap block, storage tree node, etc.), no ka mea, e alakaʻi ʻia kēia i kahi kernel panic.

E ʻoluʻolu, ʻo nā aniani i hāʻawi ʻia e ka papa poloka (i kapa ʻia ʻo RAID 1) ʻaʻole e hoʻopakele iā ʻoe mai kēia pilikia. ʻAe, ʻoiaʻiʻo: pono e nānā kekahi i nā checksums a heluhelu i ka replica i ka hihia o ka hemahema? Eia kekahi, he mea kūpono ke aniani ʻaʻole wale i nā mea āpau, akā i ka metadata wale nō. Hiki ke mālama ʻia kekahi ʻikepili koʻikoʻi (no ka laʻana, nā faila hoʻokō o nā noi koʻikoʻi) ma ke ʻano he metadata. I kēia hihia, loaʻa iā lākou nā hōʻoia like o ka palekana. Maikaʻi ka hāʻawi ʻana i ka pale o nā ʻikepili i koe i nā subsystems ʻē aʻe (a i ʻole nā ​​noi mea hoʻohana) - ua hāʻawi mākou i nā kūlana kūpono no kēia.

He kuleana ko ia mau aniani "economical", a hiki ke hoʻonohonoho pono ʻia ma ka pae ʻōnaehana faila. A i ʻole, ʻo ka hoʻopiʻi ʻana i ka layering e hoʻopili nei i kahi subsystem me kahi code duplicated no ka pono o kekahi mau pono microscopic. ʻO kahi hiʻohiʻona koʻikoʻi o kēia ka hoʻokō ʻana o RAID-5 me ka hoʻohana ʻana iā FS. ʻO kēlā mau hoʻonā (RAID / LVM ponoʻī i ka ʻōnaehana faila) pepehi i ka mea hope ma nā ʻōlelo hoʻolālā. Pono e hoʻomaopopo ʻia ma ʻaneʻi ʻo ka "hoʻokomo ʻia ʻana o ke kahawai" e nā ʻano scammers kūʻai. I ka loaʻa ʻole o nā manaʻo, ua hoʻohui ʻia nā hana i hoʻokō lōʻihi ʻia ma nā pae kokoke i nā subsystems, hōʻike ʻia kēia ma ke ʻano he hiʻohiʻona hou loa a hoʻoikaika ikaika ʻia.

Ua hoʻopiʻi ʻia ʻo Reiser4 no ka uhai ʻana i nā pae "mai lalo". Ma muli o ka ʻoiaʻiʻo ʻaʻole monolithic ka ʻōnaehana faila, e like me nā mea ʻē aʻe a pau, akā modular, ua manaʻo ʻia kahi manaʻo unsubstantiated e hana ia i ka mea e hana ai ka pae ma luna (VFS).

Hiki ke kamaʻilio e pili ana i ka make ʻana o ReiserFS v3.6 a, no ka laʻana, JFS? I kēia mau lā, ʻaʻole i loaʻa iā lākou ka nānā ʻana i ke kumu. Ua kahiko anei lakou?

Maanei pono mākou e wehewehe i ke ʻano o ka make ʻana o kahi huahana lako polokalamu. Ma kekahiʻaoʻao, ua hoʻohana maikaʻiʻia lākou (ʻo ia ka mea i hanaʻia no lākou, ma hope o nā mea a pau),ʻo ia hoʻi ke ola nei lākou. Ma kekahiʻaoʻao,ʻaʻole hiki iaʻu ke'ōlelo no JFS (ʻaʻole au iʻike nui), akāʻo ReiserFS (v3) paʻakikī loa e hoʻololi i nāʻano hou (i ho'āʻoʻia ma ka hana). ʻO ia ke ʻano i ka wā e hiki mai ana nā mea hoʻomohala e hoʻolohe ʻaʻole ia, akā i nā mea maʻalahi ke hoʻololi. Mai kēia ʻaoʻao e ʻike ʻia, auwe, ua make ma nā ʻōlelo hoʻolālā. ʻAʻole wau e hoʻopunipuni i ka manaʻo o ka "moʻoʻole" i nā mea āpau. Hoʻohana maikaʻi ia, no ka laʻana, i kahi lole, akā ʻaʻole i nā huahana polokalamu. Aia ka manaʻo o ka haʻahaʻa a me ke kūlana kiʻekiʻe i kekahi mea. Hiki iaʻu ke ʻōlelo ʻoi aku ka haʻahaʻa o ReserFS v3 ma mua o Reiser4 i nā mea āpau, akā i kekahi mau ʻano o ka hana ʻoi aku ka maikaʻi ma mua o nā FS ʻē aʻe a pau.

ʻIke ʻoe e pili ana i ka hoʻomohala ʻana o FS Tux3 a me HAMMER/HAMMER2 (FS no DragonFly BSD)?

ʻAe, ʻike mākou. Ma Tux3 ua makemake au i ka ʻenehana o kā lākou mau paʻi kiʻi (ʻo ia ka mea i kapa ʻia ʻo "version pointers"), akā ma Reiser4 e hele paha mākou i kahi ala ʻē aʻe. Ua noʻonoʻo wau e pili ana i ke kākoʻo ʻana i nā kiʻi paʻi no ka manawa lōʻihi a ʻaʻole wau i hoʻoholo pehea e hoʻokō ai iā lākou no nā puke Reiser4 maʻalahi. ʻO ka mea ʻoiaʻiʻo, ʻo ka ʻenehana hōʻike "palaualelo" hou i manaʻo ʻia e Ohad Rodeh e hana wale ana no nā lāʻau B. ʻAʻole iā mākou. No kēlā mau ʻikepili i hoʻohana ʻia ma Reiesr4, ʻaʻole i wehewehe ʻia nā helu "palaualelo" - no ka hoʻolauna ʻana iā lākou, pono e hoʻoponopono i kekahi mau pilikia algorithmic, ʻaʻole i lawe ʻia e kekahi.

Wahi a HAMMER: Ua heluhelu au i kahi ʻatikala mai ka mea hana. ʻAʻole hoihoi. Eia hou, B-lāʻau. ʻAʻole manaʻolana kēia ʻano ʻikepili i ka wā kahiko. Ua haʻalele mākou iā ia i ke kenekulia i hala.

Pehea ʻoe e loiloi ai i ka ulu ʻana o ka noi no nā hui pūnaewele FS e like me CephFS/GlusterFS/etc? ʻO kēia koi ke ʻano o ka hoʻololi ʻana i nā mea nui o nā mea hoʻomohala i ka FS pūnaewele a i lawa ʻole ka nānā ʻana i ka FS kūloko?

ʻAe, ua hiki ke hoʻololi i nā mea nui. Ua stagnate ka hoʻomohala ʻana o nā ʻōnaehana faila kūloko. Auwe, paʻakikī loa ka hana ʻana i kekahi mea koʻikoʻi no nā puke kūloko a ʻaʻole hiki i nā mea a pau ke hana. ʻAʻohe mea makemake e hoʻokomo i kā lākou hoʻomohala ʻana. Ua like kēia me ka noi ʻana i kahi hui pāʻoihana e hoʻokaʻawale i ke kālā no ka noiʻi makemakika - me ka ʻole o ka hoihoi, e nīnau lākou iā ʻoe pehea e loaʻa ai ke kālā ma kahi theorem hou. I kēia manawa, ʻo kahi FS kūloko kahi mea i ʻike ʻia "ma waho o ka pahu" a "pono ​​​​e hana mau," a inā ʻaʻole ia e hana, e hoʻopiʻi ʻia ka ʻōhumu ʻole e like me: "ʻAe, he aha kā lākou manaʻo!"

No laila ka nele o ka nānā ʻana i ka FS kūloko, ʻoiai he nui ka hana ma ia wahi. A ʻae, ua huli ka poʻe a pau i ka waihona puʻupuʻu, i kūkulu ʻia ma ke kumu o nā ʻōnaehana faila kūloko. He ʻano hou loa ia i kēia manawa. ʻO ka huaʻōlelo "Big Data" ke kumu o ka adrenaline rush no nā mea he nui, e pili ana me nā hālāwai kūkā, nā papa hana, nā uku nui, etc.

Pehea ke kūpono o ka hoʻokō ʻana i ka ʻōnaehana faila pūnaewele ma ka lumi kernel ma mua o ka wahi hoʻohana?

ʻO kahi ala kūpono loa ʻaʻole i hoʻokō ʻia ma nā wahi āpau. Ma keʻano laulā, ʻo ka nīnau ma kahi o kahi e hoʻokō ʻia ai kahi ʻōnaehana faila pūnaewele he "pahi pahi ʻelua." ʻAe, e nānā kākou i kekahi laʻana. Hoʻopaʻa ka mea kūʻai i ka ʻikepili ma kahi mīkini mamao. Ua hāʻule lākou i loko o kāna ʻaoʻao huna ma ke ʻano o nā ʻaoʻao lepo. ʻO kēia ka hana no kahi ʻōnaehana waihona pūnaewele "'īpuka lahilahi" ma ka lumi kernel. A laila e noi koke ka ʻōnaehana hana iā ʻoe e kākau i kēlā mau ʻaoʻao i ka disk e hoʻokuʻu iā lākou. A laila hoʻomaka ka IO-forwarding (hoʻouna) pūnaewele FS module. Hoʻoholo ia i ka mīkini kikowaena (server node) e hele ai kēia mau ʻaoʻao.

A laila lawe ʻia ka waihona pūnaewele (a, e like me kā mākou e ʻike ai, ua hoʻokō ʻia i ka lumi kernel). Ma hope aʻe, loaʻa i ka node server kēlā ʻeke me ka ʻikepili a i ʻole metadata a aʻo i ka module waihona backend (ʻo ia hoʻi, ka FS kūloko e hana ana i ka lumi kernel) e hoʻopaʻa i kēia mau mea āpau. No laila, ua hōʻemi mākou i ka nīnau i kahi e hana ai nā modula "hoʻouna" a "loaʻa". Inā holo kekahi o ia mau modules ma kahi o ka mea hoʻohana, hiki i kēia ke alakaʻi i ka hoʻololi ʻana i ka pōʻaiapili (no ka pono e hoʻohana i nā lawelawe kernel). ʻO ka helu o ia mau hoʻololi e pili ana i nā kikoʻī hoʻokō.

Inā nui nā hoʻololi like ʻole, a laila e hoʻemi ʻia ka loaʻa ʻana o ka waihona (I/O performance). Inā hana ʻia kāu waihona hope i nā disks lohi, a laila ʻaʻole ʻoe e ʻike i kahi hāʻule nui. Akā inā loaʻa iā ʻoe nā disks wikiwiki (SSD, NVRAM, a me nā mea ʻē aʻe), a laila ua lilo ka hoʻololi pōʻaiapili i "bottleneck" a, ma ka mālama ʻana i ka hoʻololi pōʻaiapili, hiki ke hoʻonui nui ʻia ka hana. ʻO ke ala maʻamau e mālama i ke kālā ʻo ka neʻe ʻana i nā modules i loko o ka lumi kernel. No ka laʻana, ua ʻike mākou ʻo ka neʻe ʻana i ka server 9p mai QEMU i ka kernel ma ka mīkini hoʻokipa e alakaʻi i kahi piʻi ʻekolu o ka hana VirtFS.

ʻO kēia, ʻoiaʻiʻo, ʻaʻole ia he FS pūnaewele, akā hōʻike piha i ke ʻano o nā mea. ʻO ka ʻaoʻao haʻahaʻa o kēia optimization nā pilikia portability. No kekahi, he koʻikoʻi paha ka hope. No ka laʻana, ʻaʻohe modula o GlusterFS i ka kernel. Mahalo i kēia, hana ia ma nā kahua he nui, me NetBSD.

He aha nā manaʻo e hiki ai i nā FS kūloko ke hōʻaiʻē mai nā pūnaewele a me ka ʻokoʻa?

I kēia mau lā, loaʻa nā FS pūnaewele, ma ke ʻano he mau mea hoʻohui ma luna o nā FS kūloko, no laila ʻaʻole maopopo iaʻu pehea e hiki ai iā ʻoe ke hōʻaiʻē i kekahi mea mai ka hope. ʻAe, ʻoiaʻiʻo, e noʻonoʻo kākou i kahi hui o nā limahana 4, kahi e hana ai kēlā me kēia kanaka i kā lākou mea ponoʻī: hāʻawi kekahi, hoʻouna kekahi, loaʻa ke kolu, loaʻa nā hale kūʻai ʻehā. A ʻo ka nīnau, he aha ka mea e hiki ai i ka hui ke hōʻaiʻē mai kāna limahana nāna e mālama iā ia, ke kani ʻole ʻia (ua loaʻa iā ia ka mea hiki ke hōʻaiʻē iā ia no ka manawa lōʻihi).

Akā he nui nā FS kūloko e aʻo mai nā pūnaewele. ʻO ka mea mua, pono ʻoe e aʻo mai iā lākou pehea e hōʻuluʻulu ai i nā puke logical i kahi kiʻekiʻe. I kēia manawa ka mea i kapa ʻia ʻO nā ʻōnaehana faila kūloko "ʻokoʻa" e hōʻuluʻulu i nā puke loiloi me ka hoʻohana wale ʻana i ka ʻenehana "virtual device" i ʻaiʻē ʻia mai LVM (ʻo ia hoʻi ka hoʻopiʻi ʻana i ka infectious layering i hoʻokō mua ʻia ma ZFS). Ma nā huaʻōlelo ʻē aʻe, ʻo ka unuhi ʻana i nā helu helu virtual (nā helu poloka) i nā helu maoli a i hope ke hana ʻia ma kahi pae haʻahaʻa (ʻo ia hoʻi, ma hope o ka hoʻopuka ʻana o ka ʻōnaehana waihona i kahi noi I/O).

E ʻoluʻolu, ʻo ka hoʻohui ʻana a me ka wehe ʻana i nā hāmeʻa i nā puke kūpono (ʻaʻole nā ​​aniani) i hoʻonohonoho ʻia ma ka papa poloka e alakaʻi ai i nā pilikia e haʻi haʻahaʻa ai nā mea hoʻolako o ia mau "ʻano". Ke kamaʻilio nei wau e pili ana i ka fragmentation ma nā polokalamu maoli, hiki ke hōʻea i nā waiwai nui, ʻoiai ma ka polokalamu virtual ua maikaʻi nā mea āpau. Eia naʻe, kakaikahi ka poʻe i makemake i nā polokalamu virtual: makemake nā mea a pau i nā mea e hana nei ma kāu mau polokalamu maoli. Akā ʻo FS like me ZFS (a me kekahi FS i hui pū ʻia me LVM) e hana wale me nā polokalamu disk virtual (e hoʻokaʻawale i nā helu disk virtual mai waena o nā mea manuahi, e hoʻokaʻawale i kēia mau polokalamu virtual, etc.). A ʻaʻohe o lākou ʻike i ka mea e hana nei ma nā polokalamu maoli!

I kēia manawa, e noʻonoʻo ʻoe ʻaʻohe ʻāpana ʻokoʻa ma ka polokalamu virtual (ʻo ia hoʻi, hoʻokahi wale nō ʻano nui āu e noho nei ma laila), hoʻohui ʻoe i kahi disk i kāu leo ​​logical, a laila e hoʻoneʻe i kahi diski ʻē aʻe mai kāu leo ​​logical a laila rebalance. A he nui na manawa. ʻAʻole paʻakikī ke noʻonoʻo ma ka polokalamu virtual e loaʻa iā ʻoe ka nui o ka noho ʻana, akā ma nā polokalamu maoli ʻaʻole ʻoe e ʻike i kahi mea maikaʻi.

ʻO ka mea ʻino loa ʻaʻole hiki iā ʻoe ke hoʻoponopono i kēia kūlana! ʻO ka mea wale nō e hiki iā ʻoe ke hana ma aneʻi, ʻo ke noi ʻana i ka ʻōnaehana faila e defragment i ka polokalamu virtual. Akā e haʻi ʻo ia iā ʻoe he mea maikaʻi loa nā mea a pau - hoʻokahi wale nō ka nui, ʻaʻohe ʻāpana, ʻaʻole hiki ke ʻoi aku ka maikaʻi! No laila, ʻaʻole i manaʻo ʻia nā puʻupuʻu loiloi i hoʻonohonoho ʻia ma ka pae poloka no ka hoʻohui hou ʻana / wehe ʻana i nā mea hana. Ma ke ala maikaʻi, pono wale ʻoe e hōʻuluʻulu i kahi leo logical ma ka pae poloka i hoʻokahi manawa, hāʻawi iā ia i ka ʻōnaehana faila, a laila ʻaʻohe mea ʻē aʻe me ia.

Eia kekahi, ʻo ka hui pū ʻana o nā subsystems kūʻokoʻa FS + LVM ʻaʻole e ʻae i ka noʻonoʻo ʻana i ke ʻano ʻokoʻa o nā drive kahi i hōʻuluʻulu ʻia ai nā puke loiloi. ʻOiaʻiʻo, e manaʻo paha ʻoe i hōʻuluʻulu i kahi leo kūpono mai HDD a me nā mea paʻa. Akā, e koi ka mea mua i ka defragmentation, a ʻaʻole e hana ka hope. No ka mea hope, pono ʻoe e hoʻopuka i nā noi hoʻolei, akā no ka mea mua, ʻaʻole, etc. Eia naʻe, ma kēia hui ʻana he mea paʻakikī loa ka hōʻike ʻana i kēlā koho.

E hoʻomaopopo ma hope o ka hana ʻana i kāu LVM ponoʻī ma ka ʻōnaehana faila, ʻaʻole i ʻoi aku ka maikaʻi o ke kūlana. Eia kekahi, ma ka hana ʻana i kēia, hoʻopau maoli ʻoe i ka manaʻolana o ka hoʻomaikaʻi ʻana iā ia i ka wā e hiki mai ana. He ino loa keia. Hiki ke ola i nā ʻano hoʻokele like ʻole ma ka mīkini hoʻokahi. A inā ʻaʻole ʻokoʻa ka ʻōnaehana faila ma waena o lākou, ʻo wai lā?

Aia kekahi pilikia ma ke kali ʻana i ka mea i kapa ʻia. ʻO nā ʻōnaehana faila "Write-Anywhere" (ʻo ia pū kekahi me Reiser4, inā ʻoe i kuhikuhi i ke kumu hoʻohālike kūpono i ka wā o ka mauna). Pono nā ʻōnaehana faila e hāʻawi i nā mea hana defragmentation i ʻike ʻole ʻia i ko lākou mana. A ʻaʻole kōkua ka luna haʻahaʻa haʻahaʻa ma ʻaneʻi, akā hele wale i ke ala. ʻO ka ʻoiaʻiʻo ʻo ia me kēlā manakia, e mālama kāu FS i kahi palapala ʻāina o nā poloka manuahi o hoʻokahi wale nō mea hana - kahi virtual. No laila, hiki iā ʻoe ke defragment wale i kahi hāmeʻa virtual. ʻO ke ʻano kēia e hana ana kāu defragmenter no ka manawa lōʻihi a lōʻihi ma kahi ākea nui o nā helu virtual.

A inā he nui kāu mau mea hoʻohana e hana ana i nā overwrites, a laila e hoʻemi ʻia ka hopena maikaʻi o ia defragmenter i ʻole. E hoʻomaka ana kāu ʻōnaehana e lohi, a pono ʻoe e pelu wale i kou mau lima i mua o ka hōʻailona hōʻino ʻia "haʻihaʻi hoʻolālā". ʻO kekahi mau defragmenters e holo ana ma ka wahi helu wahi like e hoʻopilikia wale kekahi i kekahi. He mea ʻokoʻa loa ia inā mālama ʻoe i kāu palapala ʻāina o nā poloka manuahi no kēlā me kēia hāmeʻa maoli. E hoʻohālikelike pono kēia i ke kaʻina hana defragmentation.

Akā hiki ke hana ʻia kēia inā loaʻa iā ʻoe kahi mana hoʻokele logical kiʻekiʻe. ʻAʻole i loaʻa mua nā ʻōnaehana faila kūloko me ia mau mana (ma ka liʻiliʻi, ʻaʻole wau ʻike e pili ana iā lākou). ʻO nā ʻōnaehana waihona pūnaewele wale nō (no ka laʻana ʻo GlusterFS) i loaʻa nā mana like. ʻO kekahi hiʻohiʻona koʻikoʻi ʻo ia ka hoʻohana pono ʻana o ka volume integrity check (fsck). Inā mālama ʻoe i kāu palapala ʻāina kūʻokoʻa o nā poloka manuahi no kēlā me kēia subvolume, a laila hiki ke hoʻohālikelike pono ʻia ke kaʻina hana no ka nānā ʻana i ka leo logical. I nā huaʻōlelo ʻē aʻe, ʻoi aku ka maikaʻi o nā puke loiloi me nā luna kiʻekiʻe.

Eia kekahi, me nā mana leo haʻahaʻa haʻahaʻa ʻaʻole hiki iā ʻoe ke hoʻonohonoho i nā kiʻi paʻi piha. Me nā ʻōnaehana faila like me LVM a me ZFS, hiki iā ʻoe ke lawe i nā paʻi kiʻi kūloko wale nō, akā ʻaʻole nā ​​kiʻi paʻi honua. Hiki i nā paʻi kiʻi kūloko iā ʻoe ke hoʻihoʻi koke i nā hana faila maʻamau. A ʻaʻohe mea nāna e hoʻihoʻi i nā hana me nā puke kūpono (hoʻohui a wehe i nā mea hana). E nānā kākou i kēia me kekahi laʻana. I kekahi manawa, inā loaʻa iā ʻoe kahi leo lokahi o nā mea ʻelua A a me B i loaʻa nā faila 100, lawe ʻoe i kahi kiʻi o ka ʻōnaehana S a laila hana i nā faila he haneli.

Ma hope o kēlā, hoʻohui ʻoe i ka mea C i kāu leo, a hoʻohuli hope i kāu ʻōnaehana i ka snapshot S. Nīnau: ʻEhia ka nui o nā faila a me nā mea hana i loko o kāu leo ​​loina ma hope o ka hoʻihoʻi ʻana iā S? Aia he 100 mau faila, e like me kāu i manaʻo ai, akā aia 3 mau mea hana - ʻo ia nā mea like A, B a me C, ʻoiai i ka manawa i hana ʻia ai ke kiʻi paʻi, ʻelua wale nō mau mea i loko o ka ʻōnaehana (A a me B. ). ʻAʻole i ʻōwili hou ka hana hoʻohui C, a inā ʻoe e wehe i ka hāmeʻa C mai ke kamepiula, e hōʻino ia i kāu ʻikepili, no laila ma mua o ka holoi ʻana, pono ʻoe e hana mua i kahi hana pipiʻi e wehe i ka hāmeʻa mai ka rebalance logical volume, ka mea. e hoʻopuehu i nā ʻikepili a pau mai ka mea C a i nā polokalamu A a me B. Akā inā i kākoʻo kāu FS i nā kiʻi paʻi honua, ʻaʻole koi ʻia ka hoʻoponopono hou ʻana, a ma hope o ka hoʻihoʻi koke ʻana iā S, hiki iā ʻoe ke wehe palekana i ka mea C mai ke kamepiula.

No laila, maikaʻi nā kiʻi paʻi honua no ka mea e ʻae iā ʻoe e pale i ka wehe ʻana i ke kumu kūʻai (hoʻohui) o kahi hāmeʻa mai ka leo logical (i ka volume logical) me ka nui o ka ʻikepili (ʻoiaʻiʻo, inā ʻoe e hoʻomanaʻo e "paʻi" i kāu ʻōnaehana. i ka manawa kūpono). E hoʻomanaʻo wau iā ʻoe ʻo ka hana ʻana i nā kiʻi paʻi a me ka hoʻihoʻi ʻana i ka ʻōnaehana faila iā lākou he hana koke. E kū mai paha ka nīnau: pehea lā e hiki ai ke hoʻihoʻi koke i kahi hana ma ka leo logical i lawe iā ʻoe i ʻekolu lā? Akā hiki nō! Inā ua hoʻolālā pololei ʻia kāu ʻōnaehana faila. Ua loaʻa iaʻu ka manaʻo o ia mau "3D snapshots" i ʻekolu mau makahiki i hala aku nei, a i ka makahiki i hala ua patent au i kēia ʻenehana.

ʻO ka mea hou aʻe e aʻo ai nā FS kūloko mai nā pūnaewele ʻo ia ka mālama ʻana i nā metadata ma nā ʻaoʻao ʻokoʻa e like me ka mālama ʻana o nā FS pūnaewele iā lākou ma nā mīkini ʻokoʻa (nā mea i kapa ʻia nā kikowaena metadata). Aia nā noi e hana nui me ka metadata, a hiki ke hoʻonui nui ʻia kēia mau noi ma ke kau ʻana i ka metadata ma nā mea hoʻopaʻa waiwai kiʻekiʻe. Me ka hui pū ʻana o FS+LVM, ʻaʻole hiki iā ʻoe ke hōʻike i kēlā koho: ʻAʻole ʻike ʻo LVM i ka mea ma ka poloka āu i hāʻawi ai iā ia (ʻikepili ma laila a i ʻole metadata).

ʻAʻole e loaʻa iā ʻoe ka pōmaikaʻi nui mai ka hoʻokō ʻana i kāu LVM haʻahaʻa haʻahaʻa i ka FS i hoʻohālikelike ʻia me ka hui pū ʻana o FS + LVM, akā ʻo ka mea hiki iā ʻoe ke hana maikaʻi loa ʻo ia ka hoʻopili ʻana i ka FS i hiki ʻole ke hana me kāna code. ʻO ZFS a me Btrfs, ka mea i holo wikiwiki me nā polokalamu virtual, he mau hiʻohiʻona maopopo loa ia o ka pepehi ʻana i ka ʻōnaehana layering i ka ʻōnaehana ma nā ʻōlelo hoʻolālā. Eia kekahi, ʻaʻohe pono e hoʻokomo i kāu LVM haʻahaʻa haʻahaʻa i ka ʻōnaehana faila. Akā, pono ʻoe e hōʻuluʻulu i nā hāmeʻa i loko o nā puke loiloi i kahi kiʻekiʻe, e like me ka hana ʻana o kekahi mau ʻōnaehana waihona pūnaewele me nā mīkini ʻokoʻa (nā nodes mālama). ʻOiaʻiʻo, hana lākou i kēia me ka hoʻopailua ma muli o ka hoʻohana ʻana i nā algorithms maikaʻi ʻole.

ʻO nā hiʻohiʻona o nā algorithms weliweli loa ʻo ia ka unuhi DHT ma ka ʻōnaehana faila GlusterFS a me ka mea i kapa ʻia ʻo CRUSH map ma ka ʻōnaehana faila Ceph. ʻAʻohe o nā algorithms aʻu i ʻike ai i ʻoluʻolu iaʻu ma ke ʻano o ka maʻalahi a me ka scalability maikaʻi. No laila, pono iaʻu e hoʻomanaʻo i ka algebra a noʻu iho i nā mea a pau. I ka makahiki 2015, ʻoiai e hoʻāʻo ana me nā puʻupuʻu ma luna o nā hana hash, ua hele mai au me ka patent i kahi mea kūpono iaʻu. I kēia manawa hiki iaʻu ke ʻōlelo ua kūleʻa ka hoʻāʻo e hoʻokō i kēia mau mea a pau. ʻAʻole wau i ʻike i nā pilikia me ka scalability i ke ala hou.

ʻAe, e koi ʻia kēlā me kēia subvolume i kahi ʻano ʻokoʻa e like me kahi superblock i ka hoʻomanaʻo. He mea weliweli loa kēia? Ma keʻano laulā, ʻaʻole maopopo iaʻu ka mea e "hoʻolapalapa i ka moana" a hana i nā puke loiloi o nā haneli haneli a ʻoi aku paha nā mea hana ma kahi mīkini kūloko. Inā hiki i kekahi ke wehewehe mai iaʻu, e mahalo nui wau. I kēia manawa, noʻu, he kūʻai bullshit kēia.

Pehea ka hoʻololi ʻana i ka subsystem device block kernel (no ka laʻana, ke ʻano o blk-mq) i pili i nā koi no ka hoʻokō FS?

ʻAʻohe o lākou hopena. ʻAʻole maopopo iaʻu ka mea e hiki mai ana ma ka papa poloka e pono ai ke hoʻolālā i kahi FS hou. ʻAʻole maikaʻi loa ka pilina pili o kēia mau subsystem. Mai ka ʻaoʻao o ka mea hoʻokele, pono e hoʻopili ʻia ka FS e ka ʻike ʻana o nā ʻano mea hoʻokele hou, kahi e hoʻoponopono mua ʻia ai ka papa poloka, a laila ka FS (no ka reiser4 ʻo ia ke ʻano o nā plugins hou).

ʻO ka puka ʻana mai o nā ʻano media hou (no ka laʻana, SMR, a i ʻole ka ubiquity o SSDs) ʻo ia ke ʻano o nā pilikia hou no ka hoʻolālā ʻōnaehana faila?

ʻAe. A he mau mea hoʻoikaika maʻamau kēia no ka hoʻomohala ʻana o FS. Hiki i nā pilikia ke ʻokoʻa a me ka manaʻo ʻole. No ka laʻana, ua lohe au i nā drive kahi i hilinaʻi nui ʻia ka wikiwiki o kahi hana I/O i ka nui o kahi ʻāpana ʻikepili a me kāna offset. Ma Linux, kahi i hiki ʻole ai ka nui o ka poloka FS ma mua o ka nui o ka ʻaoʻao, ʻaʻole e hōʻike ʻia kēlā drive i kona mana piha ma ke ʻano maʻamau. Eia naʻe, inā i hoʻolālā pololei ʻia kāu ʻōnaehana faila, a laila aia kahi manawa e loaʻa ai nā mea hou aku.

ʻEhia ka poʻe e hana nei me ka code Reiser4 ma waho ou?

ʻOi aku ka liʻiliʻi ma mua o kaʻu makemake, akā ʻaʻole wau i ʻike i ka hemahema o nā kumuwaiwai. ʻOi aku koʻu hauʻoli i ka wikiwiki o ka hoʻomohala ʻana o Reiser4. ʻAʻole wau e "holo lio" - ʻaʻole kēia ka wahi kūpono. Ma ʻaneʻi, "inā ʻoe e hoʻokele mālie, e hoʻomau ʻoe!" ʻO kahi ʻōnaehana faila hou ka ʻōnaehana kernel paʻakikī loa, ʻo nā hoʻoholo hoʻolālā hewa e hiki ke hoʻopau i nā makahiki o ka hana kanaka.

Ma ka hāʻawi ʻana i nā mea manawaleʻa e hoʻokō i kekahi mea, ke hōʻoiaʻiʻo mau nei au e alakaʻi maoli nā hana i ka hopena kūpono, hiki ke koi ʻia no nā pono koʻikoʻi. E like me kāu e hoʻomaopopo ai, ʻaʻole hiki ke loaʻa nā hōʻoia he nui i ka manawa hoʻokahi. I ka manawa like, ʻaʻole hiki iaʻu ke kū i nā "kiʻi" e hoʻolaha hilahila ʻole i "nā hiʻohiʻona" o nā polokalamu ʻike ʻole hiki ke hoʻohana ʻia, e hoʻopunipuni ana i nā haneli o nā mea hoʻohana a me nā mea hoʻomohala, a ma ka manawa like e noho a ʻakaʻaka i nā piko kernel.

Ua hōʻike aku kekahi hui i ka makemake e kākoʻo i ka hoʻomohala ʻana o Reiser4?

ʻAe, aia nā manaʻo like, incl. a mai kahi mea kūʻai nui. Akā no kēia, pono wau e neʻe i ka ʻāina ʻē. ʻO ka mea pōʻino, ʻaʻole wau he 30 mau makahiki, ʻaʻole hiki iaʻu ke haʻalele a haʻalele e like me kēlā i ka puʻupuʻu mua.

He aha nā hiʻohiʻona e nalowale nei mai Reiser4?

ʻAʻohe hana "resize" no nā puke maʻalahi, e like me ka mea i loaʻa ma ReiserFS(v3). Eia hou, ʻaʻole e ʻeha nā hana faila me ka hae DIRECT_IO. A laila, makemake wau e hiki ke hoʻokaʻawale i kahi leo i "semantic subvolumes", ʻaʻole i paʻa ka nui, a hiki ke kau ʻia e like me nā puke kūʻokoʻa. He maikaʻi kēia mau pilikia no nā poʻe hoʻomaka e makemake e ho'āʻo i ko lākou lima ma ka "mea maoli."

A ʻo ka mea hope loa, makemake wau e loaʻa i nā puke loiloi pūnaewele me ka hoʻokō maʻalahi a me ka hoʻokele (ua ʻae nā algorithm hou i kēia). Akā ʻo ka mea a Reiser4 ʻaʻole loa e loaʻa ʻo RAID-Z, scrubs, free space caches, 128-bit variables a me nā mea kūʻai ʻole ʻē aʻe i kū mai i ke kua o ka hapa o nā manaʻo i waena o nā mea hoʻomohala o kekahi mau faila.

Hiki ke hoʻokō ʻia nā mea āpau e pono ai e nā plugins?

Inā mākou e kamaʻilio wale ma ke ʻano o nā interface a me nā plugins (modules) e hoʻokō iā lākou, a laila ʻaʻole nā ​​​​mea āpau. Akā inā hoʻokomo pū ʻoe i nā pilina ma kēia mau pilina, a laila, ma waena o nā mea ʻē aʻe, e loaʻa iā ʻoe nā manaʻo o nā polymorphism kiʻekiʻe, hiki iā ʻoe ke loaʻa. E noʻonoʻo ʻoe i ka hypothetically froze i kahi mea-oriented runtime system, hoʻololi i ka waiwai o ke kuhikuhi kuhikuhi e kuhikuhi i kekahi plugin e hoʻokō i ka like X interface, a laila unfroze ka ʻōnaehana i hoʻomau i ka hoʻokō.

Inā ʻaʻole ʻike ka mea hoʻohana hope i kēlā "hoʻololi," a laila ʻōlelo mākou he zero-order polymorphism ka ʻōnaehana ma ka interface X (a i ʻole he heterogeneous ka ʻōnaehana i ka interface X, ʻo ia ka mea like). Inā ʻaʻole i loaʻa iā ʻoe kahi hoʻonohonoho o nā interface wale nō, akā loaʻa pū kekahi mau pilina ma luna o lākou (interface graph), a laila hiki iā ʻoe ke hoʻolauna i nā polymorphisms o nā kauoha kiʻekiʻe, e hōʻike ana i ka heterogeneity o ka ʻōnaehana i loko o ka "kaiapuni" o kekahi interface. Ua hoʻolauna wau i kahi hoʻohālikelike i ka wā ma mua, akā, ʻaʻole naʻe i hiki.

No laila, me ke kōkua o nā plugins a me nā polymorphism kiʻekiʻe, hiki iā ʻoe ke wehewehe i kekahi hiʻohiʻona i ʻike ʻia, a me ka "manaʻo" i nā mea i ʻōlelo ʻole ʻia. ʻAʻole hiki iaʻu ke hōʻoiaʻiʻo i kēia, akā ʻaʻole wau i ʻike i kahi kumu hoʻohālikelike. Ma keʻano laulā, ua hoʻomanaʻo mai kēia nīnau iaʻu i ka "Erlangen Program" a Felix Klein. I kekahi manawa ua hoʻāʻo ʻo ia e pani i nā geometry āpau ma ke ʻano he lālā o ka algebra (ʻo ia hoʻi, ka manaʻo hui).

I kēia manawa i ka nīnau nui - pehea e hele ai nā mea me ka hoʻolaha ʻana o Reiser4 i ke kumu nui? Aia kekahi mau puke e pili ana i ka hoʻolālā ʻana o kēia ʻōnaehana faila āu i kamaʻilio ai ma ka nīnauele hope loa? Pehea ke kūpono o kēia nīnau mai kou manaʻo?

Ma keʻano laulā, ua noi mākou e hoʻokomo i ka lālā nui noʻekolu makahiki. ʻAʻole i pane ʻia ka ʻōlelo hope a Reiser ma ka pae ākea kahi i hana ʻia ai ka noi huki. No laila, ʻaʻole no mākou nā nīnau hou aʻe. ʻAʻole maopopo iaʻu ke kumu e pono ai mākou e "hoʻohui" i kahi ʻōnaehana hana kikoʻī. Ma Linux, ʻaʻole i hui like ke kukui e like me ka wedge. No laila, aia kahi waihona ʻokoʻa kahi e loaʻa ai kekahi mau lālā lālā no nā OS ʻē aʻe. ʻO ka mea makemake e hiki ke clone i ke awa kūpono a hana i nā mea āu e makemake ai me ia (i loko o ka laikini, ʻoiaʻiʻo). ʻAe, inā ʻaʻole pono kekahi, ʻaʻole ia koʻu pilikia. I kēia manawa, manaʻo wau e noʻonoʻo i ka nīnau o ka "hoʻolaha i ka kernel Linux nui" i hoʻoholo ʻia.

He kūpono nā paʻi puke e pili ana i ka hoʻolālā FS, akā i kēia manawa ua loaʻa iaʻu ka manawa no kaʻu mau hopena hou, aʻu i manaʻo ai he mea kiʻekiʻe loa. ʻO kekahi mea ʻē aʻe he kanaka makemakika wau, a ma ka makemakika he hōʻuluʻulu manaʻo o nā theorems a me ko lākou mau hōʻoia. ʻO ka paʻi ʻana i kekahi mea ma laila me ka ʻole o ka hōʻoiaʻiʻo he hōʻailona ia o ka ʻono ʻino. Inā hōʻoia a hōʻole wau i kekahi ʻōlelo e pili ana i ka hoʻolālā ʻana o ka FS, a laila ʻo ka hopena he mau puʻupuʻu e paʻakikī loa ke komo ʻana. ʻO wai ka mea e pono ai? ʻO ia paha ke kumu e hoʻomau ai nā mea a pau i kona ʻano kahiko - ke kumu kumu a me nā ʻōlelo ʻana iā ia.

He aha ka mea hou ma Reiser4 i nā makahiki i hala iho nei?

ʻO ke kūpaʻa lōʻihi i kali ʻia ua hoʻokō hope loa. ʻO kekahi o nā mea hope loa i hōʻike ʻia he bug i alakaʻi i nā papa kuhikuhi "undeleteable". ʻO ka paʻakikī, ʻo ia wale nō ka mea i ʻike ʻia ma ke kua o ka inoa hash collisions a me kahi wahi o nā moʻolelo papa kuhikuhi ma kahi kumu lāʻau. Eia nō naʻe, ʻaʻole hiki iaʻu ke ʻōlelo aku iā Reiser4 no ka hana ʻana: no kēia pono ʻoe e hana i kekahi hana me ka launa pū me nā luna hoʻonohonoho ʻōnaehana.

Ua hoʻokō mākou i kā mākou manaʻo lōʻihi - nā hiʻohiʻona kālepa like ʻole. Ma mua, ua holo ʻo Reiser4 i hoʻokahi kumu hoʻohālike Macdonald-Reiser paʻakikī. Ua hana kēia i nā pilikia hoʻolālā. ʻO ka mea nui, ʻaʻole hiki ke kiʻi paʻi kiʻi i loko o ia ʻano hoʻohālike - e hoʻopōʻino ʻia lākou e kahi mea atomic i kapa ʻia ʻo "OVERWRITE SET". Kākoʻo ʻo Reiser4 i ʻekolu mau hiʻohiʻona kālepa. Ma kekahi o ia mau mea (Write-Anywhere), ʻo ka mea atomic OVERWRITE SET he mau ʻaoʻao ʻōnaehana wale nō (nā kiʻi o nā bitmaps disk, a me nā mea ʻē aʻe), ʻaʻole hiki ke "kiʻi ʻia" (ka pilikia moa a me ka hua manu).

No laila hiki ke ʻike ʻia nā kiʻi i kēia manawa ma ke ala maikaʻi loa. Ma kekahi kŘkohu kālepa, hele wale nā ​​ʻaoʻao i hoʻololi ʻia i ka OVERWRITE SET (ʻo ia hoʻi, ʻo ia ka puke pai maʻemaʻe). ʻO kēia kumu hoʻohālike no ka poʻe i hoʻopiʻi e pili ana i ka hoʻokaʻawale wikiwiki ʻana o nā ʻāpana Reiser4. I kēia manawa ma kēia kumu hoʻohālike, ʻaʻole ʻoi aku ka wikiwiki o kāu ʻāpana ma mua o ReiserFS (v3). ʻO nā hiʻohiʻona ʻekolu i loaʻa, me kekahi mau hoʻopaʻa ʻana, e hōʻoiaʻiʻo i ka atomicity o nā hana, akā hiki ke hoʻohana ʻia nā kumu hoʻohālike me ka nalowale o ka atomicity a me ka mālama ʻana i ka pono o ka pauku. Hiki ke hoʻohana ʻia ia mau hiʻohiʻona no nā ʻano noi āpau (nā waihona waihona, a me nā mea ʻē aʻe), i lawe mua i kekahi o kēia mau hana. He mea maʻalahi loa ka hoʻohui ʻana i kēia mau hiʻohiʻona iā Reiser4, akā ʻaʻole wau i hana, no ka mea ʻaʻohe mea i nīnau mai iaʻu, a ʻaʻole pono wau.

Ua ʻike ʻia nā loiloi metadata a ua hoʻohui hou wau iā lākou me nā aniani "economical" (mea paʻa ʻole). Inā hāʻule ka checksum o kekahi poloka, heluhelu koke ʻo Reiser4 i ka poloka pili mai ka mea hana kope. E hoʻomaopopo ʻaʻole hiki iā ZFS a me Btrfs ke hana i kēia: ʻaʻole ʻae ka hoʻolālā. Ma laila ʻoe e holo ai i kahi kaʻina hana scanning background kūikawā i kapa ʻia ʻo "scrub" a kali a hiki i ka poloka pilikia. Kapa ʻia nā mea papahana i kēlā mau hanana "kākau."

A ʻo ka mea hope loa, ua ʻike ʻia nā helu loiloi heterogeneous, e hāʻawi ana i nā mea āpau i ZFS, Btrfs, ka papa poloka, a me nā hui pū ʻana o FS+LVM ma ke kumu ʻaʻole hiki ke hāʻawi - ka hoʻohālikelike like, O(1) disk address allocator, transparent data migration ma waena o nā subvolumes. Loaʻa i ka mea hope kahi mea hoʻohana. I kēia manawa hiki iā ʻoe ke neʻe maʻalahi i ka ʻikepili wela loa i ka hoʻokele hana kiʻekiʻe loa ma kāu leo.

Eia kekahi, hiki ke holoi koke i nā ʻaoʻao haumia i kēlā kaʻa, a laila e wikiwiki wikiwiki i nā noi e kapa pinepine ʻia fsync(2). ʻIke wau ʻaʻole hāʻawi ʻia ka hana ʻana o ka papa block, i kapa ʻia ʻo bcache, i ke kūʻokoʻa o ka hana. Hoʻokumu ʻia nā puke loiloi hou i kaʻu algorithms (aia nā patent e pili ana). Ua paʻa loa ka polokalamu, hiki ke hoʻāʻo, ana i ka hana, etc. ʻO ka pilikia wale nō ʻo ia no kēia manawa pono ʻoe e hoʻoponopono lima i ka hoʻonohonoho leo a mālama iā ia ma kahi.

I kēia manawa ua hiki iaʻu ke hoʻokō i kaʻu mau manaʻo ma ka pakeneka 10. Akā naʻe, ua lanakila wau i ka mea aʻu i manaʻo ai he mea paʻakikī loa - ka hoʻohui ʻana i nā puke loiloi me kahi kaʻina uila e hana i nā hana i hoʻopaneʻe ʻia ma reiser4. Aia kēia i loko o ka lālā hoʻokolohua "format41".

Ua hala anei ʻo Reiser4 i nā xfstests?

ʻO ka liʻiliʻi loa ia iaʻu i ka wā e hoʻomākaukau ai au i ka hoʻokuʻu hope loa.

Hiki paha ke hana iā Reiser4 i kahi pūnaewele (cluster) FS me ka hoʻohana ʻana i nā plugins?

Ua hiki, a hiki pono! Inā ʻoe e hana i kahi faila pūnaewele e pili ana i kahi ʻōnaehana faila kūloko i hoʻolālā maikaʻi ʻia, e mahalo nui ʻia ka hopena! I nā FS pūnaewele hou, ʻaʻole au ʻoluʻolu i ka hiki ʻana mai o kahi pae waihona backend, i hoʻokō ʻia me ka hoʻohana ʻana i kekahi FS kūloko. ʻAʻole kūpono ka noho ʻana o kēia pae. Pono ka FS pūnaewele e launa pū me ka papa poloka, a mai noi i ka FS kūloko e hana i nā faila lawelawe ʻē aʻe!

Ma keʻano laulā, ʻo ka hoʻokaʻawale ʻana i nā ʻōnaehana faila i ka ʻāina a me ka pūnaewele mai ka mea ʻino. Ua ala mai ka hemahema o nā algorithms i hoʻohana ʻia i kanakolu makahiki i hala aku nei, a ma kahi o ia mea ʻaʻohe mea i manaʻo ʻia. ʻO kēia ke kumu o ka ʻike ʻia ʻana o ka nui o nā ʻāpana polokalamu pono ʻole (nā lawelawe like ʻole, etc.). Ma ke ala maikaʻi, pono hoʻokahi wale nō FS ma ke ʻano o kahi modula kernel a me kahi hoʻonohonoho o nā mea hoʻohana i hoʻokomo ʻia ma kēlā me kēia mīkini - kahi pūpū cluster. ʻO kēia FS he kūloko a me ka pūnaewele. A ʻaʻohe mea ʻē aʻe!

Inā ʻaʻohe mea e hana me Reiser4 ma Linux, makemake wau e hāʻawi i kahi FS no FreeBSD (manaʻo mai kahi nīnauele mua: "... FreeBSD ... he kumu kula ... e ʻike i kahi ʻōlelo maʻamau me nā mea hoʻomohala") ?

No laila, e like me kā mākou i ʻike ai, ua hana maikaʻi nā mea āpau me Linux: aia kahi awa Reiser4 hana ʻokoʻa no ia ma ke ʻano o kahi lālā kumu o kā mākou waihona. ʻAʻole au i poina e pili ana iā FreeBSD! Hāʻawi! Mākaukau wau e hana pū me ka poʻe i ʻike maikaʻi i loko o FreeBSD. Ma ke ala: ʻo kaʻu makemake nui e pili ana i ko lākou kaiāulu ʻo ia nā hoʻoholo i hana ʻia e kahi ʻaha kūkā hou o nā loea kūʻokoʻa, ʻaʻohe mea pili i ka hoʻopunipuni aupuni o hoʻokahi kanaka mau.

Pehea ʻoe e helu ai i ke kaiāulu mea hoʻohana Linux i kēia lā? Ua lilo i "pop" hou?

Ma muli o ke ʻano o kaʻu hana, paʻakikī loa iaʻu ke loiloi i kēia. ʻO ka hapa nui o nā mea hoʻohana e hele mai iaʻu me nā hōʻike bug a me nā noi e hoʻoponopono i ka ʻāpana. Nā mea hoʻohana e like me nā mea hoʻohana. ʻOi aku ka naʻauao o kekahi, ʻoi aku ka liʻiliʻi o kekahi. Ua mālama like ʻia nā kānaka a pau. ʻAe, inā hōʻole ka mea hoʻohana i kaʻu mau ʻōlelo aʻo, a laila e kala mai iaʻu: e hoʻokomo ʻia ke kauoha hoʻowahāwahā ma koʻu ʻaoʻao pū kekahi.

Hiki ke wānana i ka hoʻomohala ʻana o nā ʻōnaehana faila no nā makahiki ʻelima a ʻumi paha? He aha kāu e manaʻo ai i nā pilikia nui e kū ai nā mea hoʻomohala FS?

ʻAe, ʻaʻole paʻakikī ka hana ʻana i kēlā wānana. ʻAʻohe hoʻomohala ʻana o nā ʻōnaehana faila ma ka upstream no ka manawa lōʻihi. Hoʻokumu wale ʻia ke ʻano o ia mea. Ua holo nā mea hoʻomohala o nā ʻōnaehana faila kūloko i nā pilikia e pili ana i ka hoʻolālā maikaʻi ʻole. Pono e hoʻopaʻa ʻia ma ʻaneʻi. ʻAʻole wau e noʻonoʻo i ka mea i kapa ʻia ʻo "storage", "licking" a me ka porting of code e hoʻomohala a hoʻomohala. A ʻaʻole wau e hoʻokaʻawale i ka hoʻomaopopo ʻole i kapa ʻia ʻo "Btrfs" ma ke ʻano he hoʻomohala no nā kumu aʻu i wehewehe mua ai.

ʻO kēlā me kēia pākuʻi e hoʻonui wale i kāna mau pilikia. Pono. a he mau ʻano "euanelio" like ʻole no lākou "hana nā mea a pau." ʻO ke kumu, he poʻe keiki kula a me nā haumāna e lele ana i nā haʻawina. E noʻonoʻo wale: hana ia iā ia, akā ʻaʻole hana ka polopeka. He ʻano adrenaline rush kēia! Mai koʻu manaʻo, ʻo ka pōʻino nui loa i hana ʻia e nā "mea hana" i holo wikiwiki i ka "screw" i nā hiʻohiʻona nani o Btrfs ma nā ʻano papa āpau e like me systemd, docker, etc. - ua like kēia me nā metastases.

E ho'āʻo kāua e hana i ka wānana no ʻelima a ʻumi makahiki. Ua helu pōkole wau i nā mea a mākou e hana ai ma Reiser4. ʻO ka luʻi nui no nā mea hoʻomohala FS kūloko mai uka mai (ʻae, ua lilo ia) ʻo ka hiki ʻole ke hana i kahi hana kūpono no ka uku. Me ka ʻole o nā manaʻo ma ke kahua o ka mālama ʻana i ka ʻikepili, e hoʻomau lākou i ka hoʻāʻo e hoʻopili i kēia mau mea pōʻino VFS, XFS a me ext4. ʻO ke kūlana me VFS he mea hoʻohenehene loa ia e pili ana i kēia kāʻei kua, e hoʻomanaʻo ana i ka hana hou ʻana o kahi hale ʻaina ʻaʻohe mea kuke, a ʻaʻohe mea kuke.

I kēia manawa ʻo ka code VFS, me ka ʻole o nā kūlana, laka i kekahi mau ʻaoʻao hoʻomanaʻo i ka manawa like a kono i ka FS kumu e hana ma luna o lākou. Ua hoʻolauna ʻia kēia e hoʻomaikaʻi i ka hana a Ext4 ma nā hana holoi, akā e like me ka maʻalahi o ka hoʻomaopopo ʻana, ʻaʻole kūpono kēlā laka like ʻole me nā hiʻohiʻona kālepa holomua. ʻO ia, ʻaʻole hiki iā ʻoe ke hoʻohui i ke kākoʻo no kekahi ʻōnaehana faila akamai i ka kernel. ʻAʻole maopopo iaʻu ke ʻano o ke kūlana ma nā wahi ʻē aʻe o Linux, akā e pili ana i nā ʻōnaehana faila, ʻaʻole hiki ke hoʻokō ʻia kekahi hoʻomohala ma ʻaneʻi me ke kulekele a Torvalds i hoʻomaʻamaʻa ʻia (ua kipaku ʻia nā papahana hoʻonaʻauao, a me nā scammers e ʻaʻole maopopo i ka lāʻau B, hāʻawi ʻia nā hōʻaiʻē pau ʻole o ka hilinaʻi). No laila, ua hoʻonohonoho ʻia kahi papa no ka pohō lohi. ʻOiaʻiʻo, e hoʻāʻo lākou me ko lākou ikaika āpau e hoʻolilo iā ia ma ke ʻano he "hoʻomohala."

Eia kekahi, ʻo nā "mālama" o nā ʻōnaehana faila, me ka ʻike ʻaʻole ʻoe e loaʻa nui mai ka "mālama" wale nō, e hoʻāʻo i ko lākou lima i kahi ʻoihana ʻoi aku ka maikaʻi. ʻO kēia, ma ke ʻano he lula, nā ʻōnaehana faila a me ka virtualization. E lawe paha lākou i ka ZFS maʻamau ma kahi ʻē aʻe kahi i kū ʻole ai. Akā, e like me nā FS a pau mai ka uka, ua like ia me kahi lāʻau Makahiki Hou: inā hiki iā ʻoe ke kau i kekahi mau mea liʻiliʻi ma luna, a laila ʻaʻole hiki iā ʻoe ke hoʻonui i ka hohonu. Ke ʻae nei au he hiki ke kūkulu i kahi ʻōnaehana ʻoihana koʻikoʻi e pili ana iā ZFS, akā no ka mea ke kūkākūkā nei mākou i ka wā e hiki mai ana, hiki iaʻu ke haʻi kaumaha wale ʻo ZFS ʻaʻohe manaʻolana ma kēia ʻano: me kā lākou mau polokalamu virtual, ua ʻoki nā kāne i ka oxygen. no lakou iho a me na hanauna e hiki mai ana no ka ulu hou ana. ʻO ZFS kahi mea i hala. A ʻaʻole ʻo ext4 a me XFS i ka lā ma mua o nehinei.

He mea kūpono ke haʻi ʻokoʻa e pili ana i ka manaʻo sensational o "Linux file system of next generation". He papahana kālai'āina a kūʻai aku kēia i hana ʻia no ka manawa kūpono, no laila e ʻōlelo ai, e "pin i ka wā e hiki mai ana o nā ʻōnaehana faila" ma Linux ma hope o nā kikoʻī kikoʻī. ʻO ka ʻoiaʻiʻo ʻo Linux ka mea "no ka leʻaleʻa". Akā i kēia manawa he mīkini hana kālā. Hana ʻia lākou ma nā mea āpau. No ka laʻana, he mea paʻakikī loa ka hana ʻana i kahi huahana polokalamu maikaʻi, akā ua ʻike lōʻihi nā "mea hoʻomohala" akamai ʻaʻole pono e hoʻopaʻa i nā mea āpau: hiki iā ʻoe ke kūʻai aku i nā lako polokalamu ʻole i hoʻolaha ʻia a hoʻolaha ʻia ma nā ʻano lehulehu āpau. nā hanana - ʻo ka mea nui e loaʻa i nā kiʻi paheʻe he mau "ʻano".

He kūpono nā ʻōnaehana faila no kēia, no ka mea hiki iā ʻoe ke kūʻai palekana no nā makahiki he ʻumi ma ka hopena. ʻAe, inā hoʻopiʻi kekahi i ka nele o kēia hopena, a laila ʻaʻole maopopo ʻo ia i kekahi mea e pili ana i nā ʻōnaehana faila! Hoʻomanaʻo kēia i kahi pyramid kālā: aia ma luna ka poʻe hoʻokalakupua i hoʻomaka i kēia haunaele, a ʻo ka poʻe liʻiliʻi i "laki": "hoʻihoʻi lākou i nā ʻāpana," i.e. loaʻa kālā no ka hoʻomohala ʻana, loaʻa kahi hana i uku maikaʻi ʻia ma ke ʻano he mana, "hōʻike" i nā ʻaha kūkā, etc.

Ma hope aʻe e hele mai ka poʻe "pōʻino": e helu lākou i nā poho, e hana i nā hopena o ka lawe ʻana i kahi huahana lako polokalamu hiki ʻole ke hoʻohana i ka hana, "etc. He nui aku o lakou. ʻAe, aia ma ke kumu o ka pyramid he nui o nā mea hoʻomohala "ʻike" i nā code pono ʻole. ʻO lākou ka poʻe nui loa, no ka mea, ʻaʻole hiki ke hoʻihoʻi ʻia ka manawa pau ʻole. He mea maikaʻi loa ia mau pyramid iā Torvalds a me kāna mau hoa. A ʻo ka nui o kēia mau pyramid, ʻoi aku ka maikaʻi no lākou. No ka hānai ʻana i kēlā mau pyramid, hiki ke lawe ʻia kekahi mea i loko o ke kumu. ʻOiaʻiʻo, ma ka lehulehu ke ʻōlelo nei lākou he ʻokoʻa. Akā, ʻaʻole au e hoʻokolokolo ma ka ʻōlelo, akā ma ka hana.

No laila, "ʻo ka wā e hiki mai ana o nā ʻōnaehana faila ma Linux" kahi mea i hoʻolaha nui ʻia, akā ʻaʻole hiki ke hoʻohana ʻia nā polokalamu. Ma hope o nā Btrfs, me kahi kūlana kiʻekiʻe, e lawe ʻia ka wahi o ia "hopena" e Bcachefs, ʻo ia kahi hoʻāʻo ʻē aʻe e hele i ka papa poloka Linux me kahi ʻōnaehana faila (he laʻana maikaʻi ʻole ke lele). A he aha ka mea maʻamau: aia nā pilikia like me Btrfs. Ua manaʻo wau i kēia no ka manawa lōʻihi, a laila ʻaʻole hiki iaʻu ke pale a nānā i ke code - he ʻoiaʻiʻo!

ʻO nā mea kākau o Bcachefs a me Btrfs, i ka hana ʻana i kā lākou FS, hoʻohana ikaika i nā kumu o nā poʻe ʻē aʻe, me ka ʻike liʻiliʻi e pili ana iā lākou. Hoʻomanaʻo loa ke kūlana i ka pāʻani o nā keiki "kelepona i haki." A hiki iaʻu ke noʻonoʻo pehea e hoʻokomo ʻia ai kēia code i ka kernel. ʻOiaʻiʻo, ʻaʻohe mea e ʻike i nā "rake" (e hehi nā mea a pau ma hope). Ma hope o ka nui o nā quibbles e pili ana i ke ʻano o ke code, nā hoʻopiʻi ʻana i nā hewa ʻole, a me nā mea ʻē aʻe, e hana ʻia kahi hopena e pili ana i ka "ʻoiaʻiʻo" o ka mea kākau, pehea ʻo ia e "hana" me nā mea hoʻomohala ʻē aʻe, a pehea ka holomua o kēia mau mea āpau. alaila kuai lilo aku i na hui.

ʻAʻole hoihoi ka hopena i kekahi. He iwakālua makahiki i hala aku nei, ua hoihoi paha au, akā, i kēia manawa, ua ʻokoʻa nā nīnau: e hiki anei ke hoʻoikaika i kēia i mea e hoʻohana ʻia ai kekahi poʻe i loko o nā makahiki he ʻumi e hiki mai ana. A, auwe, ʻaʻole ia he mea maʻamau ka noʻonoʻo e pili ana i ka hopena hopena.

Ma keʻano laulā, makemake nui wau e hoʻomaka i ka hoʻomaka ʻana e hana hou i kāu ʻōnaehana faila mai ka wā ʻōpala. No ka mea, ʻaʻole lawa nā hoʻopukapuka kālā koʻikoʻi e kiʻi i kahi mea hoʻokūkū i nā makahiki he ʻumi. ʻOiaʻiʻo, ke kamaʻilio nei wau e pili ana i nā papahana koʻikoʻi, ʻaʻole e pili ana i nā mea i manaʻo ʻia e "hoʻokuʻu ʻia" i loko o ka kernel. No laila, ʻo kahi ala ʻoi aku ka maikaʻi o ka hōʻike ʻana iā ʻoe iho ʻo ke komo ʻana i nā hanana maoli, e like me mākou. ʻO kēia, ʻoiaʻiʻo, ʻaʻole maʻalahi ke hana - akā ʻo kēia ka hihia me kekahi papahana kiʻekiʻe.

ʻO ka mea mua, pono ʻoe e lanakila kūʻokoʻa i ka pilikia aʻu e hāʻawi ai. Ma hope o ka manaʻo ʻana i ke koʻikoʻi o kāu mau manaʻo, e hoʻomaka wau e kōkua. ʻO ka mea maʻamau, hoʻohana wale mākou i kā mākou hana ponoʻī. ʻO nā mea ʻokoʻa he algorithms kaomi a me kekahi mau hana hash. ʻAʻole mākou e hoʻouna i nā mea hoʻomohala e hele i nā hālāwai kūkā, a laila ʻaʻole mākou e noho a hui pū i nā manaʻo o nā poʻe ʻē aʻe ("paha paha ka mea e hiki mai"), e like me ka mea maʻamau i ka hapa nui o nā hoʻomaka.

Hoʻomohala mākou i nā algorithm āpau iā mākou iho. Makemake au i kēia manawa i nā ʻano algebraic a me ka hui pū ʻana o ka ʻepekema mālama ʻikepili. ʻO ka mea kūikawā, nā kahua palena, asymptotics, hōʻoia o nā like ʻole. Aia kekahi hana no nā mea polokalamu maʻamau, akā pono wau e aʻo koke iā ʻoe: ʻaʻole mālama ʻia nā manaʻo āpau e "nānā i kahi FS ʻē aʻe a hana like". E hele pū nō hoʻi i laila nā ʻāpana e pili ana i ka hoʻohui ʻana me Linux ma o VFS.

No laila, ʻaʻohe o mākou rake, akā ʻike mākou i kahi e pono ai mākou e neʻe, a ke hilinaʻi nei mākou ʻo kēia kuhikuhi ka mea kūpono. ʻAʻole i hiki mai kēia ʻike ma ke ʻano he mane mai ka lani mai. E hoʻomanaʻo wau iā ʻoe he 29 mau makahiki o ka hoʻomohala ʻana ma hope o mākou, ʻelua ʻōnaehana faila i kākau ʻia mai ka wā ʻōpala. A me ka helu like o nā pono hoʻihoʻi ʻikepili. A he nui kēia!

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka