Btrfs

Uvod v datotečni sistem Btrfs

Uvod v datotečni sistem Btrfs
Btrfs (datotečni sistem B-Tree) je sodoben datotečni sistem CoW (copy-on-write) za Linux. Cilj Btrfs je implementirati številne napredne funkcije datotečnega sistema, pri čemer se osredotoča na odpornost na napake, popravilo in enostavno upravljanje. Datotečni sistem btrfs je zasnovan tako, da podpira zahteve po visoko zmogljivih in velikih pomnilniških strežnikih. Primeren je za podatkovne centre v petabajtnem merilu in tudi za celične pametne telefone.V tem članku bom razpravljal o datotečnem sistemu Btrfs in njegovih značilnostih. Torej, začnimo.

Kopiraj v zapisu - datotečni sistem CoW:

Btrfs je datotečni sistem CoW (copy-on-write). Ko poskušate spremeniti podatke v datotečnem sistemu CoW, datotečni sistem kopira podatke, jih spremeni in nato spremenjene podatke zapiše nazaj na drugo prosto mesto datotečnega sistema.

Glavna prednost datotečnega sistema Copy-on-Write (CoW) je, da se obseg podatkov, ki ga želi spremeniti, kopira na drugo mesto, spremeni in shrani v drugem obsegu datotečnega sistema. Izvirni obseg podatkov ni spremenjen. Tako lahko datotečni sistem btrfs odpravi tveganje za poškodbe ali delno posodobitev podatkov v primeru izpada električne energije med spreminjanjem podatkov, saj se izvirni podatki ohranijo nespremenjeni.

Glavna pomanjkljivost datotečnega sistema Copy-on-Write (CoW) je, da se velike datoteke pri spreminjanju ponavadi razdrobijo. Torej je treba občasno defragmentacijo. Na srečo datotečni sistem btrfs podpira spletno defragmentacijo. Torej vam ni treba demontirati datotečnega sistema, če želite defragmentirati datotečni sistem btrfs.

Glavne značilnosti datotečnega sistema Btrfs:

Glavne značilnosti datotečnega sistema Btrfs so:

i) Obseg shranjevanja datotek: V datotečnem sistemu, ki temelji na obsegu, se pomnilniška enota imenuje obseg. Obseg je sosednje območje pomnilnika, ki je rezervirano za datoteko. Ena datoteka zahteva en obseg, ne glede na to, kako majhna je. Za večje datoteke (velikost datoteke večja od velikosti obsega) bo potrebnih več ekstenzij. Pri večjih datotekah se bodo metapodatki uporabljali za sledenje obsegov, ki jih datoteka uporablja. V datotečnem sistemu Btrfs so metapodatki bistveno manjši. Manjši metapodatki izboljšajo učinkovitost shranjevanja in delovanje datotečnega sistema.

ii) Podpora za velikost datoteke: V datotečnem sistemu Btrfs je lahko ena datoteka približno 264 bajtov ali velikosti 16 EiB (eksbibajtov). Ne glede na to, kako velika postane vaša datoteka, jo lahko podpira Btrfs.

iii) Prostorsko učinkovito pakiranje majhnih datotek: Običajno ne glede na to, kako majhna je datoteka, za shranjevanje datoteke potrebuje en blok ali en obseg. S tem zapravite veliko prostora na disku. Za rešitev te težave datotečni sistem Btrfs v metapodatke vdela manjše datoteke za učinkovito shranjevanje manjših datotek.

iv) Prostorno učinkoviti indeksirani imeniki: Imeniki datotečnega sistema btrfs se indeksirajo na dva različna načina. Za iskanje imena datoteke se uporablja indeksiranje na podlagi ključa. Za sklicevanje na podatke se uporablja indeksiranje ključev na osnovi inode. Dvostopenjsko indeksiranje izboljša zmogljivost iskanja v imeniku / datoteki in zmanjša zahteve za shranjevanje indeksov.

