Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
satellite:dnbd3_lokales_caching [2019/08/19 15:04 CEST] – [Konfiguration] srittersatellite:dnbd3_lokales_caching [2019/12/18 12:19 CET] – [Client] sritter
Zeile 1: Zeile 1:
-<note warning>**Experimentell**</note>+<note warning>**Experimentell** 
 + 
 +<wrap lo>Feature derzeit in Entwicklung und Test</wrap> 
 +</note>
  
 ====== Lokales Caching ====== ====== Lokales Caching ======
  
 bwLehrpool überträgt alle zur Laufzeit benötigten Daten über Netzwerk. Das betrifft sowohl das Grundsystem (MiniLinux) als auch anschließend gestartete VMs. Allein beim Boot einer virtuellen Windows Maschine fallen dabei schnell mehrere hundert Megabyte an. bwLehrpool überträgt alle zur Laufzeit benötigten Daten über Netzwerk. Das betrifft sowohl das Grundsystem (MiniLinux) als auch anschließend gestartete VMs. Allein beim Boot einer virtuellen Windows Maschine fallen dabei schnell mehrere hundert Megabyte an.
-Durch die Verwendung von [[satellite:dnbd3|DNBD3]]-Proxys können auch schlechter angebundene Räume bwLehrpool nutzen und die Abhängigkeit von schnellem Netzwerkzugang sinkt.+In manchen Fällen kann dies im Vergleich zu lokal installierten Systemen zu verlängerten Bootzeiten führen bspwbei: 
 +  * langsamer Netzanbindung 
 +  * langsamem Storage 
 +  * großer Anzahl gleichzeitig startender Clients
  
-Der nächste logische Schritt ist die Umsetzung von lokalem Caching. Clients speichern angefragte Blöcke auf der lokalen Festplatte und müssen diese bei späteren Bootvorgängen nicht mehr neu über das Netzwerk übertragen+Durch die Verwendung von [[satellite:dnbd3|DNBD3]]-Proxys können diese Abhängigkeiten reduziert werden. Außerdem besteht somit ein automatisches Failover, falls der Hauptstorage ausfallen sollte. DNBD3-Proxyserver allein sind jedoch nicht immer ausreichend oder gewünscht. Insbesondere, wenn viele Räume von einer langsamen Anbindung betroffen sind. 
 + 
 +Der nächste logische Schritt liegt daher in der Umsetzung von lokalem Caching. Clients speichern angefragte Daten(-Blöcke) auf einer speziell vorbereiteten Partition auf der lokalen Festplatte und können diese bei späteren Bootvorgängen direkt vom lokalen Speicher lesen. Die über Netzwerk zu übertragenden Daten sinken somit deutlich. Damit kann Netzwerk sowie Storage effektiv entlastet und die Bootgeschwindigkeit erhöht werden. Die Vorteile von bwLehrpool - u.a. sauberes System bei jedem Neustart, sofortige Verfügbarkeit neuer VMs, Raumunabhängigkeit - bleiben dennoch erhalten.
  
 ===== Voraussetzungen ===== ===== Voraussetzungen =====
Zeile 18: Zeile 26:
 Clients benötigen eine lokale Festplatte sowie eine entsprechend eingerichtete Partition zur Speicherung der Daten. Für bwLehrpool-Clients empfehlen wir immer den Einsatz einer sogenannten [[wiki:id44|ID44-Partition]]. Diese wird für temporäre Schreibzugriffe verwendet und bei jedem Bootvorgang frisch formatiert.  Clients benötigen eine lokale Festplatte sowie eine entsprechend eingerichtete Partition zur Speicherung der Daten. Für bwLehrpool-Clients empfehlen wir immer den Einsatz einer sogenannten [[wiki:id44|ID44-Partition]]. Diese wird für temporäre Schreibzugriffe verwendet und bei jedem Bootvorgang frisch formatiert. 
  
-Für das lokale Caching muss daher eine weitere, persistente Partition eingerichtet werden. Diese benötigt bei MBR die ID "45" bzw. bei GPT das Label "OpenSLX-ID45". Diese Partition wird von bwLehrpool automatisch erkannt und eingebunden. Dort gespeicherte Daten werden im Gegensatz zur ID44 beim Booten nicht gelöscht.+Für das lokale Caching muss daher eine weitere, persistente Partition eingerichtet werden. Diese benötigt bei MBR die ID "45" bzw. bei GPT das Label "OpenSLX-ID45" oder den Partition-Type "87f86132-ff94-4987-b250-454545454545". Diese Partition wird von bwLehrpool automatisch erkannt und unter "/opt/openslx/persistent" eingebunden. Dort gespeicherte Daten werden im Gegensatz zur ID44 beim Booten nicht gelöscht. Zum einrichten der Partition vergleichen Sie die Informationen unter [[wiki:id44|ID44-Partition]]. 
 + 
 +Denken Sie daran, dass es auch von der Geschwindigkeit der Festplatte abhängt, ob lokales Caching überhaupt Vorteile bringt. Erste Messergebnisse scheinen darauf hinzuweisen, dass nur bei Verwendung von SSDs lokales Caching einen Geschwindigkeitszuwachs bedeutet.
  
