Bewährte Methoden für die Ausführung von Linux in Hyper-VBest Practices for running Linux on Hyper-V

Gilt für: WindowsServer 2019, Windows Server 2016 Hyper-V Server 2016, Windows Server 2012 R2, Hyper-V Server 2012 R2, Windows Server 2012 Hyper-V Server 2012, Windows Server 2008 R2, Windows 10, Windows 8.1, Windows 8, Windows 7.1, Windows 7Applies To: Windows Server 2019, Windows Server 2016, Hyper-V Server 2016, Windows Server 2012 R2, Hyper-V Server 2012 R2, Windows Server 2012, Hyper-V Server 2012, Windows Server 2008 R2, Windows 10, Windows 8.1, Windows 8, Windows 7.1, Windows 7

Dieses Thema enthält eine Liste der Empfehlungen für die Ausführung von virtuellen Linux-Computer auf Hyper-V.This topic contains a list of recommendations for running Linux virtual machine on Hyper-V.

Optimieren von Linux-Dateisysteme auf dynamische VHDX-DateienTuning Linux File Systems on Dynamic VHDX Files

Einige Linux-Dateisysteme möglicherweise viel Speicherplatz auf dem echten Datenträger nutzen, selbst, wenn das Dateisystem datenträgerdatenstrom nahezu leer ist.Some Linux file systems may consume significant amounts of real disk space even when the file system is mostly empty. Um die Menge an realen speicherplatznutzung des dynamischen VHDX-Dateien zu reduzieren, unter Berücksichtigung folgender Empfehlungen:To reduce the amount of real disk space usage of dynamic VHDX files, consider the following recommendations:

  • Beim Erstellen der VHDX verwenden Sie, z. B. 1 MB BlockSizeBytes (von der Standardeinstellung 32MB) in PowerShell:When creating the VHDX, use 1MB BlockSizeBytes (from the default 32MB) in PowerShell, for example:
PS > New-VHD -Path C:\MyVHDs\test.vhdx -SizeBytes 127GB -Dynamic -BlockSizeBytes 1MB
  • Das ext4-Format ist ext3 vorzuziehen, da ext4 mehr Speicherplatz als ext3, bei der Verwendung mit dynamischen VHDX-Dateien effizient ist.The ext4 format is preferred to ext3 because ext4 is more space efficient than ext3 when used with dynamic VHDX files.

  • Beim Erstellen des Dateisystems angeben, dass der Anzahl der Gruppen auf 4096, z. B. sein ist:When creating the filesystem specify the number of groups to be 4096, for example:

# mkfs.ext4 -G 4096 /dev/sdX1

GRUB-Menü-Timeout für virtuelle Maschinen der Generation 2Grub Menu Timeout on Generation 2 Virtual Machines

Aufgrund veralteter Hardware, die von der Emulation in virtuelle Maschinen der Generation 2 entfernt wird zählt die GRUB-Menü Countdown-Timer nach unten zu schnell für die GRUB-Menü angezeigt werden, sofort beim Laden des Standardeintrag.Because of legacy hardware being removed from emulation in Generation 2 virtual machines, the grub menu countdown timer counts down too quickly for the grub menu to be displayed, immediately loading the default entry. Bis GRUB-Konfiguration behoben wird, mithilfe des Zeitgebers EFI-Unterstützung, ändern /boot/grub/grub.conf, /usw./Standard/Grub, oder haben ähnliche "Timeout = 100000" anstelle des Standardwerts "Timeout = 5".Until grub is fixed to use the EFI-supported timer, modify /boot/grub/grub.conf, /etc/default/grub, or equivalent to have "timeout=100000" instead of the default "timeout=5".

PxE-Start auf virtuelle Maschinen der Generation 2PxE Boot on Generation 2 Virtual Machines

Da der PIT-Zeitgeber nicht in Generation 2 Virtual Machines vorhanden ist, wird Netzwerkverbindungen mit PxE-TFTP-Server können vorzeitig beendet werden, und zu verhindern, dass den Bootloader von Grub-Konfiguration lesen und Laden einen Kernel vom Server.Because the PIT timer is not present in Generation 2 Virtual Machines, network connections to the PxE TFTP server can be prematurely terminated and prevent the bootloader from reading Grub configuration and loading a kernel from the server.

Unter RHEL 6.x, das ältere Grub v0.97 EFI-Startladeprogramm kann 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.htmlOn RHEL 6.x, the legacy grub v0.97 EFI bootloader can be used instead of grub2 as described here: https://access.redhat.com/documentation/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config-efi.html

