Btrfs

Uvod u datotečni sustav Btrfs

Uvod u datotečni sustav Btrfs
Btrfs (datotečni sustav B-Tree) moderni je datotečni sustav copy-on-write (CoW) za Linux. Btrfs ima za cilj implementirati mnoge napredne značajke datotečnog sustava, usredotočujući se na toleranciju grešaka, popravak i jednostavnu administraciju. Datotečni sustav btrfs dizajniran je da podrži zahtjev visokih performansi i velikih poslužitelja za pohranu. Prikladan je za podatkovne centre veličine petabajta, kao i za mobilne telefone.U ovom ću članku razgovarati o datotečnom sustavu Btrfs i njegovim značajkama. Pa, krenimo.

Kopiraj na pisanje - datotečni sustav CoW:

Btrfs je datotečni sustav copy-on-write (CoW). U datotečnom sustavu CoW, kada pokušate izmijeniti podatke na datotečnom sustavu, datotečni sustav kopira podatke, mijenja podatke i zatim modificirane podatke upisuje natrag na drugo slobodno mjesto datotečnog sustava.

Glavna prednost datotečnog sustava Copy-on-Write (CoW) je u tome što se opseg podataka koji želi izmijeniti kopira na drugo mjesto, modificira i pohranjuje u različitom opsegu datotečnog sustava. Izvorni opseg podataka nije izmijenjen. Dakle, datotečni sustav btrfs može eliminirati rizik od oštećenja podataka ili djelomičnog ažuriranja u slučaju nestanka struje tijekom izmjene podataka jer se izvorni podaci zadržavaju nepromijenjeni.

Glavni nedostatak datotečnog sustava Copy-on-Write (CoW) je taj što se velike datoteke često fragmentiraju kako se mijenjaju. Dakle, povremeno je potrebna defragmentacija. Srećom, btrfs datotečni sustav podržava mrežnu defragmentaciju. Dakle, ne morate demontirati datotečni sustav da biste defragmentirali btrfs datotečni sustav.

Glavne značajke datotečnog sustava Btrfs:

Glavne značajke Btrfs datotečnog sustava su:

i) Pohrana datoteka temeljena na opsegu: U datotečnom sustavu koji se temelji na opsegu, jedinica za pohranu naziva se opseg. Proširenje je susjedno područje pohrane koje je rezervirano za datoteku. Jedna datoteka zahtijeva jednu mjeru, bez obzira na to koliko je mala. Za veće datoteke (veličina datoteke veće od veličine opsega) bit će potrebno više ekstenzija. Za veće datoteke koristit će se metapodaci za praćenje opsega koje datoteka koristi. U datotečnom sustavu Btrfs metapodaci su znatno manje veličine. Manji metapodaci poboljšavaju učinkovitost pohrane i performanse datotečnog sustava.

ii) Podrška za ogromnu veličinu datoteke: U datotečnom sustavu Btrfs, jedna datoteka može biti oko 264 bajtova ili veličine 16 EiB (exbibytes). Bez obzira koliko vaša datoteka postala velika, Btrfs je može podržati.

iii) Prostorno učinkovito pakiranje malih datoteka: Uobičajeno, bez obzira koliko je datoteka mala, trebat će joj jedan blok ili jedna cjelina za pohranu datoteke. To troši puno prostora na disku. Da bi riješio ovaj problem, datotečni sustav Btrfs ugrađuje manje datoteke u metapodatke za učinkovito spremanje manjih datoteka.

iv) Prostorno učinkoviti indeksirani direktoriji: Direktoriji datotečnog sustava btrfs indeksiraju se na dva različita načina. Za traženje imena datoteke koristi se indeksiranje na temelju ključa. Za referenciranje podataka koristi se indeksiranje ključa zasnovano na inodeu. Dvorazinsko indeksiranje poboljšava performanse pretraživanja direktorija / datoteka i smanjuje zahtjeve za pohranom indeksa.

