Kopie auf Schreiben - Kuhdateisystem:
BTRFS ist ein Copy-on-Write-Dateisystem (Cow). In einem Kuhdateisystem kopiert Sie die Daten, wenn Sie versuchen, Daten im Dateisystem zu ändern.
Der Hauptvorteil des Copy-on-Write-Dateisystems (Cow) -System ist, dass der Datenausmaß, den sie ändern möchten, an einen anderen Ort kopiert, geändert und in unterschiedlichem Maße des Dateisystems gespeichert wird. Der ursprüngliche Datenumfang wird nicht geändert. Das BTRFS -Dateisystem kann also das Risiko von Datenbeschädigungen oder teilweise Aktualisierungen bei Stromausfall während der Datenänderung beseitigen, da die ursprünglichen Daten unverändert gehalten werden.
Der Hauptnachteil des Dateisystems von Copy-on-Write (Cow) besteht darin, dass große Dateien in der Regel fragmentiert werden, wenn sie geändert werden. Defragmentierung ist also hin und wieder erforderlich. Glücklicherweise unterstützt das BTRFS -Dateisystem die Online -Defragmentierung. Sie müssen also das Dateisystem nicht entlarven, um ein BTRFS -Dateisystem zu entfremden.
Hauptmerkmale des BTRFS -Dateisystems:
Die Hauptmerkmale des BTRFS -Dateisystems sind:
i) Umfangbasierter Dateispeicher: In einem Ausmaß basierten Dateisystem wird die Speichereinheit als Ausmaß bezeichnet. Ein Ausmaß ist ein zusammenhängender Speicherbereich, der für eine Datei reserviert ist. Eine Datei erfordert ein Ausmaß, egal wie klein die Datei ist. Für größere Dateien (Dateigröße größer als die Größe) sind mehrere Ausmaßstäbe erforderlich. Für größere Dateien wird Metadaten verwendet, um die Ausdehnung, die die Datei verwendet, zu verfolgen. Im BTRFS -Dateisystem ist die Metadaten erheblich kleiner. Kleinere Metadaten verbessert die Speicherungseffizienz und die Leistung des Dateisystems.
ii) Riesige Unterstützung der Dateigröße: In einem BTRFS -Dateisystem kann eine einzige Datei ungefähr 2 betragen64 Bytes oder 16 EIB (Exbibyten) in Größe. Egal wie groß Ihre Datei wird, BTRFs können sie unterstützen.
iii) Platzeffiziente Verpackung kleiner Dateien: Normalerweise erfordert sie, wie klein eine Datei ist, einen Block oder einen Ausmaß, um die Datei zu speichern. Dies verschwendet viel Speicherplatz. Um dieses Problem zu lösen, bettet das BTRFS -Dateisystem kleinere Dateien in die Metadaten ein, um kleinere Dateien effizient zu speichern.
iv) Platzeffiziente indexierte Verzeichnisse: Die BTRFS -Dateisystemverzeichnisse werden auf zwei verschiedene Arten indiziert. Für die Dateiname-Lookup wird eine Schlüsselindizierung verwendet. Um Daten zu referenzieren, wird die inode-basierte Schlüsselindexierung verwendet. Die zweistufige Indexierung verbessert die Leistung der Verzeichnis/Datei und reduziert die Speicheranforderungen für die Indizes.
v) Dynamische Inodezuordnung: Sie benötigen 1 Inode zur Referenz 1 -Datei. Viele Dateisysteme (ich.e., Ext4) eine feste Anzahl von Inodes haben. Wenn Sie also zu viele kleine Dateien erstellen, haben Sie möglicherweise noch viel Platz auf Ihrer Festplatte, aber Sie werden keine neuen Dateien erstellen können. Sie können auch nicht die maximale Anzahl von Inodes erhöhen, sobald das Dateisystem erstellt wurde.
BTRFS löst dieses Problem, indem Inodes dynamisch nach Bedarf zugewiesen werden. Sie können also so viele Dateien erstellen, wie Sie möchten, solange Sie kostenlosen Speicherplatz haben.
vi) Beschreibbare Schnappschüsse und nur schreibgeschützte Schnappschüsse: Das BTRFS -Dateisystem unterstützt Schnappschüsse. Sie können einen Momentaufnahme des aktuellen Dateisystems aufnehmen, mit dem Sie Ihre Daten wiederherstellen können, wenn Sie versehentlich einige Dateien entfernt oder einige Daten beschädigt haben.
Standardmäßig sind die BTRFS-Schnappschüsse schreibgeschützt. Sobald Sie einen Snapshot mit nur einer schreibgeschützten Schreibweite gemacht haben, können Sie in diesem Snapshot keine Dateien/Verzeichnisse ändern. Wenn Sie nach der Annahme eines Snapshots Ihres vorhandenen BTRFS-Dateisystems in einem Fall die Dateien/Verzeichnisse ändern möchten, können Sie den schreibgeschützten Schnappschuss in einen beschreibbaren Snapshot ändern und alle Dateien/Verzeichnisse in diesem Snapshot ändern.
vii) Subvolumes: Ein BTRFS -Dateisystem kann viele Subvolume haben. Ein Subvolume ist ein genannter binärer Baum (B-Tree) (oder interne/logische Dateisystemstamm) des vorhandenen Dateisystems Root-Baum (Haupt) des BTRFS-Dateisystems. Ein Subvolumen ist kein eigenes Blockgerät. Sie können jedoch BTRFS -Subvolum einzeln montieren. Sie können sich Subvolum als Namespaces vorstellen.
viii) Subvolume AWARE Quota -Unterstützung: Sie können auch Quoten für Subvolume zuweisen. Sobald die Quote überschritten ist, können Sie dem Subvolume keine neuen Daten hinzufügen. Sie benötigen keine separaten Programme, um BTRFS -Subvolume -Quoten zu erstellen.
IX) Überprüfungen zu Daten und Metadaten: Um Datenbeschädigungen zu vermeiden, verwendet BTRFS CRC32C -Kontrollummenalgorithmen für die Daten und die Metadaten des Dateisystems standardmäßig. Die Prüfsummen werden im Dateisystem gespeichert, um automatisch auf Dateisystemfehler und Datenversorgung im Hintergrund zu prüfen.
BTRFS unterstützt viele andere Prüfsummenalgorithmen: XXHASH, SHA256 und Blake2b.
x) Komprimierung: BTRFS -Dateisystem unterstützt die transparente Dateikomprimierung. Die Komprimierung und Dekompression der Dateien in einem BTRFS -Dateisystem erfolgt automatisch im Hintergrund.
BTRFS unterstützt 3 Komprimierungsalgorithmen: ZLIB, LZO und ZSTD.
ZLIB ist die Standardkomprimierungsmethode des BTRFS -Dateisystems.
xi) Integrierte Unterstützung mehrerer Geräte: BTRFS-Dateisysteme haben integrierte Logical Volume Manager (LVM) Support. Sie können mehrere Speichergeräte in einem einzelnen BTRFS -Dateisystem hinzufügen. Sie können RAID -Arrays auch im BTRFS -Dateisystem konfigurieren, ohne zusätzliche Software zu benötigen.
BTRFS -Dateisystem unterstützt Datenstreifen, Datenspiegelung, Datenstreifen+Spiegelung sowie Einzel- und Dual -Parity -Implementierungen.
Datenstreifen: Wenn Sie mehrere Speichergeräte in demselben BTRFS -Dateisystem hinzugefügt haben, können BTRFS dieselbe Datei auf verschiedenen physischen Geräten/Partitionen speichern. Dies wird als Datenstreifen bezeichnet. Datenstreifen verbessert die Lese-/Schreibleistung des Dateisystems. RAID-0 verwendet die Datenstreifenfunktion umfassend.
Datenspiegelung: Wenn Sie im selben BTRFS -Dateisystem mehrere Speichergeräte hinzugefügt haben, werden alle auf ein Speichergerät geschriebenen Daten auf alle anderen Speichergeräte geschrieben. Dies wird als Datenspiegelung bezeichnet. RAID-1 verwendet die Datenspiegelungsfunktion umfassend.
Datenstreifen+Einzelparität: RAID-5 verwendet Datenstreifen und einzelne verteilte Parität. Wenn Sie in einem BTRFS-Dateisystem mehrere Speichergeräte hinzugefügt haben, werden die Daten auf mehreren Speichergeräten abgestimmt und Paritätsblöcke auf den Speichergeräten berechnet und gespeichert. RAID-5 kann einen einzigen Antriebsausfall aufrechterhalten.
Datenstreifen+Doppelparität: RAID-6 verwendet Datenstreifen und doppelt verteilte Parität. Wenn Sie in einem BTRFS-Dateisystem mehrere Speichergeräte hinzugefügt haben, werden die Daten auf mehreren Speichergeräten abgestimmt und doppelte Paritätsblöcke auf den Speichergeräten berechnet und gespeichert. RAID-6 kann zwei Antriebsausfälle aufrechterhalten. Abgesehen davon ist es dasselbe wie RAID-5 (Datenstreifen+Einzelparität).
Datenstreifen+Spiegelung: RAID-10 verwendet gleichzeitig Datenstreifen und Datenspiegelung. RAID-10 erfordert eine gleichmäßige Anzahl von Speichergeräten derselben Größe, um einem einzelnen BTRFS-Dateisystem hinzugefügt zu werden. Die minimale Anzahl von Speichergeräten, die Sie auf einem RAID-10-BTRFS-Dateisystem hinzufügen können, beträgt 4. Die Hälfte des Speichergeräts wird für die Datenstreifen verwendet, und die andere Hälfte wird zur Spiegelung der Daten der ersten Hälfte der Speichergeräte verwendet (wobei die Daten gestreift werden).
xii) SSD -Bewusstsein und Optimierungen: Das BTRFS -Dateisystem ist SSD bewusst und verfügt über einige SSD -Optimierungsfunktionen. Das BTRFS -Dateisystem verfügt auch über Trim/Relect -Unterstützung für SSD -Speichergeräte.
Die TRIM -Funktion kann Datenausdehnte erkennen und markieren, die nicht mehr verwendet werden. Sobald die Erweiterungen markiert sind, kann das BTRFS -Dateisystem diese automatisch löschen, damit die anderen Dateien diese Datenausdehnte verwenden können.
Die Ablagerungsfunktion entfernen alle Erweiterungen der SSD. Wenn Sie Ihre SSD verkaufen möchten, kann diese Funktion nützlich sein.
xiii) Effiziente inkrementelle Sicherung: BTRFS unterstützt eine inkrementelle Sicherung. Wenn Sie zum ersten Mal ein BTRFS -Dateisystem sichern, benötigt es einen Schnappschuss des aktuellen Dateisystems. Anschließend werden alle nachfolgenden Sicherungen mit dem ersten Schnappschuss verglichen, und nur die Änderungen werden auf der Festplatte gespeichert. Alle nachfolgenden Backups nehmen also weniger Speicherplatz ein und Backups werden schneller sein.
xiv) Hintergrund -Peeling: Es handelt sich um einen BTRFS -Dateisystemprozess.
xv) Online -Dateisystem Defragmentierung: Ich habe bereits erklärt. Larges -Dateien werden in mehrfacher Ausmaß des BTRFS -Dateisystems gespeichert. Wenn Sie große Dateien ändern, werden die Ausmaßstäbe, die geändert werden sollen. Daher werden die nicht modifizierten Datenauswertungen auch für den Fall gehalten, dass sie für die Wiederherstellung des Dateisystems erforderlich sind. Dies führt zu einer Fragmentierung (die Datenaugen einer großen Datei sind nicht kontinuierlich und werden im gesamten Speichergerät um das gesamte Speichergerät verteilt), wenn große Dateien geändert werden. Zu viel Fragmentierung wirkt sich negativ auf das Dateisystem aus (macht den Dateisystem Lese-/Schreiboperation langsamer).
Um dieses Problem zu lösen, unterstützt das BTRFS -Dateisystem die Defragmentierung von Online -Dateisystemen. Mit der Online -Defragmentierung müssen Sie das Dateisystem nicht entlarven, um das Dateisystem zu defragmentieren. Sie können das Dateisystem in Betrieb halten und es trotzdem defragmentieren. Die Defragmentierung verschiebt die Dateiausdehnung im Dateisystem, um die Ausdehnung derselben großen Datei so kontinuierlich wie möglich zu halten. Die Defragmentierung verbessert die Leistung des Dateisystems.
XVI) Offline -Dateisystemprüfung: Das BTRFS-Dateisystem verfügt über viele integrierte Tools, mit denen Sie auf Fehler mit Dateisystemen suchen und behoben werden können. Mit diesen Tools können Sie auch ein zerbrochenes BTRFS -Dateisystem (das nicht montiert werden) beheben.
xvii) In-Place-Konvertierung von vorhandenen Ext2/3/4- und Reiserfs-Dateisystemen: Das BTRFS-Dateisystem verfügt.
Das BTRFS -Dateisystemkonvertierungsprogramm liest die Metadaten eines vorhandenen Ext2/3/4 -Dateisystems (oder Reiserfs), erstellt BTRFS -Metadaten und speichert sie im Dateisystem. Das Dateisystem hält sowohl die BTRFS als auch die ext2/3/4 (oder Reiserfs) Metadaten. Das BTRFS -Dateisystem zeigt auf dieselben Dateiblöcke, die in den Dateisystemdateien ext2/3/4 (oder Reiserfs) verwendet werden. Das vorhandene Dateisystem und die Datenblöcke werden unberührt gehalten, da BTRFS ein Kopier-auf-Write-Dateisystem (Cow) ist. Wenn eine Datei geändert wird.
xviii) Samengeräte: Das BTRFS -Dateisystem unterstützt Seed -Geräte. Sie können ein schreibgeschütztes Dateisystem erstellen und als Vorlage (Seed-Gerät) zum Erstellen anderer BTRFS-Dateisysteme verwenden. Der Vorteil davon ist, dass nur die geänderten Daten in das neue Dateisystem geschrieben werden. Die ursprünglichen Daten (auf den Samengeräten) werden so aufbewahrt, wie sie sind. Diese Funktion kann verwendet werden, um eine Menge Speicherplatz und Datenreduktion zu sparen.
xix) Änderungen des Untervolumens senden/empfangen: Das BTRFS -Dateisystem kann Subvolume -Änderungen senden/empfangen. Das BTRFS -Dateisystem kann die inkrementellen Änderungen eines Subvolume an ein anderes BTRFS -Dateisystem (kann auch in einem anderen Computer wohnen) gesendet. Diese Funktion wird verwendet, um inkrementelle Sicherungen des BTRFS -Dateisystems entweder lokal oder remote. Diese Methode ist schneller und effizienter als RSYNC.
xx) Stapel/Aus -Band -Deduplizierung: Das BTRFS-Dateisystem unterstützt die Stapel oder die Außerbörbungsdingung. Die Duplikation findet statt, nachdem eine Datei in das Dateisystem geschrieben wurde. Das BTRFS -Dateisystem scannt aktiv das gesamte Dateisystem auf identische Ausdehnung und führt nur eine Kopie jedes Ausmaßes (beseitigt redundante/doppelte Ausdehnung). Für diese Aufgabe wird das gleiche Copy-on-Write-Prinzip (Kuh-) Prinzip verwendet. Die Deduplizierung spart viele Speicherplätze.
xxi) SwappFile -Unterstützung: Wenn Sie Linux Kernel 5 verwenden.0 oder neuer können Sie Swappfiles auf dem BTRFS -Dateisystem erstellen.
In einem BTRFS -Dateisystem gibt es einige Einschränkungen des SwappFile:
- Die Swapfile muss als NoCow zugeteilt werden (nicht Kopie auf dem Schreiben)
- Die Swapfile darf keine Komprimierung aktiviert haben.
Stabilität des BTRFS -Dateisystems:
Das BTRFS -Dateisystem wurde vom BTRFS -Team aktiv entwickelt. Die meisten Funktionen des Dateisystems sind zum Zeitpunkt dieses Schreibens stabil. Einige der fortschrittlichen Funktionen sind für eine Produktionsumgebung noch nicht stabil genug. Das BTRFS -Team arbeitet hart daran, diese Stabilitätsprobleme zu lösen.
Wenn Sie das BTRFS -Dateisystem auf Ihrem Produktionsserver verwenden möchten, überprüfen Sie den offiziellen Status - die BTRFS -Wiki -Seite. Stellen Sie außerdem sicher, dass einige Tests vor der endgültigen Bereitstellung Ihres BTRFS -Dateisystems ausgeführt werden, und denken Sie daran, Sicherungen Ihrer wichtigen Daten zu erhalten. Backup zu führen ist für Produktionsumgebungen immer wichtig.
Zukünftiger Austausch des Ext4 -Dateisystems:
BTRFS -Dateisystem wird schnell entwickelt. Das BTRFS -Entwicklungsteam kümmert sich auch um die Stabilität des Dateisystems. Sie versuchen also ihr Bestes, um es so stabil wie möglich zu machen, während das BTRFS -Dateisystem entwickelt wird. Sobald das BTRFS -Dateisystem vollständig entwickelt ist und alle Funktionen stabil genug sind, kann es das Ext4 -Dateisystem ersetzen.
Verweise:
[1] BTRFS Wiki - https: // btrfs.Wiki.Kernel.org/index.PHP/main_page
[2] BTRFS - Die Kernelbaumdokumentation - https: // wwwww.Kernel.org/doc/html/letztes/Dateisystem/BTRFS.html
[3] Btrfs - Glossar - https: // btrfs.Wiki.Kernel.org/index.PHP/Glossar
[4] Merkmale des Dateisystems „BTRFS“ - https: // www.thegeekdiary.com/Funktionen der BTRFS-Filesystem/
[5] Vergleich von Dateisystemen - https: // en.Wikipedia.org/wiki/valison_of_file_systems
[6] BTRFS -Design - BTRFS Wiki - https: // btrfs.Wiki.Kernel.org/index.PHP/BTRFS_DEsign
[7] Vielleicht könnten die Inodes „ernster“ genommen werden? - https: // lwn.net/artikel/724522/
[8] Machen Sie ein BTRFS -Snapshots schreibbar - https: // markandruth.CO.UK/2016/12/29/Making-a-BTRFS-Read-Set-Snapshot-Writable
[9] Datenstreifen - https: // en.Wikipedia.org/wiki/data_striping
[10] FAQ - BTRFS Wiki - https: // btrfs.Wiki.Kernel.org/index.PHP/FAQ
[11] Standard -RAID -Werte - https: // en.Wikipedia.org/wiki/Standard_raid_levels
[12] Trim (Computing) - https: // en.Wikipedia.org/wiki/trim_ (Computing)
[13] Solid State Drive - Archwiki - https: // wiki.Archlinux.org/index.PHP/Solid_State_Drive#Trim
[14] btrfsck - btrfs wiki - https: // btrfs.Wiki.Kernel.org/index.PHP/BTRFSCK
[15] Konvertierung von Ext3/4 und Reiserfs - Btrfs Wiki - https: // btrfs.Wiki.Kernel.org/index.PHP/Conversion_from_ext3
[16] Inkrementelle Backup - Btrfs Wiki - https: // btrfs.Wiki.Kernel.org/index.PHP/Incremental_backup
[17] Deduplication - Btrfs Wiki - https: // btrfs.Wiki.Kernel.org/index.PHP/Deduplizierung
[18] Status - Btrfs Wiki - https: // btrfs.Wiki.Kernel.org/index.PHP/Status