Btrfs

Kaip suskaidyti Btrfs failų sistemą

Kaip suskaidyti Btrfs failų sistemą

„Btrfs“ yra „Copy-on-Write“ (CoW) failų sistema. Dideli failai saugomi keliais duomenų kiekiais; ir kai šie dideli failai modifikuojami, modifikuojami dydžiai nukopijuojami į naujus, tuščius failus kitoje saugojimo įrenginio vietoje ir modifikuojami naujoje vietoje. Tada didelių failų apimtys vėl susiejamos, kad nurodytų atnaujintus. Senieji dydžiai niekada nepašalinami akimirksniu.

Štai kaip „Btrfs“ failų sistemos „Copy-on-Write“ (CoW) funkcija sukelia fragmentaciją. Suskaidymas reiškia, kad didelių failų duomenų apimtys yra išsibarsčiusios visame saugojimo įrenginyje. Jie nėra momentiniai. Taigi, failų sistemos našumas (skaitymo / rašymo greitis) gali būti sumažintas.

Norėdami išspręsti šią problemą, būtina kiekvieną kartą defragmentuoti Btrfs failų sistemą. Šiame straipsnyje parodyta, kaip defragmentuoti „Btrfs“ failų sistemą.

Santrumpos

Šiame straipsnyje vartojamos šios santrumpos (trumposios formos):

Būtinos sąlygos

Norėdami išbandyti šiame straipsnyje pateiktus pavyzdžius:

Turiu 20 GB HDD SDB mano „Ubuntu“ kompiuteryje. Sukursiu „Btrfs“ failų sistemą HDD SDB.

$ sudo lsblk -e7

Pastaba: Jūsų HDD / SSD greičiausiai turės kitokį pavadinimą nei mano, taip pat ir skaidiniai. Taigi, nuo šiol būtinai pakeiskite juos savo.

Galite sukurti „Btrfs“ failų sistemą savo HDD / SSD diske (be skaidymo), jei turite atsarginį HDD / SSD. Taip pat galite sukurti skaidinį savo HDD / SSD ir sukurti „Btrfs“ failų sistemą.

Jei reikia pagalbos diegiant „Btrfs“ failų sistemą „Ubuntu“, peržiūrėkite straipsnį „Btrfs“ diegimas ir naudojimas „Ubuntu 20“.04 LTS.

Jei reikia pagalbos diegiant „Btrfs“ failų sistemą „Fedora“, peržiūrėkite straipsnį „Btrfs“ diegimas ir naudojimas „Fedora 33“.

„Btrfs“ failų sistemos kūrimas

„Btrfs“ failų sistemą galite sukurti savo HDD / SSD diske (nepaskirstytame) arba HDD / SSD skaidinyje.

Norėdami sukurti Btrfs failų sistemą SDB HDD (visas HDD, be skaidinių) ir suteikite jam failų sistemos etiketę duomenis, paleiskite šią komandą:

$ sudo mkfs.btrfs -L duomenys / dev / sdb

Dabar „Btrfs“ failų sistema turėtų būti sukurta SDB HDD.

Sukurkite katalogą / duomenys norėdami prijungti ką tik sukurtą „Btrfs“ failų sistemą naudodami šią komandą:

$ sudo mkdir -v / data

Norėdami prijungti Btrfs failų sistemą, sukurtą SDB HDD / duomenys kataloge, vykdykite šią komandą:

$ sudo mount / dev / sdb / data

Dabar „Btrfs“ failų sistema turėtų būti įdiegta, kaip matote žemiau esančiame ekrano kopijoje:

$ df -h / duomenys

Defragmentuoti „Btrfs“ failų sistemą rankiniu būdu

Kaip matote toliau pateiktoje ekrano kopijoje, aš nukopijavau du failus Btrfs failų sistemoje, sumontuotoje / duomenys katalogas parodyti Btrfs failų sistemos fragmentavimo procesą:

$ ls -lh / duomenys

Galite suskaidyti vieną failą arba visą dalinį tūrį / katalogą rekursyviai.