v) Dinamično dodjeljivanje inoda: Za referencu na 1 datoteku potreban vam je 1 inode. Mnogi datotečni sustavi (tj.e., Ext4) imaju fiksni broj inoda. Dakle, ako stvorite previše malih datoteka, možda vam ostane puno prostora na disku, ali nećete moći stvoriti nove datoteke. Također ne možete povećati maksimalni broj inoda nakon što je stvoren datotečni sustav.

Btrfs rješava ovaj problem dinamičkim rasporedom inoda prema potrebi. Dakle, možete stvoriti onoliko datoteka koliko želite dok god imate slobodnog prostora na disku.

vi) Snimke za snimanje i snimke samo za čitanje: Datotečni sustav Btrfs podržava snimke. Možete snimiti trenutni datotečni sustav pomoću kojeg možete vratiti podatke ako ste slučajno uklonili neke datoteke ili oštetili neke podatke.

Zadane su btrfs snimke samo za čitanje. Nakon što napravite snimku samo za čitanje, ne možete promijeniti nijednu datoteku / direktorij u toj snimci. U svakom slučaju, ako želite promijeniti bilo koju datoteku / direktorij nakon što napravite snimku vašeg postojećeg Btrfs datotečnog sustava, možete promijeniti snimku samo za čitanje u snimku i izmijeniti sve datoteke / direktorije u toj snimci.

vii) podvolovi: Datotečni sustav Btrfs može imati mnogo potvoluma. Subvolumen je imenovano binarno stablo (B-stablo) (ili korijen unutarnjeg / logičkog datotečnog sustava) postojećeg stabla korijena datotečnog sustava (glavno) btrfs datotečnog sustava. Subvolumen nije vlastiti blok uređaj. Ali, Btrfs podvolume možete montirati pojedinačno. Subvolume možete smatrati prostorima imena.

viii) Podrška za kvote svjesne subvoluma: Možete dodijeliti i kvote za podvolove. Jednom kada je kvota premašena, nećete moći dodati nove podatke u subvolumen. Za stvaranje Btrfs kvota subvoluma neće vam trebati nikakvi zasebni programi.

ix) Kontrolne sume podataka i metapodataka: Da bi izbjegao oštećenje podataka, Btrfs prema zadanim postavkama koristi algoritme kontrolne sume crc32c za podatke i metapodatke datotečnog sustava. Kontrolne su sume pohranjene u datotečni sustav za automatsku provjeru grešaka datotečnog sustava i oštećenja podataka u pozadini.

Btrfs ima podršku za mnoge druge algoritme kontrolne sume: xxhash, sha256 i blake2b.

x) Kompresija: Btrfs datotečni sustav podržava transparentno sažimanje datoteka. Kompresija i dekompresija datoteka u datotečnom sustavu btrfs vrše se automatski u pozadini.

Btrfs podržava 3 algoritma kompresije: ZLIB, LZO i ZSTD.

ZLIB je zadana metoda kompresije btrfs datotečnog sustava.

xi) Integrirana podrška za više uređaja: Btrfs datotečni sustavi imaju ugrađenu podršku za upravljanje logičkim volumenom (LVM). U jedan btrfs datotečni sustav možete dodati više uređaja za pohranu. Također možete konfigurirati RAID nizove na datotečnom sustavu btrfs bez potrebe za dodatnim softverom.

Btrfs datotečni sustav podržava razbijanje podataka, zrcaljenje podataka, iscrtavanje podataka + zrcaljenje i implementacije pojedinačnog i dvostrukog pariteta.

Uklanjanje podataka: Ako ste dodali više uređaja za pohranu u isti btrfs datotečni sustav, btrfs može pohraniti istu datoteku na različite fizičke uređaje / particije. To se naziva pruganje podataka. Iscrtavanje podataka poboljšava performanse čitanja / pisanja datotečnog sustava. RAID-0 intenzivno koristi značajku razmještanja podataka.

Zrcaljenje podataka: Ako ste dodali više uređaja za pohranu u isti btrfs datotečni sustav, svi podaci zapisani na jedan uređaj za pohranu bit će zapisani na sve ostale uređaje za pohranu. To se naziva zrcaljenje podataka. RAID-1 intenzivno koristi značajku zrcaljenja podataka.

