Btrfs

Kā defragmentēt Btrfs failu sistēmu

Kā defragmentēt Btrfs failu sistēmu

Btrfs ir uz apjoma balstīta kopēšanas uz rakstīšanas (CoW) failu sistēma. Lieli faili tiek glabāti vairākos datu apjomos; un, kad šie lielie faili tiek modificēti, modificējamie apjomi tiek kopēti uz jauniem, tukšiem apjomiem citā atmiņas ierīces vietā un tiek modificēti jaunajā vietā. Pēc tam lielo failu apjomi tiek atkārtoti saistīti, lai norādītu uz atjauninātajiem apjomiem. Vecie apjomi nekad netiek nekavējoties noņemti.

Šādi Btrfs failu sistēmas iezīme Copy-on-Write (CoW) izraisa sadrumstalotību. Sadrumstalotība nozīmē, ka lielu failu datu apjomi ir izkaisīti pa visu atmiņas ierīci. Tie nav momentāni. Tātad failu sistēmas veiktspēja (lasīšanas / rakstīšanas ātrums) var būt samazināta.

Lai atrisinātu šo problēmu, ir nepieciešams katru reizi kādu laiku defragmentēt Btrfs failu sistēmu. Šajā rakstā parādīts, kā defragmentēt Btrfs failu sistēmu.

Saīsinājumi

Šajā rakstā izmantotie saīsinājumi (īsās formas) ir šādi:

Priekšnoteikumi

Lai izmēģinātu šajā rakstā iekļautos piemērus:

Man ir 20 GB cietais disks SDB manā Ubuntu mašīnā. Uz cietā diska izveidošu Btrfs failu sistēmu SDB.

$ sudo lsblk -e7

Piezīme: Jūsu HDD / SSD, visticamāk, būs cits nosaukums nekā manam, un tāpat būs arī nodalījumi. Tātad, turpmāk noteikti nomainiet tos ar savējiem.

Jūs varat izveidot Btrfs failu sistēmu savā HDD / SSD (bez nodalīšanas), ja jums ir rezerves HDD / SSD. Varat arī izveidot nodalījumu HDD / SSD un izveidot Btrfs failu sistēmu tur.

Lai saņemtu palīdzību par Btrfs failu sistēmas instalēšanu Ubuntu, skatiet rakstu Btrfs instalēšana un izmantošana Ubuntu 20.04 LTS.

Lai saņemtu palīdzību par Btrfs failu sistēmas instalēšanu Fedora, skatiet rakstu Btrfs instalēšana un izmantošana Fedora 33.

Btrfs failu sistēmas izveide

Btrfs failu sistēmu var izveidot HDD / SSD (nesadalītā) vai HDD / SSD nodalījumā.

Lai vietnē Btrfs izveidotu failu sistēmu SDB HDD (viss HDD, bez nodalījumiem) un piešķiriet tai failu sistēmas etiķeti dati, palaidiet šādu komandu:

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

Btrfs failu sistēma tagad ir jāizveido vietnē SDB HDD.

Izveidojiet direktoriju / dati lai pievienotu tikko izveidoto Btrfs failu sistēmu ar šādu komandu:

$ sudo mkdir -v / data

Lai pievienotu Btrfs failu sistēmu, kas izveidota vietnē SDB HDD uz / dati direktorijā, izpildiet šādu komandu:

$ sudo mount / dev / sdb / data

Tagad Btrfs failu sistēma ir jāuzstāda, kā redzat zemāk redzamajā ekrānuzņēmumā:

$ df -h / dati

Btrfs failu sistēmas defragmentēšana manuāli

Kā redzat zemāk redzamajā ekrānuzņēmumā, es esmu nokopējis divus failus Btrfs failu sistēmā, kas uzstādīta uz / dati direktoriju, lai parādītu Btrfs failu sistēmas defragmentēšanas procesu:

$ ls -lh / dati

Rekursīvi var defragmentēt vienu failu vai visu apakšapjomu / direktoriju.

Lai defragmentētu vienu failu / data / ubuntu-20.04.1-live-server-amd64.iso, mēs izpildīsim šādu komandu:

$ sudo btrfs failu sistēmas defragmentēšana -vf / data / ubuntu-20.04.1-live-server-amd64.iso

Fails / data / ubuntu-20.04.1-live-server-amd64.iso būtu jādefragmentē.

Lai defragmentētu katru failu vai direktoriju / dati direktorijā rekursīvi, izpildiet šādu komandu:

$ sudo btrfs failu sistēmas defragmentēšana -rvf / dati

Kā redzat, visi / dati direktorijs tiek defragmentēts.

Tādā pašā veidā, ja jums būtu apakšapjoms / dati / osimages, tad jūs varētu defragmentēt visus failus / dati / osimages suburum rekursīvi ar šādu komandu:

$ sudo btrfs failu sistēmas defragmentēšana -rvf / data / osimages

Btrfs failu sistēmas saspiešana, fragmentējot

Btrfs failu sistēma ļauj saspiest failus, kamēr tos defragmentējat.

Lai defragmentētu visus failus mapē / dati direktoriju un saspiest tos ar ZLIB saspiešanas algoritmu, vienlaikus palaidiet komandu defragmentēt ar -czlib šādi:

$ sudo btrfs failu sistēmas defragmentēšana -rvf -czlib / data

Lai defragmentētu visus failus mapē / dati direktoriju un saspiest tos ar ZSTD saspiešanas algoritmu, vienlaikus palaidiet defragmentēšanas komandu ar -czstd šādi:

$ sudo btrfs failu sistēmas defragmentēšana -rvf -czstd / data

Lai defragmentētu visus failus mapē / dati direktoriju un saspiest tos ar LZO saspiešanas algoritmu, vienlaikus palaidiet komandu defragmentēt ar -clzo šādi:

$ sudo btrfs failu sistēmas defragmentēšana -rvf -clzo / data

Faili / dati direktorija būtu jādefragmentē un jāsaspiež vienlaikus.

Tādā pašā veidā jūs varat defragmentēt un saspiest arī Btrfs apakšapjoma failus.

Automātiska Btrfs failu sistēmas defragmentēšana

Pievienošanas laikā varat iespējot Btrfs failu sistēmas automātisko defragmentēšanu. Šī Btrfs failu sistēmas funkcija automātiski defragmentēs visus jūsu Btrfs failu sistēmas failus.

Lai pievienotu Btrfs failu sistēmu, kas izveidota vietnē SDB HDD ierīcē / dati direktorijā, kurā sāknēšanas laikā ir iespējota automātiskā defragmentēšana, jums jāpievieno ieraksts Btrfs failu sistēmai / etc / fstab failu.

Vispirms atrodiet Btrfs failu sistēmas UUID, kas izveidots vietnē SDB HDD:

$ sudo blkid / dev / sdb

Kā redzat, vietnē Btrfs izveidotās failu sistēmas UUID SDB HDD ir 60afc092-e0fa-4b65-81fd-5dfd7dd884de.

Jums būs savādāk. Tātad, turpmāk noteikti nomainiet to ar savu.

Atveriet / etc / fstab failu ar nano teksta redaktors:

$ sudo nano / etc / fstab

Pievienojiet šādu rindu rindas beigās / etc / fstab fails:

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

Kad esat pabeidzis, nospiediet + X sekoja un lai saglabātu / etc / fstab failu.

Lai izmaiņas stātos spēkā, restartējiet datoru ar šādu komandu:

$ sudo atsāknēšana

Kā redzat, Btrfs failu sistēma tika izveidota SDB HDD ir uzstādīts uz / dati direktorija ar iespējotu automātisko defragmentēšanu.

Problēmas ar Btrfs failu sistēmas defragmentēšanu

Lai gan var šķist, ka defragmentēšana uzlabo failu sistēmas veiktspēju, ir dažas problēmas ar Btrfs failu sistēmas defragmentēšanu.

Tā kā Btrfs ir kopēšanas uz rakstīšanas (CoW) failu sistēma, lai saprastu problēmas ar Btrfs failu sistēmas defragmentēšanu, jums ir jāsaprot Btrfs failu sistēmas iezīme Kopēt uz rakstīšanas.

