Btrfs

Ako defragmentovať súborový systém Btrfs

Ako defragmentovať súborový systém Btrfs

Btrfs je rozsiahly súborový systém Copy-on-Write (CoW). Veľké súbory sú uložené vo viacerých údajoch; a keď sa tieto veľké súbory upravia, rozsahy, ktoré sa majú upraviť, sa skopírujú do nových, prázdnych rozsahov v inom umiestnení úložného zariadenia a upravia sa v novom umiestnení. Potom sa rozsahy veľkých súborov znova prepoja, aby ukazovali na aktualizované rozsahy. Staré rozsahy sa nikdy neodstránia okamžite.

Takto spôsobuje funkcia kopírovania-na-zápis (CoW) súborového systému Btrfs fragmentáciu. Fragmentácia znamená, že dátové rozsahy veľkých súborov sú rozptýlené po celom úložnom zariadení. Nie sú okamžité. Takže môže byť znížený výkon (rýchlosť čítania / zápisu) súborového systému.

Na vyriešenie tohto problému je potrebné občas defragmentovať súborový systém Btrfs. Tento článok ukazuje, ako defragmentovať súborový systém Btrfs.

Skratky

V tomto článku sú použité skratky (krátke formy):

Predpoklady

Vyskúšať príklady uvedené v tomto článku:

Mám 20 GB HDD sdb na mojom stroji Ubuntu. Na HDD vytvorím súborový systém Btrfs sdb.

$ sudo lsblk -e7

Poznámka: Váš HDD / SSD bude mať pravdepodobne iný názov ako ja, rovnako tak budú mať aj oddiely. Takže odteraz ich určite vymeňte za svoje.

Ak máte náhradný HDD / SSD, môžete na svojom HDD / SSD (bez rozdelenia disku) vytvoriť súborový systém Btrfs. Môžete tiež vytvoriť oddiel na vašom HDD / SSD a vytvoriť tam súborový systém Btrfs.

Pomoc s inštaláciou súborového systému Btrfs v Ubuntu nájdete v článku Inštalácia a používanie Btrfs v Ubuntu 20.04 LTS.

Pomoc s inštaláciou súborového systému Btrfs vo Fedore nájdete v článku Inštalácia a používanie Btrfs na Fedore 33.

Vytvorenie súborového systému Btrfs

Súborový systém Btrfs môžete vytvoriť na pevnom disku (nerozdelený) alebo na pevnom disku HDD / SSD.

Vytvorenie súborového systému Btrfs na serveri sdb HDD (celý HDD, bez oddielov) a označte ho štítkom súborového systému údaje, spustite nasledujúci príkaz:

$ sudo mkfs.btrfs -L dáta / dev / sdb

Teraz by mal byť na serveri vytvorený súborový systém Btrfs sdb HDD.

Vytvorte adresár / údaje na pripojenie súborového systému Btrfs, ktorý ste práve vytvorili, pomocou nasledujúceho príkazu:

$ sudo mkdir -v / data

Ak chcete pripojiť súborový systém Btrfs vytvorený na serveri sdb HDD na disku / údaje adresára, spustite nasledujúci príkaz:

$ sudo mount / dev / sdb / data

Teraz by mal byť pripojený súborový systém Btrfs, ako vidíte na obrázku nižšie:

$ df -h / dáta

Ručná defragmentácia súborového systému Btrfs

Ako vidíte na snímke nižšie, skopíroval som dva súbory na súborový systém Btrfs pripevnený na serveri / údaje adresár na demonštráciu procesu defragmentácie súborového systému Btrfs:

$ ls -lh / dáta

Môžete defragmentovať jeden súbor alebo celý subobjem / adresár rekurzívne.

Defragmentácia jedného súboru / data / ubuntu-20.04.1-live-server-amd64.izo, spustíme nasledujúci príkaz:

$ sudo btrfs defragmentácia súborového systému -vf / data / ubuntu-20.04.1-live-server-amd64.izo

