Btrfs

Įvadas į „Btrfs“ failų sistemą

Įvadas į „Btrfs“ failų sistemą
„Btrfs“ („B-Tree Filesystem“) yra šiuolaikiška „copy-on-write“ (CoW) failų sistema, skirta „Linux“. „Btrfs“ siekia įdiegti daug pažangių failų sistemos funkcijų, daugiausia dėmesio skiriant tolerancijai gedimams, taisymui ir lengvam administravimui. „Btrfs“ failų sistema sukurta taip, kad atitiktų didelio našumo ir didelių saugyklų serverių reikalavimus. Jis tinka petabaito masto duomenų centrams, taip pat koriniams išmaniesiems telefonams.Šiame straipsnyje aptarsiu „Btrfs“ failų sistemą ir jos ypatybes. Taigi, pradėkime.

Kopijuoti rašant - „CoW“ failų sistema:

„Btrfs“ yra kopijavimo ant rašymo (CoW) failų sistema. „CoW“ failų sistemoje, kai bandote modifikuoti duomenis apie failų sistemą, failų sistema nukopijuoja duomenis, modifikuoja duomenis ir tada įrašo modifikuotus duomenis atgal į kitą laisvą failų sistemos vietą.

Pagrindinis failų sistemos „Copy-on-Write“ (CoW) privalumas yra tas, kad duomenų apimtis, kurią ji nori pakeisti, yra nukopijuojami į kitą vietą, modifikuojami ir saugomi skirtingoje rinkmenų sistemoje. Pradinių duomenų apimtis nekeičiama. Taigi „btrfs“ failų sistema gali pašalinti duomenų sugadinimo ar dalinio atnaujinimo riziką, jei duomenų modifikavimo metu nutrūksta energija, nes pirminiai duomenys lieka nepakitę.

Pagrindinis failų sistemos „Copy-on-Write“ (CoW) failų trūkumas yra tai, kad dideli failai, kai jie yra modifikuojami, paprastai suskaidomi. Taigi, defragmentuoti reikia kartais. Laimei, „btrfs“ failų sistema palaiko internetinį fragmentavimą. Taigi, norint suskaidyti btrfs failų sistemą, nereikia atjungti failų sistemos.

Pagrindinės „Btrfs“ failų sistemos savybės:

Pagrindinės „Btrfs“ failų sistemos savybės yra šios:

i) Failų saugojimas pagal apimtį: Failų sistemoje, pagrįstoje mastu, laikmena vadinama laipsniu. Apimtis yra gretimas saugyklos plotas, rezervuotas failui. Vienam failui reikalingas vienas mastas, kad ir koks mažas būtų failas. Didesniems failams (failo dydis didesnis nei apimties dydis) reikės kelių dydžių. Didesniems failams bus naudojami metaduomenys, kad būtų galima stebėti failo mastą. „Btrfs“ failų sistemoje metaduomenys yra žymiai mažesnio dydžio. Mažesni metaduomenys pagerina saugojimo efektyvumą ir failų sistemos našumą.

ii) Didžiulis failo dydžio palaikymas: „Btrfs“ failų sistemoje vienas failas gali būti apie 264 baitų arba 16 EiB (exbibaitų) dydžio. Nesvarbu, koks didelis bus jūsų failas, „Btrfs“ gali jį palaikyti.

iii) Mažų failų pakavimas erdvėje: Paprastai, nesvarbu, koks failas yra mažas, failui laikyti reikės vieno bloko ar vienos apimties. Taip eikvojama daug vietos diske. Norėdami išspręsti šią problemą, „Btrfs“ failų sistema į metaduomenis įdeda mažesnius failus, kad būtų galima efektyviai saugoti mažesnius failus.

iv) Erdviai efektyvūs indeksuoti katalogai: „Btrfs“ failų sistemos katalogai indeksuojami dviem skirtingais būdais. Ieškant failo vardo, naudojamas raktų indeksavimas. Duomenims nustatyti naudojamas inode pagrįstas raktų indeksavimas. Dviejų lygių indeksavimas pagerina katalogų / failų paieškos našumą ir sumažina indeksų saugojimo reikalavimus.

