Masalah umum terkait VM seri H dan N

Berlaku untuk: ✔️ Mesin virtual Linux ✔️ Mesin virtual Windows ✔️ Set skala fleksibel ✔️ Set skala seragam

Artikel ini mencoba membuat daftar masalah umum terbaru dan solusinya saat menggunakan H-series dan N-series HPC dan VM GPU.

Kapasitas Memori pada Standard_HB120rs_v2

Mulai minggu tanggal 6 Desember 2021, kami untuk sementara mengurangi jumlah memori (RAM) yang terpapar ke ukuran VM Standard_HB120rs_v2, atau dikenal sebagai HBv2. Kami mengurangi jejak memori menjadi 432 GB dari nilai saat ini sebesar 456 GB (pengurangan 5,2%). Pengurangan ini bersifat sementara dan kapasitas memori penuh harus dipulihkan pada awal 2022. Kami membuat perubahan ini untuk memastikan untuk mengatasi masalah yang dapat mengakibatkan waktu penerapan VM yang lama atau penerapan VM yang tidak semua perangkat berfungsi dengan benar. Perhatikan bahwa pengurangan kapasitas memori tidak memengaruhi kinerja VM.

Topologi cache pada Standard_HB120rs_v3

lstopo menampilkan topologi cache yang salah pada ukuran VM Standard_HB120rs_v3. Hal ini mungkin menunjukkan bahwa hanya ada 32 MB L3 per NUMA. Namun dalam praktiknya memang ada 120 MB L3 per NUMA seperti yang diharapkan karena 480 MB L3 yang sama untuk seluruh VM tersedia seperti ukuran VM HBv3 inti terbatas lainnya. Ini adalah kesalahan kosmetik dalam menampilkan nilai yang benar, yang seharusnya tidak memengaruhi beban kerja.

qp0 Pembatasan Akses

Untuk mencegah akses perangkat keras tingkat rendah yang dapat mengakibatkan kerentanan keamanan, Antrean Pair 0 tidak dapat diakses oleh VM tamu. Hal ini seharusnya hanya memengaruhi tindakan yang biasanya terkait dengan administrasi ConnectX InfiniBand NIC, dan menjalankan beberapa diagnostik InfiniBand seperti ibdiagnet, tetapi tidak pada aplikasi pengguna akhir.

Penginstalan MOFED di Ubuntu

Pada gambar VM pasar berbasis Ubuntu-18.04 dengan kernel versi 5.4.0-1039-azure #42 dan yang lebih baru, beberapa OFED Mellanox yang lebih lama tidak kompatibel yang menyebabkan peningkatan waktu boot VM hingga 30 menit dalam beberapa kasus. Hal ini telah dilaporkan untuk Mellanox OFED versi 5.2-1.0.4.0 dan 5.2-2.2.0.0. Masalah ini diselesaikan dengan Mellanox OFED 5.3-1.0.0.1. Jika perlu menggunakan OFED yang tidak kompatibel, solusinya adalah menggunakan image VM marketplace Canonical:UbuntuServer:18_04-lts-gen2:18.04.202101290 atau lebih lama dan tidak memperbarui kernel.

Kesalahan pembuatan MPI QP

Jika di tengah menjalankan beban kerja MPI, kesalahan pembuatan InfiniBand QP seperti yang ditunjukkan di bawah ini muncul, kami sarankan untuk me-reboot VM dan mencoba kembali beban kerja. Masalah ini akan diperbaiki di masa mendatang.

ib_mlx5_dv.c:150  UCX  ERROR mlx5dv_devx_obj_create(QP) failed, syndrome 0: Invalid argument

Anda dapat memverifikasi nilai jumlah maksimum pasangan antrean saat masalah diamati sebagai berikut.

[user@azurehpc-vm ~]$ ibv_devinfo -vv | grep qp
max_qp: 4096

Jaringan yang Dipercepat pada HB, HC, HBv2, HBv3 dan NDv2

