Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
sysbetr:kvm [2019/12/01 13:32] – cb | sysbetr:kvm [2020/05/15 14:04] (aktuell) – cb | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | =====KVM===== | + | Dies Systembetreuungs-Seiten sind umgezogen |
- | Warum man Computer virtualisiert ist [[virtualisierung|bekannt]]. | + | |
- | Nun zu ein paar Details aus der Praxis. Dabei ist " | + | |
- | ====Problem: | + | |
- | Die Festplatte eines Gastes ist i.d.R. eine Datei. Es wäre große Verschwendung, | + | |
- | ====Idee: Thin-Provisioning==== | + | |
- | Das RAW-Format benötigt((hier kann natürlich die Festplattenverwaltung des Hosts selbst wieder optimieren...)) für eine 100GB-Datei auch 100GByte auf der Host-Festplatte. Es empfiehlt sich aber das QCOW2-Format zu verwenden, da dort erst einmal nur der belegte Platz des Gastes benötigt wird - z.B. 20 GByte. Der Gast " | + | |
- | | + | |
- | | + | |
- | ====Realisierung 1: Festplatte füllen, dann leeren==== | + | Diese Seite finden Sie dort als **[[https:// |
- | Eine oft beschriebene Vorgehensweise funktioniert so: | + | |
- | | + | |
- | | + | |
- | * Windows: mit [[https://docs.microsoft.com/en-us/sysinternals/downloads/ | + | |
- | | + | |
- | | + | |
- | * Gast wieder starten | + | |
- | Nachteil: In unserem Beispiel werden sinnlos 80GB Nullen geschrieben, | + | |
- | Nachteil: Der komplette " | + | |
- | Nachteil: Für einige Minuten ist der Gast (ggf. ein wichtiger Server) nicht benutzbar. Dienste sollten heruntergefahren sein um Abstürze zu vermeiden.\\ | + | |
- | Vorteil: keine Unterstützung des Gast-Betriebssystems nötig (man könnte die Nullen auch remote auf die virtuelle Platte schreiben oder die virtuelle Maschine vorübergehend mit einem anderen Betriebssystem booten...) | + | |
- | ====Realisierung 2: discard/ | + | |
- | Hintergrund: | + | |
- | Diese Fähigkeit des Gast-Betriebssystem nutzt man nun wie folgt: | + | Dort finden Sie Informationen zur [[https://systembetreuung.bienmueller.de/dokuwiki/doku.php/kvm| Virtualisierung |
- | ⇒ Gast löscht eine Datei | + | |
- | ⇒⇒ per Trim wird der freiwerdende Speicher (z.B. einmal täglich) an die virtuelle Festplatte gemeldet | + | |
- | ⇒⇒⇒ KVM gibt den entsprechenden Speicher in der Festplattendatei auf dem Host frei | + | |
- | ⇒⇒⇒⇒ Die Festplattendatei hat eine Lücke mehr, und belegt somit auf der Host-Festplatte weniger Platz. | + | |
- | Damit dies funktioniert muss der **Gast** trimmen können und **KVM** die Freigabe auch verarbeiten: | + | |
- | === Gast anpassen === | + | |
- | Die virtuelle Festplatte für den Gast muss eine SCSI-Festplatte sein (ggf. nachträglich geändert - Backup gemacht?). \\ | + | |
- | Dafür benötigt man unter Windows die [[https://fedorapeople.org/ | + | |
- | * Einfach: Bei der Installation gleich eine SCSI-Festplatte konfigurieren((erfolgreich getestet mit Win10 1909 auf Debian Buster KVM mit virtio-TreiberCD 1.171)) oder bei einem Linux-Gast nachträglich ändern. | + | |
- | * Vor der Windowsinstallation die Einstellungen der virtuellen Maschine anpassen: Festplatte als SCSI, dazu den SCSI-Controller virtio-scsi hinzufügen | + | |
- | * Zweites CD-Laufwerk anlegen und mit der Treiber-CD-Datei virtio-win-0.1.171.iso. | + | |
- | * Bei der Installation wird keine Festplatte gefunden. Jetzt auf //Treiber laden// klicken und von der zweiten CD laden lassen. | + | |
- | * Installation normal durchlaufen lassen. | + | |
- | * Aufwändiger/fehleranfälliger: | + | |
- | * CD-Laufwerk mit der Treiber-CD-Datei verbinden (wie oben). | + | |
- | * neue winzige virtuelle SCSI-Platte hinzufügen, | + | |
- | * Treiber im Gerätemanager installieren (" | + | |
- | * eigentliche Platte auf SCSI umstellen, Bootreihenfolge prüfen, booten und beten - wenn es funktioniert: | + | |
- | ===KVM ergänzen=== | + | |
- | In der KVM-Konfigurationsdatei muss ein weiterer Eintrag gemacht werden (während der Gast heruntergefahren ist): | + | |
- | * mit //vish edit Gastname// die Konfigurationsdatei öffnen, ggf. mit Taste i in den Einfügemodus wechseln | + | |
- | * folgende Zeile suchen | + | |
- | < | + | |
- | * und mit // | + | |
- | < | + | |
- | * Info: ca. zwei Zeilen darunter steht, dass es ein SCSI-Device ist. | + | |
- | * mit ESC w q speichern und verlassen. | + | |
- | ===Gast vollenden=== | + | |
- | Nun den Gast wieder starten und | + | |
- | * Testen ob Trim aufrufbar ist | + | |
- | * Linux: fstrim | + | |
- | * Testen ob Trim bei der Datei auf dem Host etwas verändert (ls -hls, siehe unten) | + | |
- | * Bei Erfolg: | + | |
- | * In Linux dafür sorgen, dass Trim automatisch regelmäßig durchgeführt wird (via crontab oder systemd). | + | |
- | * Windows | + | |
- | * Fehlersuche: | + | |
- | * Plan A: Ändere einzelne Einstellungen (Maschinentyp) und hoffe. | + | |
- | * Plan B: Kopiere die Festplatte, lege eine neue Gastmaschine an und verbinde sie mit der kopierten Datei und lass die neue Maschine laufen. | + | |
- | |||
- | |||
- | |||
- | ====Test: Dateigrößen==== | ||
- | Merke: Das qcow2-Format von KVM erzeugt " | ||
- | Wie unterscheidet man nun den angeblichen und den realen Platzbedarf? | ||
- | |||
- | ls -hls | ||
- | | ||
- | Der Befehl liefert sowohl die offizielle Größe, als auch die tatsächlich belegten Platz. Auch //du *.qcow2// meldet die tatsächliche Belegung. | ||
- | Die offizielle Größe ist wichtig, falls man ein Backup ohne weitere Vorkehrungen über' | ||
- | |||
- | ====Tipp: Verkleinern der QCOW2-Datei==== | ||
- | Enthält eine QCOW2-Datei Leerstellen (echte Nullen oder Lücken via sparse-file), | ||
- | mv gast.qcow2 gast.org | ||
- | qemu-img convert -O qcow2 gast.org gast.qcow2 | ||
- | Dies kann man natürlich auch zum Zweck eines Backups machen: | ||
- | qemu-img convert -O qcow2 gast.qcow2 / | ||
- | Wer wirklich auf den **Platzbedarf** achtet, kann den zusätzlichen Parameter -c zum Komprimieren mitgeben. Belegte Sektoren werden jetzt komprimiert, | ||
- | * bei einem frischen Debian Buster XFCE von 4,2GB auf 1,5GB Platzbedarf. | ||
- | * bei einem frischen Win10 1909 von 15 GByte auf 7 GByte | ||
- | |||
- | Bei zukünftigen Schreibzugriffen muss man jedoch mit Tempoeinbußen rechnen. | ||
- | Geht es jedoch mehr um **Performance**, | ||
- | |||
- | Deutlich ausführlicher [[https:// | ||
- | |||
- | Hier eine ausführlichere englische [[http:// |