v) Dinamično dodeljevanje neviht: Za sklic na 1 datoteko potrebujete 1 inode. Številni datotečni sistemi (tj.e., Ext4) imajo določeno število inodov. Torej, če ustvarite preveč majhnih datotek, vam bo morda ostalo veliko prostora na disku, vendar ne boste mogli ustvariti novih datotek. Ko ustvarite datotečni sistem, tudi ne morete povečati največjega števila inod.

Btrfs reši to težavo z dinamičnim dodeljevanjem inod po potrebi. Torej lahko ustvarite poljubno število datotek, če imate na voljo dovolj prostora na disku.

vi) Zapisljivi posnetki in posnetki samo za branje: Datotečni sistem Btrfs podpira posnetke. Posnamete lahko trenutni datotečni sistem, ki ga lahko uporabite za obnovitev podatkov, če ste pomotoma odstranili nekatere datoteke ali poškodovali nekatere podatke.

Posnetki btrfs so privzeto samo za branje. Ko posnamete posnetek, ki je samo za branje, v njem ne morete spremeniti nobene datoteke / imenika. V vsakem primeru, če želite spremeniti katero koli datoteko / imenik, potem ko ste posneli posnetek obstoječega datotečnega sistema Btrfs, lahko posnetek samo za branje spremenite v zapisljiv posnetek in spremenite vse datoteke / imenike v tem posnetku.

vii) Podvolumi: Datotečni sistem Btrfs ima lahko veliko podtipov. Subvolum je imenovano binarno drevo (B-drevo) (ali koren notranjega / logičnega datotečnega sistema) obstoječega korenskega drevesa datotečnega sistema (glavno) datotečnega sistema btrfs. Subvolum ni lastna blokovna naprava. Vendar lahko podvsebine Btrfs namestite posamezno. Podzvoke si lahko predstavljate kot imenske prostore.

viii) Podpora za kvote, ki se zavedajo subvoluma: Kvote lahko dodelite tudi za podtipe. Ko je kvota presežena, v podzvok ne boste mogli dodati novih podatkov. Za ustvarjanje kvot podvsebin Btrfs ne boste potrebovali ločenih programov.

ix) Kontrolne vsote za podatke in metapodatke: Da bi se izognil poškodbam podatkov, Btrfs privzeto uporablja algoritme kontrolne vsote crc32c za podatke in metapodatke datotečnega sistema. Kontrolne vsote se shranijo v datotečni sistem za samodejno preverjanje napak datotečnega sistema in poškodb podatkov v ozadju.

Btrfs podpira številne druge algoritme kontrolne vsote: xxhash, sha256 in blake2b.

x) Stiskanje: Datotečni sistem Btrfs podpira pregledno stiskanje datotek. Stiskanje in dekompresija datotek v datotečnem sistemu btrfs se samodejno izvedeta v ozadju.

Btrfs podpira 3 algoritme stiskanja: ZLIB, LZO in ZSTD.

ZLIB je privzeta metoda stiskanja datotečnega sistema btrfs.

xi) Integrirana podpora za več naprav: Datotečni sistemi Btrfs imajo vgrajeno podporo za upravljanje logičnega nosilca podatkov (LVM). V en datotečni sistem btrfs lahko dodate več pomnilniških naprav. Polja RAID lahko tudi konfigurirate v datotečnem sistemu btrfs, ne da bi potrebovali dodaten del programske opreme.

Datotečni sistem Btrfs podpira črtanje podatkov, zrcaljenje podatkov, črtanje podatkov + zrcaljenje ter izvedbe enojne in dvojne parnosti.

Črtanje podatkov: Če ste v isti datotečni sistem btrfs dodali več pomnilniških naprav, lahko btrfs isto datoteko shrani na različne fizične naprave / particije. To se imenuje črtanje podatkov. Črtanje podatkov izboljša zmogljivost branja / pisanja datotečnega sistema. RAID-0 široko uporablja funkcijo črtovanja podatkov.

Zrcaljenje podatkov: Če ste v isti datotečni sistem btrfs dodali več pomnilniških naprav, bodo vsi podatki, zapisani v eno pomnilniško napravo, zapisani v vse druge pomnilniške naprave. To se imenuje zrcaljenje podatkov. RAID-1 v veliki meri uporablja funkcijo zrcaljenja podatkov.

