Dela via


Metodtips för att köra Linux på Hyper-V

Den här artikeln innehåller en lista med rekommendationer för att köra en virtuell Linux-dator på Hyper-V.

Justera Linux-filsystem på dynamiska VHDX-filer

Vissa Linux-filsystem kan förbruka stora mängder verkligt diskutrymme även om filsystemet till största delen är tomt. Om du vill minska mängden verklig diskutrymmesanvändning för dynamiska VHDX-filer bör du överväga följande rekommendationer:

  • När du skapar VHDX använder du 1 MB BlockSizeBytes (från standardvärdet 32 MB) i PowerShell, till exempel:
PS > New-VHD -Path C:\MyVHDs\test.vhdx -SizeBytes 127GB -Dynamic -BlockSizeBytes 1MB
  • Ext4-formatet föredras framför ext3 eftersom ext4 är mer utrymmeseffektivt än ext3 när det används med dynamiska VHDX-filer.

  • När du skapar filsystemet anger du antalet grupper som ska vara 4096, till exempel:

# mkfs.ext4 -G 4096 /dev/sdX1

Tidsgräns för Grub-menyn på virtuella datorer i generation 2

Eftersom äldre maskinvara har tagits bort från emulering i virtuella datorer i generation 2 räknas grub-menyns timer ned för snabbt för att grub-menyn ska visas och läser omedelbart in standardposten. Tills grub har åtgärdats för att använda den EFI-stödda timern ändrar du /boot/grub/grub.conf, /etc/default/grub eller motsvarande för att ha "timeout=100000" i stället för standardvärdet "timeout=5".

PxE-start på virtuella datorer i generation 2

Eftersom PIT-timern inte finns i virtuella datorer i generation 2 avslutas nätverksanslutningarna till PxE TFTP-servern och hindrar startladdaren från att läsa Grub-konfiguration och läsa in en kernel från servern.

På RHEL 6.x kan den äldre grub v0.97 EFI-startladdaren användas i stället för grub2 enligt beskrivningen här: https://access.redhat.com/documentation/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config-efi.html

På andra Linux-distributioner än RHEL 6.x kan liknande steg följas för att konfigurera grub v0.97 för att läsa in Linux-kernels från en PxE-server.

På RHEL/CentOS 6.6 fungerar inte tangentbords- och musindata med den förinstallerade kerneln, vilket förhindrar att installationsalternativ anges i menyn. En seriekonsol måste konfigureras för att tillåta val av installationsalternativ.

  • I efidefault-filen på PxE-servern lägger du till följande kernelparameter "console=ttyS1"

  • På den virtuella datorn i Hyper-V konfigurerar du en COM-port med den här PowerShell-cmdleten:

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

Om du anger en kickstart-fil till kerneln skulle du också undvika behovet av tangentbords- och musindata under installationen.

Använda statiska MAC-adresser med redundanskluster

Virtuella Linux-datorer som distribueras med redundanskluster ska konfigureras med en MAC-adress (Static Media Access Control) för varje virtuellt nätverkskort. I vissa versioner av Linux kan nätverkskonfigurationen gå förlorad efter redundansväxlingen eftersom en ny MAC-adress har tilldelats till det virtuella nätverkskortet. För att undvika att förlora nätverkskonfigurationen kontrollerar du att varje virtuellt nätverkskort har en statisk MAC-adress. Du kan konfigurera MAC-adressen genom att redigera inställningarna för virtuella datorer i Hyper-V Manager eller Failover Cluster Manager.

Använd Hyper-V-specifika nätverkskort, inte det äldre nätverkskortet

Konfigurera och använd det virtuella Ethernet-kortet, som är ett Hyper-V-specifikt nätverkskort med förbättrad prestanda. Om både äldre och Hyper-V-specifika nätverkskort är anslutna till en virtuell dator kan nätverksnamnen i utdata från ifconfig - a visa slumpmässiga värden som _tmp12000801310. Undvik det här problemet genom att ta bort alla äldre nätverkskort när du använder Hyper-V-specifika nätverkskort på en virtuell Linux-dator.

Använd I/O Scheduler noop/none för bättre disk-I/O-prestanda

Linux-kerneln erbjuder två uppsättningar disk-I/O-schemaläggare för att ordna om begäranden. En uppsättning är för det äldre undersystemet "blk" och en uppsättning är för det nyare undersystemet "blk-mq". I båda fallen, med dagens solid state-diskar, rekommenderar vi att du använder en schemaläggare som skickar schemaläggningsbesluten till den underliggande Hyper-V hypervisor. För Linux-kernels med undersystemet "blk" är detta "noop"-schemaläggaren. För Linux-kärnor som använder undersystemet "blk-mq" är schemaläggaren "none".

För en viss disk kan tillgängliga schemaläggare visas på den här filsystemplatsen: /sys/class/block//<diskname>queue/scheduler, med den valda schemaläggaren inom hakparenteser. Du kan ändra schemaläggaren genom att skriva till den här filsystemplatsen. Ändringen måste läggas till i ett initieringsskript för att bevaras mellan omstarter. Mer information finns i linuxdistributionsdokumentationen.

NUMA

Tidigare versioner av Linux-kernel än 2.6.37 stöder inte NUMA på Hyper-V med större VM-storlekar. Det här problemet påverkar främst äldre distributioner med den överordnade Red Hat 2.6.32-kerneln och har åtgärdats i Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504). System som kör anpassade kernels som är äldre än 2.6.37 eller RHEL-baserade kernels som är äldre än 2.6.32-504 måste ange startparametern numa=off på kernelkommandoraden i grub.conf. Mer information finns i Red Hat KB 436883.

Reservera mer minne för kdump

Om dump capture-kerneln får panik vid start reserverar du mer minne för kerneln. Ändra till exempel parametern crashkernel=384M-:128M till crashkernel=384M-:256M i Ubuntu grub-konfigurationsfilen.

Om du krymper VHDX eller expanderar VHD- och VHDX-filer kan det leda till felaktiga GPT-partitionstabeller

Hyper-V tillåter krympning av virtuella diskfiler (VHDX) utan hänsyn till eventuella partitions-, volym- eller filsystemsdatastrukturer som kan finnas på disken. Om VHDX krymps så att slutet av VHDX kommer före slutet av en partition, går data förlorade, partitionen kan bli skadad eller så returneras ogiltiga data när partitionen läses.

När du har ändrat storlek på en virtuell hårddisk eller VHDX bör administratörer använda ett verktyg som fdisk eller parted för att uppdatera partitions-, volym- och filsystemstrukturerna för att återspegla ändringen i diskens storlek. Om du krymper eller expanderar storleken på en VHD eller VHDX som har en GUID-partitionstabell (GPT) visas en varning när ett partitionshanteringsverktyg används för att kontrollera partitionslayouten, och administratören varnas för att åtgärda de första och sekundära GPT-huvudena. Det här manuella steget är säkert att utföra utan dataförlust.