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 [2018/01/16 18:41 CET] – +Weiteres dnbd3-Installation chr | dnbd3 [2018/10/01 16:44 CEST] – [Vorbereitung und Konfiguration] chr | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
Die bwLehrpool-Clients beziehen alle benötigten Daten über Netzwerk. Der Satellitenserver liefert im Kilobytebereich Veranstaltungs-Metadaten und im Megabytebereich (~300MB) das grundlegende Minilinux aus; die Virtuellen Maschinen (~Gigabyte) werden in der Regel von einem separaten Storageserver (NFS/CIFS) bezogen. Die Bootdauer der Clients hängt somit maßgeblich von zwei Faktoren ab. | Die bwLehrpool-Clients beziehen alle benötigten Daten über Netzwerk. Der Satellitenserver liefert im Kilobytebereich Veranstaltungs-Metadaten und im Megabytebereich (~300MB) das grundlegende Minilinux aus; die Virtuellen Maschinen (~Gigabyte) werden in der Regel von einem separaten Storageserver (NFS/CIFS) bezogen. Die Bootdauer der Clients hängt somit maßgeblich von zwei Faktoren ab. | ||
- | [{{ : | + | [{{ : |
+ | |||
+ | {{ : | ||
+ | . CIFS-basierter Aufbau}}] | ||
* Der Leserate des Satelliten- bzw. Storageservers | * Der Leserate des Satelliten- bzw. Storageservers | ||
Zeile 37: | Zeile 40: | ||
Sie haben bisher nur einen Proxy, nämlich den Satellitenserver selbst. Unabhängig vom tatsächlichen Speicherort der VMS (intern, NFS, CIFS) laufen nun alle Clientzugriffe über den Satellitenserver. Falls Ihr NFS beispielsweise mit 10 GBit, der Satellitenserver jedoch nur mit 1 GBit angebunden ist, haben Sie nun einen neuen Flaschenhals geschaffen. Es ist daher dringend zu empfehlen, weitere Proxy-Server anzulegen und den Satellitenserver nach Möglichkeit ebenfalls mit 10 GBit anzubinden. | Sie haben bisher nur einen Proxy, nämlich den Satellitenserver selbst. Unabhängig vom tatsächlichen Speicherort der VMS (intern, NFS, CIFS) laufen nun alle Clientzugriffe über den Satellitenserver. Falls Ihr NFS beispielsweise mit 10 GBit, der Satellitenserver jedoch nur mit 1 GBit angebunden ist, haben Sie nun einen neuen Flaschenhals geschaffen. Es ist daher dringend zu empfehlen, weitere Proxy-Server anzulegen und den Satellitenserver nach Möglichkeit ebenfalls mit 10 GBit anzubinden. | ||
- | Zur Bereitstellung zusätzlicher Proxy-Server haben Sie zwei Möglichkeiten: | ||
- | - Sie installieren auf einem bestehenden Linux-Server DNBD3 und fügen diesen als ' | ||
- | - Sie nutzen einen dedizierten Rechner, binden diesen in bwLehrpool ein und lassen diesen mindestens einmal bwLehrpool booten, damit er dem System bekannt ist. Anschließend klicken Sie auf ' | ||
- | [{{ : | + | [{{ : |
+ | - Sie installieren auf einem bestehenden Linux-Server DNBD3 und fügen diesen als ' | ||
+ | - Sie nutzen einen dedizierten Rechner, binden diesen in bwLehrpool ein und lassen diesen mindestens einmal bwLehrpool booten, damit er dem System bekannt ist. Anschließend klicken Sie auf ' | ||
+ | |||
- | Zur Speicherung replizierter VMs auf dem Proxy-Server müssen Sie auf der Festplatte des Proxy-Servers eine persistente **ID45**-Partition einrichten. Im Gegensatz zur ID44-Partition, | ||
==== Serverliste ==== | ==== Serverliste ==== | ||
Zeile 78: | Zeile 81: | ||
Es wäre auch möglich, eine Kombination aus SSD und HDD zu verwenden. Mit Hilfe von ' | Es wäre auch möglich, eine Kombination aus SSD und HDD zu verwenden. Mit Hilfe von ' | ||
- | ===== dnbd3-Installation | + | ===== dnbd3-Proxy-Installation ===== |
Falls Sie einen eigenen Rechner als dnbd3-Proxy abstellen wollen, müssen Sie dnbd3 zur Installation aus den Quellen kompilieren. Für eine Minimalinstallation benötigen Sie nur den Server-Part. | Falls Sie einen eigenen Rechner als dnbd3-Proxy abstellen wollen, müssen Sie dnbd3 zur Installation aus den Quellen kompilieren. Für eine Minimalinstallation benötigen Sie nur den Server-Part. | ||
Zeile 89: | Zeile 92: | ||
useradd -g dnbd3 -s /bin/false -d / | useradd -g dnbd3 -s /bin/false -d / | ||
- | ==== Kompilieren dnbd3-Server | + | ==== Kompilieren |
Achten Sie darauf, daß Sie libjansson (libjansson4) und libjansson-devel benötigen. Installieren Sie diese vorher. Zudem benötigen Sie einen c-Compiler (gcc), make sowie cmake (ccmake), außerdem zum Download git. | Achten Sie darauf, daß Sie libjansson (libjansson4) und libjansson-devel benötigen. Installieren Sie diese vorher. Zudem benötigen Sie einen c-Compiler (gcc), make sowie cmake (ccmake), außerdem zum Download git. | ||
Zeile 105: | Zeile 108: | ||
cd build | cd build | ||
</ | </ | ||
+ | |||
+ | == Minimal, nur Server == | ||
Führen Sie dort, also im build-Verzeichnis, | Führen Sie dort, also im build-Verzeichnis, | ||
Zeile 113: | Zeile 118: | ||
...</ | ...</ | ||
- | Wählen Sie mit Cursor- und Entertasten so aus, daß lediglich bei BUILD_SERVER ' | + | Wählen Sie mit Cursor- und Entertasten so aus, daß lediglich bei BUILD_SERVER ' |
+ | |||
+ | == Komplett (Client, Kernelmodul usw.) == | ||
+ | |||
+ | Eine komplette Installation ist nicht unbedingt zu empfehlen, da die zusätzlichen Teile (Client, Kernelmodel usw.) nicht für den Betrieb eines dnbd3-Proxys notwendig sind und die zusätzlich benötigten Bibliotheken einigen Raum belegen. Falls Sie sich dennoch für eine komplette Installation entscheiden, | ||
=== Kompilierung === | === Kompilierung === | ||
Zeile 119: | Zeile 128: | ||
Stoßen Sie die Kompilierung mit < | Stoßen Sie die Kompilierung mit < | ||
- | Sie finden die ausführbare Datei < | + | Sie finden die ausführbare Datei < |
==== Konfiguration ==== | ==== Konfiguration ==== | ||
- | Erstellen Sie ein Verzeichnis < | + | Erstellen Sie ein Verzeichnis < |
+ | Erzeugen Sie in diesem drei Dateien, rpc.acl, alt-servers und server.conf. Vergleichen Sie für erweiterte Optionen die Datei dnbd3/ | ||
- | < | + | == / |
- | # Everything from localhost | + | < |
- | [IP-Adresse | + | # localhost |
+ | 127.0.0.0/8 ALL | ||
+ | [IP des Satellitenservers] ALL | ||
</ | </ | ||
- | <code>### alt-servers | + | <note>Die Datei rpc.acl regelt nur die Abfrage der Statusinformationen, |
+ | |||
+ | == / | ||
+ | < | ||
[IP des Satellit] | [IP des Satellit] | ||
[IP anderer Proxy 1, wenn vorhanden] | [IP anderer Proxy 1, wenn vorhanden] | ||
Zeile 136: | Zeile 151: | ||
</ | </ | ||
- | < | + | Am wichtigsten ist der Eintrag des Satellitenservers in dieser Datei, damit der Proxy-Server eine Quelle für die Images kennt. Die Eintragung anderer Proxy-Server sorgt für zusätzliche Redundanz bzw. Lastausgleich für die Replikation. Es ließen sich jedoch auch beliebig komplizierte Hierarchien konstruieren, |
+ | |||
+ | == / | ||
+ | < | ||
[dnbd3] | [dnbd3] | ||
listenPort=5003 | listenPort=5003 | ||
# Je nach Partitionierung ggf. ein anderes Verzeichnis wählen: | # Je nach Partitionierung ggf. ein anderes Verzeichnis wählen: | ||
- | basePath=/tmp/dnbd3 | + | basePath=/mnt/ |
serverPenalty=500 | serverPenalty=500 | ||
clientPenalty=0 | clientPenalty=0 | ||
isProxy=true | isProxy=true | ||
backgroundReplication=true | backgroundReplication=true | ||
+ | sparseFiles=false | ||
lookupMissingForProxy=true | lookupMissingForProxy=true | ||
removeMissingImages=false | removeMissingImages=false | ||
Zeile 152: | Zeile 171: | ||
[logging] | [logging] | ||
consoleMask=ERROR WARNING MINOR INFO | consoleMask=ERROR WARNING MINOR INFO | ||
+ | ; Valid types (warning: specifying invalid types will not yield an error!) | ||
+ | ; ERROR Fatal error, server will terminate | ||
+ | ; WARNING | ||
+ | ; MINOR Minor issue, more of a hickup than serious problem | ||
+ | ; INFO Informational message | ||
+ | ; DEBUG1 | ||
+ | ; DEBUG2 | ||
</ | </ | ||
+ | |||
+ | Wenn Sie zu Testzwecken eine Logdatei benötigen, hängen Sie noch folgendes an die Abteilung [logging] an. Beachten Sie jedoch, daß diese Logs sehr schnell sehr groß werden können - im Normalbetrieb daher nicht zu empfehlen! | ||
+ | |||
+ | < | ||
+ | ; file logging: | ||
+ | file=/ | ||
+ | ; which type of messages to log to file: | ||
+ | fileMask=ERROR WARNING MINOR INFO DEBUG1 | ||
+ | </ | ||
+ | |||
+ | Die wichtigsten Optionen sind: | ||
+ | |||
+ | * **basePath**: | ||
+ | * **serverPenalty**: | ||
+ | * **clientPenalty**: | ||
+ | * **lookupMissingForProxy**: | ||
+ | * **backgroundReplication**: | ||
+ | * **sparseFiles=false**: | ||
+ | |||
+ | Vergessen Sie auch nicht, das in der Datei '' | ||
+ | |||
+ | In der (git-)Datei dnbd3/ | ||
==== Automatischer Start ==== | ==== Automatischer Start ==== | ||
Zeile 161: | Zeile 209: | ||
[Service] | [Service] | ||
- | Type=forking | ||
User=dnbd3 | User=dnbd3 | ||
- | ExecStart=/ | + | ExecStart=/ |
- | Restart=always | + | Restart=on-failure |
RestartSec=3 | RestartSec=3 | ||
TimeoutStopSec=10 | TimeoutStopSec=10 | ||
Zeile 172: | Zeile 219: | ||
WantedBy=network-online.target</ | WantedBy=network-online.target</ | ||
- | Führen Sie anschließend die Befehle < | + | Führen Sie anschließend die Befehle < |
+ | |||
+ | ==== Satellitenserver ==== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
+ |