Mobile-Menu

Mehr Leistung, höhere Sicherheit und bessere Stabilität Best Practices für den Betrieb von Linux auf Hyper-V

Von Thomas Joos

Anbieter zum Thema

Viele Unternehmen setzen parallel zu Windows-Servern auch auf Linux. Auch solche Systeme lassen sich optimal unter Hyper-V betreiben und sorgen so für ein Leistungsplus, eine höhere Sicherheit und mehr Stabilität. Wir zeigen, auf was bei der Umsetzung geachtet werden muss.

Linux gehört bei vielen Unternehmen zur Infrastrukturlandschaft einfach dazu. Mit etwas Know-how lassen sich aber auch die Open-Source-Server auf Hyper-V betreiben.
Linux gehört bei vielen Unternehmen zur Infrastrukturlandschaft einfach dazu. Mit etwas Know-how lassen sich aber auch die Open-Source-Server auf Hyper-V betreiben.
(Bild: © deagreez - stock.adobe.com)

Linux gehört in den eigenen Rechenzentren vieler Unternehmen dazu. Microsoft hat sich immer mehr Richtung Linux geöffnet und bietet diesbezüglich auch Möglichkeiten zur Optimierung. Wir haben im Beitrag „So virtualisieren Sie CentOS 8 unter Hyper-V“ bereits gezeigt, welche Möglichkeiten es für CentOS gibt. Diese gelten auch für die meisten anderen Distributionen.

Auch im Beitrag „10 Stolpersteine beim Einsatz von Hyper-V“ sind wir bereits auf das Thema eingegangen. Nachfolgend vertiefen wir die Hinweise und geben Tipps für einen noch besseren Betrieb von Linux in Verbindung mit Hyper-V.

Bildergalerie
Bildergalerie mit 6 Bildern

Generell sollte natürlich immer möglichst der aktuellste Linux-Kernel zum Einsatz kommen, da hier ebenfalls ständig Verbesserungen bei der Zusammenarbeit mit Hyper-V integriert werden. Ältere Versionen als 2.6.37 unterstützen zum Beispiel kein NUMA auf Hyper-V.

Zudem muss vor der Installation von Linux auf Hyper-V darauf geachtet werden, dass die entsprechende Distribution und Version überhaupt mit Hyper-V zusammenarbeitet. Auch die eingesetzte Windows-Server-Version spielt eine wichtige Rolle. Offiziell wird CentOS ab Version 8 unterstützt, Fedora überhaupt nicht und Debian ebenfalls ab Version 8.

Andere Distributionen wie Arch Linux und Manjaro Linux werden nicht offiziell unterstützt. Am besten arbeiten kompatible Linux-Distributionen mit Windows Server 2019 zusammen. Hier werden zum Beispiel auch Sicherheitsfunktionen wie Shielded-VMs mit Linux unterstützt.

Dynamisch erweiterbare Festplatten nutzen

In vielen Fällen wird bei der Virtualisierung mit Hyper-V auf dynamisch erweiterbare Festplatten gesetzt, die mit dem Bedarf des virtuellen Betriebssystems mitwachsen. Abhängig von der eingesetzten Linux-Distribution und den Dateisystem-Einstellungen in Linux, geht das virtuelle Betriebssystem etwas verschwenderisch mit dieser Funktion um und benötigt mehr Speicherplatz, obwohl dieser noch nicht belegt ist.

Microsoft empfiehlt diesbezüglich, dass die Blockgröße für die virtuelle Festplatte auf 1MB gesetzt wird. Ideal ist es, die dynamische Festplatte in der PowerShell vor dem Erstellen der Linux-VM zu erstellen, zum Beispiel mit:

New-VHD -Path d:\vm\ubuntu\test.vhdx -SizeBytes 127GB -Dynamic -BlockSizeBytes 1MB

Innerhalb der VM empfiehlt Microsoft in Linux die Verwendung von ext4 als Dateisystem und rät von ext3 ab. Das liegt daran, dass ext4 besser mit dynamischen Festplatten zurechtkommt. Hier empfiehlt Microsoft den Wert Groups auf 4096 zu setzen, zum Beispiel mit:

mkfs.ext4 -G 4096 /dev/sdX1

