HB serisi ve N serisi VM’lerdeki bilinen sorunlar

Dikkat

Bu makalede, Kullanım Süresi Sonu (EOL) durumuna yakın bir Linux dağıtımı olan CentOS'a başvuruda bulunur. Lütfen kullanımınızı göz önünde bulundurun ve uygun şekilde planlayın. Daha fazla bilgi için bkz . CentOS Kullanım Süresi Sonu kılavuzu.

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri ✔️ Tekdüzen ölçek kümeleri

Bu makalede, HB serisi ve N serisi HPC ve GPU VM'leri kullanılırken karşılaşılan en son yaygın sorunlar ve çözümleri listelenmeye çalışılıyor.

Standard_HB120rs_v3'de önbellek topolojisi

lstopo Standard_HB120rs_v3 VM boyutunda yanlış önbellek topolojisi görüntüler. NUMA başına yalnızca 32 MB L3 olduğunu görüntüleyebilir. Ancak uygulamada, tüm VM'de aynı 480 MB L3 diğer kısıtlanmış çekirdek HBv3 VM boyutlarında olduğu gibi kullanılabilir olduğundan, NUMA başına beklenen şekilde 120 MB L3 vardır. Bu, iş yüklerini etkilememesi gereken doğru değerin görüntülenmesinde kozmetik bir hatadır.

qp0 Erişim Kısıtlaması

Güvenlik açıklarına neden olabilecek düşük düzeyli donanım erişimini önlemek için Kuyruk Çifti 0'a konuk VM'ler tarafından erişilemez. Bu yalnızca genellikle Bağlan X InfiniBand NIC yönetimiyle ilişkili eylemleri ve ibdiagnet gibi bazı InfiniBand tanılamalarını çalıştırmayı etkiler, ancak son kullanıcı uygulamalarını etkilemez.

Ubuntu'da MOFED yüklemesi

Çekirdek sürümü ve daha yeni sürümü 5.4.0-1039-azure #42 olan Ubuntu-18.04 tabanlı market VM görüntülerinde, bazı eski Mellanox OFED uyumsuzluk, bazı durumlarda VM önyükleme süresinde 30 dakikaya kadar artışa neden oluyor. Bu durum hem Mellanox OFED sürüm 5.2-1.0.4.0 hem de 5.2-2.2.0.0 için bildirilmiştir. Sorun Mellanox OFED 5.3-1.0.0.1 ile giderilmiştir. Uyumsuz OFED'in kullanılması gerekiyorsa, bir çözüm Canonical:UbuntuServer:18_04-lts-gen2:18.04.202101290 market VM görüntüsünü kullanmak veya çekirdeği güncelleştirmemektir.

HB, HC, HBv2, HBv3, HBv4, HX, NDv2 ve NDv4'te Hızlandırılmış Ağ

Azure Hızlandırılmış Ağ özelliği artık RDMA ve InfiniBand özellikli ve SR-IOV özellikli VM boyutları HB, HC, HBv2, HBv3, HBv4, HX, NDv2 ve NDv4'te kullanılabilir. Bu özellik artık Azure Ethernet ağı üzerinden gelişmiş (30 Gb/sn'ye kadar) ve gecikme süreleri sağlar. Bu, InfiniBand ağı üzerindeki RDMA özelliklerinden ayrı olsa da, bu özelliğe yönelik bazı platform değişiklikleri, InfiniBand üzerinden işleri çalıştırırken belirli MPI uygulamalarının davranışını etkileyebilir. Özellikle bazı VM'lerdeki InfiniBand arabirimi biraz farklı bir ada sahip olabilir (önceki mlx5_0 aksine mlx5_1). Bu, özellikle UCX arabirimini kullanırken (genellikle OpenMPI ve HPC-X ile) MPI komut satırlarında ince ayar yapılmasını gerektirebilir.

Şu anda en basit çözüm, InfiniBand ve Hızlandırılmış Ağ arabirimlerini uygun şekilde yeniden adlandırdığımız CentOS-HPC VM görüntülerinde en son HPC-X'i kullanmak veya InfiniBand arabirimini yeniden adlandırmak için betiği çalıştırmaktır.

Bu konuyla ilgili diğer ayrıntılar, gözlemlenen sorunların nasıl giderilir yönergeleriyle birlikte bu TechCommunity makalesinde bulunabilir.

