Btrfs

Kako defragmentirati datotečni sustav Btrfs

Kako defragmentirati datotečni sustav Btrfs

Btrfs je datotečni sustav Copy-on-Write (CoW) zasnovan na opsegu. Velike se datoteke pohranjuju u više podataka; a kada se ove velike datoteke izmijene, ekstenzivi koji se mijenjaju kopiraju se u nove, prazne ekstenzije na drugom mjestu uređaja za pohranu i mijenjaju se na novom mjestu. Zatim se ekstenzivi velikih datoteka ponovno povežu kako bi usmjerili na ažurirane ekstenzije. Stari se ekstenzivi nikada ne uklanjaju trenutno.

Na ovaj način značajka Copy-on-Write (CoW) Btrfs datotečnog sustava uzrokuje fragmentaciju. Fragmentacija znači da su opsezi podataka velikih datoteka raspršeni po cijelom uređaju za pohranu. Oni nisu trenutni. Dakle, izvedba (brzina čitanja / pisanja) datotečnog sustava može biti smanjena.

Da biste riješili ovaj problem, potrebno je svako malo defragmentirati datotečni sustav Btrfs. Ovaj vam članak pokazuje kako defragmentirati datotečni sustav Btrfs.

Kratice

Skraćenice (kratki oblici) korištene u ovom članku su kako slijedi:

Preduvjeti

Da biste isprobali primjere sadržane u ovom članku:

Imam tvrdi disk od 20 GB sdb na mom Ubuntu stroju. Stvorit ću Btrfs datotečni sustav na tvrdom disku sdb.

$ sudo lsblk -e7

Bilješka: Vaš HDD / SSD vjerojatno će imati drugačije ime od mog, pa tako i particije. Dakle, od sada ih svakako zamijenite svojim.

Možete stvoriti Btrfs datotečni sustav na tvrdom disku / SSD-u (bez particije) ako imate rezervni HDD / SSD. Također možete stvoriti particiju na tvrdom disku / SSD-u i tamo stvoriti Btrfs datotečni sustav.

Za pomoć pri instaliranju Btrfs datotečnog sustava u Ubuntu, pogledajte članak Instaliranje i korištenje Btrfs na Ubuntu 20.04 LTS.

Za pomoć s instaliranjem datotečnog sustava Btrfs u Fedori pogledajte članak Instalacija i upotreba Btrfs-a na Fedori 33.

Stvaranje Btrfs datotečnog sustava

Možete stvoriti Btrfs datotečni sustav na vašem HDD / SSD (neparticioniranom) ili na vašoj HDD / SSD particiji.

Da biste stvorili Btrfs datotečni sustav na sdb HDD (cijeli HDD, bez particija) i dajte mu oznaku datotečnog sustava podaci, pokrenite sljedeću naredbu:

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

Sada bi se trebao stvoriti datotečni sustav Btrfs na sdb HDD.

Stvorite direktorij /podaci za montiranje Btrfs datotečnog sustava koji ste upravo kreirali pomoću sljedeće naredbe:

$ sudo mkdir -v / podaci

Za montiranje Btrfs datotečnog sustava stvorenog na sdb HDD na /podaci direktorija, pokrenite sljedeću naredbu:

$ sudo mount / dev / sdb / data

Datotečni sustav Btrfs sada bi trebao biti montiran, kao što možete vidjeti na snimci zaslona u nastavku:

$ df -h / podataka

Ručna defragmentacija datotečnog sustava Btrfs

Kao što možete vidjeti na snimci zaslona u nastavku, kopirao sam dvije datoteke u datotečni sustav Btrfs montiran na /podaci direktorij za demonstraciju procesa defragmentacije datotečnog sustava Btrfs:

$ ls -lh / podaci

Možete rekurzivno defragmentirati jednu datoteku ili cijeli subvolumen / direktorij.

Da biste defragmentirali jednu datoteku / data / ubuntu-20.04.1-živi-poslužitelj-amd64.izo, pokrenut ćemo sljedeću naredbu:

$ sudo btrfs defragment datotečnog sustava -vf / data / ubuntu-20.04.1-živi-poslužitelj-amd64.izo

Datoteka / data / ubuntu-20.04.1-živi-poslužitelj-amd64.izo treba defragmentirati.

Da biste defragmentirali svaku datoteku ili direktorij /podaci direktorijum rekurzivno, pokrenite sljedeću naredbu:

$ sudo btrfs defragment datotečnog sustava -rvf / data

Kao što vidite, sve datoteke /podaci direktorij se defragmentira.

Na isti način, ako ste imali subvolumen / data / osimages, tada biste mogli defragmentirati sve datoteke / data / osimages subvolumen rekurzivno sa sljedećom naredbom:

$ sudo btrfs defragment datotečnog sustava -rvf / data / osimages

Sažimanje datotečnog sustava Btrfs tijekom defragmentiranja

Datotečni sustav Btrfs omogućuje vam komprimiranje datoteka dok ih defragmentirate.

Da biste defragmentirali sve datoteke u /podaci direktorija i komprimirajte ih pomoću ZLIB algoritam kompresije istodobno, pokrenite naredbu defragmentacije s -czlib opcija, kako slijedi:

$ sudo btrfs defragment datotečnog sustava -rvf -czlib / data

Da biste defragmentirali sve datoteke u /podaci direktorija i komprimirajte ih pomoću ZSTD algoritam kompresije, istodobno pokrenite naredbu defragmentacije s -czstd opcija, kako slijedi:

$ sudo btrfs defragment datotečnog sustava -rvf -czstd / data

Da biste defragmentirali sve datoteke u /podaci direktorija i komprimirajte ih pomoću LZO algoritam kompresije istodobno, pokrenite naredbu defragmentacije s -clzo opcija, kako slijedi:

$ sudo btrfs defragmentacija datotečnog sustava -rvf -clzo / data

Datoteke u /podaci direktorij treba istodobno defragmentirati i komprimirati.

Na isti način, također možete defragmentirati i komprimirati datoteke Btrfs potzvuka.

Automatsko defragmentiranje datotečnog sustava Btrfs

Možete omogućiti automatsku defragmentaciju na vašem datotečnom sustavu Btrfs u vrijeme montiranja. Ova značajka Btrfs datotečnog sustava automatski će defragmentirati sve datoteke vašeg Btrfs datotečnog sustava.

Za montiranje Btrfs datotečnog sustava stvorenog na sdb HDD u /podaci direktoriju s omogućenom automatskom defragmentacijom u vrijeme pokretanja, morate dodati unos za datotečni sustav Btrfs u / etc / fstab datoteka.

Prvo pronađite UUID Btrfs datotečnog sustava stvorenog na sdb HDD, kako slijedi:

$ sudo blkid / dev / sdb

Kao što vidite, UUID datotečnog sustava Btrfs stvoren na sdb HDD je 60afc092-e0fa-4b65-81fd-5dfd7dd884de.

Za vas će biti drugačije. Dakle, od sada ga svakako zamijenite svojim.

Otvori / etc / fstab datoteka s nano uređivač teksta, kako slijedi:

$ sudo nano / etc / fstab

Dodajte sljedeći redak na kraj / etc / fstab datoteka:

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

Kada završite, pritisnite + x nakon čega slijedi Y i spasiti / etc / fstab datoteka.

Da bi promjene stupile na snagu, ponovno pokrenite računalo sljedećom naredbom:

$ sudo ponovno pokretanje

Kao što vidite, Btrfs datotečni sustav stvoren na sdb HDD je postavljen na /podaci direktorij s omogućenom automatskom defragmentacijom.

Problemi s defragmentacijom datotečnog sustava Btrfs

Iako se može činiti da defragmentacija poboljšava izvedbu datotečnog sustava, postoje neki problemi s defragmentacijom Btrfs datotečnog sustava.

Kako je Btrfs datotečni sustav Copy-on-Write (CoW), da biste razumjeli probleme s defragmentacijom datotečnog sustava Btrfs, morate razumjeti značajku Copy-on-Write datotečnog sustava Btrfs.

Pretpostavimo da imate veliku datoteku (datoteka1) koji koristi 100 ekstenzija (možete ih smatrati blokovima datoteka) Btrfs datotečnog sustava. Ako stvorite još jednu kopiju te velike datoteke (datoteka2) u istom Btrfs datotečnom sustavu vidjet ćete da se ne koristi dodatni prostor na disku. To je zato što su datoteke identične, a 100 opsega svake datoteke je isto. Dakle, datotečni sustav Btrfs koristi iste ekstenzije za obje datoteke.

Slika 1: datoteka1 i datoteka2 su identični i dijele iste ekstenzije datotečnog sustava Btrfs radi uštede prostora na disku

Recimo, izmijenili ste jednu od kopija velike datoteke (datoteka2). Izmjena treba promijeniti 10 od 100 opsega. Datotečni sustav Btrfs kopirat će potrebnih 10 ekstenzija na drugo neiskorišteno mjesto (recimo, e101-e110) datotečnog sustava i tamo ih promijenite. Jednom kada se promjene zapišu na disk, datotečni sustav Btrfs ponovno će povezati ekstenzije tako da se promjene odražavaju u velikoj datoteci. Postupak je prikazan na donjoj slici:

Slika 2: 10 ekstenzije se mijenjaju u datoteka2. Dakle, ekstenzivi su ponovno povezani u datotečni sustav Btrfs.

Iz slika 1 i 2 možete razumjeti kako funkcionira Copy-on-Write (CoW) i kako Btrfs sustav datoteka koristi Copy-on-Write (CoW) za uštedu prostora na disku.

Sada kada znate kako funkcionira značajka Copy-on-Write (CoW) Btrfs datotečnog sustava, shvatit ćete probleme s defragmentiranjem Btrfs datotečnog sustava.

  1. Defragmentirajuće datoteke premještaju Btrfs ekstenzije podataka i pokušavaju ih poravnati, jednu za drugom. Dakle, veze Copy-on-Write između kopija datoteke se prekidaju. To će povećati suvišne ekstenzije podataka, kao i upotrebu diska Btrfs datotečnog sustava koji je prethodno spremljen dijeljenjem ekstenzija podataka između identičnih (ili gotovo identičnih) kopija datoteke.
  2. Ako Btrfs subvolumen ima više snimaka, defragmentiranje subvoluma će prekinuti veze Kopiraj-na-piši između subvolumena i snimaka. To će povećati upotrebu diskovnog sustava Btrfs.
  3. Ako sustav datoteka Btrfs koristite za velike baze podataka ili slike virtualnog stroja (za pohranu VM podataka / diskova), defragmentiranje datotečnog sustava također će negativno utjecati na performanse datotečnog sustava.

Zaključak

U ovom ste članku naučili kako rekurzivno defragmentirati jednu datoteku i datoteke u direktoriju / subvolumu datotečnog sustava Btrfs. Također ste naučili kako omogućiti automatsku defragmentaciju na datotečnom sustavu Btrfs u vrijeme montiranja. Konačno, članak je raspravljao o nekim problemima s defragmentacijom Btrfs datotečnog sustava.

Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...
HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...
Kako koristiti AutoKey za automatizaciju Linux igara
AutoKey je uslužni program za automatizaciju radne površine za Linux i X11, programiran na Python 3, GTK i Qt. Koristeći njegovu skriptiranje i MACRO ...