Btrfs

Kako defragmentirati datotečni sistem Btrfs

Kako defragmentirati datotečni sistem Btrfs

Btrfs je datotečni sistem Copy-on-Write (CoW), ki temelji na obsegu. Velike datoteke so shranjene v več obsegih podatkov; in ko se te velike datoteke spremenijo, se ekstenzije, ki jih je treba spremeniti, kopirajo v nove, prazne ekstenzije na drugem mestu shranjevalne naprave in se spremenijo na novem mestu. Nato se ekstenzije velikih datotek ponovno povežejo, da kažejo na posodobljene ekstenzije. Stare ekstenzije se nikoli ne odstranijo takoj.

Tako funkcija kopiranja na zapis (CoW) v datotečnem sistemu Btrfs povzroči razdrobljenost. Razdrobljenost pomeni, da so obsegi podatkov velikih datotek razpršeni po celotni pomnilniški napravi. Niso trenutni. Torej se lahko zmanjša zmogljivost (hitrost branja / pisanja) datotečnega sistema.

Da bi rešili to težavo, je treba vsake toliko časa defragmentirati datotečni sistem Btrfs. Ta članek prikazuje, kako defragmentirati datotečni sistem Btrfs.

Okrajšave

Okrajšave (kratke oblike), uporabljene v tem članku, so naslednje:

Pogoji

Če želite preizkusiti primere iz tega članka:

Imam 20 GB trdega diska sdb na mojem računalniku Ubuntu. Na trdem disku bom ustvaril datotečni sistem Btrfs sdb.

$ sudo lsblk -e7

Opomba: Vaš HDD / SSD bo verjetno imel drugačno ime kot moje in tudi particije. Zato jih odslej ne pozabite zamenjati z vašimi.

Če imate rezervni HDD / SSD, lahko na trdem disku / trdem disku ustvarite datotečni sistem Btrfs (brez particije). Lahko tudi ustvarite particijo na trdem disku / trdem disku in tam ustvarite datotečni sistem Btrfs.

Za pomoč pri namestitvi datotečnega sistema Btrfs v Ubuntu si oglejte članek Namestitev in uporaba Btrfs v Ubuntu 20.04 LTS.

Za pomoč pri namestitvi datotečnega sistema Btrfs v Fedori si oglejte članek Namestitev in uporaba Btrfs v Fedori 33.

Ustvarjanje datotečnega sistema Btrfs

Datotečni sistem Btrfs lahko ustvarite na trdem disku / trdem disku (nerazdeljen) ali na particiji HDD / SSD.

Če želite ustvariti datotečni sistem Btrfs na sdb HDD (celoten HDD, brez particij) in mu dajte oznako datotečnega sistema podatkov, zaženite naslednji ukaz:

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

Zdaj bi bilo treba v datoteki sdb HDD.

Ustvari imenik / podatki za namestitev datotečnega sistema Btrfs, ki ste ga pravkar ustvarili, z naslednjim ukazom:

$ sudo mkdir -v / data

Če želite namestiti datotečni sistem Btrfs, ustvarjen na sdb Trdi disk na / podatki imenik, zaženite naslednji ukaz:

$ sudo mount / dev / sdb / data

Datotečni sistem Btrfs je zdaj treba namestiti, kot lahko vidite na spodnjem posnetku zaslona:

$ df -h / podatki

Ročno defragmentiranje datotečnega sistema Btrfs

Kot lahko vidite na spodnjem posnetku zaslona, ​​sem kopiral dve datoteki v datotečni sistem Btrfs, nameščen na / podatki imenik za prikaz procesa defragmentacije datotečnega sistema Btrfs:

$ ls -lh / podatki

Rekurzivno lahko defragmentirate eno datoteko ali celoten podzvok / imenik.

Če želite defragmentirati eno datoteko / data / ubuntu-20.04.1-strežnik-v živo-amd64.izo, zagnali bomo naslednji ukaz:

$ sudo btrfs defragment datotečnega sistema -vf / data / ubuntu-20.04.1-live-server-amd64.izo

