Bekende problemen met VM's uit de H-serie en N-serie

Van toepassing op: ✔️ Virtuele Linux-machines voor Windows-VM's ✔️ ✔️ Flexibele schaalsets Uniform schaalsets ✔️

In dit artikel wordt geprobeerd recente veelvoorkomende problemen en hun oplossingen weer te geven wanneer u de HPC- en GPU-VM's uit de H-serie en N-serie gebruikt.

Cachetopologie op Standard_HB120rs_v3

lstopo geeft onjuiste cachetopologie weer op de Standard_HB120rs_v3 VM-grootte. Er kan worden weergegeven dat er slechts 32 MB L3 per NUMA is. In de praktijk is er echter inderdaad 120 MB L3 per NUMA zoals verwacht, omdat dezelfde 480 MB L3 voor de hele VM beschikbaar is, net als bij de andere beperkte HBv3 VM-grootten. Dit is een cosmetische fout bij het weergeven van de juiste waarde, wat geen invloed mag hebben op workloads.

qp0-toegangsbeperking

Om hardwaretoegang op laag niveau te voorkomen die kan leiden tot beveiligingsproblemen, is Queue Pair 0 niet toegankelijk voor gast-VM's. Dit moet alleen van invloed zijn op acties die meestal zijn gekoppeld aan het beheer van de ConnectX InfiniBand NIC en het uitvoeren van bepaalde InfiniBand-diagnostische gegevens, zoals ibdiagnet, maar geen toepassingen van eindgebruikers.

MOFED-installatie op Ubuntu

Op Ubuntu-18.04 gebaseerde Marketplace VM-installatiekopieën met kernelversies 5.4.0-1039-azure #42 en hoger zijn sommige oudere Mellanox OFED in sommige gevallen niet compatibel, waardoor de opstarttijd van de VM in sommige gevallen tot 30 minuten toeneemt. Dit is gerapporteerd voor zowel Mellanox OFED-versies 5.2-1.0.4.0 als 5.2-2.2.0.0. Het probleem is opgelost met Mellanox OFED 5.3-1.0.0.1. Als het nodig is om de incompatibele OFED te gebruiken, is een oplossing het gebruik van de Canonical:UbuntuServer:18_04-lts-gen2:18.04.202101290 Marketplace VM-installatiekopie of ouder en niet om de kernel bij te werken.

Versneld netwerken op HB, HC, HBv2, HBv3, NDv2 en NDv4

Azure Accelerated Networking is nu beschikbaar op de RDMA en InfiniBand-compatibele VM-grootten HB, HC,HBv2, HBv3, NDv2 en NDv4. Deze mogelijkheid biedt nu uitgebreide mogelijkheden (maximaal 30 Gbps) en latenties via het Azure Ethernet-netwerk. Hoewel dit losstaat van de RDMA-mogelijkheden via het InfiniBand-netwerk, kunnen sommige platformwijzigingen voor deze mogelijkheid van invloed zijn op het gedrag van bepaalde MPI-implementaties bij het uitvoeren van taken via InfiniBand. Met name de InfiniBand-interface op sommige VM's heeft mogelijk een iets andere naam (mlx5_1 in tegenstelling tot eerdere mlx5_0). Dit kan nodig zijn om de MPI-opdrachtregels aan te passen, met name wanneer u de UCX-interface gebruikt (meestal met OpenMPI en HPC-X).

De eenvoudigste oplossing is momenteel om de nieuwste HPC-X te gebruiken op de CentOS-HPC VM-installatiekopieën waarin we de naam van de InfiniBand- en versnelde netwerkinterfaces dienovereenkomstig wijzigen of om het script uit te voeren om de naam van de InfiniBand-interface te wijzigen.

Meer informatie hierover vindt u in dit TechCommunity-artikel met instructies voor het oplossen van waargenomen problemen.

Installatie van infiniBand-stuurprogramma's op niet-SR-IOV-VM's