v) Dinaminis inodo paskirstymas: 1 failo nuorodai jums reikia 1 inodo. Daugelis failų sistemų (t.e., Ext4) turi fiksuotą inodų skaičių. Taigi, jei sukursite per daug mažų failų, jūsų diske gali likti daug vietos, tačiau negalėsite sukurti naujų failų. Taip pat negalėsite padidinti maksimalaus inodų skaičiaus sukūrę failų sistemą.

„Btrfs“ išsprendžia šią problemą, dinamiškai paskirstydama inodus, kiek jų reikia. Taigi, jei turite laisvos vietos diske, galite sukurti tiek failų, kiek norite.

vi) Rašomos nuotraukos ir tik skaitomos nuotraukos: „Btrfs“ failų sistema palaiko momentines nuotraukas. Galite nufotografuoti dabartinę failų sistemą, kurią galite naudoti atkurdami duomenis, jei netyčia pašalinote kai kuriuos failus arba sugadinote kai kuriuos duomenis.

Pagal numatytuosius nustatymus btrfs momentinės nuotraukos yra tik skaitomos. Padarę tik skaitomą momentinę nuotrauką, negalėsite pakeisti jokių failų / katalogų toje nuotraukoje. Bet kokiu atveju, jei norite pakeisti bet kokius failus / katalogus padarę esamos „Btrfs“ failų sistemos momentinę nuotrauką, galite pakeisti tik skaitomą momentinę nuotrauką į rašomą momentinę nuotrauką ir modifikuoti visus tos momentinės nuotraukos failus / katalogus.

vii) Pogrupiai: „Btrfs“ failų sistemoje gali būti daugybė tūrių. Dalinis tūris yra pavadintas dvejetainis medis (B medis) (arba vidinis / loginis failų sistemos šaknis) esamo failų sistemos šaknų medžio (pagrindinis) btrfs failų sistemoje. Apatinis tūris nėra atskiras blokinis įrenginys. Bet jūs galite atskirai prijungti „Btrfs“ tūrius. Pogrupius galite laikyti vardų sritimis.

viii) Parama kvotai, apie kurią informuojama: Kvotas galite skirti ir tūriams. Viršijus kvotą, nebegalėsite pridėti jokių naujų duomenų prie apatinės apimties. Norėdami sukurti „Btrfs“ tūrio kvotas, jums nereikės jokių atskirų programų.

ix) duomenų ir metaduomenų kontrolinės sumos: Kad išvengtumėte duomenų sugadinimo, „Btrfs“ pagal numatytuosius nustatymus duomenims ir failų sistemos metaduomenims naudoja „crc32c“ kontrolinės sumos algoritmus. Kontrolinės sumos saugomos failų sistemoje, kad fone būtų automatiškai patikrinta, ar nėra failų sistemos klaidų ir duomenų sugadinimų.

„Btrfs“ palaiko daugelį kitų kontrolinės sumos algoritmų: xxhash, sha256 ir blake2b.

x) suspaudimas: „Btrfs“ failų sistema palaiko skaidrų failų glaudinimą. „Btrfs“ failų sistemoje esančių failų glaudinimas ir išskleidimas atliekamas automatiškai fone.

„Btrfs“ palaiko 3 glaudinimo algoritmus: ZLIB, LZO ir ZSTD.

ZLIB yra numatytasis „btrfs“ failų sistemos glaudinimo metodas.

xi) Integruotas kelių įrenginių palaikymas: „Btrfs“ failų sistemose yra įmontuotas loginio tūrio tvarkytuvo (LVM) palaikymas. Vienoje „btrfs“ failų sistemoje galite pridėti kelis saugojimo įrenginius. Taip pat galite sukonfigūruoti RAID masyvus „btrfs“ failų sistemoje, nereikalaudami jokios papildomos programinės įrangos.

„Btrfs“ failų sistema palaiko duomenų brūkšniavimą, duomenų atspindėjimą, duomenų ištrynimą + atspindėjimą ir vieno bei dvigubo pariteto įgyvendinimą.

Duomenų juostos: Jei toje pačioje „btrfs“ failų sistemoje pridėjote kelis atminties įrenginius, „btrfs“ gali tą patį failą išsaugoti skirtinguose fiziniuose įrenginiuose / skaidiniuose. Tai vadinama duomenų juostomis. Duomenų juostos pagerina failų sistemos skaitymo / rašymo našumą. RAID-0 plačiai naudoja duomenų ištrynimo funkciją.