Bei Linux-Distributionen als RHEL 6.x, ähnliche Schritte können befolgt werden, um die GRUB-v0.97 zum Laden von Linux-Kernel aus einen PxE-Server zu konfigurieren.On Linux distributions other than RHEL 6.x, similar steps can be followed to configure grub v0.97 to load Linux kernels from a PxE server.

Darüber hinaus für RHEL/CentOS 6.6-Tastatur und Maus Eingabe funktioniert nicht mit der verhindert, dass vor der Installation Kernel angeben von Optionen im Menü.Additionally, on RHEL/CentOS 6.6 keyboard and mouse input will not work with the pre-install kernel which prevents specifying installation options in the menu. Damit können die Auswahl der Installationsoptionen angezeigt, muss eine serielle Konsole konfiguriert werden.A serial console must be configured to allow choosing installation options.

  • In der Efidefault Datei auf dem PxE-Server, fügen Sie den folgenden kernelparameter "Konsole ttyS1 ="In the efidefault file on the PxE server, add the following kernel parameter "console=ttyS1"

  • Richten Sie auf dem virtuellen Computer in Hyper-V einen COM-Anschluss, der mit diesem PowerShell-Cmdlet:On the VM in Hyper-V, setup a COM port using this PowerShell cmdlet:

Set-VMComPort -VMName <Name> -Number 2 -Path \\.\pipe\dbg1

Angabe einer Kickstart-Datei an den Kernel vor der Installation wird auch die Notwendigkeit Tastatur- und Mauseingaben während der Installation vermeiden.Specifying a kickstart file to the pre-install kernel would also avoid the need for keyboard and mouse input during installation.

Verwenden Sie statische MAC-Adressen mit Failover-ClusterunterstützungUse static MAC addresses with failover clustering

Virtuelle Linux-Computer, die Failover-Clusterunterstützung bereitgestellt werden, sollten mit einer statischen Media Access Control (MAC)-Adresse für jeden virtuellen Netzwerkadapter konfiguriert werden.Linux virtual machines that will be deployed using failover clustering should be configured with a static media access control (MAC) address for each virtual network adapter. In einigen Versionen von Linux die Netzwerkkonfiguration verloren gehen nach dem Failover möglicherweise den virtuellen Netzwerkadapter eine neue MAC-Adresse zugewiesen ist.In some versions of Linux, the networking configuration may be lost after failover because a new MAC address is assigned to the virtual network adapter. Um zu vermeiden, verlieren die Netzwerkkonfiguration, stellen Sie sicher, dass jedem virtuellen Netzwerkadapter eine statische MAC-Adresse verfügt.To avoid losing the network configuration, ensure that each virtual network adapter has a static MAC address. Sie können die MAC-Adresse konfigurieren, indem Sie die Einstellungen des virtuellen Computers in Hyper-V-Manager oder Failovercluster-Manager bearbeiten.You can configure the MAC address by editing the settings of the virtual machine in Hyper-V Manager or Failover Cluster Manager.

Verwenden Sie Hyper-V-spezifischer Netzwerkadapter, nicht die ältere NetzwerkkarteUse Hyper-V-specific network adapters, not the legacy network adapter

Konfigurieren Sie und verwenden Sie den virtuellen Ethernet-Adapter, der eine Hyper-V-spezifischer Netzwerkkarte mit verbesserter Leistung ist.Configure and use the virtual Ethernet adapter, which is a Hyper-V-specific network card with enhanced performance. Wenn es sich bei älteren als auch Hyper-V-spezifischer Netzwerkadapter an einen virtuellen Computer angefügt sind, im Netzwerk den Namen in der Ausgabe des Ifconfig - a zeigt möglicherweise zufällige Werte wie z. B. _tmp12000801310.If both legacy and Hyper-V-specific network adapters are attached to a virtual machine, the network names in the output of ifconfig -a might show random values such as _tmp12000801310. Um dieses Problem zu vermeiden, entfernen Sie alle älteren Netzwerkkarten, bei Verwendung von Hyper-V-spezifischer Netzwerkadapter auf einem virtuellen Linux-Computer.To avoid this issue, remove all legacy network adapters when using Hyper-V-specific network adapters in a Linux virtual machine.

Verwenden Sie die e/a-Scheduler NOOP für eine bessere-Datenträger-e/a-LeistungUse I/O scheduler NOOP for better disk I/O performance