Črtanje podatkov + enaka parnost: RAID-5 uporablja črtanje podatkov in enojno porazdeljeno pariteto. Če ste v datotečni sistem btrfs dodali več pomnilniških naprav, bo RAID-5 odstranil podatke na več pomnilniških napravah ter izračunal in shranil paritetne bloke med pomnilniškimi napravami. RAID-5 lahko povzroči okvaro enega pogona.

Črtanje podatkov + dvojna parnost: RAID-6 uporablja črtanje podatkov in dvojno porazdeljeno pariteto. Če ste v datotečni sistem btrfs dodali več pomnilniških naprav, bo RAID-6 odstranil podatke na več pomnilniških napravah ter izračunal in shranil dvojne paritetne bloke med pomnilniškimi napravami. RAID-6 lahko povzroči dve okvari pogona. Razen tega je enako kot RAID-5 (črtanje podatkov + enaka pariteta).

Črtanje podatkov + zrcaljenje: RAID-10 hkrati uporablja črtanje in zrcaljenje podatkov. RAID-10 zahteva, da se v en datotečni sistem btrfs doda sodo število pomnilniških naprav enake velikosti. Najmanjše število pomnilniških naprav, ki jih lahko dodate v datotečni sistem RAID-10 btrfs, je 4. Polovica pomnilniške naprave bo uporabljena za črtanje podatkov, druga polovica pa za zrcaljenje podatkov prve polovice pomnilniških naprav (kjer so podatki črtasti).

xii) Ozaveščenost o SSD in optimizacije: Datotečni sistem btrfs se zaveda SSD in ima nekaj funkcij za optimizacijo SSD. Datotečni sistem btrfs ima tudi podporo za TRIM / Discard za shranjevalne naprave SSD.

Funkcija TRIM lahko zazna in označi obsege podatkov, ki se ne uporabljajo več. Ko so razširitve označene, jih lahko datotečni sistem btrfs samodejno izbriše, tako da lahko druge datoteke uporabljajo te obsege podatkov.

Funkcija Zavrzi bo odstranila vse razširitve podatkov SSD-ja. Če želite prodati svoj SSD, vam bo ta funkcija lahko prišla prav.

xiii) Učinkovito postopno varnostno kopiranje: Btrfs podpira postopno varnostno kopiranje. Ko prvič varnostno kopirate datotečni sistem btrfs, posname trenutni datotečni sistem. Nato bodo vse nadaljnje varnostne kopije primerjane s prvim posnetkom in na disku bodo shranjene samo spremembe. Torej bodo vse nadaljnje varnostne kopije zavzele manj prostora na disku, varnostne kopije pa bodo hitrejše.

xiv) Piling za ozadje: To je postopek datotečnega sistema Btrfs, ki se uporablja za iskanje in odpravljanje napak v datotekah, ki imajo v datotečnem sistemu Btrfs odvečne kopije (več kopij).

xv) Spletna defragmentacija datotečnega sistema: Že prej sem razložil, kako deluje datotečni sistem Btrfs Copy-on-Write. Večje datoteke so shranjene v več obsegih datotečnega sistema Btrfs. Ko spreminjate velike datoteke, se ekstenzije, ki jih je treba spremeniti, kopirajo v različne brezplačne ekstenzije datotečnega sistema in tam spremenijo. Torej se nespremenjeni obsegi podatkov hranijo tudi, če so potrebni za obnovitev datotečnega sistema. To povzroči razdrobljenost (obseg podatkov velike datoteke ne bo neprekinjen in bo razpršen po celotni pomnilniški napravi) na datotečnem sistemu, saj se spreminjajo velike datoteke. Preveč fragmentacije negativno vpliva na datotečni sistem (zaradi česar datotečni sistem počasneje bere / piše).

Za rešitev te težave datotečni sistem btrfs podpira spletno defragmentacijo datotečnega sistema. S spletno defragmentacijo vam ni treba demontirati datotečnega sistema, če želite defragmentirati datotečni sistem. Datotečni sistem lahko obdržite in ga še vedno defragmentirate. Defragmentacija bo premaknila obseg datotek po datotečnem sistemu, da bo obseg iste velike datoteke čim bolj neprekinjen. Defragmentacija izboljša zmogljivost datotečnega sistema.

