Bcachefs 1.33: uzlabota diagnostika, reāllaika metrika un Btree optimizācija

Galvenie punkti:
  • Detalizēti kļūdu ziņojumi: paskaidrojiet cēloni, veidu (tieši/nepārprotami) un risinājumu.
  • bcachefs fs top tagad parāda pārsūtīšanas ātrumus reāllaikā.
  • Btree mezglu asinhronā sapludināšana, lai uzlabotu veiktspēju slodzes apstākļos
  • Jaunas opcijas mount_trusts_udev un writeback_timeout.
  • Ievērojama goto samazināšana kodā (no 2500 līdz 600), gatavojoties Rust ienākšanai.
bcachefs

Bcachefs ir kopēšanas un rakstīšanas failu sistēma operētājsistēmām, kuru pamatā ir Linux.

Pirms dažām dienām Kent Overstreet paziņoja par Bcachefs 1.33.0 izlaišanu — jaunu failu sistēmas versiju, kas ievieš būtiskas strukturālas izmaiņas datu pārvaldībā un tās pirmkoda arhitektūrā.

Šis atjauninājums veidojas par vienu no nozīmīgākajiem pēdējo divu gadu laikā, koncentrējoties uz metadatu integritāti un C koda bāzes modernizēšanu.

"Saskaņošana": jauna ēra datu integritātei

Visievērojamākā jaunā funkcija, kas raksturota kā būtiskākā izmaiņa pēdējo divu gadu laikā, ir saskaņošanas funkcijas (rebalance_v2) ieviešana . Šis jaunais mehānisms aizstāj veco "pārbalansēšanas" sistēmu un novērš vienu no tās galvenajiem ierobežojumiem: sistēma tagad var pārvaldīt un pārvietot ne tikai lietotāju datus, bet arī failu sistēmas metadatus.

Rebalance_v2 darbojas proaktīvi un automātiski. Ja masīvam tiek pievienots jauns disks vai tiek mainītas redundances opcijas, Bcachefs nekavējoties sāks replicēt un labot visus bojātos datus vai metadatus, izmantojot atsevišķus indeksus, lai noteiktu prioritātes kritiskajām darbībām. Tas nodrošina sistēmas integritātes saglabāšanu pat intensīvas apkopes laikā.

Koda tīrīšana un rūsas sagatavošana

Zem pārsega 1.33.0 versija ievieš ievērojamu C koda pārstrukturēšanu, lai padarītu to drošāku un saderīgāku ar turpmāku ieviešanu valodā. RūsaIzstrādātājs ir veicis dziļu tīrīšanu, samazinot paziņojumu skaitu. goto no 2.500 līdz tikai 600, kas ievērojami vienkāršo programmas loģisko plūsmu.

Turklāt ir ieviesti jauni makro, piemēram, DARRAY() y try()Tie ir izstrādāti, lai atdarinātu Rust un C++ dinamisko vektoru uzvedību un kļūdu apstrādi. Tas ne tikai modernizē pašreizējo kodu, bet arī atvieglos pārnesamību un samazinās atmiņas kļūmju virsmu nākotnē.

Uzlabota diagnostika un uzglabāšanas elastība

Paturot prātā sistēmas administrēšanu, šī versija ievērojami uzlabo kļūdu ziņojumu skaidrību . Bcachefs tagad var atšķirt un paziņot, vai kļūme ir radusies programmatūras kļūdas vai fiziskas aparatūras problēmas dēļ, pat iesakot nepieciešamos atkopšanas pasākumus. Tas ir svarīgi, lai izvairītos no nepareizām diagnozēm, kurās par diska kļūmi tiek vainota failu sistēma.

Šī caurspīdīgums aptver vairākus līmeņus:

  • Detalizētas I/O kļūdas: Kad bloku slānis ziņo par kļūmi, Bcachefs tagad pārsūta konkrēto kodu (piemēram, BLK_STS_IOERR), palīdzot noteikt, vai vaininieks ir fiziskais disks.
  • Montāžas kļūdas: Ja trūkst ierīču sējuma apkopošanai, sistēma tagad norāda precīzi, kura vienība trūkst, parādot tās nosaukumu un modeli, pamatojoties uz pēdējo reizi, kad tā tika redzēta.
  • Kļūdu biežuma ierobežojumi: Ir nodalītas robežas starp "mīkstajām" (programmatūras) un "aparatūras" (aparatūras) kļūdām, nodrošinot, ka nelielu kļūdu plūsma nemaskē kritisku diska kļūmi.

Turklāt komanda bcachefs fs top Tas ir uzlabojies. Iekšējie skaitītāji tagad rāda datu pārsūtīšanas ātrumus, nevis tikai statiskus skaitļus, kas ievērojami atvieglo notikumu (piemēram, data_update_fail) ar reāllaika veiktspējas kritumiem.

Btrees optimizācijas un jaunas montāžas iespējas

Pateicoties izmaiņām B-koka pārvaldībā, ir uzlabota veiktspēja lielas slodzes apstākļos. Tukšo mezglu apvienošana tagad notiek asinhroni, novēršot rakstīšanas bufera sastrēgumus. Turklāt ir pievienota papildu atkopšanas caurlaide. merge_btree_nodes, lai manuāli optimizētu koka struktūru, ja nepieciešams.

Vēl viena ļoti praktiska papildu funkcija ir iespēja ielādēt failu sistēmu ar konfigurāciju replicas=2 uz viena diskaTas ļauj lietotājiem sākt ar vienu disku, zinot, ka sistēmai "ir jābūt" redundanci; tiklīdz tiek pievienots otrs disks, Bcachefs automātiski replicē datus, neprasot sarežģītu manuālu iejaukšanos.

Visbeidzot, ir vērts pieminēt, ka jaunajai versijai, kas jau ir pieejama tādām izplatījumiem kā Debian, Fedora, Arch Linux un NixOS, ir nepieciešams Linux kodols 6.16 vai jaunāks, un tā tiek izplatīta divās pamatpakotnēs: kodola modulī (bcachefs-kernel-dkms) un lietotāja rīkos (bcachefs-tools).


Pievienot kā vēlamo avotu pakalpojumā Google