Der Linux-Kernel verfügt über vier verschiedene e/a-Planer, Anforderungen mit unterschiedlichen Algorithmen neu anzuordnen.The Linux kernel has four different I/O schedulers to reorder requests with different algorithms. NOOP ist einer First in First Out-Warteschlange, die die Entscheidung Zeitplan vom Hypervisor getroffen werden übergeben.NOOP is a first-in first-out queue that passes the schedule decision to be made by the hypervisor. Es wird empfohlen, NOOP als Planer zu verwenden, bei der Ausführung von virtuellen Linux-Computer auf Hyper-V.It is recommended to use NOOP as the scheduler when running Linux virtual machine on Hyper-V. So ändern Sie den Planer für ein bestimmtes Gerät, in der Konfiguration für das Startladeprogramm (/ etc/grub.conf, z. B.), hinzufügen Aufzug = Noop die Kernel-Parameter, und klicken Sie dann erneut starten.To change the scheduler for a specific device, in the boot loader's configuration (/etc/grub.conf, for example), add elevator=noop to the kernel parameters, and then restart.

NUMANUMA

Linux-Kernel-Versionen unterstützen nicht zuvor als 2.6.37 sind NUMA auf Hyper-V mit größeren VM-Größen.Linux kernel versions earlier than 2.6.37 don't support NUMA on Hyper-V with larger VM sizes. Dieses Problem betrifft in erster Linie ältere Verteilungen, die mit den vorgeschalteten Red Hat 2.6.32 Kernel und wurde in Red Hat Enterprise Linux (RHEL) 6.6 (Kernel 2.6.32-504) behoben.This issue primarily impacts older distributions using the upstream Red Hat 2.6.32 kernel, and was fixed in Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504). Benutzerdefinierte Kernels, die älter als 2.6.37 sind, denen oder ausgeführt wird RHEL-basierte Kernel, die älter als 2.6.32-504 festlegen müssen Systeme numa=off in der Kernel-Befehlszeile auf "GRUB.conf".Systems running custom kernels older than 2.6.37, or RHEL-based kernels older than 2.6.32-504 must set the boot parameter numa=off on the kernel command line in grub.conf. Weitere Informationen finden Sie unter Red Hat KB 436883.For more information, see Red Hat KB 436883.

Reservieren von mehr Arbeitsspeicher für kdumpReserve more memory for kdump

Behalten Sie für den Fall, dass der Dump-Capture-Kernel mit einem Vorgang wird beim Systemstart letztendlich, mehr Arbeitsspeicher für den Kernel.In case the dump capture kernel ends up with a panic on boot, reserve more memory for the kernel. Beispielsweise ändern Sie den Parameter Crashkernel = 384M-:128M zu Crashkernel = 384M-:256M in der Konfigurationsdatei für Ubuntu GRUB-Konfiguration.For example, change the parameter crashkernel=384M-:128M to crashkernel=384M-:256M in the Ubuntu grub configuration file.

VHDX verkleinern oder erweitern die VHD und VHDX-Dateien kann zu fehlerhaften GPT-Partitionstabellen führen.Shrinking VHDX or expanding VHD and VHDX files can result in erroneous GPT partition tables

Hyper-V ermöglicht das Verkleinern von virtuellen Festplattendateien (VHDX) ohne für jede Partition, Volume oder Datei System-Datenstrukturen, die möglicherweise auf dem Datenträger vorhanden sind.Hyper-V allows shrinking virtual disk (VHDX) files without regard for any partition, volume, or file system data structures that may exist on the disk. Wenn die VHDX auf, in dem das Ende der VHDX vor dem Ende einer Partition wird verkleinert wird, können Daten verloren, Partition beschädigte oder ungültige Daten machen kann zurückgegeben werden können, wenn die Partition gelesen wird.If the VHDX is shrunk to where the end of the VHDX comes before the end of a partition, data can be lost, that partition can become corrupted, or invalid data can be returned when the partition is read.

Nach dem Ändern der Größe einer VHD oder VHDX, Administratoren sollten mit einem Hilfsprogramm wie "Fdisk" oder parted, um die Partition, Volumes und Dateisystemstrukturen entsprechend die Änderung der Größe des Datenträgers zu aktualisieren.After resizing a VHD or VHDX, administrators should use a utility like fdisk or parted to update the partition, volume, and file system structures to reflect the change in the size of the disk. Verkleinern oder vergrößern die Größe einer VHD oder VHDX, die eine GUID-Partitionstabelle (GPT) wird eine Warnung verursachen, wenn ein Verwaltungstool für die Partition verwendet wird, um das Partitionslayout zu überprüfen, und der Administrator gewarnt werden, werden um die vor- und sekundären GPT-Header zu beheben.Shrinking or expanding the size of a VHD or VHDX that has a GUID Partition Table (GPT) will cause a warning when a partition management tool is used to check the partition layout, and the administrator will be warned to fix the first and secondary GPT headers. Dieser manuelle Schritt kann ohne Datenverlust ausführen.This manual step is safe to perform without data loss.

Siehe auchSee also