xvi) Preverjanje datotečnega sistema brez povezave: Datotečni sistem Btrfs ima veliko vgrajenih orodij, s katerimi lahko preverite napake datotečnega sistema in jih popravite. S temi orodji lahko popravite tudi pokvarjen datotečni sistem Btrfs (ki ga ni mogoče namestiti).

xvii) Pretvorba obstoječih datotečnih sistemov Ext2 / 3/4 in ReiserFS na kraju samem: Datotečni sistem Btrfs ima vgrajen pripomoček btrfs-convert, s katerim lahko obstoječi datotečni sistem Ext2 / 3/4 in ReiserFS pretvorite v datotečni sistem Btrfs.

Program za pretvorbo datotečnega sistema Btrfs prebere metapodatke obstoječega datotečnega sistema Ext2 / 3/4 (ali ReiserFS), ustvari metapodatke Btrfs in jih shrani v datotečni sistem. Datotečni sistem hrani tako Btrfs kot metapodatke Ext2 / 3/4 (ali ReiserFS). Datotečni sistem Btrfs kaže na iste bloke datotek, ki jih uporabljajo datoteke datotečnega sistema Ext2 / 3/4 (ali ReiserFS). Obstoječi datotečni sistem in podatkovni bloki ostanejo nedotaknjeni, saj je Btrfs datotečni sistem Copy-on-Write (CoW). Ko je datoteka spremenjena, datotečni sistem Btrfs kopira izvirne podatkovne bloke v nove brezplačne ekstenzije in jih tam spremeni.

xviii) Semenske naprave: Datotečni sistem Btrfs podpira semenske naprave. Ustvarite lahko datotečni sistem samo za branje in ga uporabite kot predlogo (semensko napravo) za ustvarjanje drugih datotečnih sistemov Btrfs. Prednost tega je, da bodo v novi datotečni sistem zapisani samo spremenjeni podatki. Izvirni podatki (na semenskih napravah) se bodo ohranili takšni, kot so. S to funkcijo lahko prihranite veliko prostora na disku in redundanco podatkov.

xix) Pošiljanje / prejemanje sprememb podglasnika: Datotečni sistem btrfs lahko pošilja / prejema spremembe podglasnika. Datotečni sistem Btrfs lahko pošlje prirastne spremembe podvoluma drugemu datotečnemu sistemu Btrfs (lahko tudi v drugem računalniku), ki lahko prejme spremembe podvoluma. Ta funkcija se uporablja za postopno varnostno kopiranje datotečnega sistema Btrfs bodisi lokalno bodisi oddaljeno. Ta metoda je hitrejša in učinkovitejša od rsync.

xx) Duplikacija serije / zunaj pasu: Datotečni sistem Btrfs podpira paketno ali zunajpasovno deduplikacijo. Podvajanje se izvede po zapisu datoteke v datotečni sistem. Datotečni sistem Btrfs aktivno skenira celoten datotečni sistem za enake ekstenzije in hrani samo eno kopijo vsakega obsega (odstrani odvečne / podvojene ekstenzije). Za to nalogo se uporablja isti princip kopiranja in pisanja (CoW). Deduplikacija prihrani veliko prostora na disku.

xxi) Podpora za swap datoteke: Če uporabljate Linux Kernel 5.0 ali novejši, lahko ustvarite swap datoteke v datotečnem sistemu Btrfs.

Obstaja nekaj omejitev datoteke Swap v datotečnem sistemu Btrfs:

- Datoteka zamenjave mora biti dodeljena kot NoCoW (ne kopiranje na zapis)

- Swap datoteka ne sme imeti omogočenega stiskanja.

Stabilnost datotečnega sistema Btrfs:

Datotečni sistem Btrfs aktivno razvija ekipa Btrfs. V času pisanja je večina funkcij datotečnega sistema stabilna. Nekatere napredne funkcije še niso dovolj stabilne za proizvodno okolje. Skupina Btrfs si močno prizadeva rešiti ta vprašanja stabilnosti.

