Masalah umum terkait VM seri HB dan N

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan rencanakan yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

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

Artikel ini mencoba mencantumkan masalah umum terbaru dan solusinya saat menggunakan VM HPC dan GPU seri HB dan seri N.

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 citra VM marketplace Canonical:UbuntuServer:18_04-lts-gen2:18.04.202101290, atau yang lebih lama dan tidak memperbarui kernel.

Jaringan yang Dipercepat pada HB, HC, HBv2, HBv3, HBv4, HX, NDv2 dan NDv4

Azure Accelerated Networking sekarang tersedia pada ukuran VM berkemampuan RDMA dan InfiniBand dan VM berkemampuan SR-IOV HB, HC, HBv2, HBv3, HBv4, HX, NDv2 dan NDv4. 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. Hal ini mungkin memerlukan penyesuaian baris perintah MPI terutama saat menggunakan antarmuka UCX (umumnya dengan OpenMPI dan HPC-X).

Solusi paling sederhana saat ini adalah menggunakan HPC-X terbaru pada gambar VM CentOS-HPC tempat kami mengganti nama antarmuka InfiniBand dan Accelerated Networking sesuai atau untuk menjalankan skrip untuk mengganti nama antarmuka InfiniBand.

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 citra 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 ini 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:

sudo 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.

Cuplikan layar prompt perintah sebelum membersihkan

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.

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]

Cuplikan layar perintah setelah dibersihkan

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