Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
dnbd3_fuse_cow [2022/09/09 18:23 CEST] – restliche dateien mscherle | dnbd3_fuse_cow [2022/09/12 11:54 CEST] – [cow_merger_service] verfl. chr | ||
---|---|---|---|
Zeile 178: | Zeile 178: | ||
|Urls | |Urls | ||
- | Sämtliche | + | Die genannten Werte müssen konfiguriert werden. Sollten sich die Serverprozesse cow_merger_service und der dnbd3-server auf dem selben System befinden, |
=== Serverstart === | === Serverstart === | ||
Zeile 472: | Zeile 472: | ||
#define COW_FILE_DATA_MAGIC_VALUE ((uint64_t)0xEBE44D6E72F7825F) // Magic Value to recognize a Cow data file | #define COW_FILE_DATA_MAGIC_VALUE ((uint64_t)0xEBE44D6E72F7825F) // Magic Value to recognize a Cow data file | ||
</ | </ | ||
+ | |||
+ | ===Threads=== | ||
+ | Diese Erweiterung verwendet zwei neue Threads: | ||
+ | < | ||
+ | tidCowUploader | ||
+ | tidStatUpdater | ||
+ | </ | ||
+ | * **tidCowUploader** ist der Thread, der die Blöcke auf den Cow-Server hochlädt. | ||
+ | |||
+ | * **tidStatUpdater** aktualisiert die Statistiken in stdout oder die Statistikdateien (je nach Parametern). | ||
+ | |||
+ | ===Locks=== | ||
+ | Diese Erweiterung verwendet einen neuen Lock cow.l2CreateLock. Er wird verwendet, wenn ein neues L2-Array zugewiesen wird. | ||
<note warning> | <note warning> | ||
+ | ===Config Variablen ==== | ||
+ | Die folgenden Konfigurationsvariablen wurden zu config.h hinzugefügt. Eine Änderung wird nur erfahrenen Nutzern empfohlen. | ||
+ | < | ||
+ | //config.h | ||
+ | // +++++ COW +++++ | ||
+ | #define COW_BITFIELD_SIZE 40 // NEVER CHANGE THIS OR THE WORLD WILL ALSO END! | ||
+ | #define COW_FILE_META_MAGIC_VALUE ((uint64_t)0xEBE44D6E72F7825E) // Magic Value to recognize a Cow meta file | ||
+ | #define COW_FILE_DATA_MAGIC_VALUE ((uint64_t)0xEBE44D6E72F7825F) // Magic Value to recognize a Cow data file | ||
+ | #define COW_MIN_UPLOAD_DELAY 60 // in seconds | ||
+ | #define COW_STATS_UPDATE_TIME 5 // time in seconds the cow status files gets updated (while uploading blocks) | ||
+ | #define COW_MAX_PARALLEL_UPLOADS 10 // maximum number of parallel uploads | ||
+ | #define COW_MAX_PARALLEL_BACKGROUND_UPLOADS 2 // maximum number of parallel uploads while the image is still mounted | ||
+ | #define COW_URL_STRING_SIZE 500 // Max string size for an url | ||
+ | #define COW_SHOW_UL_SPEED 1 // enable display of ul speed in cow status file | ||
+ | #define COW_MAX_IMAGE_SIZE 1000LL * 1000LL * 1000LL * 1000LL; // Maximum size an image can have(tb*gb*mb*kb) | ||
+ | // +++++ COW API Endpoints +++++ | ||
+ | #define COW_API_CREATE " | ||
+ | #define COW_API_UPDATE " | ||
+ | #define COW_API_START_MERGE " | ||
+ | </ | ||
+ | |||
+ | * **COW_MIN_UPLOAD_DELAY** legt die Mindestzeit in Sekunden fest, die seit der letzten Änderung eines CoW Blocks verstrichen sein muss, bevor er hochgeladen wird. Ein größerer Wert verringert normalerweise das doppelte Hochladen von Blöcken. Ein kleinerer Wert verringert die Zeit für das abschließende Hochladen, nachdem das Image ausgehängt wurde. Wenn Sie COW_DUMP_BLOCK_UPLOADS setzen und den Kommandozeilenparameter --cowStatFile angeben, wird eine Liste aller Blöcke, sortiert nach der Anzahl der Uploads, in die Datei status.txt geschrieben, | ||
+ | |||
+ | * **COW_STATS_UPDATE_TIME** definiert die Aktualisierungsfrequenz der stdout-Ausgabe/ | ||
+ | |||
+ | * **COW_MAX_PARALLEL_BACKGROUND_UPLOADS** definiert die maximale Anzahl der parallelen Block-Uploads. Diese Zahl wird verwendet, wenn das Image noch eingehängt ist und der Benutzer es noch nutzt. | ||
+ | |||
+ | * **COW_MAX_PARALLEL_UPLOADS** definiert die maximale Anzahl der parallelen Block-Uploads. Diese Zahl wird verwendet, sobald das Image ausgehängt wurde, um die restlichen geänderten Blöcke hochzuladen. | ||
==== REST-API ==== | ==== REST-API ==== | ||
- | Die folgende REST API wird genutzt zur Komunikationund | + | Die folgende REST API wird genutzt zur Komunikation und Datenübertragung mit dem cow_merger_service. |
=== / | === / |