Btrfs

Introduktion til Btrfs Filesystem

Introduktion til Btrfs Filesystem
Btrfs (B-Tree Filesystem) er et moderne copy-on-write (CoW) filsystem til Linux. Btrfs sigter mod at implementere mange avancerede filsystemfunktioner, mens der fokuseres på fejltolerance, reparation og nem administration. Btrfs-filsystemet er designet til at understøtte kravet om højtydende og store lagerservere. Det er velegnet til datacenter i petabyte-skala samt mobiltelefoner.I denne artikel skal jeg diskutere Btrfs-filsystemet og dets funktioner. Så lad os komme i gang.

Kopiér på skriv - CoW-filsystem:

Btrfs er et copy-on-write (CoW) filsystem. Når du forsøger at ændre data på filsystemet i et CoW-filsystem, kopierer filsystemet dataene, ændrer dataene og skriver derefter de modificerede data tilbage til en anden fri placering af filsystemet.

Den største fordel ved Copy-on-Write (CoW) -filsystemet er, at det dataomfang, det vil ændre, kopieres til et andet sted, ændres og lagres i et andet omfang af filsystemet. Det oprindelige dataomfang er ikke ændret. Så btrfs-filsystemet kan eliminere risikoen for datakorruption eller delvis opdatering i tilfælde af strømsvigt under datamodifikation, da de originale data holdes uændrede.

Den største ulempe ved Copy-on-Write (CoW) filsystemet er, at store filer har tendens til at blive fragmenteret, når de ændres. Så der kræves defragmentering en gang imellem. Heldigvis understøtter btrfs-filsystemet online defragmentering. Så du behøver ikke at afmontere filsystemet for at defragmentere et btrfs-filsystem.

Hovedfunktioner i Btrfs Filesystem:

Hovedfunktionerne i Btrfs-filsystemet er:

i) Omfangsbaseret filopbevaring: I et omfangsbaseret filsystem kaldes lagerenheden et omfang. Et omfang er et sammenhængende lagerområde, der er reserveret til en fil. Én fil kræver en udstrækning, uanset hvor lille filen er. For større filer (filstørrelse større end omfanget) kræves der flere udvidelser. For større filer vil metadata blive brugt til at holde styr på omfanget, som filen bruger. I Btrfs-filsystemet er metadataene signifikant mindre i størrelse. Mindre metadata forbedrer lagereffektiviteten og filsystemets ydeevne.

ii) Kæmpe filstørrelsesunderstøttelse: I et Btrfs-filsystem kan en enkelt fil være ca. 264 bytes eller 16 EiB (exbibytes) i størrelse. Uanset hvor stor din fil bliver, kan Btrfs understøtte den.

iii) Rumeffektiv emballering af små filer: Uanset hvor lille en fil er, vil det normalt kræve en blok eller et omfang for at gemme filen. Dette spilder meget diskplads. For at løse dette problem integrerer Btrfs-filsystemet mindre filer i metadataene for at gemme mindre filer effektivt.

iv) Rumeffektive indekserede mapper: Btrfs-filsystemkatalogerne indekseres på to forskellige måder. Til filnavneopslag anvendes nøglebaseret indeksering. For at henvise til data anvendes inode-baseret nøgleindeksering. To-niveau indeksering forbedrer biblioteks- / filopslagets ydeevne og reducerer lagringskravene til indekserne.

v) Dynamisk inodetildeling: Du har brug for 1 inode for at kunne referere til 1 fil. Mange filsystemer (i.e., Ext4) har et fast antal inoder. Så hvis du opretter for mange små filer, har du muligvis meget plads på din disk, men du kan ikke oprette nye filer. Du kan heller ikke øge det maksimale antal inoder, når filsystemet er oprettet.

Btrfs løser dette problem ved at allokere inoder dynamisk, efterhånden som de kræves. Så du kan oprette så mange filer, som du vil, så længe du har ledig diskplads.

vi) Skrivbare snapshots og read-only snapshots: Btrfs-filsystemet understøtter snapshots. Du kan tage et øjebliksbillede af det aktuelle filsystem, som du kan bruge til at gendanne dine data, hvis du ved et uheld har fjernet nogle filer eller ødelagt nogle data.

Som standard er btrfs-snapshots skrivebeskyttet. Når du har taget et skrivebeskyttet øjebliksbillede, kan du ikke ændre nogen filer / mapper i dette øjebliksbillede. Under alle omstændigheder, hvis du vil ændre filer / mapper, efter at du har taget et øjebliksbillede af dit eksisterende Btrfs-filsystem, kan du ændre det skrivebeskyttede øjebliksbillede til et skrivbart øjebliksbillede og ændre eventuelle filer / mapper i det øjebliksbillede.

