Btrfs

Introduktion till Btrfs Filesystem

Introduktion till Btrfs Filesystem
Btrfs (B-Tree Filesystem) är ett modernt copy-on-write (CoW) filsystem för Linux. Btrfs syftar till att implementera många avancerade filsystemfunktioner samtidigt som man fokuserar på feltolerans, reparation och enkel administration. Btrfs-filsystemet är utformat för att stödja kravet på högpresterande och stora lagringsservrar. Det är lämpligt för datacenter i petabyte-skala och mobiltelefoner.I den här artikeln ska jag diskutera Btrfs-filsystemet och dess funktioner. Så, låt oss komma igång.

Kopiera vid skriv - CoW-filsystem:

Btrfs är ett copy-on-write (CoW) filsystem. I ett CoW-filsystem, när du försöker modifiera data i filsystemet, kopierar filsystemet data, ändrar data och skriver sedan de modifierade data tillbaka till en annan ledig plats för filsystemet.

Den största fördelen med Copy-on-Write (CoW) -filsystemet är att datautsträckningen som den vill ändra kopieras till en annan plats, modifieras och lagras i en annan utsträckning av filsystemet. Den ursprungliga datamängden ändras inte. Så, btrfs-filsystemet kan eliminera risken för dataskada eller partiell uppdatering i händelse av strömavbrott under modifiering av data eftersom originaldata hålls oförändrade.

Den största nackdelen med Copy-on-Write (CoW) -filsystemet är att stora filer tenderar att bli fragmenterade när de modifieras. Så, defragmentering krävs en gång i taget. Lyckligtvis stöder filsystemet btrfs online defragmentering. Så du behöver inte avmontera filsystemet för att defragmentera ett btrfs-filsystem.

Huvudfunktioner i Btrfs Filesystem:

De viktigaste funktionerna i Btrfs-filsystemet är:

i) Omfattad fillagring: I ett omfattningsbaserat filsystem kallas lagringsenheten en omfattning. En utsträckning är ett sammanhängande lagringsområde som är reserverat för en fil. En fil kräver en utsträckning, oavsett hur liten filen är. För större filer (filstorlek större än omfattningsstorleken) krävs flera tillägg. För större filer kommer metadata att användas för att hålla reda på i vilken utsträckning filen använder. I Btrfs-filsystemet är metadata betydligt mindre i storlek. Mindre metadata förbättrar lagringseffektiviteten och filsystemets prestanda.

ii) Stort stöd för filstorlek: I ett Btrfs-filsystem kan en enda fil vara ungefär 264 byte eller 16 EiB (exbibytes) i storlek. Oavsett hur stor din fil blir, kan Btrfs stödja den.

iii) Utrymmeseffektiv förpackning av små filer: Normalt, oavsett hur liten en fil är, krävs det ett block eller en utsträckning för att lagra filen. Detta slösar bort mycket diskutrymme. För att lösa detta problem bäddar Btrfs-filsystemet in mindre filer i metadata för att lagra mindre filer effektivt.

iv) Rymdsnåla indexerade kataloger: Btrfs-filsystemkatalogerna indexeras på två olika sätt. För sökning på filnamn används nyckelbaserad indexering. För att referera till data används inodebaserad nyckelindexering. Tvånivåindexering förbättrar katalog- / filsökningsprestanda och minskar lagringskraven för indexen.

v) Dynamisk inodallokering: Du behöver 1 inod för att referera till en fil. Många filsystem (i.e., Ext4) har ett fast antal inoder. Så om du skapar för många små filer kanske du har mycket utrymme kvar på din disk, men du kan inte skapa några nya filer. Du kan inte heller öka det maximala antalet inoder när filsystemet har skapats.

Btrfs löser detta problem genom att allokera inoder dynamiskt efter behov. Så du kan skapa så många filer du vill så länge du har ledigt diskutrymme.

vi) Skrivbara ögonblicksbilder och skrivskyddade ögonblicksbilder: Btrfs-filsystemet stöder ögonblicksbilder. Du kan ta en ögonblicksbild av det aktuella filsystemet, som du kan använda för att återställa dina data om du av misstag har tagit bort vissa filer eller skadat vissa data.

Som standard är snapshots för btrfs skrivskyddade. När du har tagit en skrivskyddad ögonblicksbild kan du inte ändra några filer / kataloger i den ögonblicksbilden. I vilket fall som helst, om du vill ändra några filer / kataloger efter att du har tagit en ögonblicksbild av ditt befintliga Btrfs-filsystem, kan du ändra den skrivskyddade ögonblicksbilden till en skrivbar ögonblicksbild och ändra alla filer / kataloger i den ögonblicksbilden.