Súbor / data / ubuntu-20.04.1-live-server-amd64.izo by malo byť defragmentované.

Defragmentovať každý súbor alebo adresár súboru / údaje adresár rekurzívne, spustite nasledujúci príkaz:

$ sudo btrfs defragmentácia súborového systému -rvf / data

Ako vidíte, všetky súbory / údaje adresár sú defragmentované.

Rovnakým spôsobom, ak by ste mali podsúbor / data / osimages, potom môžete defragmentovať všetky súbory vo formáte / data / osimages subvolume rekurzívne s nasledujúcim príkazom:

$ sudo btrfs defragmentácia súborového systému -rvf / data / osimages

Kompresia súborového systému Btrfs pri defragmentácii

Súborový systém Btrfs umožňuje komprimovať súbory pri ich defragmentácii.

Defragmentovať všetky súbory v priečinku / údaje adresár a skomprimujte ich pomocou ZLIB kompresný algoritmus súčasne spustite príkaz defragmentácie s -czlib možnosť:

$ sudo btrfs defragmentácia súborového systému -rvf -czlib / data

Defragmentovať všetky súbory v priečinku / údaje adresár a skomprimujte ich pomocou ZSTD kompresný algoritmus súčasne, spustite príkaz defragmentácie s -czstd možnosť:

$ sudo btrfs defragmentácia súborového systému -rvf -czstd / data

Defragmentovať všetky súbory v priečinku / údaje adresár a skomprimujte ich pomocou LZO kompresný algoritmus súčasne spustite príkaz defragmentácie s -clzo možnosť:

$ sudo btrfs defragmentácia súborového systému -rvf -clzo / data

Súbory v priečinku / údaje adresár by mal byť defragmentovaný a komprimovaný súčasne.

Rovnakým spôsobom môžete tiež defragmentovať a skomprimovať súbory podväzku Btrfs.

Automatická defragmentácia súborového systému Btrfs

Automatickú defragmentáciu môžete vo svojom súborovom systéme Btrfs povoliť v čase pripojenia. Táto vlastnosť súborového systému Btrfs automaticky defragmentuje všetky súbory vášho súborového systému Btrfs.

Ak chcete pripojiť súborový systém Btrfs vytvorený na serveri sdb HDD v / údaje adresár s automatickou defragmentáciou povolenou pri štarte, musíte pridať položku pre súborový systém Btrfs v priečinku / etc / fstab spis.

Najskôr vyhľadajte UUID súborového systému Btrfs vytvoreného na serveri sdb HDD nasledovne:

$ sudo blkid / dev / sdb

Ako vidíte, UUID súborového systému Btrfs vytvorený na serveri sdb HDD je 60afc092-e0fa-4b65-81fd-5dfd7dd884de.

U teba to bude iné. Takže odteraz ho určite vymeňte za svoj.

Otvor / etc / fstab súbor s nano nasledujúci textový editor:

$ sudo nano / etc / fstab

Pridajte nasledujúci riadok na koniec súboru / etc / fstab spis:

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

Po dokončení stlačte + X nasledovaný Y a zachrániť / etc / fstab spis.

Aby sa zmeny prejavili, reštartujte počítač pomocou nasledujúceho príkazu:

$ sudo reštart

Ako vidíte, súborový systém Btrfs vytvorený na serveri sdb HDD je namontovaný na / údaje adresár s povolenou automatickou defragmentáciou.

Problémy s defragmentáciou súborového systému Btrfs

Aj keď sa môže zdať, že defragmentácia zlepšuje výkon súborového systému, s defragmentáciou súborového systému Btrfs sú problémy.

Pretože Btrfs je súborový systém Copy-on-Write (CoW), aby ste pochopili problémy s defragmentáciou súborového systému Btrfs, musíte porozumieť funkcii Copy-on-Write súborového systému Btrfs.