Datoteka / data / ubuntu-20.04.1-live-server-amd64.izo je treba defragmentirati.

Če želite defragmentirati vsako datoteko ali imenik datoteke / podatki imenik rekurzivno zaženite naslednji ukaz:

$ sudo btrfs defragmentira datotečni sistem -rvf / data

Kot lahko vidite, so vse datoteke v / podatki imenik so defragmentirani.

Na enak način, če ste imeli podvolumen / data / osimages, potem bi lahko defragmentirali vse datoteke / data / osimages subvolume rekurzivno z naslednjim ukazom:

$ sudo btrfs defragmentira datotečni sistem -rvf / data / osimages

Stiskanje datotečnega sistema Btrfs med defragmentiranjem

Datotečni sistem Btrfs vam omogoča stiskanje datotek, medtem ko jih defragmentirate.

Če želite defragmentirati vse datoteke v / podatki in jih stisnite z ZLIB hkrati stisnite algoritem, zaženite ukaz za defragmentiranje z -czlib možnost, kot sledi:

$ sudo btrfs defragmentira datotečni sistem -rvf -czlib / data

Če želite defragmentirati vse datoteke v / podatki in jih stisnite z ZSTD hkrati stisnite algoritem, zaženite ukaz za defragmentiranje z -czstd možnost, kot sledi:

$ sudo btrfs defragment datotečnega sistema -rvf -czstd / data

Če želite defragmentirati vse datoteke v / podatki in jih stisnite z LZO hkrati stisnite algoritem, zaženite ukaz za defragmentiranje z -clzo možnost, kot sledi:

$ sudo btrfs defragmentira datotečni sistem -rvf -clzo / data

Datoteke v / podatki imenik je treba hkrati defragmentirati in stisniti.

Na enak način lahko defragmentirate in stisnete tudi datoteke podskupina Btrfs.

Samodejno defragmentiranje datotečnega sistema Btrfs

Ob namestitvi lahko v datotečnem sistemu Btrfs omogočite samodejno defragmentacijo. Ta funkcija datotečnega sistema Btrfs bo samodejno defragmentirala vse datoteke vašega datotečnega sistema Btrfs.

Če želite namestiti datotečni sistem Btrfs, ustvarjen na sdb HDD v / podatki V imeniku z omogočeno samodejno defragmentacijo ob zagonu morate dodati vnos za datotečni sistem Btrfs v / etc / fstab mapa.

Najprej poiščite UUID datotečnega sistema Btrfs, ustvarjenega na sdb Trdi disk, kot sledi:

$ sudo blkid / dev / sdb

Kot lahko vidite, je UUID datotečnega sistema Btrfs, ustvarjenega na sdb HDD je 60afc092-e0fa-4b65-81fd-5dfd7dd884de.

Za vas bo drugače. Torej, odslej ga ne pozabite zamenjati s svojim.

Odprite / etc / fstab datoteko z nano urejevalnik besedila:

$ sudo nano / etc / fstab

Na konec vrstice dodajte naslednjo vrstico / etc / fstab mapa:

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

Ko končate, pritisnite + X čemur sledi Y in shraniti / etc / fstab mapa.

Da bodo spremembe začele veljati, znova zaženite računalnik z naslednjim ukazom:

$ sudo znova zaženite

Kot lahko vidite, je datotečni sistem Btrfs, ustvarjen v sdb HDD je nameščen na / podatki imenik z omogočeno samodejno defragmentacijo.

Težave z defragmentiranjem datotečnega sistema Btrfs

Čeprav se zdi, da defragmentacija izboljša delovanje datotečnega sistema, obstaja nekaj težav z defragmentiranjem datotečnega sistema Btrfs.

Ker je Btrfs datotečni sistem Copy-on-Write (CoW), morate za razumevanje težav z defragmentacijo datotečnega sistema Btrfs razumeti funkcijo Copy-on-Write datotečnega sistema Btrfs.