Azure Accelerated Networking kini tersedia pada ukuran VM berkemampuan RDMA dan InfiniBand serta SR-IOV yang diaktifkan HB, HC, HBv2, HBv3 dan NDv2. Kemampuan ini sekarang memungkinkan peningkatan seluruh (hingga 30 Gbps) dan latensi melalui jaringan Azure Ethernet. Meskipun ini terpisah dari kemampuan RDMA melalui jaringan InfiniBand, beberapa perubahan platform untuk kemampuan ini dapat memengaruhi perilaku implementasi MPI tertentu saat menjalankan pekerjaan melalui InfiniBand. Secara khusus antarmuka InfiniBand pada beberapa VM mungkin memiliki nama yang sedikit berbeda (mlx5_1 dibandingkan dengan mlx5_0) sebelumnya dan ini mungkin memerlukan penyesuaian baris perintah MPI terutama saat menggunakan antarmuka UCX (biasanya dengan OpenMPI dan HPC-X). Solusi paling sederhana saat ini mungkin menggunakan HPC-X terbaru pada gambar VM CentOS-HPC atau menonaktifkan Accelerated Networking jika tidak diperlukan. Detail lebih lanjut tentang ini tersedia di artikel Komunitas Teknologi ini dengan petunjuk tentang cara mengatasi masalah yang diamati.

Penginstalan driver InfiniBand pada VM non-SR-IOV

Saat ini H16r, H16mr, dan NC24r tidak diaktifkan SR-IOV. Untuk informasi selengkapnya tentang bifurkasi tumpukan InfiniBand, lihat Ukuran VM Azure - HPC. InfiniBand dapat dikonfigurasi pada ukuran VM berkemampuan SR-IOV dengan driver OFED sedangkan ukuran VM non-SR-IOV memerlukan driver ND. Dukungan IB ini tersedia dengan tepat untuk CentOS, RHEL, dan Ubuntu.

Duplikat MAC dengan cloud-init dengan Ubuntu pada VM seri-H dan seri-N

Ada masalah yang diketahui dengan cloud-init pada gambar VM Ubuntu saat mencoba membuka antarmuka IB. Hal ini dapat terjadi saat VM reboot atau saat mencoba membuat gambar VM setelah generalisasi. Log boot VM mungkin menampilkan kesalahan seperti ini:

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

'MAC duplikat dengan cloud-init di Ubuntu" ini adalah masalah umum. Hal ini akan diselesaikan di kernel yang lebih baru. JIKA masalah ditemukan, solusinya adalah:

  1. Menyebarkan gambar VM pasar (Ubuntu 18.04)
  2. Memasang paket perangkat lunak yang diperlukan untuk mengaktifkan IB (instruksi di sini)
  3. Edit waagent.conf untuk mengubah EnableRDMA=y
  4. Menonaktifkan jaringan di cloud-init
    echo network: {config: disabled} | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
    
  5. Mengedit file konfigurasi jaringan netplan yang dihasilkan oleh cloud-init untuk menghapus MAC
    sudo bash -c "cat > /etc/netplan/50-cloud-init.yaml" <<'EOF'
    network:
      ethernets:
        eth0:
          dhcp4: true
      version: 2
    EOF
    

DRAM pada VM seri HB

VM seri HB hanya dapat mengekspos 228 GB RAM ke VM tamu saat ini. Demikian pula, 458 GB pada HBv2 dan 448 GB pada VM HBv3. Hal ini karena pembatasan hypervisor Azure yang diketahui untuk mencegah halaman ditetapkan ke DRAM lokal AMD CCX (domain NUMA) yang dicadangkan untuk VM tamu.

Proksi GSS

Proksi GSS memiliki bug yang dikenal di CentOS/RHEL 7.5 yang dapat bermanifestasi sebagai performa dan respons yang signifikan saat digunakan dengan NFS. Hal ini dapat dikurangi dengan:

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

Pembersihan Cache

Pada sistem HPC, seringkali berguna untuk membersihkan memori setelah pekerjaan selesai sebelum pengguna berikutnya diberi simpul yang sama. Setelah menjalankan aplikasi di Linux, Anda mungkin menemukan bahwa memori yang tersedia berkurang sementara memori buffer Anda meningkat, meskipun tidak menjalankan aplikasi apa pun.

Screenshot of command prompt before cleaning

Menggunakan numactl -H akan menunjukkan NUMAnode mana yang buffer dengan memori (mungkin semua). Di Linux, pengguna dapat membersihkan cache dengan tiga cara untuk mengembalikan memori yang di-buffer atau di-cache menjadi 'bebas'. Anda harus menjadi root atau memiliki izin sudo.

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]

Screenshot of command prompt after cleaning

Peringatan kernel

Anda dapat mengabaikan pesan peringatan kernel berikut saat mem-boot VM seri HB di Linux. Hal ini karena batasan yang diketahui dari hypervisor Azure yang akan ditangani seiring waktu.

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

Langkah berikutnya