Duomenų atspindėjimas: Jei toje pačioje „btrfs“ failų sistemoje pridėjote kelis atminties įrenginius, visi į vieną atminties įrenginį įrašyti duomenys bus įrašyti į visus kitus saugojimo įrenginius. Tai vadinama duomenų atspindėjimu. RAID-1 plačiai naudoja duomenų atspindėjimo funkciją.

Duomenų juostos + vienas paritetas: RAID-5 naudoja duomenų juosteles ir vieną paskirstytą paritetą. Jei pridėjote kelis atminties įrenginius į „btrfs“ failų sistemą, tada RAID-5 pašalins duomenis iš kelių atminties įrenginių ir apskaičiuos bei išsaugos pariteto blokus visuose atminties įrenginiuose. RAID-5 gali išlaikyti vieno disko gedimą.

Duomenų juostos + dvigubas paritetas: RAID-6 naudoja duomenų juosteles ir dvigubą paskirstytą paritetą. Jei pridėjote kelis atminties įrenginius į „btrfs“ failų sistemą, tada RAID-6 ištrins duomenis iš kelių atminties įrenginių ir apskaičiuos bei išsaugos dvigubus pariteto blokus visuose atminties įrenginiuose. RAID-6 gali sukelti du disko gedimus. Be to, jis yra tas pats kaip RAID-5 (duomenų juostos + vienas paritetas).

Duomenų juostos ir veidrodžiai: RAID-10 tuo pačiu metu naudoja duomenų juosteles ir duomenų atspindėjimą. RAID-10 reikia, kad į vieną „btrfs“ failų sistemą būtų įtrauktas lyginis to paties dydžio saugojimo įrenginių skaičius. Mažiausias atminties įrenginių, kuriuos galite pridėti RAID-10 „btrfs“ failų sistemoje, skaičius yra 4. Pusė atminties įrenginio bus naudojama duomenų juostelėms, o kita pusė bus naudojama atspindint pirmosios atminties įrenginių pusės duomenis (kur duomenys yra dryžuoti).

xii) SSD žinomumas ir optimizavimas: „Btrfs“ failų sistema žino apie SSD ir turi keletą SSD optimizavimo funkcijų. „Btrfs“ failų sistema taip pat turi „TRIM / Discard“ palaikymą SSD saugojimo įrenginiams.

TRIM funkcija gali aptikti ir pažymėti nebenaudojamus duomenų kiekius. Pažymėjus plėtinius, btrfs failų sistema gali juos automatiškai ištrinti, kad kiti failai galėtų naudoti šiuos duomenų dydžius.

Atmesti funkcija pašalins visus SSD duomenų išplėtimus. Jei norite parduoti savo SSD, ši funkcija gali būti naudinga.

xiii) Efektyvi papildoma atsarginė kopija: „Btrfs“ palaiko papildomą atsarginę kopiją. Pirmą kartą sukuriant atsarginę „btrfs“ failų sistemos kopiją, ji užfiksuoja dabartinės failų sistemos vaizdą. Tada visos vėlesnės atsarginės kopijos bus lyginamos su pirmuoju momentiniu vaizdu ir diske bus saugomi tik pakeitimai. Taigi, bet kurios paskesnės atsarginės kopijos užims mažiau vietos diske, o atsarginės kopijos bus greitesnės.

xiv) fono šveitimas: Tai yra „Btrfs“ failų sistemos procesas, naudojamas norint rasti ir ištaisyti klaidas failuose, kuriuose yra perteklinių kopijų (kelių kopijų), saugomų „Btrfs“ failų sistemoje.

xv) Internetinės failų sistemos defragmentavimas: Aš anksčiau paaiškinau, kaip veikia „Btrfs Copy-on-Write“ failų sistema. Dideli failai saugomi keliais Btrfs failų sistemos lygmenimis. Kai modifikuojate didelius failus, modifikuojami dydžiai nukopijuojami į skirtingus laisvus failų sistemos dydžius ir ten modifikuojami. Taigi, modifikuoti duomenų dydžiai taip pat saugomi, jei to reikia failų sistemai atkurti. Tai sukelia fragmentaciją (didelio failo duomenų apimtis nebus tęstinė ir bus išsklaidyta aplink visą saugojimo įrenginį) failų sistemoje, kai modifikuojami dideli failai. Per didelis suskaidymas neigiamai veikia failų sistemą (lėtina failų sistemos skaitymo / rašymo operaciją).