vii) Delvolymer: Ett Btrfs-filsystem kan ha många delvolymer. En undervolym är ett namngivet binärt träd (B-träd) (eller intern / logisk filsystemrot) av det befintliga filsystemets rotträd (huvud) i btrfs-filsystemet. En delvolym är inte en egen blockenhet. Men du kan montera Btrfs-delvolymer individuellt. Du kan tänka på delvolymer som namnområden.

viii) Subvolymmedveten kvotstöd: Du kan också fördela kvoter för delvolymer. När kvoten har överskridits kommer du inte att kunna lägga till nya data i undervolymen. Du behöver inte några separata program för att skapa Btrfs-delvolymkvoter.

ix) Kontrollsummor för data och metadata: För att undvika korruption av data använder Btrfs som standard crc32c-kontrollsummealgoritmer för data och filsystemets metadata. Kontrollsummen lagras i filsystemet för att automatiskt söka efter filsystemfel och dataskador i bakgrunden.

Btrfs har stöd för många andra kontrollsummealgoritmer: xxhash, sha256 och blake2b.

x) Kompression: Btrfs-filsystem stöder transparent filkomprimering. Komprimering och dekomprimering av filerna i ett btrfs-filsystem görs automatiskt i bakgrunden.

Btrfs stöder 3 komprimeringsalgoritmer: ZLIB, LZO och ZSTD.

ZLIB är standardkomprimeringsmetoden för btrfs-filsystemet.

xi) Integrerat stöd för flera enheter: Btrfs-filsystem har inbyggt stöd för logisk volymhanterare (LVM). Du kan lägga till flera lagringsenheter i ett enda btrfs-filsystem. Du kan också konfigurera RAID-matriser på btrfs-filsystemet utan att behöva någon extra mjukvara.

Btrfs-filsystem stöder datastripning, dataspegling, datastripning + spegling och implementeringar av enstaka och dubbla pariteter.

Data striping: Om du har lagt till flera lagringsenheter i samma btrfs-filsystem kan btrfs lagra samma fil på olika fysiska enheter / partitioner. Detta kallas data striping. Data striping förbättrar läs- / skrivprestanda för filsystemet. RAID-0 använder data striping-funktionen i stor utsträckning.

Dataspegling: Om du har lagt till flera lagringsenheter i samma btrfs-filsystem kommer all data som skrivs till en lagringsenhet skrivas till alla andra lagringsenheter. Detta kallas dataspegling. RAID-1 använder dataspeglingsfunktionen i stor utsträckning.

Data striping + enstaka paritet: RAID-5 använder datastripning och singeldistribuerad paritet. Om du har lagt till flera lagringsenheter i ett btrfs-filsystem kommer RAID-5 att ta bort data på flera lagringsenheter och beräkna och lagra paritetsblock över lagringsenheterna. RAID-5 kan upprätthålla ett enda enhetsfel.

Data striping + dubbel paritet: RAID-6 använder datastripning och dubbelfördelad paritet. Om du har lagt till flera lagringsenheter i ett btrfs-filsystem kommer RAID-6 att ta bort data på flera lagringsenheter och beräkna och lagra dubbla paritetsblock över lagringsenheterna. RAID-6 kan hantera två enhetsfel. Annat än det är det samma som RAID-5 (data striping + single parity).

Data striping + spegling: RAID-10 använder datastripning och dataspegling samtidigt. RAID-10 kräver att ett jämnt antal lagringsenheter av samma storlek läggs till i ett enda btrfs-filsystem. Det minsta antalet lagringsenheter som du kan lägga till i ett RAID-10 btrfs-filsystem är 4. Hälften av lagringsenheten kommer att användas för datastripning och den andra hälften för att spegla data från den första halvan av lagringsenheterna (där data är randiga).

xii) SSD-medvetenhet och optimeringar: Btrfs-filsystemet är SSD-medvetet och har några SSD-optimeringsfunktioner. Btrfs-filsystemet har även stöd för TRIM / Discard för SSD-lagringsenheter.

TRIM-funktionen kan upptäcka och markera dataförlängningar som inte längre används. När förlängningarna är markerade kan btrfs-filsystemet torka dem automatiskt så att de andra filerna kan använda dessa dataförlängningar.

Kassfunktionen tar bort alla dataförlängningar av SSD. Om du vill sälja din SSD kan den här funktionen komma till nytta.