Procjenjivanje podataka + pojedinačni paritet: RAID-5 koristi razmještanje podataka i jedan distribuirani paritet. Ako ste dodali više uređaja za pohranu u btrfs datotečni sustav, tada će RAID-5 ukloniti podatke s više uređaja za pohranu i izračunati i pohraniti paritetne blokove na uređajima za pohranu. RAID-5 može pretrpjeti kvar jednog pogona.

Procjenjivanje podataka + dvostruki paritet: RAID-6 koristi razbijanje podataka i dvostruko raspodijeljeni paritet. Ako ste dodali više uređaja za pohranu u btrfs datotečni sustav, tada će RAID-6 ukloniti podatke s više uređaja za pohranu i izračunati i pohraniti dvostruke paritetne blokove na uređajima za pohranu. RAID-6 može podnijeti dva kvara pogona. Osim toga, isti je kao i RAID-5 (crtanje podataka + jedan paritet).

Traka podataka + zrcaljenje: RAID-10 istovremeno koristi razmještanje podataka i zrcaljenje podataka. RAID-10 zahtijeva dodavanje parnog broja uređaja za pohranu iste veličine u jedan btrfs datotečni sustav. Minimalni broj uređaja za pohranu koje možete dodati na RAID-10 btrfs datotečni sustav je 4. Polovica uređaja za pohranu koristit će se za razmještanje podataka, a druga polovica za zrcaljenje podataka prve polovice uređaja za pohranu (gdje su podaci prugasti).

xii) SSD svijest i optimizacije: Datotečni sustav btrfs svjestan je SSD-a i ima neke značajke za SSD optimizaciju. Datotečni sustav btrfs također ima podršku za TRIM / Discard za SSD uređaje za pohranu.

Značajka TRIM može otkriti i označiti ekstenzije podataka koji se više ne koriste. Jednom kada su proširenja označena, btrfs datotečni sustav može ih automatski obrisati tako da ostale datoteke mogu koristiti ove ekstenzije podataka.

Značajka odbacivanja uklonit će sve podatke s SSD-a. Ako želite prodati svoj SSD, ova značajka može vam dobro doći.

xiii) Učinkovita inkrementalna sigurnosna kopija: Btrfs podržava inkrementalno sigurnosno kopiranje. Kad prvi put napravite sigurnosnu kopiju btrfs datotečnog sustava, napravit će se snimka trenutnog datotečnog sustava. Zatim će se sve naredne sigurnosne kopije uspoređivati ​​s prvom snimkom, a samo će se promjene pohraniti na disk. Dakle, za sve naredne sigurnosne kopije bit će potrebno manje prostora na disku, a sigurnosne kopije bit će brže.

xiv) Piling u pozadini: To je postupak datotečnog sustava Btrfs koji se koristi za pronalaženje i ispravljanje pogrešaka u datotekama koje imaju suvišne kopije (više kopija) pohranjene u datotečnom sustavu Btrfs.

xv) mrežna defragmentacija datotečnog sustava: Ranije sam objasnio kako funkcionira datotečni sustav Btrfs Copy-on-Write. Veće datoteke pohranjene su u više opsega datotečnog sustava Btrfs. Dok mijenjate velike datoteke, ekstenzivi koji se trebaju izmijeniti kopiraju se u različite besplatne ekstenzije datotečnog sustava i tamo mijenjaju. Dakle, nepromijenjeni opsezi podataka se također čuvaju u slučaju da su potrebni za oporavak datotečnog sustava. To uzrokuje fragmentaciju (opsezi podataka velike datoteke neće biti kontinuirani i bit će raspršeni po cijelom uređaju za pohranu) na datotečnom sustavu jer se velike datoteke mijenjaju. Previše fragmentacije negativno utječe na datotečni sustav (usporava postupak čitanja / pisanja datotečnog sustava).

Da bi riješio ovaj problem, datotečni sustav btrfs podržava mrežnu defragmentaciju datotečnog sustava. Pomoću mrežne defragmentacije ne morate demontirati datotečni sustav da biste defragmentirali datotečni sustav. Datotečni sustav možete držati u pogonu i dalje ga defragmentirati. Defragmentacija će pomicati ekstenzije datoteka oko datotečnog sustava kako bi opsezi iste velike datoteke bili što kontinuiraniji. Defragmentacija poboljšava izvedbu datotečnog sustava.