Predpokladajme, že máte veľký súbor (súbor1), ktorý používa 100 rozsahov (môžete ich považovať za bloky súborov) súborového systému Btrfs. Ak vytvoríte ďalšiu kópiu tohto veľkého súboru (súbor2) v rovnakom súborovom systéme Btrfs uvidíte, že sa nepoužíva žiadny ďalší priestor na disku. Je to preto, že súbory sú identické a 100 rozsahov každého súboru je rovnakých. Súborový systém Btrfs teda používa pre oba súbory rovnaký rozsah.

Postava 1: súbor1 a súbor2 sú identické a zdieľajú rovnaké rozsahy súborového systému Btrfs, aby šetrili miesto na disku

Povedzme, že ste upravili jednu z kópií veľkého súboru (súbor2). V rámci úpravy je potrebné zmeniť 10 zo 100 rozsahov. Súborový systém Btrfs skopíruje požadovaných 10 rozsahov na iné nepoužívané miesto (povedzme, e101-e110) súborového systému a tam ich zmeňte. Len čo sa zmeny zapíšu na disk, súborový systém Btrfs znova prepojí ich rozsah, aby sa zmeny prejavili vo veľkom súbore. Postup je znázornený na nasledujúcom obrázku:

Obrázok 2: 10 rozsahy sú zmenené v súbor2. Rozsahy sú teda znova prepojené v súborovom systéme Btrfs.

Z obrázkov 1 a 2 môžete pochopiť, ako funguje funkcia Copy-on-Write (CoW) a ako súborový systém Btrfs používa funkciu Copy-on-Write (CoW) na šetrenie miesta na disku.

Teraz, keď viete, ako funguje funkcia Copy-on-Write (CoW) súborového systému Btrfs, pochopíte problémy s defragmentáciou súborového systému Btrfs.

  1. Defragmentácia súborov posúva rozsahy údajov Btrfs a pokúša sa ich zarovnať jeden po druhom. Teda odkazy typu Copy-on-Write medzi kópiami zlomov súborov. To zvýši nadbytočné dátové rozsahy, ako aj využitie disku súborového systému Btrfs, ktorý bol predtým uložený zdieľaním dátových rozsahov medzi rovnakými (alebo takmer identickými) kópiami súboru.
  2. Ak má podsúbor Btrfs viac snímok, defragmentácia čiastočného zväzku spôsobí prerušenie odkazov Kopírovať-na-Zápis medzi podsúborom a snímkami. To zvýši využitie disku súborového systému Btrfs.
  3. Ak používate súborový systém Btrfs pre veľké databázy alebo obrazy virtuálnych strojov (na ukladanie údajov / diskov VM), defragmentácia súborového systému bude mať tiež negatívny vplyv na výkon súborového systému.

Záver

V tomto článku ste sa naučili, ako defragmentovať jeden súbor a súbory v adresári / subvolume rekurzívne súborového systému Btrfs. Dozvedeli ste sa tiež, ako povoliť automatickú defragmentáciu v súborovom systéme Btrfs v čase pripojenia. Nakoniec článok pojednával o niektorých problémoch s defragmentáciou súborového systému Btrfs.

Hry Najlepšie aplikácie na mapovanie gamepadu pre Linux
Najlepšie aplikácie na mapovanie gamepadu pre Linux
Ak radi hráte hry v systéme Linux s gamepadom namiesto typického systému vstupu pre klávesnicu a myš, máte tu niekoľko užitočných aplikácií. Mnoho hie...
Hry Užitočné nástroje pre hráčov systému Linux
Užitočné nástroje pre hráčov systému Linux
Ak radi hráte hry v systéme Linux, je pravdepodobné, že ste na vylepšenie herného zážitku použili aplikácie a pomôcky ako Wine, Lutris a OBS Studio. O...
Hry HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
Mnoho vývojárov a vydavateľov hier prichádza s remastrom starých hier v rozlíšení HD, aby predĺžili životnosť franšízy. Prosím fanúšikov, ktorí požadu...