Pag-promote ng mga Bcachef sa Linux Kernel

Si Kent Overstreet, ang may-akda ng BCache SSD block device caching system, na bahagi ng Linux kernel, ay nagbubuod ng mga resulta ng trabaho sa pag-promote ng Bcachefs file system sa kanyang talumpati sa LSFMM 2023 conference (Linux Storage, Filesystem, Memory Management & BPF Summit). sa pangunahing komposisyon ng Linux kernel at nagsalita tungkol sa mga plano para sa karagdagang pagpapaunlad ng FS na ito. Noong Mayo, isang na-update na hanay ng mga patch na may pagpapatupad ng Bcachefs FS ay iminungkahi para sa pagsusuri at pagsasama sa pangunahing komposisyon ng Linux kernel. Ang FS Bcachefs ay umuunlad nang humigit-kumulang 10 taon. Ang kahandaan para sa pagsusuri sa pagpapatupad ng mga Bcachef bago isama sa core ay inihayag sa katapusan ng 2020, at ang kasalukuyang bersyon ng mga patch ay isinasaalang-alang ang mga komento at pagkukulang na natukoy sa nakaraang pagsusuri.

Ang layunin ng pagpapaunlad ng Bcachefs ay maabot ang antas ng XFS sa pagganap, pagiging maaasahan at scalability, habang nagbibigay ng mga karagdagang feature na likas sa Btrfs at ZFS, tulad ng pagsasama ng maraming device sa isang partition, mga layout ng multi-layer na storage, pagtitiklop (RAID 1/10), caching, transparent na data compression (LZ4, gzip at ZSTD mode), state slices (snapshots), integrity verification sa pamamagitan ng checksums, ang kakayahang mag-imbak ng Reed-Solomon error correction code (RAID 5/6), naka-encrypt na storage ng impormasyon (ChaCha20 at Poly1305 ay ginamit). Sa mga tuntunin ng pagganap, ang Bcachefs ay nangunguna sa Btrfs at iba pang mga file system batay sa mekanismo ng Copy-on-Write, at nagpapakita ng pagganap na malapit sa Ext4 at XFS.

Sa mga pinakabagong tagumpay sa pagbuo ng Bcachef, ang pagpapapanatag ng pagpapatupad ng mga snapshot na magagamit para sa pagsusulat ay nabanggit. Kung ikukumpara sa Btrfs, ang mga snapshot sa Bcachefs ay mas mahusay na nasusukat at libre mula sa mga problemang likas sa Btrfs. Sa pagsasagawa, ang gawain ng mga snapshot ay nasubok kapag nag-aayos ng mga backup ng MySQL. Ang Bcachefs ay gumawa din ng maraming trabaho upang mapabuti ang scalability - ang file system ay gumanap nang maayos sa pagsubok sa 100 TB storage, at ang Bcachefs ay inaasahang maipapatupad sa 1 PB storage sa malapit na hinaharap. Ang isang bagong nocow mode ay idinagdag upang hindi paganahin ang "copy-on-write" (nocow) na mekanismo. Sa panahon ng tag-araw, plano nilang dalhin ang pagpapatupad ng mga error sa pagwawasto ng mga code at RAIDZ sa isang matatag na estado, pati na rin ang paglutas ng mga problema na may mataas na pagkonsumo ng memorya kapag pinanumbalik at sinusuri ang mga file system gamit ang fsck utility.

Sa mga plano para sa hinaharap, nabanggit ang pagnanais na gamitin ang Rust na wika sa pagbuo ng Bcachefs. Ayon sa may-akda ng Bcachefs, gusto niyang mag-code, hindi mag-debug ng code, at ngayon nakakabaliw na magsulat ng code sa C kapag may mas magandang opsyon. Ang kalawang ay kasangkot na sa Bcachefs sa pagpapatupad ng ilan sa mga utility ng user-space. Bukod dito, ang ideya ay napipisa upang unti-unting ganap na muling isulat ang mga Bcachef sa Rust, dahil ang paggamit ng wikang ito ay makabuluhang nakakatipid sa oras ng pag-debug.

Tulad ng para sa paglipat ng mga Bcachef sa mainstream ng Linux kernel, ang proseso ng pag-aampon ay maaaring maantala dahil sa malaking sukat ng mga pagbabago (2500 patch at humigit-kumulang 90 libong linya ng code), na mahirap suriin. Upang mapabilis ang pagsusuri, iminungkahi ng ilang developer na hatiin ang serye ng patch sa mas maliit at lohikal na pinaghihiwalay na mga bahagi. Sa panahon ng talakayan, binigyang-pansin din ng ilang mga kalahok ang pagbuo ng proyekto ng isang developer at ang panganib na ang code ay maaaring iwanang hindi mapanatili kung may nangyari sa developer nito (dalawang empleyado ng Red Hat ang interesado sa proyekto, ngunit ang kanilang trabaho ay nananatiling limitadong pag-aayos ng bug).

Ang mga Bcachef ay binuo gamit ang mga teknolohiyang nasubok na sa pagbuo ng Bcache block device, na idinisenyo upang i-cache ang access sa mabagal na hard drive sa mga mabilis na SSD (kasama sa kernel mula noong inilabas 3.10). Ginagamit ng Bcachefs ang mekanismo ng Copy-on-Write (COW), kung saan ang mga pagbabago ay hindi humahantong sa pag-overwriting ng data - ang bagong estado ay isinusulat sa isang bagong lokasyon, pagkatapos nito ay nagbabago ang kasalukuyang tagapagpahiwatig ng estado.

Ang isang tampok ng Bcachefs ay suporta para sa multi-layer na koneksyon ng mga drive, kung saan ang storage ay binubuo ng ilang mga layer - ang pinakamabilis na drive (SSDs) ay konektado sa ilalim na layer, na ginagamit upang i-cache ang madalas na ginagamit na data, at ang tuktok na layer ay bumubuo. mas malawak at mas murang mga disk na nag-iimbak ng hindi gaanong hinihinging data. Maaaring gamitin ang writeback caching sa pagitan ng mga layer. Maaaring dynamic na idagdag at ihiwalay ang mga drive sa isang partition nang hindi naaabala ang paggamit ng file system (awtomatikong nagli-migrate ang data).

Pinagmulan: opennet.ru

Magdagdag ng komento