Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält eine Liste der Empfehlungen für das Ausführen eines virtuellen Linux-Computers auf Hyper-V.
Optimieren von Linux-Dateisystemen für dynamische VHDX-Dateien
Einige Linux-Dateisysteme verbrauchen möglicherweise erhebliche Mengen an echtem Speicherplatz, auch wenn das Dateisystem größtenteils leer ist. Beachten Sie die folgenden Empfehlungen, um die tatsächliche Speicherplatznutzung dynamischer VHDX-Dateien zu verringern:
- Verwenden Sie beim Erstellen der VHDX 1 MB BlockSizeBytes (gegenüber der Standardgröße 32 MB) in PowerShell, z. B.:
PS > New-VHD -Path C:\MyVHDs\test.vhdx -SizeBytes 127GB -Dynamic -BlockSizeBytes 1MB
Das ext4-Format wird gegenüber ext3 bevorzugt, da ext4 bei Verwendung mit dynamischen VHDX-Dateien speicherplatzeffizienter ist als ext3.
Geben Sie beim Erstellen des Dateisystems die Anzahl der Gruppen mit 4096 an, z. B.:
# mkfs.ext4 -G 4096 /dev/sdX1
Timeout des Grub-Menüs bei virtuellen Computern der 2. Generation
Da veraltete Hardware aus der Emulation in virtuellen Maschinen der Generation 2 entfernt wurde, läuft der Countdown des Grub-Menüs zu schnell ab, um das Grub-Menü anzuzeigen, und der Standardeintrag wird sofort geladen. Bis grub für die Verwendung des EFI-unterstützten Timers festgelegt ist, ändern Sie /boot/grub/grub.conf, /etc/default/grub oder ein entsprechendes Äquivalent so, dass "timeout=100000" statt des voreingestellten "timeout=5" gesetzt wird.
PxE Boot auf virtuellen Computern der 2. Generation
Da der PIT-Timer in virtuellen Computern der Generation 2 nicht vorhanden ist, werden Netzwerkverbindungen mit dem PxE TFTP-Server beendet und verhindern, dass der Bootloader grub-Konfiguration liest und einen Kernel vom Server lädt.
Unter RHEL 6.x kann der Legacy-Bootloader grub v0.97 EFI anstelle von grub2 verwendet werden, wie hier beschrieben: https://access.redhat.com/documentation/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config-efi.html
Auf anderen Linux-Distributionen als RHEL 6.x können ähnliche Schritte ausgeführt werden, um grub v0.97 für das Laden von Linux-Kerneln von einem PxE-Server zu konfigurieren.
Darüber hinaus funktioniert die Tastatur- und Mauseingabe auf RHEL/CentOS 6.6 nicht mit dem vorinstallierten Kernel, der die Angabe von Installationsoptionen im Menü verhindert. Es muss eine serielle Konsole konfiguriert werden, um die Auswahl von Installationsoptionen zu ermöglichen.
Fügen Sie der efidefault-Datei auf dem PxE-Server den folgenden Kernelparameter hinzu „console=ttyS1“
Richten Sie auf dem virtuellen Computer in Hyper-V mithilfe dieses PowerShell-Cmdlets einen COM-Port ein:
Set-VMComPort -VMName <Name> -Number 2 -Path \\.\pipe\dbg1
Die Angabe einer Kickstartdatei an den Kernel würde auch die Notwendigkeit von Tastatur- und Mauseingaben während der Installation vermeiden.
Verwenden statischer MAC-Adressen mit Failoverclustering
Virtuelle Linux-Computer, die mit Failoverclustering bereitgestellt werden, sollten mit einer MAC-Adresse (Static Media Access Control) für jeden virtuellen Netzwerkadapter konfiguriert werden. In einigen Versionen von Linux geht die Netzwerkkonfiguration möglicherweise nach einem Failover verloren, da dem virtuellen Netzwerkadapter eine neue MAC-Adresse zugewiesen wird. Achten Sie darauf, dass jeder virtuelle Netzwerkadapter über eine statische MAC-Adresse verfügt, um den Verlust der Netzwerkkonfiguration zu vermeiden. Sie können die MAC-Adresse konfigurieren, indem Sie die Einstellungen des virtuellen Computers in Hyper-V-Manager oder Failovercluster-Manager bearbeiten.
Verwenden Sie Hyper-V-spezifische Netzwerkadapter, nicht den Legacynetzwerkadapter.
Konfigurieren und verwenden Sie den virtuellen Ethernet-Adapter, bei dem es sich um eine Hyper-V-spezifische Netzwerkkarte mit gesteigerter Leistung handelt. Wenn sowohl Legacy- als auch Hyper-V-spezifische Netzwerkadapter an einen virtuellen Computer angefügt sind, werden für die Netzwerknamen in der Ausgabe von ifconfig -a möglicherweise zufällige Werte wie _tmp12000801310 angezeigt. Zum Vermeiden dieses Problems entfernen Sie alle älteren Netzwerkadapter, wenn Sie auf einem virtuellen Linux-Computer Hyper-V-spezifische Netzwerkadapter verwenden.
Verwenden des E/A-Schedulers noop/none für eine bessere E/A-Leistung des Datenträgers
Der Linux-Kernel bietet zwei Sätze von Datenträger-E/A-Schedulern zum Neuordnen von Anforderungen. Ein Satz ist für das ältere "blk"-Subsystem und ein Satz für das neuere "blk-mq"-Subsystem. In beiden Fällen empfiehlt es sich bei den heutigen Festkörperdatenträgern, einen Planer zu verwenden, der die Planungsentscheidungen an den zugrunde liegenden Hyper-V Hypervisor übergibt. Bei Linux-Kerneln, die das Subsystem "blk" verwenden, ist dies der "noop"-Scheduler. Bei Linux-Kerneln, die das Subsystem "blk-mq" verwenden, ist dies der "none"-Scheduler.
Die verfügbaren Scheduler für einen bestimmten Datenträger können an diesem Dateisystemspeicherort angezeigt werden: /sys/class/block/<diskname>
/queue/scheduler, wobei der aktuell ausgewählte Scheduler in eckigen Klammern angezeigt wird. Sie können den Scheduler ändern, indem Sie an diesen Dateisystemspeicherort schreiben. Die Änderung muss einem Initialisierungsskript hinzugefügt werden, damit sie über Neustarts hinweg beibehalten werden kann. Details dazu finden Sie in der Dokumentation zu Ihrer Linux-Distribution.
NUMA
Linux-Kernelversionen vor Version 2.6.37 unterstützen keinen NUMA (Non-Uniform Memory Access, nicht einheitlicher Speicherzugriff) auf Hyper-V mit größeren VM-Größen. Dieses Problem betrifft in erster Linie ältere Distributionen, die den Red Hat 2.6.32-Upstreamkernel verwenden, und wurde in Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504) behoben. Systeme, auf denen benutzerdefinierte Kernel ausgeführt werden, die älter als 2.6.37 sind, bzw. RHEL-basierte Kernel, die älter als 2.6.32-504 sind, müssen in „grub.conf“ in der Kernelbefehlszeile den Startparameter numa=off
festlegen. Weitere Informationen finden Sie unter Red Hat KB 436883.
Reservieren von mehr Arbeitsspeicher für kdump
Falls der Dump Capture-Kernel beim Start mit einem „Panic“ endet, reservieren Sie mehr Arbeitsspeicher für den Kernel. Ändern Sie beispielsweise in der Ubuntu grub-Konfigurationsdatei den Parameter crashkernel=384M-:128M in crashkernel=384M-:256M.
Das Verkleinern von VHDX oder das Erweitern von VHD- und VHDX-Dateien kann zu fehlerhaften GPT-Partitionstabellen führen.
Hyper-V ermöglicht das Verkleinern von VHDX-Dateien (Virtual Disk) ohne Berücksichtigung von Partitions-, Volume- oder Dateisystemdatenstrukturen, die möglicherweise auf dem Datenträger vorhanden sind. Wenn die VHDX-Datei an die Stelle verkleinert wird, an der das Ende des VHDX vor dem Ende einer Partition liegt, gehen Die Daten verloren, diese Partition kann beschädigt werden, oder ungültige Daten werden zurückgegeben, wenn die Partition gelesen wird.
Nach dem Ändern der Größe einer VHD oder VHDX sollten Administratoren ein Hilfsprogramm wie fdisk oder parted verwenden, um die Partitions-, Volume- und Dateisystemstrukturen zu aktualisieren, um die Änderung der Größe des Datenträgers widerzuspiegeln. Das Verkleinern oder Erweitern der Größe einer VHD oder VHDX mit einer GUID-Partitionstabelle (GPT) führt zu einer Warnung, wenn ein Partitionsverwaltungstool verwendet wird, um das Partitionslayout zu überprüfen, und der Administrator wird gewarnt, die ersten und sekundären GPT-Header zu beheben. Dieser manuelle Schritt kann ohne Datenverlust sicher ausgeführt werden.