Btrfs
btrfs |
Udvikler |
Oracle , Fujitsu , Red Hat [1] |
Filsystem |
btrfs |
Indsendelsesdato |
4.18: august 2018 [2] ( Linux ) |
Mappeindhold |
b-træ |
Filplacering |
grad |
Maksimal filstørrelse |
16 E&B |
Maksimal filnavnlængde |
255 bytes [3] |
Maksimal volumenstørrelse |
16 E&B |
Gyldige tegn i titler |
Alle bytes undtagen NUL og '/' |
Egenskaber |
POSIX |
Adgangsrettigheder |
POSIX , ACL |
Baggrundskomprimering |
Ja ( LZO , zlib siden kernel 4.14: - zstd ) |
Baggrundskryptering |
Ingen |
OS understøttet |
linux |
Mediefiler på Wikimedia Commons |
Btrfs ( B-tree FS, "Better FS" eller "Butter FS") er et filsystem til Linux baseret på B-tree- strukturer og fungerer efter " kopier-på-skriv "-princippet . Udgivet af Oracle Corporation i 2007 under GNU General Public License [4] . Blandt de oprindelige designmål var at konkurrere med ZFS -filsystemet (som Linux var blevet hæmmet af licensbegrænsninger) og at afhjælpe manglerne ved tidlige Linux-filsystemer. Hovedforfatteren - Chris Mason ( engelsk Chris Mason ) - bemærkede også tilstedeværelsen af en simpel filsystemstyringsgrænseflade som et af målene med skabelsen [5] .
Den oprindelige plan var at frigive Btrfs v1.0 og rette lagringsformatet i slutningen af 2008 [6] , men formatet blev først rettet den 12. juni 2010 [7] .
Btrfs har været inkluderet i hovedgrenen af Linux-kernen siden version 2.6.29-rc i eksperimentel status. En præstationsevaluering af Phoronix viste, at Btrf'er med komprimering aktiveret nogle gange overgår Ext4 [8] .
Funktioner
Det menes, at Btrfs har en række løsninger, som først dukkede op i ReiserFS [9] , mens de ikke understøtter nogle grundlæggende funktioner. Liste over systemfunktioner fra 2011 [10] :
- Integritetskontrol uden afmontering;
- Skrivbare snapshots ;
- Dynamisk allokering af inoder (ingen grænse for det maksimale antal filer i filsystemet);
- Tilføjelse og fjernelse af lagerenheder, når filsystemet er monteret (drev og partitioner forbindes nemt til Btrfs og udskiftes eller fjernes om nødvendigt);
- Understøttelse af komplekse multi-disk-konfigurationer - niveau 0, 1, 5, 6 og 10 (implementeret, men 5 og 6 anses endnu ikke for stabile), samt implementering af forskellige redundanspolitikker på niveau med filsystemobjekter - der er, er det muligt at tildele, for eksempel, spejling for enhver mappe eller fil (i planer).
- Kompression ( LZO , zlib , zstd -implementeret, patches til LZ4 og Snappy foreslået ) [11] [12] ;
- Underbind ( underbind ) ;
- Effektiv filsystemkloning og oprettelse af inkrementelle arkiver;
- Defragmentering af et monteret filsystem.
- Journalføring med copy-on-write.
- Grænser (separat for hvert underbind eller gruppe af underbind, efter faktisk optaget plads eller af "officielle")
- Kontrol af integriteten af datablokke og metadata ved hjælp af kontrolsummer.
- Metadata-spejling selv i en enkelt drevkonfiguration (deaktiveret på SSD ).
- Fuldt distribueret blokering.
- ACL support .
- Datatabsbeskyttelse.
- Valg af en hash-algoritme til data- og metadataintegritetskontrol ( CRC-32 ). Siden version 5.5 implementeret [13] : xxHash , SHA256 , BLAKE2B .
- NFS-understøttelse (stadig ufuldstændig).
- Kompatibilitetsflag er nødvendige for at ændre diskformatet i nye versioner af Btrfs og samtidig bevare kompatibiliteten med gamle.
- Superblok-sikkerhedskopier, mindst én pr. enhed.
- Hybride pools (planlagt) - btrfs forsøger at flytte de mest brugte data til den hurtigste enhed ved at skubbe "gamle" blokke ud fra den, denne politik er godt i overensstemmelse med modellen for at bruge SSD-drev sammen med diskdrev.
- Balancering af data mellem enheder i Btrfs er muligt umiddelbart efter tilføjelse af en disk til puljen, ved en separat kommando, og ikke kun gradvist, under brug (som implementeret i ZFS).
- Hot-swappable diske, som også er blevet understøttet i ZFS (i planer).
- Offline deduplikering (i monteret form, men efter afslutningen af optagelsen - kerne 3.12 og nyere), i fremtiden - vil deduplikering blive udført under filoptagelse.
På trods af at Btrfs oprindeligt ikke var i stand til at opføre sig som et distribueret (netværks) filsystem, gik Oracle i gang med at implementere CRFS [14] netværksfilsystemprotokollen , som er designet og optimeret kun til Btrfs.
I tidligere versioner blev migrering fra ext3 og ext4 filsystemer og tilbage understøttet (indtil opdateringen), men fra kerneversion 4.0 anbefales brugen af funktionen ikke på grund af potentiel fare [15] .
Oprettelse af en personsøgningsfil i Btrfs er muligt siden marts 2019 (Linux-kerne 5.0), filen er oprettet med nocow-flaget og skal være placeret på ét drev [16] .
Ulemper
Du kan ikke bruge LVM- snapshots og volumenkopier lavet med dd, da de vil have samme UUID, hvilket kan føre til skrivning til den forkerte kopi og ødelægge alle data [17] ; i stedet for at bruge LVM og ddi Btrfs, skal du bruge specielle Btrfs-værktøjer til at administrere undervolumener og mekanismen til at arbejde med snapshots.
På grund af standard kopi-på-skriv-teknikken kan der forekomme betydelig fragmentering med et stort antal overskrivninger af tilfældige fragmenter af filer [18] ; en løsning kan være at deaktivere COW (kun muligt for nye og tomme mapper/filer).
Noter
- ↑ Hvilke virksomheder bidrager til Btrfs? (utilgængeligt link) . gmane.org (24. april 2014). Dato for adgang: 18. juni 2014. Arkiveret fra originalen 16. februar 2018. (ubestemt)
- ↑ liste over ændringer . Hentet 13. juli 2010. Arkiveret fra originalen 10. februar 2010. (ubestemt)
- ↑ Linux/VLFN - Etersoft research in file name length extension . Hentet 1. november 2014. Arkiveret fra originalen 1. november 2014. (ubestemt)
- ↑ Btrfs Wiki: Hovedside (eng.) (downlink) . Arkiveret fra originalen den 28. juni 2012.
- ↑ Sean Michael Kerner. Et bedre filsystem til Linux (engelsk) (link ikke tilgængeligt) . InternetNews.com (30. oktober 2008). — "Hovedmålet er at lade det {Linux} skalere til den lagerplads, der vil være tilgængelig. Skalering handler ikke kun om at adressere lageret, men betyder også at være i stand til at administrere og administrere det med en ren grænseflade, der lader folk se, hvad der bliver brugt, og gør det mere pålideligt." Hentet 30. oktober 2008. Arkiveret fra originalen 28. juni 2012.
- ↑ Btrfs Wiki: Udviklingstidslinje (engelsk) (link ikke tilgængeligt) . Arkiveret fra originalen den 20. december 2008.
- ↑ [https://web.archive.org/web/20100612201526/http://lkml.org/lkml/2010/6/12/66 Arkiveret 12. juni 2010 på Wayback Machine LKML: Christian Kujau: [PATCH] Fjern EXPERIMENTAL flag fra Btrfs]
- ↑ Hvor Btrfs-ydelsen er i dag (downlink) . Phoronix.com (9. juni 2010). Hentet 9. juli 2010. Arkiveret fra originalen 28. juni 2012. (ubestemt)
- ↑ Theodore Ts'o . Re: reiser4 til 2.6.27-rc1 (utilgængeligt link) (1. august 2008). Hentet 22. januar 2009. Arkiveret fra originalen 28. juni 2012. (ubestemt)
- ↑ Dr. Chris Brown. B-træ filsystem // Linux-format. - 2011. - Nr. LXF140 . — ISSN 1470-4234 .
- ↑ LZ4-komprimeringsunderstøttelse er usandsynlig for Btrfs-Phoronix . Hentet 18. august 2017. Arkiveret fra originalen 18. august 2017. (ubestemt)
- ↑ Kompression-btrfs Wiki . Hentet 18. august 2017. Arkiveret fra originalen 12. juni 2017. (ubestemt)
- ↑ Btrfs-højdepunkter i 5.5: nye hashes . Hentet 29. august 2020. Arkiveret fra originalen 10. september 2020. (ubestemt)
- ↑ Sammenhængende fjernfilsystem . Hentet 31. maj 2009. Arkiveret fra originalen 20. februar 2009. (ubestemt)
- ↑ Konvertering fra Ext3 . Hentet 31. maj 2009. Arkiveret fra originalen 19. februar 2009. (ubestemt)
- ↑ Linux 5.0 -kerneudgivelse Arkiveret 14. maj 2019 på Wayback Machine — opennet 03/04/2019 "Tilføjede muligheden for at placere en swap-partition i filer inde i Btrfs FS..."
- ↑ Gotchas - btrfs Wiki . Hentet 13. februar 2017. Arkiveret fra originalen 14. juni 2017. (ubestemt)
- ↑ Josef Bacik. Btrfs: The Swiss Army Knife of Storage (utilgængeligt link) (1. februar 2012). Hentet 13. juli 2010. Arkiveret fra originalen 28. juni 2012. (ubestemt)
Links
På engelsk
På russisk