Im Linux-Kernel stehen verschiedene I/O-Scheduler zur Verfügung. Häufig kommt „blk“ oder „blk-mq“ als Subsystem zum Einsatz. Das entscheidet, welcher Scheduler genutzt werden kann. Für „blk“ ist der „noop“-Scheduler besser für Hyper-V geeignet, beim Einsatz von „blk-mq“ ist „none“ besser geeignet. Es ist in Linux auch möglich für verschiedene Festplatten unterschiedliche Scheduler zu verwenden.

Generell ist es aber keine gute Idee, virtuelle Festplatten nach der Einbindung in Linux zu verkleinern oder zu vergrößern, wenn bereits Daten auf der Platte gespeichert sind. Es besteht hier die Gefahr eines Datenverlustes.

Generation 2-VMs verwenden

Generell ist es beim Einsatz von Linux mit Generation 2-VMs auch empfehlen, mit UEFI, Secure-Boot und paravirtualisierten SCSI-Controllern zu arbeiten. Allerdings muss auch hier die Linux-Distribution dazu in der Lage sein.

Beim Einsatz von Generation 2-VMs und Secure-Boot unterstützt muss die Vorlage dafür erstellt sein und funktionieren. Die Konfiguration dazu finden sich in den Einstellungen der VM bei „Sicherheit“. Sollte die Distribution die Funktion nicht unterstützen und daher nicht starten, ist es notwendig die Option „Sicheren Start aktivieren“ bei „Sicherheit“ zu deaktivieren.

Grub und Generation 2-VMs

Wenn Generation 2-VMs zum Einsatz kommen, kann es passieren, dass der Bootmanager Grub die Einträge nicht anzeigt, weil das Standardbetriebssystem zu schnell gestartet wird. Hier kann es dann sinnvoll sein, den Timeout für das Menü von 4 auf einen Wert von etwa 100.000 zu erhöhen, damit das Menü lange genug zu sehen ist.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Netzwerktechnik, IP-Kommunikation und UCC

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Wenn der Dump-Capture-Kernel beim Booten abstürzt, sollte mehr Speicher für den Kernel reserviert werden. Dazu kann der Parameter „crashkernel=384M-:128M“ zu „crashkernel=384M-:256M“ in der Ubuntu-Grub-Konfigurationsdatei geändert werden.

Leistungssteigerung durch Installation der VM-Tools

Um die Leistung von VMs mit Linux auf Hyper-V zu verbessern, sollten die jeweiligen VM-Tools installiert werden. Am Beispiel beim Betrieb von Kali-Linux wird das mit dem folgenden Befehl durchgeführt:

git clone https://github.com/mimura1133/linux-vm-tools chmod 555 linux-vm-tools/kali/2020.x/install.sh sudo linux-vm-tools/kali/2020.x/install.sh

Generell kann es in diesem Zusammenhang sinnvoll sein, noch die Option „HVSocket“ zu setzen, wenn eigene Integrationsdienste zum Einsatz kommen. Dieser Vorgang kann in der PowerShell auf dem Hyper-V-Host vorgenommen werden:

Set-VM "<Name der VM>" -EnhancedSessionTransportType HVSocket

Beim Einsatz von Ubuntu können die Erweiterungen dafür aus der Paketverwaltung installiert werden, zum Beispiel mit:

apt-get update
apt-get install --install-recommends linux-virtual
apt-get install linux-tools-virtual linux-cloud-tools-virtual
reboot now

Meistens wird hier noch „sudo“ benötigt. Microsoft stellt für verschiedene Linux-Distributionen die Linux Integration Services zum Download zur Verfügung https://www.microsoft.com/en-us/download/details.aspx?id=55106. Auch diese sollten auf den unterstützten Distributionen installiert werden.

Bereits beim Erstellen von VMs können Anzahl der Prozessoren und Arbeitsspeicher angepasst werden. Generell sind 2 CPUs empfehlenswert. Bei Leistungsproblemen kann getestet werden, ob die Änderung auf einen Prozessor eine Verbesserung mit sich bringt.

Grundsätzlich kommen aktuelle, unterstützte Linux-Distributionen auch mit dynamischem Arbeitsspeicher zurecht. Diese Einstellungen sollten auch für Linux verwendet werden. Hier kann es sinnvoll sein, mit den Einstellungen zu experimentieren, um die beste Leistung zu erhalten.

(ID:47128426)