Kända problem med virtuella datorer i HB-serien och N-serien

Varning

Den här artikeln refererar till CentOS, en Linux-distribution som närmar sig EOL-status (End Of Life). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.

Gäller för: ✔️ Virtuella Linux-datorer ✔️ med virtuella Windows-datorer ✔️ – flexibla skalningsuppsättningar ✔️ Enhetliga skalningsuppsättningar

Den här artikeln försöker lista de senaste vanliga problemen och deras lösningar när du använder HB-serien och HPC- och GPU-datorerna i N-serien.

Cachetopologi på Standard_HB120rs_v3

lstopo visar felaktig cachetopologi på Standard_HB120rs_v3 VM-storlek. Det kan visas att det bara finns 32 MB L3 per NUMA. Men i praktiken finns det faktiskt 120 MB L3 per NUMA som förväntat eftersom samma 480 MB L3 till hela den virtuella datorn är tillgänglig som med de andra begränsade HBv3 VM-storlekarna. Det här är ett kosmetiskt fel vid visning av rätt värde, vilket inte bör påverka arbetsbelastningar.

qp0-åtkomstbegränsning

För att förhindra maskinvaruåtkomst på låg nivå som kan leda till säkerhetsproblem är Queue Pair 0 inte tillgängligt för virtuella gästdatorer. Detta bör endast påverka åtgärder som vanligtvis är associerade med administration av Anslut X InfiniBand NIC och köra vissa InfiniBand-diagnostik som ibdiagnet, men inte slutanvändarprogram.

MOFED-installation på Ubuntu

På Ubuntu-18.04-baserade vm-avbildningar på marknadsplatsen med kernelversion 5.4.0-1039-azure #42 och senare är vissa äldre Mellanox OFED inkompatibla, vilket i vissa fall orsakar en ökning av starttiden för virtuella datorer upp till 30 minuter. Detta har rapporterats för både Mellanox OFED-versionerna 5.2-1.0.4.0 och 5.2-2.2.0.0. Problemet löses med Mellanox OFED 5.3-1.0.0.1. Om det är nödvändigt att använda den inkompatibla OFED är en lösning att använda vm-avbildningen Canonical:UbuntuServer:18_04-lts-gen2:18.04.202101290 marketplace eller äldre och inte uppdatera kerneln.

Accelererat nätverk på HB, HC, HBv2, HBv3, HBv4, HX, NDv2 och NDv4

Azure Accelerated Networking är nu tillgängligt på RDMA- och InfiniBand-kompatibla och SR-IOV-aktiverade VM-storlekar HB, HC, HBv2, HBv3, HBv4, HX, NDv2 och NDv4. Den här funktionen gör det nu möjligt att utöka hela (upp till 30 Gbit/s) och svarstider över Azure Ethernet-nätverket. Även om detta är separat från RDMA-funktionerna i InfiniBand-nätverket kan vissa plattformsändringar för den här funktionen påverka beteendet för vissa MPI-implementeringar när jobb körs via InfiniBand. Specifikt kan InfiniBand-gränssnittet på vissa virtuella datorer ha ett något annorlunda namn (mlx5_1 i stället för tidigare mlx5_0). Detta kan kräva justering av MPI-kommandoraderna, särskilt när du använder UCX-gränssnittet (vanligtvis med OpenMPI och HPC-X).

Den enklaste lösningen är för närvarande att använda de senaste HPC-X på centOS-HPC VM-avbildningarna där vi byter namn på Gränssnitten InfiniBand och Accelererat nätverk i enlighet med detta eller för att köra skriptet för att byta namn på InfiniBand-gränssnittet.

Mer information om detta finns i den här TechCommunity-artikeln med instruktioner om hur du åtgärdar eventuella observerade problem.

Installation av InfiniBand-drivrutin på virtuella datorer som inte är SR-IOV

För närvarande är H16r, H16mr och NC24r inte SR-IOV aktiverat. Mer information om Bifurcation för InfiniBand-stack finns i Storlekar på virtuella Azure-datorer – HPC. InfiniBand kan konfigureras på de SR-IOV-aktiverade VM-storlekarna med OFED-drivrutinerna medan icke-SR-IOV VM-storlekar kräver ND-drivrutiner. Det här IB-stödet är lämpligt tillgängligt för CentOS, RHEL och Ubuntu.

Duplicera MAC med cloud-init med Ubuntu på virtuella datorer i H-serien och N-serien