-Denken Sie daran, dass es auch von der Geschwindigkeit der Festplatte abhängt, ob lokales Caching überhaupt Vorteile bringt. 
  
 ===== Konfiguration ===== ===== Konfiguration =====
Zeile 27: Zeile 36:
  
 | SLX_DNBD3_MIN_GB | Mindestgröße der ID45-Partition (in Gigabyte), damit ein Client überhaupt anfängt lokal zu cachen. | | SLX_DNBD3_MIN_GB | Mindestgröße der ID45-Partition (in Gigabyte), damit ein Client überhaupt anfängt lokal zu cachen. |
-| SLX_DNBD3_MIN_GB_HASH | Mindestgröße der ID45-Partition (in Gigabyte), damit angefragte Daten immer auf 16MB Blöcke aufgefüllt werden. |+| SLX_DNBD3_MIN_GB_HASH | Mindestgröße der ID45-Partition (in Gigabyte), damit angefragte Daten immer auf 16MB Blöcke aufgefüllt werden (Hashblock). |
  
  
Zeile 35: Zeile 44:
  
 **__Beispiel:__** **__Beispiel:__**
-Beim erstmaligen Boot unserer "Windows 10 Standard Vorlage" mit lokalem Caching bis zum vollständig geladenenen Desktop werden etwa 800-900MB gecachet. Wird auf die (Hashblock-)Methode mit den 16MB-Blöcken umgestelltwerden (wieder beim erstmaligen Boot) dagegen ca. 11GB geladen.+Beim erstmaligen Boot unserer "Windows 10 Standard Vorlage" mit lokalem Caching bis zum vollständig geladenenen Desktop werden etwa **800-900MB** gecachet. Wird die Hashblock-Methode verwendet (Caching kompletter 16MB-Blöcke)wächst der Cache (wieder beim erstmaligen Boot) dagegen auf ca. **11GB**.
  
-Sie sollten SLX_DNBD3_MIN_GB_HASH daher auf einen relativ hohen Wert setzen oder ggf. komplett deaktivieren (Wert = 0).+Sie sollten SLX_DNBD3_MIN_GB_HASH daher auf einen relativ hohen Wert setzen oder ggf. komplett deaktivieren (Wert = 0), da bei der Verwendung unterschiedlicher VMs auf einem Client dessen ID45-Speicher sehr schnell voll laufen wird! Auf Grund der bisher noch sehr simplen Verdrängungsstrategie kann es dadurch passieren, dass das lokale Caching nur geringe Vorteile bietet oder sogar kontraproduktiv ist.
  
  
Zeile 44: Zeile 53:
   * Gecachet werden derzeit ausschließlich VMs. Das MiniLinux wird daher momentan immer noch bei jedem Start komplett übers Netzwerk (~350MB) übertragen.    * Gecachet werden derzeit ausschließlich VMs. Das MiniLinux wird daher momentan immer noch bei jedem Start komplett übers Netzwerk (~350MB) übertragen. 
   * Der erste Boot einer VM kann zunächst langsamer sein, da die Daten parallel auf die Festplatte geschrieben werden müssen. Bei weiteren Boots der gleichen VM sollte sich die Geschwindigkeit aber (in Abhängigkeit der Geschwindikeit der Festplatte) wieder normalisieren.   * Der erste Boot einer VM kann zunächst langsamer sein, da die Daten parallel auf die Festplatte geschrieben werden müssen. Bei weiteren Boots der gleichen VM sollte sich die Geschwindigkeit aber (in Abhängigkeit der Geschwindikeit der Festplatte) wieder normalisieren.
-  *  Derzeit gibt es noch keine intelligente Verdrängungsstrategie. Wenn der Speicher der ID45 voll ist und eine neue VM angefragt wird, werden alle Blöcke der am längsten nicht verwendeten VM verworfen, um Platz zu schaffen. Sie sollten den Speicherbereich der ID45 daher nicht zu stark begrenzen (vor allem nicht wenn auf 16MB Blöcke aufgefüllt wird).+  *  Derzeit gibt es noch keine intelligente Verdrängungsstrategie. Wenn der Speicher der ID45 voll ist und eine neue VM angefragt wird, werden alle Blöcke der am längsten nicht verwendeten VM verworfen, um Platz zu schaffen. Sie sollten den Speicherbereich der ID45 daher nicht zu stark begrenzen (vor allem nicht wenn wie Hashblock-Methode verwendet wird).
  
  
  
  
Drucken/exportieren