Norėdami suskaidyti vieną failą / data / ubuntu-20.04.1-live-server-amd64.iso, vykdysime šią komandą:

$ sudo btrfs failų sistemos defragmentas -vf / data / ubuntu-20.04.1-live-server-amd64.iso

Failas / data / ubuntu-20.04.1-live-server-amd64.iso turėtų būti suskaidytas.

Norėdami suskaidyti kiekvieną failą ar katalogą / duomenys kataloge rekursyviai, vykdykite šią komandą:

$ sudo btrfs failų sistemos defragmentas -rvf / duomenys

Kaip matote, visi / duomenys katalogas yra suskaidytas.

Lygiai taip pat, jei turėtumėte apatinį tūrį / duomenys / osimages, tada galėtumėte defragmentuoti visus / duomenys / osimages suburum rekursyviai su šia komanda:

$ sudo btrfs failų sistemos defragmentas -rvf / data / osimages

„Btrfs“ failų sistemos glaudinimas defragmentuojant

„Btrfs“ failų sistema leidžia suspausti failus, kai juos fragmentuojate.

Norėdami suskaidyti visus failus į / duomenys katalogą ir suspauskite juos ZLIB suspaudimo algoritmą tuo pačiu metu, paleiskite defragmentavimo komandą naudodami -czlib parinktį taip:

$ sudo btrfs failų sistemos defragmentas -rvf -czlib / data

Norėdami suskaidyti visus failus į / duomenys katalogą ir suspausti juos ZSTD suspaudimo algoritmą tuo pačiu metu, paleiskite defragmentavimo komandą naudodami -czstd parinktį taip:

$ sudo btrfs failų sistemos defragmentas -rvf -czstd / duomenys

Norėdami suskaidyti visus failus į / duomenys katalogą ir suspauskite juos LZO suspaudimo algoritmą tuo pačiu metu, paleiskite defragmentavimo komandą naudodami -clzo parinktį taip:

$ sudo btrfs failų sistemos defragmentas -rvf -clzo / data

Failai, esantys / duomenys katalogą reikia suskaidyti ir suspausti tuo pačiu metu.

Tokiu pačiu būdu galite suskaidyti ir suspausti „Btrfs“ tūrio failus.

Automatiškai suskaidyti „Btrfs“ failų sistemą

Įjungimo metu galite įjungti automatinį defragmentavimą savo „Btrfs“ failų sistemoje. Ši „Btrfs“ failų sistemos funkcija automatiškai suskaidys visus jūsų „Btrfs“ failų sistemos failus.

Norėdami prijungti Btrfs failų sistemą, sukurtą SDB HDD / duomenys katalogą su įjungtu automatiniu defragmentavimu įkrovos metu, turite pridėti Btrfs failų sistemos įrašą / etc / fstab failą.

Pirmiausia suraskite Btrfs failų sistemos, sukurtos SDB HDD:

$ sudo blkid / dev / sdb

Kaip matote, Btrfs failų sistemos UUID sukurtas SDB HDD yra 60afc092-e0fa-4b65-81fd-5dfd7dd884de.

Jums bus kitaip. Taigi, nuo šiol būtinai pakeiskite jį savo.

Atidaryk / etc / fstab failą su nano teksto redaktorius:

$ sudo nano / etc / fstab

Pridėkite šią eilutę prie pabaigos / etc / fstab failas:

UUID = 60afc092-e0fa-4b65-81fd-5dfd7dd884de / data btrfs autodefrag 0 0

Baigę paspauskite + X paskui Y ir išsaugoti / etc / fstab failą.

Kad pakeitimai įsigaliotų, perkraukite kompiuterį naudodami šią komandą:

$ sudo perkrauti

Kaip matote, Btrfs failų sistema sukurta SDB HDD yra sumontuotas ant / duomenys katalogas su automatiniu defragmentavimu.

„Btrfs“ failų sistemos fragmentavimo problemos

Nors gali atrodyti, kad defragmentavimas pagerina failų sistemos našumą, yra keletas problemų, susijusių su „Btrfs“ failų sistemos defragmentavimu.