Norėdami išspręsti šią problemą, „btrfs“ failų sistema palaiko internetinę failų sistemos fragmentaciją. Naudodamiesi internetiniu defragmentavimu, jums nereikia atjungti failų sistemos, kad defragmentuotumėte failų sistemą. Galite išlaikyti ir paleisti failų sistemą ir vis tiek ją fragmentuoti. Defragmentuojant failų apimtys bus perkeltos aplink failų sistemą, kad to paties didelio failo mastai būtų kuo tęstiniai. Defragmentavimas pagerina failų sistemos našumą.

xvi) Failų sistemos neprisijungus patikrinimas: „Btrfs“ failų sistemoje yra daugybė įmontuotų įrankių, kuriuos galite naudoti norėdami patikrinti failų sistemos klaidas ir jas ištaisyti. Taip pat naudodami šiuos įrankius galite ištaisyti sugedusią „Btrfs“ failų sistemą (kurios negalima pritvirtinti).

xvii) Esamų „Ext2 / 3/4“ ir „ReiserFS“ failų sistemų konversija vietoje: „Btrfs“ failų sistemoje yra įmontuotas įrankis „btrfs-convert“, kurį galite naudoti norėdami konvertuoti esamas „Ext2 / 3/4“ ir „ReiserFS“ failų sistemas į „Btrfs“ failų sistemas.

„Btrfs“ failų sistemos konvertavimo programa nuskaito esamos „Ext2 / 3/4“ (arba „ReiserFS“) failų sistemos metaduomenis, sukuria „Btrfs“ metaduomenis ir saugo juos failų sistemoje. Failų sistema saugo ir Btrfs, ir Ext2 / 3/4 (arba ReiserFS) metaduomenis. „Btrfs“ failų sistema nurodo tuos pačius failų blokus, kuriuos naudoja „Ext2 / 3/4“ (arba „ReiserFS“) failų sistemos failai. Esama failų sistema ir duomenų blokai neliečiami, nes „Btrfs“ yra „Copy-on-Write“ (CoW) failų sistema. Pakeitus failą, „Btrfs“ failų sistema nukopijuoja originalius duomenų blokus į naujus nemokamus dydžius ir juos ten modifikuoja.

xviii) Sėklų įtaisai: „Btrfs“ failų sistema palaiko pradinius įrenginius. Galite sukurti tik skaitomą failų sistemą ir naudoti ją kaip šabloną (pirminį įrenginį), kad sukurtumėte kitas „Btrfs“ failų sistemas. Privalumas yra tai, kad tik modifikuoti duomenys bus įrašyti į naują failų sistemą. Originalūs duomenys (apie sėklų įtaisus) bus saugomi tokie, kokie yra. Šią funkciją galima naudoti norint sutaupyti daug vietos diske ir pertvarkyti duomenis.

xix) Siųskite / gaukite pakeitimus: „Btrfs“ failų sistema gali siųsti / gauti dalinius pakeitimus. „Btrfs“ failų sistema gali siųsti papildomus tūrio pokyčius į kitą „Btrfs“ failų sistemą (taip pat gali būti kitame kompiuteryje), kuri gali priimti tūrio pakeitimus. Ši funkcija naudojama priėmus papildomas „Btrfs“ failų sistemos atsargines kopijas lokaliai arba nuotoliniu būdu. Šis metodas yra greitesnis ir efektyvesnis nei „rsync“.

xx) Partijos / iš juostos deduplikacija: „Btrfs“ failų sistema palaiko paketinį arba juostos deduplikavimą. Kopijavimas įvyksta įrašius failą į failų sistemą. „Btrfs“ failų sistema aktyviai nuskaito visą failų sistemą dėl identiškų dydžių ir saugo tik vieną kiekvienos apimties kopiją (pašalina nereikalingus / pasikartojančius kiekius). Šiai užduočiai naudojamas tas pats „copy-on-write“ (CoW) principas. Deduplikacija sutaupo daug vietos diske.

xxi) „Swapfile“ palaikymas: Jei naudojate „Linux Kernel 5“.0 arba naujesnė, galite sukurti keitimo bylas Btrfs failų sistemoje.

