Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
dnbd3 [2018/01/16 18:47 CET] – +Reste chr | dnbd3 [2018/10/01 16:49 CEST] (aktuell) – gelöscht chr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== DNBD3 (Seite im Aufbau) ====== | ||
- | Das ' | ||
- | |||
- | DNBD3 wird von der Universität Freiburg weiterentwickelt und dort bereits seit Jahren unter anderem für bwLehrpool sowie [[https:// | ||
- | |||
- | 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. | ||
- | [{{ : | ||
- | |||
- | * Der Leserate des Satelliten- bzw. Storageservers | ||
- | * Der Netzanbindung zwischen Server und Clients | ||
- | |||
- | Nebenstehende Grafik zeigt schematisch den üblichen Aufbau. | ||
- | |||
- | DNBD3 bietet speziell bei schlecht angebundenen Poolräumen Vorteile, wenn zeitgleich eine große Anzahl an Rechnern eine VM anfordert. Durch DNBD3 kann die anfallende Last verteilt und damit eine Reduktion der Bootdauer erzielt werden. In einer ersten Stufe werden lediglich die Virtuellen Maschinen über DNBD3 ausgeliefert. In zukünftigen Versionen kann auch das MiniLinux darüber verteilt werden. | ||
- | |||
- | ===== Funktionsweise ===== | ||
- | |||
- | Im Verbund eingesetzte Proxy-Server können angefragte Blöcke automatisch von anderen Proxy-Servern replizieren. [Hintergrundreplikation? | ||
- | |||
- | Die Clients ermitteln selbstständig den ihnen in Hinblick auf Verbindungsgeschwindigkeit u.a. am nächsten liegenden Proxyserver. Fällt ein Proxy-Server aus, verwenden die Clients automatisch einen anderen Server. | ||
- | |||
- | ===== Anwendungsbeispiel ===== | ||
- | |||
- | |[{{: | ||
- | |||
- | <note tip> | ||
- | |||
- | ===== Vorbereitung und Konfiguration ===== | ||
- | |||
- | [{{ : | ||
- | |||
- | Zur Aktivierung DNBD3s wählen Sie im Webinterface den entsprechenden Menüpunkt und klicken auf 'DNDB3 ein-/ | ||
- | |||
- | Sie können DNBD3 entweder exklusiv oder mit Fallback auf NFS/CIFS verwenden (Häkchen bei ' | ||
- | |||
- | 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 ' | ||
- | |||
- | [{{ : | ||
- | |||
- | 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 ==== | ||
- | |||
- | [{{ : | ||
- | |||
- | Nachdem Sie einen oder mehrere Rechner als Proxy-Server hinzugefügt haben, sehen Sie in der Serverliste verschiedene Informationen: | ||
- | |||
- | Sie erhalten außerdem detailierte Informationen, | ||
- | [{{ : | ||
- | |||
- | ==== Raumbeschränkung ==== | ||
- | |||
- | [{{ : | ||
- | |||
- | Sie können die Verwendung der Proxys auf bestimmte Räume/Orte beschränken. Klicken Sie dazu auf das entsprechende Icon in der Spalte ' | ||
- | |||
- | Im Beispiel rechts verwenden nur Clients aus dem Gebäude der Chemie sowie der Fakultät für Biologie den Proxy. Die schlechte Netzwerkverbindung zwischen beispielsweise KG2 und der Biologie wird somit nicht zusätzlich durch Metrikmessungen belastet. | ||
- | |||
- | Wird ein Proxy auf einen oder mehrere Räume beschränkt, | ||
- | |||
- | ===== Hardwareempfehlung ===== | ||
- | |||
- | DNBD3-Proxys können problemlos auf normaler Desktop-Hardware ausgeführt werden. Es ist nicht notwendig, spezielle Serverhardware einzusetzen. Sinnvoll ist jedoch die Austattung mit einer dedizierten Netzwerkkarte, | ||
- | |||
- | Beim Starten einer normalen Windows-VM werden i.d.R. etwa ~1GB an Daten übertragen. Werden in einem Raum erfahrungsgemäß nur wenige unterschiedliche VMs gestartet, können alle Daten im RAM des Proxys vorgehalten werden. Die Leseleistung der Festplatte ist in diesem Fall sekundär. Je mehr Arbeitsspeicher vorhanden ist, umso mehr Blöcke können direkt im RAM vorgehalten und bei erneuter Anfrage sofort übertragen werden. | ||
- | |||
- | **Übersicht: | ||
- | * Normale Desktophardware | ||
- | * Dedizierte 10GBit-Netzwerkkarte | ||
- | * 8-32GB RAM | ||
- | * Große Festplatte, um möglichst viele VMs cachen zu können | ||
- | |||
- | Es wäre auch möglich, eine Kombination aus SSD und HDD zu verwenden. Mit Hilfe von ' | ||
- | |||
- | ===== dnbd3-Installation (in Arbeit) ===== | ||
- | |||
- | 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. | ||
- | |||
- | ==== Gruppe und User ==== | ||
- | |||
- | Es ist wie immer vorzuziehen, | ||
- | |||
- | < | ||
- | useradd -g dnbd3 -s /bin/false -d / | ||
- | |||
- | ==== Kompilieren des dnbd3-Servers ==== | ||
- | |||
- | 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. | ||
- | |||
- | === Quellcode und Vorbedingungen === | ||
- | |||
- | Besorgen Sie sich anschließend den Quellcode mit < | ||
- | |||
- | === Konfiguration === | ||
- | |||
- | Wechseln sie in das nach dem git-Befehl vorhandene Verzeichnis dnbd3, erzeugen darin ein Verzeichnis build und wechseln in dieses: | ||
- | < | ||
- | cd dnbd3 | ||
- | mkdir build | ||
- | cd build | ||
- | </ | ||
- | |||
- | Führen Sie dort, also im build-Verzeichnis, | ||
- | |||
- | < | ||
- | BUILD_KERNEL_MODULE | ||
- | BUILD_SERVER | ||
- | ...</ | ||
- | |||
- | Wählen Sie mit Cursor- und Entertasten so aus, daß lediglich bei BUILD_SERVER ' | ||
- | |||
- | === Kompilierung === | ||
- | |||
- | Stoßen Sie die Kompilierung mit < | ||
- | |||
- | Sie finden die ausführbare Datei < | ||
- | |||
- | ==== Konfiguration ==== | ||
- | |||
- | Erstellen Sie ein Verzeichnis < | ||
- | |||
- | < | ||
- | # Everything from localhost | ||
- | [IP-Adresse des Satellitenservers] ALL | ||
- | </ | ||
- | |||
- | < | ||
- | [IP des Satellit] | ||
- | [IP anderer Proxy 1, wenn vorhanden] | ||
- | [IP anderer Proxy 2, wenn vorhanden, usw.] | ||
- | </ | ||
- | |||
- | < | ||
- | [dnbd3] | ||
- | listenPort=5003 | ||
- | # Je nach Partitionierung ggf. ein anderes Verzeichnis wählen: | ||
- | basePath=/ | ||
- | serverPenalty=500 | ||
- | clientPenalty=0 | ||
- | isProxy=true | ||
- | backgroundReplication=true | ||
- | lookupMissingForProxy=true | ||
- | removeMissingImages=false | ||
- | uplinkTimeout=5000 | ||
- | clientTimeout=15000 | ||
- | |||
- | [logging] | ||
- | consoleMask=ERROR WARNING MINOR INFO | ||
- | </ | ||
- | |||
- | Vergessen Sie auch nicht, das in der Datei server.conf unter basePath angegebene Verzeichnis ggf. zu erstellen und dafür zu sorgen, daß der User dnbd3 schreiben kann. | ||
- | |||
- | ==== Automatischer Start ==== | ||
- | |||
- | Erzeugen Sie im Verzeichnis / | ||
- | < | ||
- | Description=DNBD3 proxy server | ||
- | |||
- | [Service] | ||
- | Type=forking | ||
- | User=dnbd3 | ||
- | ExecStart=/ | ||
- | Restart=always | ||
- | RestartSec=3 | ||
- | TimeoutStopSec=10 | ||
- | LimitNOFILE=65536 | ||
- | |||
- | [Install] | ||
- | WantedBy=network-online.target</ | ||
- | |||
- | Führen Sie anschließend die Befehle < |