xvi) Provjera izvanmrežnog datotečnog sustava: Datotečni sustav Btrfs ima mnogo ugrađenih alata pomoću kojih možete provjeriti postoje li pogreške datotečnog sustava i ispraviti ih. Pomoću ovih alata možete popraviti i pokvareni Btrfs datotečni sustav (koji se ne može montirati).

xvii) Pretvorba postojećih datotečnih sustava Ext2 / 3/4 i ReiserFS na mjestu: Datotečni sustav Btrfs ima ugrađeni uslužni program btrfs-convert koji možete koristiti za pretvaranje postojećih Ext2 / 3/4 i ReiserFS datotečnih sustava u Btrfs datotečni sustav.

Program za pretvorbu datotečnog sustava Btrfs čita metapodatke postojećeg datotečnog sustava Ext2 / 3/4 (ili ReiserFS), stvara Btrfs metapodatke i pohranjuje ih u datotečni sustav. Datotečni sustav čuva i Btrfs i Ext2 / 3/4 (ili ReiserFS) metapodatke. Datotečni sustav Btrfs upućuje na iste blokove datoteka koje koriste datoteke datotečnog sustava Ext2 / 3/4 (ili ReiserFS). Postojeći datotečni sustav i podatkovni blokovi ostaju netaknuti jer je Btrfs datotečni sustav Copy-on-Write (CoW). Kada se datoteka izmijeni, datotečni sustav Btrfs kopira izvorne podatkovne blokove u nove besplatne ekstenzije i tamo ih modificira.

xviii) Sjemenski uređaji: Datotečni sustav Btrfs podržava uređaje za sjeme. Možete stvoriti datotečni sustav samo za čitanje i koristiti ga kao predložak (početni uređaj) za stvaranje drugih Btrfs datotečnih sustava. Prednost toga je što će se samo modificirani podaci upisati u novi datotečni sustav. Izvorni podaci (na uređajima za sjeme) čuvat će se takvi kakvi jesu. Ova se značajka može koristiti za uštedu puno prostora na disku i suvišnosti podataka.

xix) Slanje / primanje promjena u svesku: Datotečni sustav btrfs može slati / primati promjene subvoluma. Btrfs datotečni sustav može poslati inkrementalne promjene potvoluma drugom datotečnom sustavu Btrfs (može se nalaziti i na drugom računalu) koji može primiti promjene subvoluma. Ova se značajka koristi za izradu inkrementalnih sigurnosnih kopija datotečnog sustava Btrfs bilo lokalno ili udaljeno. Ova je metoda brža i učinkovitija od rsync-a.

xx) Grupno / izvan opsega deduplikacija: Datotečni sustav Btrfs podržava skupnu ili izvanmrežnu deduplikaciju. Dupliciranje se događa nakon što je datoteka zapisana u datotečni sustav. Datotečni sustav Btrfs aktivno skenira čitav datotečni sustav za identične ekstenzije i zadržava samo po jednu kopiju svakog opsega (uklanja suvišne / duple ekstenzije). Za ovaj se zadatak koristi isti princip copy-on-write (CoW). Deduplikacija štedi puno prostora na disku.

xxi) Podrška za zamjenske datoteke: Ako koristite Linux Kernel 5.0 ili noviji, možete stvoriti swap datoteke na datotečnom sustavu Btrfs.

Postoje neka ograničenja datoteke Swap u Btrfs datotečnom sustavu:

- Swap datoteka mora biti dodijeljena kao NoCoW (ne kopirati na pisanje)

- Swap datoteka ne smije imati omogućeno komprimiranje.

Stabilnost datotečnog sustava Btrfs:

Btrfs timski sustav aktivno razvija datotečni sustav Btrfs. Većina značajki datotečnog sustava stabilna je u vrijeme pisanja ovog članka. Neke napredne značajke još nisu dovoljno stabilne za proizvodno okruženje. Tim Btrfs naporno radi na rješavanju ovih problema sa stabilnošću.