„Btrfs“ failų sistemoje yra keletas „Swapfile“ apribojimų:

- Apsikeitimo failas turi būti priskirtas kaip NoCoW (ne rašyti ant kopijavimo)

- Apsikeitimo faile negali būti įgalintas joks glaudinimas.

„Btrfs“ failų sistemos stabilumas:

„Btrfs“ failų sistemą aktyviai kuria „Btrfs“ komanda. Rašymo metu dauguma failų sistemos savybių yra stabilios. Kai kurios pažangios funkcijos dar nėra pakankamai stabilios gamybos aplinkai. „Btrfs“ komanda stengiasi išspręsti šias stabilumo problemas.

Jei norite naudoti „Btrfs“ failų sistemą savo gamybos serveryje, patikrinkite oficialų „Status - btrfs Wiki“ puslapį, kad sužinotumėte, ar jums reikalingos failų sistemos funkcijos yra pakankamai stabilios, ar ne. Be to, prieš atlikdami galutinį „Btrfs“ failų sistemos diegimą, būtinai atlikite keletą bandymų ir nepamirškite išsaugoti svarbių duomenų atsarginių kopijų. Gamybos aplinkoje visada svarbu išsaugoti atsarginę kopiją.

Būsimas „Ext4“ failų sistemos pakeitimas:

„Btrfs“ failų sistema yra sparčiai kuriama. „Btrfs“ kūrėjų komanda taip pat rūpinasi failų sistemos stabilumu. Taigi, jie stengiasi, kad tai būtų kuo stabilesnė, tuo pačiu kuriant „btrfs“ failų sistemą. Kai „btrfs“ failų sistema bus visiškai išvystyta ir visos funkcijos pakankamai stabilios, ji gali pakeisti „Ext4“ failų sistemą.

Nuorodos:

[1] btrfs Wiki - https: // btrfs.wiki.branduolys.org / index.php / Pagrindinis_Page
[2] BTRFS - branduolio medžio dokumentacija - https: // www.branduolys.org / doc / html / latest / filesystems / btrfs.HTML
[3] BTRFS - Žodynas - https: // btrfs.wiki.branduolys.org / index.php / Žodynas
[4] „Btrfs“ failų sistemos ypatybės - https: // www.dienoraštis.com / features-of-the-btrfs-failų sistema /
[5] Failų sistemų palyginimas - https: // lt.vikipedija.org / wiki / Failų_sistemų palyginimas
[6] „Btrfs“ dizainas - „btrfs Wiki“ - https: // btrfs.wiki.branduolys.org / index.php / Btrfs_design
[7] galbūt į inodų trūkumą galima žiūrėti „rimčiau“? - https: // lwn.tinklas / Straipsniai / 724522 /
[8] Padaryti „Btrfs“ tik skaitomus momentinius vaizdus rašomus - https: // markandruth.bendr.uk / 2016/12/29 / making-a-btrfs-only-read-snapshot-writeable
[9] Duomenų juostos - https: // lt.vikipedija.org / wiki / Data_striping
[10] DUK - btrfs wiki - https: // btrfs.wiki.branduolys.org / index.php / FAQ
[11] Standartiniai RAID lygiai - https: // lt.vikipedija.org / wiki / Standard_RAID_levels
[12] Trim (skaičiavimas) - https: // lt.vikipedija.org / wiki / Trim_ (skaičiavimas)
[13] Kietojo kūno diskas - ArchWiki - https: // wiki.archlinux.org / index.php / Solid_state_drive # TRIM
[14] „Btrfsck“ - „btrfs Wiki“ - https: // btrfs.wiki.branduolys.org / index.php / Btrfsck
[15] Konversija iš „Ext3 / 4“ ir „ReiserFS“ - „btrfs Wiki“ - https: // btrfs.wiki.branduolys.org / index.php / Conversion_from_Ext3
[16] Atskirasis atsarginis kopijavimas - „btrfs Wiki“ - https: // btrfs.wiki.branduolys.org / index.php / Incremental_Backup
[17] Deduplication - btrfs Wiki - https: // btrfs.wiki.branduolys.org / index.php / Deduplication
[18] Būsena - „btrfs Wiki“ - https: // btrfs.wiki.branduolys.org / index.php / būsena

Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...
Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...
„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...