vii) Undervolumener: Et Btrfs-filsystem kan have mange undervolumener. Et undervolumen er et navngivet binært træ (B-træ) (eller intern / logisk filsystemrod) af det eksisterende filsystem rodtræ (hoved) af btrfs-filsystemet. Et undervolumen er ikke en egen blokanordning. Men du kan montere Btrfs subvolumes individuelt. Du kan tænke på undervolumener som navneområder.

viii) Subvolumebevidst kvotestøtte: Du kan også tildele kvoter for undervolumener. Når kvoten er overskredet, kan du ikke tilføje nye data til undervolumen. Du behøver ikke nogen separate programmer for at oprette Btrfs-undervolumenkvoter.

ix) Kontrolsummer for data og metadata: For at undgå korruption af data bruger Btrfs som standard crc32c-kontrolsumalgoritmer til dataene og filsystemets metadata. Kontrollsummen er gemt i filsystemet for automatisk at kontrollere for filsystemfejl og datakorruptioner i baggrunden.

Btrfs har understøttelse af mange andre checksum-algoritmer: xxhash, sha256 og blake2b.

x) Kompression: Btrfs-filsystem understøtter gennemsigtig filkomprimering. Komprimering og dekompression af filerne i et btrfs-filsystem sker automatisk i baggrunden.

Btrfs understøtter 3 komprimeringsalgoritmer: ZLIB, LZO og ZSTD.

ZLIB er standardkomprimeringsmetoden for btrfs-filsystemet.

xi) Integreret understøttelse af flere enheder: Btrfs-filsystemer har indbygget LVM-understøttelse (Logical Volume Manager). Du kan tilføje flere lagerenheder i et enkelt btrfs-filsystem. Du kan også konfigurere RAID-arrays på btrfs-filsystemet uden brug af ekstra software.

Btrfs filsystem understøtter datastribning, dataspejling, datastriping + spejling og implementeringer af enkelt og dobbelt paritet.

Data striping: Hvis du har tilføjet flere lagerenheder i det samme btrfs-filsystem, kan btrfs gemme den samme fil på forskellige fysiske enheder / partitioner. Dette kaldes datastriping. Data striping forbedrer læse / skrive ydeevnen for filsystemet. RAID-0 bruger datastribningsfunktionen i vid udstrækning.

Dataspejling: Hvis du har tilføjet flere lagerenheder i det samme btrfs-filsystem, vil alle data, der er skrevet til en lagerenhed, blive skrevet til alle de andre lagerenheder. Dette kaldes dataspejling. RAID-1 bruger dataspejlingsfunktionen i udstrakt grad.

Datastribe + enkelt paritet: RAID-5 bruger datastribning og enkelt distribueret paritet. Hvis du har tilføjet flere lagerenheder i et btrfs-filsystem, stripper RAID-5 dataene på flere lagerenheder og beregner og gemmer paritetsblokke på tværs af lagerenhederne. RAID-5 kan opretholde en enkelt drevfejl.

Datastribe + dobbelt paritet: RAID-6 bruger datastribning og dobbeltfordelt paritet. Hvis du har tilføjet flere lagerenheder i et btrfs-filsystem, stripper RAID-6 dataene på flere lagerenheder og beregner og gemmer dobbeltparitetsblokke på tværs af lagerenhederne. RAID-6 kan opretholde to drevfejl. Bortset fra det er det det samme som RAID-5 (data striping + single parity).

Datastriping + spejling: RAID-10 bruger datastribning og dataspejling på samme tid. RAID-10 kræver, at der tilføjes et lige antal lagerenheder af samme størrelse til et enkelt btrfs-filsystem. Det mindste antal lagerenheder, du kan tilføje på et RAID-10 btrfs-filsystem, er 4. Halvdelen af ​​lagerenheden vil blive brugt til datastribning, og den anden halvdel bruges til at spejle dataene fra den første halvdel af lagerenhederne (hvor data er stribet).

xii) SSD-bevidsthed og optimeringer: Btrfs-filsystemet er SSD-opmærksom og har nogle SSD-optimeringsfunktioner. Btrfs-filsystemet har også TRIM / Discard-understøttelse af SSD-lagerenheder.

TRIM-funktionen kan registrere og markere dataudvidelser, der ikke længere bruges. Når udvidelserne er markeret, kan btrfs-filsystemet slette dem automatisk, så de andre filer kan bruge disse dataudvidelser.