Ako želite koristiti datotečni sustav Btrfs na svom produkcijskom poslužitelju, provjerite službenu stranicu Status - btrfs Wiki da biste saznali jesu li značajke datotečnog sustava koje su vam potrebne dovoljno stabilne za vas ili ne. Obavezno pokrenite neke testove prije konačne implementacije vašeg Btrfs datotečnog sustava i ne zaboravite čuvati sigurnosne kopije važnih podataka. Čuvanje sigurnosnih kopija uvijek je važno za proizvodna okruženja.

Buduća zamjena datotečnog sustava Ext4:

Datotečni sustav Btrfs razvija se brzo. Razvojni tim Btrfs također brine o stabilnosti datotečnog sustava. Dakle, trude se učiniti ga što stabilnijim dok razvijaju btrfs datotečni sustav. Jednom kada je btrfs datotečni sustav u potpunosti razvijen i sve su značajke dovoljno stabilne, može zamijeniti datotečni sustav Ext4.

Reference:

[1] btrfs Wiki - https: // btrfs.wiki.zrno.org / indeks.php / Glavna_stranica
[2] BTRFS - Dokumentacija stabla jezgre - https: // www.zrno.org / doc / html / najnovije / datotečni sustavi / btrfs.html
[3] BTRFS - Pojmovnik - https: // btrfs.wiki.zrno.org / indeks.php / pojmovnik
[4] Značajke datotečnog sustava “Btrfs” - https: // www.theeekdiary.com / features-of-the-btrfs-datotečni sustav /
[5] Usporedba datotečnih sustava - https: // en.wikipedija.org / wiki / Usporedba_datotečnih_sustava
[6] Dizajn Btrfs - btrfs Wiki - https: // btrfs.wiki.zrno.org / indeks.php / Btrfs_design
[7] možda bi ponestajanje inoda moglo biti shvaćeno "ozbiljnije"? - https: // lwn.net / Članci / 724522 /
[8] Omogućavanje snimanja Btrfs snimaka samo za čitanje - https: // markandruth.suradnik.uk / 2016/12/29 / making-a-btrfs-only-read-snapshot-writable
[9] Procjenjivanje podataka - https: // en.wikipedija.org / wiki / pruzanje podataka
[10] Česta pitanja - btrfs wiki - https: // btrfs.wiki.zrno.org / indeks.php / FAQ
[11] Standardne razine RAID-a - https: // en.wikipedija.org / wiki / Standard_RAID_levels
[12] Trim (računanje) - https: // en.wikipedija.org / wiki / Trim_ (računarstvo)
[13] SSD pogon - ArchWiki - https: // wiki.Archlinux.org / indeks.php / Solid_state_drive # TRIM
[14] Btrfsck - btrfs Wiki - https: // btrfs.wiki.zrno.org / indeks.php / Btrfsck
[15] Konverzija iz Ext3 / 4 i ReiserFS - btrfs Wiki - https: // btrfs.wiki.zrno.org / indeks.php / pretvorba_iz_Ext3
[16] Inkrementalna sigurnosna kopija - btrfs Wiki - https: // btrfs.wiki.zrno.org / indeks.php / Incremental_Backup
[17] Deduplikacija - btrfs Wiki - https: // btrfs.wiki.zrno.org / indeks.php / Deduplikacija
[18] Status - btrfs Wiki - https: // btrfs.wiki.zrno.org / indeks.php / Status

Kako preuzeti i igrati Sid Meier's Civilization VI na Linuxu
Uvod u igru Civilization 6 moderan je pogled na klasični koncept predstavljen u seriji igara Age of Empires. Ideja je bila prilično jednostavna; započ...
Kako instalirati i igrati Doom na Linuxu
Uvod u Doom Serija Doom nastala je 90-ih nakon izlaska originalnog Dooma. To je bio trenutni hit i od tog vremena nadalje igraća serija dobila je broj...
Vulkan za korisnike Linuxa
Sa svakom novom generacijom grafičkih kartica vidimo da programeri igara pomiču granice grafičke vjernosti i dolaze na korak od fotorealizma. No, bez ...