SR-IOV olmayan VM'lerde InfiniBand sürücüsü yüklemesi

Şu anda H16r, H16mr ve NC24r SR-IOV etkin değildir. InfiniBand yığın ayırma hakkında daha fazla bilgi için bkz . Azure VM boyutları - HPC. InfiniBand, SR-IOV özellikli VM boyutlarında OFED sürücüleriyle yapılandırılabilirken, SR-IOV olmayan VM boyutları ND sürücüleri gerektirir. Bu IB desteği CentOS, RHEL ve Ubuntu için uygun şekilde kullanılabilir.

H serisi ve N serisi VM'lerde Ubuntu ile cloud-init ile MAC'i çoğaltma

IB arabirimini ortaya çıkarmaya çalışırken Ubuntu VM görüntülerinde cloud-init ile ilgili bilinen bir sorun vardır. Bu durum VM yeniden başlatma sırasında veya genelleştirmeden sonra bir VM görüntüsü oluşturmaya çalışırken gerçekleşebilir. VM önyükleme günlükleri aşağıdaki gibi bir hata gösterebilir:

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

Bu "Ubuntu'da cloud-init ile yinelenen MAC" bilinen bir sorundur. Bu, daha yeni çekirdeklerde çözülecektir. Bu sorunla karşılaşırsanız geçici çözüm şu şekildedir:

  1. (Ubuntu 18.04) market VM görüntüsünü dağıtma
  2. IB'yi etkinleştirmek için gerekli yazılım paketlerini yükleyin (burada yönergeler)
  3. EnableRDMA=y'yi değiştirmek için waagent.conf dosyasını düzenleyin
  4. Cloud-init'te ağı devre dışı bırakma
    echo network: {config: disabled} | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
    
  5. MAC'i kaldırmak için cloud-init tarafından oluşturulan netplan'ın ağ yapılandırma dosyasını düzenleyin
    sudo bash -c "cat > /etc/netplan/50-cloud-init.yaml" <<'EOF'
    network:
      ethernets:
        eth0:
          dhcp4: true
      version: 2
    EOF
    

HB serisi VM'lerde DRAM

HB serisi VM'ler şu anda konuk VM'lerde yalnızca 228 GB RAM'i kullanıma açabilir. Benzer şekilde, HBv2'de 458 GB ve HBv3 VM'lerinde 448 GB. Bunun nedeni, sayfaların konuk VM için ayrılmış AMD CCX'in (NUMA etki alanları) yerel DRAM'sine atanmasını önlemek için Azure hiper yöneticisinin bilinen bir sınırlamasından kaynaklanır.

GSS Ara Sunucusu

GSS Proxy' nin CentOS/RHEL 7.5'te NFS ile kullanıldığında önemli bir performans ve yanıt verme cezası olarak kendini gösterebilen bilinen bir hatası vardır. Bu, aşağıdakilerle azaltılabilir:

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

Önbellek Temizleme

HPC sistemlerinde, bir iş tamamlandıktan sonra bir sonraki kullanıcıya aynı düğüm atanmadan önce belleği temizlemek genellikle yararlıdır. Linux'ta uygulamaları çalıştırdıktan sonra, herhangi bir uygulama çalıştırılmasa da arabellek belleğiniz artarken kullanılabilir belleğinizin azaldığını fark edebilirsiniz.

Temizlemeden önce komut isteminin ekran görüntüsü

kullanıldığında numactl -H , belleğin arabelleğe alınacağı NUMAnode'lar (büyük olasılıkla tümü) gösterilir. Linux'ta kullanıcılar önbelleğe alınmış veya önbelleğe alınmış belleği 'serbest' olarak döndürmek için önbellekleri üç yolla temizleyebilir. Kök olmanız veya sudo izinlerine sahip olmanız gerekir.

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]

Temizledikten sonra komut isteminin ekran görüntüsü

Çekirdek uyarıları

Linux altında HB serisi VM'yi önyüklerken aşağıdaki çekirdek uyarı iletilerini yoksayabilirsiniz. Bunun nedeni Azure hiper yöneticisinin zaman içinde ele alınacağı bilinen bir sınırlamadır.

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

Sonraki adımlar