Kadangi „Btrfs“ yra „Copy-on-Write“ (CoW) failų sistema, kad suprastumėte problemas, susijusias su „Btrfs“ failų sistemos defragmentavimu, turite suprasti „Btrfs“ failų sistemos „Copy-on-Write“ funkciją.

Tarkime, kad turite didelį failą (failas1), kuriame naudojama 100 „Btrfs“ failų sistemos versijų (jas galite laikyti failų blokais). Jei sukursite kitą to didelio failo kopiją (failas2) toje pačioje „Btrfs“ failų sistemoje pamatysite, kad nėra naudojama papildoma vieta diske. Taip yra todėl, kad failai yra identiški, o kiekvieno failo 100 apimčių yra vienodi. Taigi, „Btrfs“ failų sistemoje abiem failams naudojami vienodi mastai.

Figūra 1: failas1 ir failas2 yra identiški ir naudojasi tuo pačiu „Btrfs“ failų sistemos kiekiu, kad sutaupytų vietos diske

Tarkime, jūs pakeitėte vieną iš didelio failo kopijų (failas2). Modifikacija turi pakeisti 10 iš 100 mastų. „Btrfs“ failų sistema nukopijuos reikiamus 10 dydžių kitoje nenaudojamoje vietoje (tarkim,, e101-e110) ir pakeiskite juos. Kai pakeitimai bus įrašyti į diską, „Btrfs“ failų sistema iš naujo susies apimtis, kad pakeitimai atsispindėtų dideliame faile. Procesas parodytas paveikslėlyje:

2 paveikslas: 10 mastai keičiami failas2. Taigi, apimtys yra susietos Btrfs failų sistemoje.

Iš 1 ir 2 paveikslų galite suprasti, kaip veikia „Copy-on-Write“ (CoW) ir kaip „Btrfs“ failų sistema naudoja „Copy-on-Write“ (CoW), kad sutaupytų vietos diske.

Dabar, kai žinote, kaip veikia „Btrfs“ failų sistemos funkcija „Rašyti ant rašymo“ (CoW), suprasite problemas, susijusias su „Btrfs“ failų sistemos defragmentavimu.

  1. Defragmentuojant failus, perkeliami „Btrfs“ duomenų kiekiai ir bandoma juos sulyginti vieną po kito. Taigi, failo kopijų nuorodos „Copy-on-Write“ nutrūksta. Tai padidins nereikalingus duomenų kiekius, taip pat Btrfs failų sistemos, kuri anksčiau buvo išsaugota dalijantis duomenų apimtis tarp identiškų (arba beveik identiškų) failo kopijų, disko naudojimą.
  2. Jei „Btrfs“ apimtyje yra kelios momentinės nuotraukos, fragmentuojant fragmentą, bus nutrauktos „Copy on-Write“ nuorodos tarp subtūrio ir momentinių nuotraukų. Tai padidins Btrfs failų sistemos disko naudojimą.
  3. Jei naudojate „Btrfs“ failų sistemą didelėms duomenų bazėms ar virtualios mašinos vaizdams (VM duomenims / diskams laikyti), failų sistemos defragmentavimas taip pat neigiamai paveiks failų sistemos našumą.

Išvada

Šiame straipsnyje jūs sužinojote, kaip defragmentuoti vieną failą ir failus, esančius kataloge / subtūryje, rekursyviai naudojant Btrfs failų sistemą. Jūs taip pat sužinojote, kaip įjungti automatinį defragmentavimą Btrfs failų sistemoje prijungimo metu. Galiausiai straipsnyje aptartos kelios problemos, susijusios su „Btrfs“ failų sistemos defragmentavimu.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...
„Microsoft Sculpt Touch“ belaidžio pelės apžvalga
Neseniai skaičiau apie „Microsoft Sculpt Touch“ belaidę pelę ir nusprendė ją nusipirkti. Kurį laiką naudojęs, nusprendžiau pasidalinti savo patirtimi....