Discard-funktionen fjerner alle dataudvidelser fra SSD'en. Hvis du vil sælge din SSD, kan denne funktion være praktisk.

xiii) Effektiv inkrementel backup: Btrfs understøtter trinvis sikkerhedskopiering. Første gang du sikkerhedskopierer et btrfs-filsystem, tager det et øjebliksbillede af det aktuelle filsystem. Derefter sammenlignes eventuelle efterfølgende sikkerhedskopier med det første øjebliksbillede, og kun ændringerne gemmes på disken. Så efterfølgende sikkerhedskopier tager mindre diskplads, og sikkerhedskopier vil være hurtigere.

xiv) Baggrundskrubbe: Det er en Btrfs-filsystemproces, der bruges til at finde og rette fejl på de filer, der har overflødige kopier (flere kopier) gemt i Btrfs-filsystemet.

xv) Online filsystemdefragmentering: Jeg har tidligere forklaret, hvordan Btrfs Copy-on-Write-filsystemet fungerer. Større filer gemmes i flere udstrækninger af Btrfs-filsystemet. Når du ændrer store filer, kopieres de udvidelser, der skal ændres, til forskellige gratis udvidelser af filsystemet og ændres der. Så de uændrede dataudvidelser opbevares også, hvis det er nødvendigt for filsystemgendannelse. Dette forårsager fragmentering (dataudvidelsen af ​​en stor fil vil ikke være kontinuerlig og vil være spredt rundt i hele lagerenheden) på filsystemet, da store filer ændres. For meget fragmentering påvirker filsystemet negativt (gør filsystemets læse / skrive-operation langsommere).

For at løse dette problem understøtter btrfs-filsystemet online filsystemdefragmentering. Med online defragmentering behøver du ikke afmontere filsystemet for at defragmentere filsystemet. Du kan holde filsystemet kørende og stadig defragmentere det. Defragmentering flytter filforlængelser rundt om filsystemet for at holde udstrækningen af ​​den samme store fil så kontinuerlig som muligt. Defragmentering forbedrer filsystemets ydeevne.

xvi) Offline filsystemkontrol: Btrfs-filsystemet har mange indbyggede værktøjer, som du kan bruge til at kontrollere for filsystemfejl og rette dem. Du kan også rette et ødelagt Btrfs-filsystem (der ikke kan monteres) med disse værktøjer.

xvii) Konvertering på stedet af eksisterende Ext2 / 3 / 4- og ReiserFS-filsystemer: Btrfs-filsystemet har et indbygget hjælpeprogram btrfs-convert, som du kan bruge til at konvertere et eksisterende Ext2 / 3 / 4- og ReiserFS-filsystem til et Btrfs-filsystem.

Btrfs-filsystemkonverteringsprogrammet læser metadataene for et eksisterende Ext2 / 3/4 (eller ReiserFS) -filsystem, opretter Btrfs-metadata og gemmer dem på filsystemet. Filsystemet holder både Btrfs og Ext2 / 3/4 (eller ReiserFS) metadata. Btrfs-filsystemet peger på de samme filblokke, der bruges af Ext2 / 3/4 (eller ReiserFS) filsystemfiler. Det eksisterende filsystem og datablokke holdes uberørt, da Btrfs er et Copy-on-Write (CoW) filsystem. Når en fil er ændret, kopierer Btrfs-filsystemet de originale datablokke til nye gratis udvidelser og ændrer dem der.

xviii) Frøenheder: Btrfs-filsystemet understøtter seed-enheder. Du kan oprette et skrivebeskyttet filsystem og bruge det som en skabelon (seed-enhed) til at oprette andre Btrfs-filsystemer. Fordelen ved at gøre det er, at kun de modificerede data skrives til det nye filsystem. De originale data (på frøenhederne) opbevares som de er. Denne funktion kan bruges til at spare meget diskplads og dataredundans.

xix) Send / modtag ændringer i undervolumen: Btrfs-filsystemet kan sende / modtage ændringer i undervolumen. Btrfs-filsystemet kan sende de trinvise ændringer af et undervolumen til et andet Btrfs-filsystem (kan også opholde sig på en anden computer), der kan modtage undervolumenændringerne. Denne funktion bruges til at tage trinvis sikkerhedskopier af Btrfs-filsystemet enten lokalt eller eksternt. Denne metode er hurtigere og mere effektiv end rsync.