Pieņemsim, ka jums ir liels fails (fails1), kurā Btrfs failu sistēmai tiek izmantoti 100 eksemplāri (jūs varat domāt par faila blokiem). Ja izveidojat citu šī lielā faila kopiju (fails2) tajā pašā Btrfs failu sistēmā jūs redzēsiet, ka netiek izmantota papildu vieta diskā. Tas ir tāpēc, ka faili ir identiski, un katra faila 100 eksemplāri ir vienādi. Tātad Btrfs failu sistēma abiem failiem izmanto vienādus apjomus.

1. attēls: fails1 un fails2 ir identiski un kopīgi izmanto to pašu Btrfs failu sistēmu, lai ietaupītu vietu diskā

Teiksim, jūs esat modificējis vienu no lielā faila kopijām (fails2). Modifikācijai jāmaina 10 no 100 apjomiem. Btrfs failu sistēma nokopēs nepieciešamos 10 apjomus citā neizmantotā vietā (teiksim, e101-e110) un mainiet tos tur. Kad izmaiņas būs ierakstītas diskā, Btrfs failu sistēma atkārtoti saistīs apjomus, lai izmaiņas tiktu atspoguļotas lielajā failā. Process ir parādīts zemāk redzamajā attēlā:

2. attēls: 10 gadā tiek mainīti apjomi fails2. Tātad apjomi tiek atkārtoti saistīti Btrfs failu sistēmā.

No 1. un 2. attēla jūs varat saprast, kā darbojas kopēšana uz rakstīšanas (CoW) un kā Btrfs failu sistēma izmanto kopiju uz rakstīšanas (CoW), lai ietaupītu vietu diskā.

Tagad, kad jūs zināt, kā darbojas Btrfs failu sistēmas funkcija Copy-on-Write (CoW), jūs sapratīsit problēmas ar Btrfs failu sistēmas defragmentēšanu.

  1. Failu defragmentēšana pārvieto Btrfs datu apjomus un mēģina tos pēc kārtas izlīdzināt. Tātad saites starp faila kopijām pārtrauc rakstīšanu. Tas palielinās lieko datu apjomu, kā arī Btrfs failu sistēmas diska izmantošanu, kas iepriekš tika saglabāta, koplietojot datu apjomus starp identiskām (vai gandrīz identiskām) faila kopijām.
  2. Ja Btrfs apakšapjomam ir vairāki momentuzņēmumi, apakšapjoma defragmentēšana pārtrauks saites Kopēt uz rakstīšanas starp apakšapjomu un momentuzņēmumiem. Tas palielinās Btrfs failu sistēmas diska izmantošanu.
  3. Ja Btrfs failu sistēmu izmantojat lielām datu bāzēm vai virtuālās mašīnas attēliem (VM datu / disku glabāšanai), failu sistēmas defragmentēšana arī negatīvi ietekmēs failu sistēmas veiktspēju.

Secinājums

Šajā rakstā jūs uzzinājāt, kā defragmentēt vienu failu un Btrfs failu sistēmas rekursīvi failus direktorijā / apakšapjomā. Jūs arī uzzinājāt, kā iespējot automātisku defragmentēšanu Btrfs failu sistēmā pievienošanas laikā. Visbeidzot, rakstā tika apspriestas dažas problēmas ar Btrfs failu sistēmas defragmentēšanu.

Labākie Linux spēļu konsoles emulatori
Šajā rakstā tiks uzskaitīta populārā Linux spēļu konsoles atdarināšanas programmatūra. Emulācija ir programmatūras saderības slānis, kas atdarina spēļ...
Labākie Linux spēļu draiveri 2021. gadā
Linux operētājsistēma ir gājusi tālu no sākotnējā, vienkāršā uz serveriem balstītā izskata. Šī operētājsistēma pēdējos gados ir ārkārtīgi uzlabojusies...
Kā tvert un straumēt spēļu sesiju operētājsistēmā Linux
Agrāk spēļu spēlēšana tika uzskatīta tikai par hobiju, taču laika gaitā spēļu industrija piedzīvoja milzīgu tehnoloģiju un spēlētāju skaita pieaugumu....