Recimo, da imate veliko datoteko (datoteka1), ki uporablja 100 ekstenzij (ekstente si lahko predstavljate kot bloke datotek) datotečnega sistema Btrfs. Če ustvarite novo kopijo te velike datoteke (datoteka2) v istem datotečnem sistemu Btrfs boste videli, da ni zaseden dodaten prostor na disku. To je zato, ker so datoteke enake in 100 obsegov vsake datoteke je enakih. Torej datotečni sistem Btrfs uporablja enake ekstenzije za obe datoteki.

Slika 1: datoteka1 in datoteka2 so enaki in si delijo iste ekstenzije datotečnega sistema Btrfs, da prihranijo prostor na disku

Zdaj ste recimo spremenili eno od kopij velike datoteke (datoteka2). Sprememba mora spremeniti 10 od 100 obsegov. Datotečni sistem Btrfs bo kopiral zahtevanih 10 ekstenzij na drugo neuporabljeno mesto (recimo, e101-e110) datotečnega sistema in jih tam spremenite. Ko so spremembe zapisane na disk, bo datotečni sistem Btrfs ponovno povezal ekstente, tako da se spremembe odražajo v veliki datoteki. Postopek je prikazan na spodnji sliki:

Slika 2: 10 razširitve se spremenijo v datoteka2. Torej, ekstenzije so znova povezane v datotečnem sistemu Btrfs.

Iz slik 1 in 2 lahko razumete, kako deluje kopiranje na zapis (CoW) in kako datotečni sistem Btrfs uporablja kopiranje na zapis (CoW) za prihranek prostora na disku.

Zdaj, ko veste, kako deluje funkcija kopiranja na zapis (CoW) v datotečnem sistemu Btrfs, boste razumeli težave z defragmentiranjem datotečnega sistema Btrfs.

  1. Defragmentirane datoteke premikajo obsege podatkov Btrfs in jih poskušajo poravnati eno za drugo. Torej, povezave Copy-on-Write med kopijami datoteke se prekinejo. To bo povečalo odvečne obsege podatkov in tudi uporabo diska datotečnega sistema Btrfs, ki je bil prej shranjen z delitvijo obsegov podatkov med enakimi (ali skoraj enakimi) kopijami datoteke.
  2. Če ima podzvok Btrfs več posnetkov, bo defragmentiranje podzvoka prekinilo povezave Kopiraj-na-zapis med podzvokom in posnetki. To bo povečalo uporabo diskovnega sistema Btrfs.
  3. Če datotečni sistem Btrfs uporabljate za velike zbirke podatkov ali slike navideznih strojev (za shranjevanje podatkov / diskov VM), bo defragmentiranje datotečnega sistema negativno vplivalo tudi na delovanje datotečnega sistema.

Zaključek

V tem članku ste se naučili, kako rekurzivno defragmentirati eno datoteko in datoteke v imeniku / podvolumu datotečnega sistema Btrfs. Naučili ste se tudi, kako omogočiti samodejno defragmentacijo v datotečnem sistemu Btrfs v času priklopa. Na koncu je članek razpravljal o nekaterih težavah z defragmentiranjem datotečnega sistema Btrfs.

S temi brezplačnimi orodji dodajte gibe miške v sistem Windows 10
V zadnjih letih so se računalniki in operacijski sistemi močno razvili. Včasih so morali uporabniki uporabljati ukaze za krmarjenje po upraviteljih da...
Nadzirajte in upravljajte gibanje miške med več monitorji v sistemu Windows 10
Upravitelj miške z dvojnim zaslonom vam omogoča nadzor in konfiguriranje gibanja miške med več monitorji, tako da upočasni gibanje blizu meje. Windows...
WinMouse vam omogoča prilagajanje in izboljšanje premikanja kazalca miške v računalniku z operacijskim sistemom Windows
Če želite izboljšati privzete funkcije kazalca miške, uporabite brezplačno programsko opremo WinMouse. Dodaja več funkcij, s pomočjo katerih boste kar...