Momenteel zijn H16r, H16mr en NC24r niet SR-IOV ingeschakeld. Zie Azure VM-grootten - HPC voor meer informatie over de infiniBand-stack-bifurcation. InfiniBand kan worden geconfigureerd op de VM-grootten met SR-IOV-functionaliteit met de OFED-stuurprogramma's, terwijl voor de VM-grootten van niet-SR-IOV ND-stuurprogramma's zijn vereist. Deze IB-ondersteuning is op de juiste wijze beschikbaar voor CentOS, RHEL en Ubuntu.

Mac dupliceren met cloud-init met Ubuntu op vm's uit de H-serie en N-serie

Er is een bekend probleem met cloud-init op Ubuntu VM-installatiekopieën terwijl deze probeert de IB-interface weer te geven. Dit kan gebeuren bij het opnieuw opstarten van de VIRTUELE machine of bij het maken van een VM-installatiekopieën na de generalisatie. De opstartlogboeken van de VIRTUELE machine kunnen als volgt een fout weergeven:

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

Deze 'dubbele MAC met cloud-init op Ubuntu' is een bekend probleem. Dit wordt opgelost in nieuwere kernels. Als dit probleem optreedt, is de tijdelijke oplossing:

  1. De VM-installatiekopie van marketplace (Ubuntu 18.04) implementeren
  2. Installeer de benodigde softwarepakketten om IB in te schakelen (instructies hier)
  3. Waagent.conf bewerken om EnableRDMA=y te wijzigen
  4. Netwerken uitschakelen in cloud-init
    echo network: {config: disabled} | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
    
  5. Bewerk het netwerkconfiguratiebestand van Netplan dat is gegenereerd door cloud-init om de MAC te verwijderen
    sudo bash -c "cat > /etc/netplan/50-cloud-init.yaml" <<'EOF'
    network:
      ethernets:
        eth0:
          dhcp4: true
      version: 2
    EOF
    

DRAM op VM's uit de HB-serie

VM's uit de HB-serie kunnen momenteel slechts 228 GB RAM beschikbaar maken voor gast-VM's. Op dezelfde manier is 458 GB op HBv2 en 448 GB op HBv3-VM's. Dit wordt veroorzaakt door een bekende beperking van de Azure-hypervisor om te voorkomen dat pagina's worden toegewezen aan de lokale DRAM van NUMA-domeinen (AMD CCX) die zijn gereserveerd voor de gast-VM.

GSS-proxy

GSS-proxy heeft een bekende bug in CentOS/RHEL 7.5 die kan optreden als een aanzienlijke prestatie- en reactiesnelheidsstraf bij gebruik met NFS. Dit kan worden verzacht met:

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

Cache opschonen

Op HPC-systemen is het vaak handig om het geheugen op te schonen nadat een taak is voltooid voordat aan de volgende gebruiker hetzelfde knooppunt wordt toegewezen. Na het uitvoeren van toepassingen in Linux kan het zijn dat uw beschikbare geheugen vermindert terwijl het buffergeheugen toeneemt, ondanks dat er geen toepassingen worden uitgevoerd.

Schermopname van opdrachtprompt voordat u gaat opschonen

Met behulp numactl -H wordt weergegeven met welke NUMAnode(s) het geheugen wordt gebufferd (mogelijk allemaal). In Linux kunnen gebruikers de caches op drie manieren opschonen om gebufferd of in cache opgeslagen geheugen te retourneren naar 'gratis'. U moet de hoofdmap zijn of sudo-machtigingen hebben.

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

Schermopname van opdrachtprompt na het opschonen

Kernelwaarschuwingen

U kunt de volgende kernelwaarschuwingsberichten negeren bij het opstarten van een VM uit de HB-serie onder Linux. Dit wordt veroorzaakt door een bekende beperking van de Azure-hypervisor die na verloop van tijd wordt verholpen.

[  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 ]---

Volgende stappen