Det finns ett känt problem med cloud-init på Ubuntu VM-avbildningar när det försöker ta upp IB-gränssnittet. Detta kan inträffa antingen vid omstart av virtuell dator eller när du försöker skapa en VM-avbildning efter generalisering. Startloggarna för virtuella datorer kan visa ett fel så här:

“Starting Network Service...RuntimeError: duplicate mac found! both 'eth1' and 'ib0' have mac”.

Det här "duplicerade MAC med cloud-init på Ubuntu" är ett känt problem. Detta löses i nyare kärnor. Om det här problemet uppstår är lösningen:

  1. Distribuera (Ubuntu 18.04) marketplace VM-avbildningen
  2. Installera nödvändiga programvarupaket för att aktivera IB (instruktion här)
  3. Redigera waagent.conf för att ändra EnableRDMA=y
  4. Inaktivera nätverk i cloud-init
    echo network: {config: disabled} | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
    
  5. Redigera netplans nätverkskonfigurationsfil som genereras av cloud-init för att ta bort MAC
    sudo bash -c "cat > /etc/netplan/50-cloud-init.yaml" <<'EOF'
    network:
      ethernets:
        eth0:
          dhcp4: true
      version: 2
    EOF
    

DRAM på virtuella datorer i HB-serien

Virtuella datorer i HB-serien kan bara exponera 228 GB RAM-minne för virtuella gästdatorer just nu. På samma sätt 458 GB på HBv2 och 448 GB på virtuella HBv3-datorer. Detta beror på en känd begränsning av Azure hypervisor för att förhindra att sidor tilldelas till den lokala DRAM för AMD CCX-domäner (NUMA-domäner) som är reserverade för den virtuella gästdatorn.

GSS-proxy

GSS Proxy har en känd bugg i CentOS/RHEL 7.5 som kan visas som en betydande prestanda- och svarstidsstraff när den används med NFS. Detta kan minimeras med:

sudo sed -i 's/GSS_USE_PROXY="yes"/GSS_USE_PROXY="no"/g' /etc/sysconfig/nfs

Cacherensning

På HPC-system är det ofta användbart att rensa minnet när ett jobb har slutförts innan nästa användare tilldelas samma nod. När du har kört program i Linux kan det hända att ditt tillgängliga minne minskar medan buffertminnet ökar, trots att du inte kör några program.

Skärmbild av kommandotolken innan du rensar

Med hjälp numactl -H av visas vilka NUMAnode(er) som minnet buffrats med (eventuellt alla). I Linux kan användarna rensa cacheminnena på tre sätt för att returnera buffrat eller cachelagrat minne till "ledigt". Du måste vara rot eller ha sudo-behörigheter.

sudo echo 1 > /proc/sys/vm/drop_caches [frees page-cache]
sudo echo 2 > /proc/sys/vm/drop_caches [frees slab objects e.g. dentries, inodes]
sudo echo 3 > /proc/sys/vm/drop_caches [cleans page-cache and slab objects]

Skärmbild av kommandotolken efter rensning

Kernelvarningar

Du kan ignorera följande kernelvarningsmeddelanden när du startar en virtuell dator i HB-serien under Linux. Detta beror på en känd begränsning av Azure-hypervisor-programmet som kommer att åtgärdas över tid.

[  0.004000] WARNING: CPU: 4 PID: 0 at arch/x86/kernel/smpboot.c:376 topology_sane.isra.3+0x80/0x90
[  0.004000] sched: CPU #4's llc-sibling CPU #0 is not on the same node! [node: 1 != 0]. Ignoring dependency.
[  0.004000] Modules linked in:
[  0.004000] CPU: 4 PID: 0 Comm: swapper/4 Not tainted 3.10.0-957.el7.x86_64 #1
[  0.004000] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090007 05/18/2018
[  0.004000] Call Trace:
[  0.004000] [<ffffffffb8361dc1>] dump_stack+0x19/0x1b
[  0.004000] [<ffffffffb7c97648>] __warn+0xd8/0x100
[  0.004000] [<ffffffffb7c976cf>] warn_slowpath_fmt+0x5f/0x80
[  0.004000] [<ffffffffb7c02b34>] ? calibrate_delay+0x3e4/0x8b0
[  0.004000] [<ffffffffb7c574c0>] topology_sane.isra.3+0x80/0x90
[  0.004000] [<ffffffffb7c57782>] set_cpu_sibling_map+0x172/0x5b0
[  0.004000] [<ffffffffb7c57ce1>] start_secondary+0x121/0x270
[  0.004000] [<ffffffffb7c000d5>] start_cpu+0x5/0x14
[  0.004000] ---[ end trace 73fc0e0825d4ca1f ]---

Nästa steg