xiii) Effektiv stegvis säkerhetskopiering: Btrfs stöder inkrementell säkerhetskopiering. Första gången du säkerhetskopierar ett btrfs-filsystem tar det en ögonblicksbild av det aktuella filsystemet. Därefter jämförs alla efterföljande säkerhetskopior med den första ögonblicksbilden och endast ändringarna lagras på disken. Så efterföljande säkerhetskopior tar mindre diskutrymme och säkerhetskopior blir snabbare.

xiv) Bakgrundsskrubb: Det är en Btrfs-filsystemprocess som används för att hitta och fixa fel på de filer som har överflödiga kopior (flera kopior) lagrade i Btrfs-filsystemet.

xv) Defragmentering av filsystem online: Jag har tidigare förklarat hur Btrfs Copy-on-Write-filsystemet fungerar. Större filer lagras i flera delar av Btrfs-filsystemet. När du ändrar stora filer kopieras de delar som ska ändras till olika fria delar av filsystemet och ändras där. Så, de omodifierade dataförlängningarna behålls också om det krävs för filsystemåterställning. Detta orsakar fragmentering (dataomfattningen för en stor fil kommer inte att vara kontinuerlig och kommer att spridas runt hela lagringsenheten) på filsystemet när stora filer modifieras. För mycket fragmentering påverkar filsystemet negativt (gör filsystemets läs- / skrivoperation långsammare).

För att lösa detta problem stöder btrfs-filsystemet defragmentering av filsystem online. Med online-defragmentering behöver du inte avmontera filsystemet för att defragmentera filsystemet. Du kan hålla filsystemet igång och fortfarande defragmentera det. Defragmentering flyttar filändelser runt filsystemet för att hålla storleken på samma stora fil så kontinuerlig som möjligt. Defragmentering förbättrar filsystemets prestanda.

xvi) Offline-filsystemkontroll: Btrfs-filsystemet har många inbyggda verktyg som du kan använda för att söka efter filsystemfel och fixa dem. Du kan också fixa ett trasigt Btrfs-filsystem (som inte kan monteras) med dessa verktyg.

xvii) Konvertering på plats av befintliga Ext2 / 3 / 4- och ReiserFS-filsystem: Btrfs-filsystemet har ett inbyggt verktyg btrfs-convert, som du kan använda för att konvertera ett befintligt Ext2 / 3 / 4- och ReiserFS-filsystem till ett Btrfs-filsystem.

Btrfs-filsystemkonverteringsprogrammet läser metadata för ett befintligt Ext2 / 3/4 (eller ReiserFS) -filsystem, skapar Btrfs-metadata och lagrar dem i filsystemet. Filsystemet behåller både Btrfs och Ext2 / 3/4 (eller ReiserFS) metadata. Btrfs-filsystemet pekar på samma filblock som används av filsystemfilerna Ext2 / 3/4 (eller ReiserFS). Det befintliga filsystemet och datablocken hålls orörda eftersom Btrfs är ett Copy-on-Write (CoW) -filsystem. När en fil modifieras kopierar Btrfs-filsystemet de ursprungliga datablocken till nya fria delar och ändrar dem där.

xviii) Fröenheter: Btrfs-filsystemet stöder såddsenheter. Du kan skapa ett skrivskyddat filsystem och använda det som en mall (seed-enhet) för att skapa andra Btrfs-filsystem. Fördelen med att göra det är att endast de modifierade uppgifterna kommer att skrivas till det nya filsystemet. Originaldata (på såddsenheterna) kommer att sparas som de är. Denna funktion kan användas för att spara mycket diskutrymme och dataredundans.

xix) Skicka / ta emot ändringar av undervolymen: Btrfs-filsystemet kan skicka / ta emot ändringar av delvolymer. Btrfs-filsystemet kan skicka inkrementella ändringar av en delvolym till ett annat Btrfs-filsystem (kan också finnas i en annan dator) som kan ta emot delvolymändringarna. Den här funktionen används för att ta stegvisa säkerhetskopior av Btrfs-filsystemet antingen lokalt eller på distans. Denna metod är snabbare och effektivare än rsync.

xx) Batch / deduplicering utanför bandet: Btrfs-filsystemet stöder deduplicering av batch eller utanför bandet. Dubbleringen sker efter att en fil har skrivits till filsystemet. Btrfs-filsystemet skannar aktivt hela filsystemet efter identiska delar och behåller bara en kopia av varje utsträckning (tar bort överflödiga / dubbletter). Samma copy-on-write (CoW) -princip används för denna uppgift. Deduplicering sparar mycket diskutrymme.

