Btrfs
btrfs |
Dezvoltator |
Oracle , Fujitsu , Red Hat [1] |
Sistemul de fișiere |
btrfs |
Data depunerii |
4.18: august 2018 [2] ( Linux ) |
Conținutul folderului |
b-copac |
Plasarea fișierului |
măsură |
Dimensiunea maximă a fișierului |
16 E&B |
Lungimea maximă a numelui fișierului |
255 de octeți [3] |
Dimensiunea maximă a volumului |
16 E&B |
Caractere valide în titluri |
Toți octeții, cu excepția NUL și „/” |
Atribute |
POSIX |
Drepturi de acces |
POSIX , ACL |
Comprimarea fundalului |
Da ( LZO , zlib de la kernel 4.14: - zstd ) |
Criptare în fundal |
Nu |
Sistem de operare acceptat |
linux |
Fișiere media la Wikimedia Commons |
Btrfs ( B-tree FS, „Better FS” sau „Butter FS”) este un sistem de fișiere pentru Linux bazat pe structuri B-tree și funcționează pe principiul „ copy-on-write ” . Publicat de Oracle Corporation în 2007 sub Licența Publică Generală GNU [4] . Printre obiectivele de proiectare originale a fost acela de a concura cu sistemul de fișiere ZFS (care Linux a fost împiedicat de restricțiile de licențiere) și de a aborda deficiențele sistemelor de fișiere Linux timpurii. Autorul principal - Chris Mason ( în engleză Chris Mason ) - a remarcat și prezența unei interfețe simple de gestionare a sistemului de fișiere ca unul dintre scopurile creației [5] .
Planul inițial era lansarea Btrfs v1.0 și remedierea formatului de stocare la sfârșitul anului 2008 [6] , dar formatul a fost reparat abia pe 12 iunie 2010 [7] .
Btrfs a fost inclus în ramura principală a nucleului Linux începând cu versiunea 2.6.29-rc în stare experimentală. O evaluare a performanței de către Phoronix a arătat că Btrfs cu compresia activată depășește uneori Ext4 [8] .
Caracteristici
Se crede că Btrfs are o serie de soluții, care au apărut pentru prima dată în ReiserFS [9] , deși nu acceptă unele funcții de bază. Lista caracteristicilor sistemului din 2011 [10] :
- Verificarea integrității fără demontare;
- Instantanee inscriptibile ;
- Alocarea dinamică a inodurilor (fără limită pentru numărul maxim de fișiere din sistemul de fișiere);
- Adăugarea și eliminarea dispozitivelor de stocare atunci când sistemul de fișiere este montat (unitățile și partițiile sunt ușor conectate la Btrfs și înlocuite sau îndepărtate dacă este necesar);
- Suport pentru configurații complexe multi-disc - nivelurile 0, 1, 5, 6 și 10 (implementate, dar 5 și 6 nu sunt încă considerate stabile), precum și implementarea diferitelor politici de redundanță la nivelul obiectelor sistemului de fișiere - care este, este posibil să se atribuie, de exemplu, oglindirea pentru orice director sau fișier (în planuri).
- Compresie ( LZO , zlib , zstd - implementat, patch-uri pentru LZ4 și Snappy propuse ) [11] [12] ;
- Subvolume ( subvolume );
- Clonarea eficientă a sistemului de fișiere și crearea de arhive incrementale;
- Defragmentarea unui sistem de fișiere montat.
- Jurnalizarea cu copiere pe scriere.
- Limite (separat pentru fiecare subvolum sau grup de subvolume, după spațiul efectiv ocupat sau „oficial”)
- Verificarea integrității blocurilor de date și a metadatelor folosind sume de control.
- Oglindirea metadatelor chiar și într-o singură configurație de unitate (dezactivată pe SSD ).
- Blocare complet distribuită.
- Suport ACL .
- Protecția împotriva pierderii datelor.
- Selectarea unui algoritm hash pentru controlul integrității datelor și metadatelor ( CRC-32 ). De la implementarea versiunii 5.5 [13] : xxHash , SHA256 , BLAKE2B .
- Suport NFS (încă incomplet).
- Indicatori de compatibilitate necesare pentru a schimba formatul discului în versiunile noi de Btrfs, menținând în același timp compatibilitatea cu cele vechi.
- Copii de rezervă Superblock, cel puțin unul pe dispozitiv.
- Pool-uri hibride (planificate) - btrfs încearcă să mute cele mai utilizate date pe cel mai rapid dispozitiv, eliminând blocurile „învechite” din acesta, această politică este în concordanță cu modelul de utilizare a unităților SSD împreună cu unitățile de disc.
- Echilibrarea datelor între dispozitive în Btrfs este posibilă imediat după adăugarea unui disc la pool, printr-o comandă separată, și nu numai treptat, în timpul utilizării (așa cum este implementat în ZFS).
- Discuri hot-swappable, suport pentru care a apărut și în ZFS (în planuri).
- Deduplicarea offline (în formă montată, dar după încheierea înregistrării - kernel 3.12 și mai nou), în viitor - deduplicarea va fi efectuată în timpul înregistrării fișierului.
În ciuda faptului că Btrfs nu a fost inițial capabil să se comporte ca un sistem de fișiere distribuit (de rețea) , Oracle a început să implementeze protocolul CRFS [14] de sistem de fișiere de rețea , care este proiectat și optimizat doar pentru Btrfs.
În versiunile anterioare, migrarea de la sistemele de fișiere ext3 și ext4 și înapoi era suportată (până la actualizare), dar începând cu versiunea de kernel 4.0, utilizarea funcției nu este recomandată din cauza pericolului potențial [15] .
Crearea unui fișier de paginare în Btrfs este posibilă din martie 2019 (kernel Linux 5.0), fișierul este creat cu steag nocow și trebuie să fie localizat pe o singură unitate [16] .
Dezavantaje
Nu puteți utiliza instantanee LVM și copii de volum realizate cu dd, deoarece acestea vor avea același UUID, ceea ce poate duce la scrierea în copie greșită și la coruperea tuturor datelor [17] ; în loc să utilizați LVM și ddîn Btrfs, trebuie să utilizați utilitare speciale Btrfs pentru gestionarea subvolumelor și mecanismul de lucru cu instantanee.
Datorită tehnicii implicite copy-on-write, poate apărea o fragmentare semnificativă cu un număr mare de suprascrieri ale fragmentelor aleatorii de fișiere [18] ; o soluție ar putea fi dezactivarea COW (posibil doar pentru directoare/fișiere noi și goale).
Note
- ↑ Ce companii contribuie la Btrfs? (link indisponibil) . gmane.org (24 aprilie 2014). Data accesului: 18 iunie 2014. Arhivat din original pe 16 februarie 2018. (nedefinit)
- ↑ lista de modificări . Consultat la 13 iulie 2010. Arhivat din original la 10 februarie 2010. (nedefinit)
- ↑ Linux/VLFN - Etersoft cercetează extensia lungimii numelui de fișier . Consultat la 1 noiembrie 2014. Arhivat din original la 1 noiembrie 2014. (nedefinit)
- ↑ Btrfs Wiki: Pagina principală (eng.) (downlink) . Arhivat din original pe 28 iunie 2012.
- ↑ Sean Michael Kerner. Un sistem de fișiere mai bun pentru Linux (engleză) (link nu este disponibil) . InternetNews.com (30 octombrie 2008). — „Scopul principal este să-l lași pe {Linux} să se extindă pentru spațiul de stocare care va fi disponibil. Scalare nu înseamnă doar abordarea stocării, ci înseamnă și posibilitatea de a o administra și de a o gestiona cu o interfață curată, care le permite oamenilor să vadă ce este folosit și o face mai fiabilă.” Consultat la 30 octombrie 2008. Arhivat din original pe 28 iunie 2012.
- ↑ Btrfs Wiki: Cronologie de dezvoltare (engleză) (link nu este disponibil) . Arhivat din original pe 20 decembrie 2008.
- ↑ [https://web.archive.org/web/20100612201526/http://lkml.org/lkml/2010/6/12/66 Arhivat 12 iunie 2010 la Wayback Machine LKML: Christian Kujau: [PATCH] Eliminați steagul EXPERIMENTAL din Btrfs]
- ↑ Unde este performanța Btrfs astăzi (downlink) . Phoronix.com (9 iunie 2010). Preluat la 9 iulie 2010. Arhivat din original la 28 iunie 2012. (nedefinit)
- ↑ Theodore Ts'o . Re: reiser4 pentru 2.6.27-rc1 (link indisponibil) (1 august 2008). Consultat la 22 ianuarie 2009. Arhivat din original pe 28 iunie 2012. (nedefinit)
- ↑ Dr. Chris Brown. Sistem de fișiere B-tree // format Linux. - 2011. - Nr. LXF140 . — ISSN 1470-4234 .
- ↑ Suportul de compresie LZ4 este puțin probabil pentru Btrfs - Phoronix . Preluat la 18 august 2017. Arhivat din original la 18 august 2017. (nedefinit)
- ↑ Compression-btrfs Wiki . Preluat la 18 august 2017. Arhivat din original la 12 iunie 2017. (nedefinit)
- ↑ Evidențieri Btrfs în 5.5: noi hashuri . Preluat la 29 august 2020. Arhivat din original la 10 septembrie 2020. (nedefinit)
- ↑ Sistem coerent de fișiere la distanță . Consultat la 31 mai 2009. Arhivat din original la 20 februarie 2009. (nedefinit)
- ↑ Conversie din Ext3 . Consultat la 31 mai 2009. Arhivat din original la 19 februarie 2009. (nedefinit)
- ↑ Lansarea kernelului Linux 5.0 Arhivat 14 mai 2019 pe Wayback Machine — opennet 03/04/2019 „A fost adăugată capacitatea de a plasa o partiție de swap în fișiere în interiorul Btrfs FS...”
- ↑ Gotchas - btrfs Wiki . Preluat la 13 februarie 2017. Arhivat din original la 14 iunie 2017. (nedefinit)
- ↑ Josef Bacik. Btrfs: The Swiss Army Knife of Storage (link indisponibil) (1 februarie 2012). Consultat la 13 iulie 2010. Arhivat din original la 28 iunie 2012. (nedefinit)
Link -uri
În engleză
În rusă