Nach mehr als zwei Jahren Entwicklung wurde die Version 1.10 des WinBtrfs-Projekts veröffentlicht, das einen Treiber zur Nutzung des Btrfs-Dateisystems auf der Windows-Plattform entwickelt. WinBtrfs basiert nicht auf dem Btrfs-Code aus dem Linux-Kernel, sondern ist eine von Grund auf neu geschaffene alternative Implementierung. Es wird die Unterstützung für Windows XP und neuere Versionen geboten. Der Treiber ist Teil des Betriebssystems ReactOS und kann verwendet werden, um Windows aus einer Partition mit Btrfs zu booten. Der Code ist in C/C++ geschrieben und wird unter der LGPLv3-Lizenz verbreitet.
WinBtrfs unterstützt die meisten Funktionen der Linux-Version von Btrfs, einschließlich des asynchronen Lesens und Schreibens, der Verwendung von RAID0/1/10/5/6, Caching, automatischer Erkennung von Partitionen, ACL, symbolischen Links, Subvolumes, Snapshots, harten Links, spärlichen Dateien, proaktiver Speicherzuweisung, Kompression, Balancierung, Datenintegritätsprüfungen, Hinzufügen und Entfernen von Speichergeräten, dem Senden und Empfangen von Subvolumes, der Größenänderung von Partitionen sowie erweiterten Prüfziffern (xhash, sha256, blake2). Zu den spezifischen Funktionen des Treibers gehören die Implementierung alternativer Datenströme und die Zuordnung von Benutzer-IDs zwischen Linux und Windows. Eine Konvertierung bestehender NTFS-Partitionen nach Btrfs ist möglich.
Zu den Neuerungen in der neuen Version gehören:
- Die Unterstützung für das Schreiben von Bitmap-Daten mit Informationen über freien Speicherplatz wurde hinzugefügt.
- Die Möglichkeit, kleine Dateien in komprimierter Form innerhalb von Metadatenblöcken (inline) zu speichern, wurde implementiert.
- Die Leistung mit externen Speichermedien wurde verbessert. Die Unterstützung für die Erstellung von RAID-Arrays auf externen Speichermedien wurde eingestellt.
- Die Zuverlässigkeit der Wiederherstellung nach Fehlern, die durch einen Mangel an Arbeitsspeicher (OOM) oder durch das Erreichen des Speicherplatzes auf dem Speichergerät (ENOSPC) verursacht wurden, wurde erhöht.
- Kritische Beendigungen, die beim Verschieben von Dateien zwischen Subvolumes und beim gleichzeitigen Erstellen einer großen Anzahl von Dateien auftraten, wurden behoben.
- Ein Fehler, der zu einer Beschädigung des Extents-Baums beim Schreiben von Snapshots führte, wurde behoben.
- Eine gegenseitige Blockade beim Arbeiten mit harten Links wurde behoben.
- Interne Strukturen und Konstanten wurden refaktoriert, um sie den in Linux verwendeten Varianten näher zu bringen.
- Bei der Überprüfung von Änderungen und der Analyse von Fehlern wurde der AI-Assistent Claude eingesetzt, doch der Code wird nach wie vor ausschließlich manuell erstellt.
Quelle: opennet.ru