xx) Batch / ud af band deduplicering: Btrfs-filsystemet understøtter batch- eller out-of-band-deduplicering. Kopieringen finder sted, når en fil er skrevet til filsystemet. Btrfs-filsystemet scanner aktivt hele filsystemet efter identiske strækninger og beholder kun en kopi af hvert omfang (fjerner overflødige / duplikatudvidelser). Det samme copy-on-write-princip (CoW) bruges til denne opgave. Deduplicering sparer mange diskpladser.

xxi) Swapfile support: Hvis du bruger Linux Kernel 5.0 eller nyere kan du oprette swapfiler på Btrfs-filsystemet.

Der er nogle begrænsninger for swapfile i et Btrfs-filsystem:

- Swapfilen skal tildeles som NoCoW (ikke copy-on-write)

- Swapfilen må ikke have nogen komprimering aktiveret.

Stabilitet for Btrfs-filsystem:

Btrfs-filsystemet er aktivt udviklet af Btrfs-teamet. De fleste af filsystemets funktioner er stabile i skrivende stund. Nogle af de avancerede funktioner er endnu ikke stabile nok til et produktionsmiljø. Btrfs-teamet arbejder hårdt på at løse disse stabilitetsproblemer.

Hvis du vil bruge Btrfs-filsystemet på din produktionsserver, skal du tjekke den officielle status - btrfs Wiki-side for at finde ud af, om de filsystemfunktioner, du har brug for, er stabile nok til dig eller ej. Sørg også for at køre nogle tests inden den endelige implementering af dit Btrfs-filsystem, og husk at gemme sikkerhedskopier af dine vigtige data. Det er altid vigtigt at holde sikkerhedskopi for produktionsmiljøer.

Fremtidig udskiftning af Ext4-filsystem:

Btrfs-filsystemet udvikles hurtigt. Btrfs-udviklingsteamet bekymrer sig også om filsystemets stabilitet. Så de prøver deres bedste for at gøre det så stabilt som muligt, mens de udvikler btrfs-filsystemet. Når btrfs-filsystemet er fuldt udviklet, og alle funktionerne er stabile nok, kan det erstatte Ext4-filsystemet.

Referencer:

[1] btrfs Wiki - https: // btrfs.wiki.kerne.org / indeks.php / Main_Page
[2] BTRFS - Kernel Tree Documentation - https: // www.kerne.org / doc / html / nyeste / filsystemer / btrfs.html
[3] BTRFS - Ordliste - https: // btrfs.wiki.kerne.org / indeks.php / Ordliste
[4] Funktioner i filsystemet "Btrfs" - https: // www.thegeekdiary.com / features-of-the-btrfs-filesystem /
[5] Sammenligning af filsystemer - https: // da.wikipedia.org / wiki / Comparison_of_file_systems
[6] Btrfs design - btrfs Wiki - https: // btrfs.wiki.kerne.org / indeks.php / Btrfs_design
[7] måske løb tør for inoder kunne tages "mere seriøst"? - https: // lwn.net / Artikler / 724522 /
[8] At lave en Btrfs skrivebeskyttet snapshots skrivbar - https: // markandruth.co.uk / 2016/12/29 / making-a-btrfs-read-only-snapshot-writable
[9] Datastribning - https: // da.wikipedia.org / wiki / Data_striping
[10] FAQ - btrfs wiki - https: // btrfs.wiki.kerne.org / indeks.php / FAQ
[11] Standard RAID-niveauer - https: // da.wikipedia.org / wiki / Standard_RAID_levels
[12] Trim (computing) - https: // da.wikipedia.org / wiki / Trim_ (computing)
[13] Solid state-drev - ArchWiki - https: // wiki.archlinux.org / indeks.php / Solid_state_drive # TRIM
[14] Btrfsck - btrfs Wiki - https: // btrfs.wiki.kerne.org / indeks.php / Btrfsck
[15] Konvertering fra Ext3 / 4 og ReiserFS - btrfs Wiki - https: // btrfs.wiki.kerne.org / indeks.php / Conversion_from_Ext3
[16] Incremental Backup - btrfs Wiki - https: // btrfs.wiki.kerne.org / indeks.php / Incremental_Backup
[17] Fradobling - btrfs Wiki - https: // btrfs.wiki.kerne.org / indeks.php / Deduplication
[18] Status - btrfs Wiki - https: // btrfs.wiki.kerne.org / indeks.php / Status

Mus Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Måske har du brug for et værktøj, der kan ændre din muses kontrol med hver applikation, du bruger. Hvis dette er tilfældet, kan du prøve en applikatio...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...
Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...