erste Ausgabe — Server für die effiziente Speicherung einer großen Anzahl von Dateien in kompakter Form, der nach außen wie ein gewöhnlicher WebDAV-Server aussieht. Zur Speicherung wird eine modifizierte Version verwendet . Der Projektcode ist in der Programmiersprache Go geschrieben und unter der BSD-Lizenz stehen.
Server signifikant die Anzahl kleiner Dateien auf normalen oder clusterbasierten Dateisystemen mit vollständiger Unterstützung von Sperren reduzieren. Der von den Entwicklern unterstützte wZD-Cluster speichert etwa 250 Millionen kleine Dateien, verteilt auf 15 Millionen Verzeichnisse im Cluster-FS .
wZD ermöglicht es, den Inhalt von Verzeichnissen in Archive im BoltDB-Format zu verschieben (zu archivieren) und dann diese Dateien aus diesen Archiven zu verteilen (oder Dateien mit der PUT-Methode in Archive zu legen), wodurch die Anzahl der Dateien im FS erheblich reduziert und die Speicherkosten für Metadaten gesenkt werden. Um die Verarbeitung großer Dateien zu verbessern, können solche Dateien getrennt von den Bolt-Archiven gespeichert werden. Dieser Ansatz ermöglicht die Organisation der Speicherung einer enormen Anzahl kleiner Dateien, ohne an die Inode-Grenzen des Dateisystems zu stoßen.
Der Server kann auch als NoSQL-Datenbank für Daten im Schlüssel-Wert-Format (mit Sharding auf Basis der Verzeichnisstruktur) verwendet werden oder um vordefinierte HTML- oder JSON-Dokumente aus der DB zu verteilen. Was die Leistung betrifft, führt die Verwendung von Bolt-Archiven beim Lesen und Schreiben zu einer Verzögerungssteigerung von ungefähr 20-25% beim Lesen und 40-50% beim Schreiben. Je kleiner die Dateigröße, desto geringer die Unterschiede in den Verzögerungen.
Haupt- :
- Multithreading;
- Multiserver, der Fehlertoleranz und Lastenverteilung gewährleistet;
- Maximale Transparenz für den Benutzer oder Entwickler;
- Unterstützte HTTP-Methoden: GET, HEAD, PUT und DELETE;
- Management des Verhaltens beim Lesen und Schreiben über Client-Header;
- Unterstützung für flexibel konfigurierbare virtuelle Hosts;
- Unterstützung der CRC-Datenintegrität beim Schreiben/Lesen;
- Halb dynamische Puffer für minimalen Speicherverbrauch und optimale Netzwerkeinstellungen;
- Verspätete Datenpaketierung;
- Zusätzlich wird ein mehrstufiger Archivierer angeboten zum Verschieben von Dateien in Bolt-Archive ohne Unterbrechung des Dienstes.
Einige Einschränkungen der aktuellen Version: keine Unterstützung für Multipart, POST-Methode, HTTPS-Protokoll, Bindungen für Programmiersprachen, rekursive Verzeichnissuche, keine Unterstützung für das Einbinden von Strukturen in das Dateisystem über WebDAV oder FUSE, Dateien werden unter einem Systembenutzer gespeichert. Das Speicherformat ist an die Architektur gebunden und nicht zwischen Little Endian und Big Endian übertragbar. Obwohl der wZD-Server HTTP-Protokoll unterstützt, muss er ausschließlich hinter einem Reverse-Proxy wie nginx und haproxy betrieben werden.
Quelle: opennet.ru