xxi) Swapfile support: Om du använder Linux Kernel 5.0 eller senare kan du skapa swapfiles i Btrfs-filsystemet.

Det finns vissa begränsningar för Swapfile i ett Btrfs-filsystem:

- Växelfilen måste allokeras som NoCoW (inte copy-on-write)

- Växelfilen får inte ha någon komprimering aktiverad.

Stabilitet för Btrfs-filsystem:

Btrfs-filsystemet utvecklas aktivt av Btrfs-teamet. De flesta av funktionerna i filsystemet är stabila när detta skrivs. Vissa av de avancerade funktionerna är ännu inte tillräckligt stabila för en produktionsmiljö. Btrfs-teamet arbetar hårt för att lösa dessa stabilitetsfrågor.

Om du vill använda Btrfs-filsystemet på din produktionsserver, kolla in den officiella Status - btrfs Wiki-sidan för att ta reda på om de filsystemfunktioner du behöver är tillräckligt stabila för dig eller inte. Se också till att köra några tester innan den slutliga distributionen av ditt Btrfs-filsystem och kom ihåg att behålla säkerhetskopior av dina viktiga data. Att hålla backup är alltid viktigt för produktionsmiljöer.

Framtida ersättning av Ext4-filsystem:

Btrfs-filsystem utvecklas snabbt. Btrfs-utvecklingsteamet bryr sig också om filsystemets stabilitet. Så de försöker sitt bästa för att göra det så stabilt som möjligt när de utvecklar btrfs-filsystemet. När btrfs-filsystemet är fullt utvecklat och alla funktioner är tillräckligt stabila kan det ersätta Ext4-filsystemet.

Referenser:

[1] btrfs Wiki - https: // btrfs.wiki.kärna.org / index.php / Main_Page
[2] BTRFS - The Kernel Tree Documentation - https: // www.kärna.org / doc / html / senaste / filsystem / btrfs.html
[3] BTRFS - Ordlista - https: // btrfs.wiki.kärna.org / index.php / Ordlista
[4] Funktioner i filsystemet "Btrfs" - https: // www.thegeekdiary.com / features-of-the-btrfs-filesystem /
[5] Jämförelse av filsystem - https: // sv.wikipedia.org / wiki / Comparison_of_file_systems
[6] Btrfs design - btrfs Wiki - https: // btrfs.wiki.kärna.org / index.php / Btrfs_design
[7] kanske att ta slut på inoder kan tas "mer på allvar"? - https: // lwn.net / Artiklar / 724522 /
[8] Att göra en Btrfs skrivskyddad snapshots skrivbar - https: // markandruth.co.uk / 2016/12/29 / göra-a-btrfs-read-only-snapshot-writable
[9] Data striping - https: // sv.wikipedia.org / wiki / Data_striping
[10] FAQ - btrfs wiki - https: // btrfs.wiki.kärna.org / index.php / FAQ
[11] Standard RAID-nivåer - https: // sv.wikipedia.org / wiki / Standard_RAID_levels
[12] Trim (databehandling) - https: // sv.wikipedia.org / wiki / Trim_ (dator)
[13] Solid state-enhet - ArchWiki - https: // wiki.archlinux.org / index.php / Solid_state_drive # TRIM
[14] Btrfsck - btrfs Wiki - https: // btrfs.wiki.kärna.org / index.php / Btrfsck
[15] Konvertering från Ext3 / 4 och ReiserFS - btrfs Wiki - https: // btrfs.wiki.kärna.org / index.php / Conversion_from_Ext3
[16] Incremental Backup - btrfs Wiki - https: // btrfs.wiki.kärna.org / index.php / Incremental_Backup
[17] Deduplicering - btrfs Wiki - https: // btrfs.wiki.kärna.org / index.php / Deduplication
[18] Status - btrfs Wiki - https: // btrfs.wiki.kärna.org / index.php / Status

Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...
Mus Mus vänsterklicka på knappen fungerar inte på Windows 10
Mus vänsterklicka på knappen fungerar inte på Windows 10
Om du använder en dedikerad mus med din bärbara dator eller stationära dator men musens vänsterklick-knapp fungerar inte på Windows 10/8/7 av någon an...
Mus Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Om du upptäcker att muspekaren hoppar eller rör sig på egen hand, automatiskt, slumpmässigt när du skriver in Windows-bärbar dator eller dator, kan nå...