Če želite na svojem produkcijskem strežniku uporabiti datotečni sistem Btrfs, preverite uradno stran Status - btrfs Wiki, da ugotovite, ali so funkcije datotečnega sistema, ki jih potrebujete, dovolj stabilne za vas ali ne. Prepričajte se tudi, da ste pred končno uvedbo datotečnega sistema Btrfs izvedli nekaj testov in ne pozabite shraniti varnostnih kopij pomembnih podatkov. Vodenje varnostne kopije je vedno pomembno za proizvodna okolja.

Nadaljnja zamenjava datotečnega sistema Ext4:

Datotečni sistem Btrfs se hitro razvija. Razvojna skupina Btrfs skrbi tudi za stabilnost datotečnega sistema. Zato se po svojih najboljših močeh trudijo, da bi bil med razvojem datotečnega sistema btrfs čim bolj stabilen. Ko je datotečni sistem btrfs popolnoma razvit in so vse funkcije dovolj stabilne, lahko nadomesti datotečni sistem Ext4.

Reference:

[1] btrfs Wiki - https: // btrfs.wiki.jedro.org / kazalo.php / Main_Page
[2] BTRFS - Dokumentacija drevesa jedra - https: // www.jedro.org / doc / html / najnovejši / datotečni sistem / btrfs.html
[3] BTRFS - Slovarček - https: // btrfs.wiki.jedro.org / kazalo.php / glosar
[4] Značilnosti datotečnega sistema “Btrfs” - https: // www.tegeekdiary.com / features-of-the-btrfs-datotečni sistem /
[5] Primerjava datotečnih sistemov - https: // en.wikipedia.org / wiki / Comparison_of_file_systems
[6] Oblika Btrfs - btrfs Wiki - https: // btrfs.wiki.jedro.org / kazalo.php / Btrfs_design
[7] morda bi zmanjšanje inodov lahko vzeli "resneje"? - https: // lwn.net / Članki / 724522 /
[8] Omogočanje zapisov Btrfs samo za branje - https: // markandruth.co.uk / 2016/12/29 / making-a-btrfs-only-read-snapshot-writable
[9] Črtanje podatkov - https: // en.wikipedia.org / wiki / Data_striping
[10] Pogosta vprašanja - btrfs wiki - https: // btrfs.wiki.jedro.org / kazalo.php / pogosta vprašanja
[11] Standardne ravni RAID - https: // en.wikipedia.org / wiki / Standard_RAID_levels
[12] Trim (računalništvo) - https: // en.wikipedia.org / wiki / Trim_ (računalništvo)
[13] Pogon SSD - ArchWiki - https: // wiki.archlinux.org / kazalo.php / Solid_state_drive # TRIM
[14] Btrfsck - btrfs Wiki - https: // btrfs.wiki.jedro.org / kazalo.php / Btrfsck
[15] Pretvorba iz Ext3 / 4 in ReiserFS - btrfs Wiki - https: // btrfs.wiki.jedro.org / kazalo.php / Conversion_from_Ext3
[16] Inkrementalno varnostno kopiranje - btrfs Wiki - https: // btrfs.wiki.jedro.org / kazalo.php / Incremental_Backup
[17] Deduplikacija - btrfs Wiki - https: // btrfs.wiki.jedro.org / kazalo.php / Deduplikacija
[18] Stanje - btrfs Wiki - https: // btrfs.wiki.jedro.org / kazalo.php / Status

Namestite najnovejšo strategijo igre OpenRA v Ubuntu Linux
OpenRA je Libre / Free Real Time strateški stroj, ki poustvarja zgodnje igre Westwood, kot je klasična Command & Conquer: Red Alert. Porazdeljeni modi...
Namestite najnovejši Dolphin Emulator za Gamecube & Wii v Linux
Dolphin Emulator vam omogoča igranje izbranih iger Gamecube in Wii na osebnih računalnikih Linux (PC). Dolphin Emulator je prosto dostopen in odprtok...
Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...