Bagikan melalui


Secara otomatis menumbuhkan dan mengecilkan sumber daya kluster HPC Pack di Azure sesuai dengan beban kerja kluster

Penting

Komputer virtual klasik akan dihentikan pada 1 Maret 2023.

Jika Anda menggunakan sumber IaaS dari ASM, harap menyelesaikan migrasi sebelum 1 Maret 2023. Kami mendorong Anda untuk beralih lebih cepat untuk memanfaatkan banyak peningkatan fitur di Azure Resource Manager.

Untuk mengetahui informasi selengkapnya, lihat Migrasikan sumber IaaS Anda ke Azure Resource Manager sebelum 1 Maret 2023.

Jika Anda menyebarkan node "burst" Azure di kluster HPC Pack Anda, atau Anda membuat kluster PAKET HPC di VM Azure, Anda mungkin menginginkan cara untuk secara otomatis menumbuhkan atau mengecilkan sumber daya kluster seperti node atau inti sesuai dengan beban kerja pada kluster. Penskalaan sumber daya kluster dengan cara ini memungkinkan Anda menggunakan sumber daya Azure Anda dengan lebih efisien dan mengontrol biayanya.

Artikel ini menunjukkan kepada Anda dua cara yang disediakan HPC Pack untuk sumber daya komputasi skala otomatis:

  • Properti kluster HPC Pack AutoGrowShrink

  • Skrip HPC PowerShell AzureAutoGrowShrink.ps1

Catatan

Azure memiliki dua model penyebaran yang berbeda untuk membuat dan bekerja dengan sumber daya: Resource Manager dan klasik. Artikel ini mencakup penggunaan kedua model, tetapi Microsoft merekomendasikan bahwa sebagian besar penyebaran baru menggunakan model Azure Resource Manager.

Saat ini Anda hanya dapat secara otomatis menumbuhkan dan mengecilkan node komputasi HPC Pack yang menjalankan sistem operasi Server Windows.

Mengatur properti kluster AutoGrowShrink

Prasyarat

  • HPC Pack 2012 R2 Update 2 atau yang lebih baru cluster - Node kepala cluster dapat disebarkan baik di tempat atau di Vm Azure. Lihat Menyiapkan kluster hibrid dengan HPC Pack untuk memulai dengan simpul kepala lokal dan simpul "burst" Azure. Lihat skrip penyebaran HPC Pack IaaS untuk menyebarkan kluster HPC Pack dengan cepat di VM Azure.

  • Untuk kluster dengan simpul kepala di Azure (model penyebaran Resource Manager) - Mulai hpc Pack 2016, autentikasi sertifikat dalam aplikasi Azure Active Directory digunakan untuk vm kluster yang tumbuh dan menyusut secara otomatis yang disebarkan menggunakan Azure Resource Manager. Konfigurasikan sertifikat sebagai berikut:

    1. Setelah penyebaran kluster, sambungkan dengan Desktop Jarak Jauh ke satu simpul kepala.

    2. Upload sertifikat (format PFX dengan kunci pribadi) ke setiap node kepala dan instal ke Cert:\LocalMachine\My dan Cert:\LocalMachine\Root.

    3. Mulai Azure PowerShell sebagai administrator dan jalankan perintah berikut pada satu simpul kepala:

        cd $env:CCP_HOME\bin
    
        Connect-AzureRmAccount
    

    Jika akun Anda berada di lebih dari satu penyewa Azure Active Directory atau langganan Azure, Anda dapat menjalankan perintah berikut untuk memilih penyewa dan langganan yang benar:

        Connect-AzureRmAccount -TenantId <TenantId> -SubscriptionId <subscriptionId>
    

    Jalankan perintah berikut untuk melihat penyewa dan langganan yang saat ini dipilih:

        Get-AzureRMContext
    
    1. Jalankan skrip berikut
        .\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName “YourHpcPackAppName” -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -TenantId xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxx
    

    Di mana

    DisplayName - Nama tampilan Aplikasi Aktif Azure. Jika aplikasi tidak ada, itu dibuat di Azure Active Directory.

    HomePage - Halaman beranda aplikasi. Anda dapat mengonfigurasi URL dummy, seperti pada contoh sebelumnya.

    IdentifierUri - Pengenal aplikasi. Anda dapat mengonfigurasi URL dummy, seperti pada contoh sebelumnya.

    CertificateThumbprint - Cap jempol dari sertifikat yang Anda instal di simpul kepala di Langkah 1.

    TenantId - ID penyewa Azure Active Directory Anda. Anda bisa mendapatkan ID Penyewa dari halaman Properti portal Azure Active Directory.

    Untuk detail lebih lanjut tentang ConfigARMAutoGrowShrinkCert.ps1, jalankan Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed.

  • Untuk kluster dengan simpul kepala di Azure (model penyebaran klasik) - Jika Anda menggunakan skrip penyebaran HPC Pack IaaS untuk membuat kluster dalam model penyebaran klasik, aktifkan properti kluster AutoGrowShrink dengan mengatur opsi AutoGrowShrink dalam file konfigurasi kluster. Untuk detailnya, lihat dokumentasi yang menyertai pengunduhan skrip.

    Atau, aktifkan properti kluster AutoGrowShrink setelah Anda menyebarkan kluster dengan menggunakan perintah HPC PowerShell yang dijelaskan di bagian berikut. Untuk mempersiapkan ini, selesaikan dulu langkah-langkah berikut:

    1. Konfigurasikan sertifikat manajemen Azure pada simpul kepala dan di langganan Azure. Untuk penyebaran pengujian, Anda dapat menggunakan sertifikat default Microsoft HPC Azure yang ditandatangani sendiri yang diinstal HPC Pack di simpul kepala, lalu mengunggah sertifikat itu ke langganan Azure Anda. Untuk opsi dan langkah-langkah, lihat panduan Perpustakaan TechNet.

    2. Jalankan regedit pada simpul kepala, buka HKLM\SOFTWARE\Micorsoft\HPC\IaasInfo, dan tambahkan nilai string. Atur nama Nilai ke "ThumbPrint", dan Nilai data ke cap jempol sertifikat di Langkah 1.

Perintah HPC PowerShell untuk mengatur properti AutoGrowShrink

Berikut ini adalah contoh perintah HPC PowerShell untuk mengatur AutoGrowShrink dan untuk menyetel perilakunya dengan parameter tambahan. Lihat parameter AutoGrowShrink nanti di artikel ini untuk daftar lengkap pengaturan.

Untuk menjalankan perintah ini, mulai HPC PowerShell pada node kepala kluster sebagai administrator.

Untuk mengaktifkan properti AutoGrowShrink

Set-HpcClusterProperty –EnableGrowShrink 1

Untuk menonaktifkan properti AutoGrowShrink

Set-HpcClusterProperty –EnableGrowShrink 0

Untuk mengubah interval pertumbuhan dalam hitungan menit

Set-HpcClusterProperty –GrowInterval <interval>

Untuk mengubah interval penyusutan dalam hitungan menit

Set-HpcClusterProperty –ShrinkInterval <interval>

Untuk melihat konfigurasi AutoGrowShrink saat ini

Get-HpcClusterProperty –AutoGrowShrink

Untuk mengecualikan grup node dari AutoGrowShrink

Set-HpcClusterProperty –ExcludeNodeGroups <group1,group2,group3>

Catatan

Parameter ini didukung mulai dari HPC Pack 2016

Parameter AutoGrowShrink

Berikut ini adalah parameter AutoGrowShrink yang dapat Anda modifikasi dengan menggunakan perintah Set-HpcClusterProperty .

  • EnableGrowShrink - Beralih untuk mengaktifkan atau menonaktifkan properti AutoGrowShrink .

  • ParamSweepTasksPerCore - Jumlah tugas sapuan parametrik untuk menumbuhkan satu inti. Defaultnya adalah menumbuhkan satu inti per tugas.

    Catatan

    HPC Pack QFE KB3134307 mengubah ParamSweepTasksPerCore menjadi TasksPerResourceUnit. Ini didasarkan pada jenis sumber daya pekerjaan dan dapat node, soket, atau inti.

  • GrowThreshold - Ambang tugas yang diantrikan untuk memicu pertumbuhan otomatis. Defaultnya adalah 1, yang berarti bahwa jika ada 1 atau lebih tugas dalam status antrian, secara otomatis tumbuh node.

  • GrowInterval - Interval dalam hitungan menit untuk memicu pertumbuhan otomatis. Interval default adalah 5 menit.

  • ShrinkInterval - Interval dalam hitungan menit untuk memicu penyusutan otomatis. Interval default adalah 5 menit.|

  • ShrinkIdleTimes - Jumlah pemeriksaan terus menerus menyusut untuk menunjukkan node menganggur. Defaultnya adalah 3 kali. Misalnya, jika ShrinkInterval adalah 5 menit, HPC Pack memeriksa apakah node menganggur setiap 5 menit. Jika node dalam keadaan idle setelah 3 pemeriksaan terus menerus (15 menit), maka HPC Pack mengecilkan node tersebut.

  • ExtraNodesGrowRatio - Persentase tambahan node untuk tumbuh untuk pekerjaan Message Passing Interface (MPI). Nilai default adalah 1, yang berarti bahwa HPC Pack menumbuhkan node 1% untuk pekerjaan MPI.

  • GrowByMin - Beralih untuk menunjukkan apakah kebijakan autogrow didasarkan pada sumber daya minimum yang diperlukan untuk pekerjaan itu. Defaultnya salah, yang berarti bahwa HPC Pack menumbuhkan node untuk pekerjaan berdasarkan sumber daya maksimum yang diperlukan untuk pekerjaan.

  • SoaJobGrowThreshold - Ambang batas permintaan SOA yang masuk untuk memicu proses pertumbuhan otomatis. Nilai defaultnya adalah 50000.

    Catatan

    Parameter ini didukung mulai dari HPC Pack 2012 R2 Update 3.

  • SoaRequestsPerCore - Jumlah permintaan SOA yang masuk untuk menumbuhkan satu inti. Nilai defaultnya adalah 20000.

    Catatan

    Parameter ini didukung mulai dari HPC Pack 2012 R2 Update 3.

  • ExcludeNodeGroups – Node dalam grup node yang ditentukan tidak tumbuh dan menyusut secara otomatis.

    Catatan

    Parameter ini didukung mulai dari HPC Pack 2016.

Contoh MPI

Secara default HPC Pack tumbuh 1% node tambahan untuk pekerjaan MPI (ExtraNodesGrowRatio diatur ke 1). Alasannya adalah bahwa MPI mungkin memerlukan beberapa node, dan pekerjaan hanya dapat berjalan ketika semua node siap. Ketika Azure memulai node, kadang-kadang satu node mungkin memerlukan lebih banyak waktu untuk memulai daripada yang lain, menyebabkan node lain menganggur sambil menunggu node itu bersiap-siap. Dengan menumbuhkan node tambahan, HPC Pack mengurangi waktu tunggu sumber daya ini, dan berpotensi menghemat biaya. Untuk meningkatkan persentase node tambahan untuk pekerjaan MPI (misalnya, menjadi 10%), jalankan perintah yang mirip dengan

Set-HpcClusterProperty -ExtraNodesGrowRatio 10

Contoh SOA

Secara default, SoaJobGrowThreshold diatur ke 50000 dan SoaRequestsPerCore diatur ke tahun 20000. Jika Anda mengirimkan satu pekerjaan SOA dengan 70.000 permintaan, ada satu tugas yang diantri dan permintaan yang masuk adalah 70000. Dalam hal ini HPC Pack tumbuh 1 inti untuk tugas yang diantrikan, dan untuk permintaan yang masuk, tumbuh (70000 - 50000) / 20000 = 1 inti, jadi total tumbuh 2 core untuk pekerjaan SOA ini.

Jalankan skrip AzureAutoGrowShrink.ps1

Prasyarat

  • HPC Pack 2012 R2 Update 1 atau yang lebih baru cluster - Skrip AzureAutoGrowShrink.ps1 diinstal di folder %CCP_HOME%bin. Node kepala kluster dapat disebarkan baik di tempat atau di VM Azure. Lihat Menyiapkan kluster hibrid dengan HPC Pack untuk memulai dengan simpul kepala lokal dan simpul "burst" Azure. Lihat skrip penyebaran HPC Pack IaaS untuk menyebarkan kluster HPC Pack dengan cepat di VM Azure, atau gunakan templat mulai cepat Azure.

  • Azure PowerShell 1.4.0 - Skrip saat ini bergantung pada versi Azure PowerShell khusus ini.

  • Untuk kluster dengan node burst Azure - Jalankan skrip di komputer klien tempat HPC Pack diinstal, atau di simpul kepala. Jika berjalan di komputer klien, pastikan Anda mengatur variabel $env:CCP_SCHEDULER untuk menunjuk ke simpul kepala. Node "burst" Azure harus ditambahkan ke kluster, tetapi mungkin dalam keadaan Not-Deployed.

  • Untuk kluster yang disebarkan di VM Azure (model penyebaran Resource Manager) - Untuk sekelompok VM Azure yang disebarkan dalam model penyebaran Resource Manager, skrip mendukung dua metode untuk autentikasi Azure: masuk ke akun Azure Anda untuk menjalankan skrip setiap saat (dengan menjalankan Connect-AzureRmAccount, atau mengonfigurasi perwakilan layanan untuk mengautentikasi dengan sertifikat. HPC Pack menyediakan skrip ConfigARMAutoGrowShrinkCert.ps untuk membuat service principal dengan sertifikat. Skrip membuat aplikasi Azure Active Directory (Azure AD) dan perwakilan layanan, dan memberikan peran Kontributor kepada perwakilan layanan. Untuk menjalankan skrip, mulai Azure PowerShell sebagai administrator dan jalankan perintah berikut:

    cd $env:CCP_HOME\bin
    
    Connect-AzureRmAccount
    
    .\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName “YourHpcPackAppName” -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -PfxFile "d:\yourcertificate.pfx"
    

    Untuk detail lebih lanjut tentang ConfigARMAutoGrowShrinkCert.ps1, jalankan Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed,

  • Untuk kluster yang disebarkan di VM Azure (model penyebaran klasik) - Jalankan skrip pada VM simpul kepala, karena bergantung pada skripStart-HpcIaaSNode.ps1 dan Stop-HpcIaaSNode.ps1 yang diinstal di sana. Skrip tersebut juga memerlukan sertifikat manajemen Azure atau file pengaturan publikasi (lihat Mengelola node komputasi dalam kluster Paket HPC di Azure). Pastikan semua VM node komputasi yang Anda butuhkan sudah ditambahkan ke kluster. Mereka mungkin berada dalam keadaan berhenti.

Sintaks

AzureAutoGrowShrink.ps1 [-NodeTemplates <String[]>] [-JobTemplates <String[]>] [-NodeType <String>]
    -NumOfActiveQueuedTasksPerNodeToGrow <Single> [-NumOfActiveQueuedTasksToGrowThreshold <Int32>]
    [-NumOfInitialNodesToGrow <Int32>] [-GrowCheckIntervalMins <Int32>] [-ShrinkCheckIntervalMins <Int32>]
    [-ShrinkCheckIdleTimes <Int32>] [-ExtraNodesGrowRatio <Int32>] [-ArgFile <String>] [-LogFilePrefix <String>]
    [<CommonParameters>]

AzureAutoGrowShrink.ps1 [-NodeTemplates <String[]>] [-JobTemplates <String[]>] [-NodeType <String>]
    -NumOfQueuedJobsPerNodeToGrow <Single> [-NumOfQueuedJobsToGrowThreshold <Int32>] [-NumOfInitialNodesToGrow
    <Int32>] [-GrowCheckIntervalMins <Int32>] [-ShrinkCheckIntervalMins <Int32>] [-ShrinkCheckIdleTimes <Int32>]
    [-ExtraNodesGrowRatio <Int32>] [-ArgFile <String>] [-LogFilePrefix <String>] [<CommonParameters>]

AzureAutoGrowShrink.ps1 -UseLastConfigurations [-ArgFile <String>] [-LogFilePrefix <String>] [<CommonParameters>]

Parameter

  • NodeTemplates - Nama templat node untuk menentukan cakupan agar node tumbuh dan menyusut. Jika tidak ditentukan (nilai default adalah @()), semua node dalam grup node AzureNodes berada dalam cakupan ketika NodeType memiliki nilai AzureNodes, dan semua node dalam grup node ComputeNodes berada dalam cakupan ketika NodeType memiliki nilai ComputeNodes.

  • JobTemplates - Nama templat pekerjaan untuk menentukan cakupan agar node tumbuh.

  • NodeType - Jenis node untuk tumbuh dan menyusut. Nilai yang didukung adalah:

    • AzureNodes – untuk node Azure PaaS (burst) di kluster lokal atau Azure IaaS.
    • ComputeNodes - hanya untuk VM node komputasi di kluster Azure IaaS.
  • NumOfQueuedJobsPerNodeToGrow - Jumlah pekerjaan yang diantri yang diperlukan untuk menumbuhkan satu node.

  • NumOfQueuedJobsToGrowThreshold - Jumlah ambang batas pekerjaan yang diantri untuk memulai proses pertumbuhan.

  • NumOfActiveQueuedTasksPerNodeToGrow - Jumlah tugas antrean aktif yang diperlukan untuk menumbuhkan satu node. Jika NumOfQueuedJobsPerNodeToGrow ditentukan dengan nilai lebih besar dari 0, parameter ini diabaikan.

  • NumOfActiveQueuedTasksToGrowThreshold - Jumlah ambang batas tugas antrean aktif untuk memulai proses pertumbuhan.

  • NumOfInitialNodesToGrow - Jumlah minimum awal node yang akan tumbuh jika semua node dalam cakupan Tidak Disebarkan atau Dihentikan (Deallocated).

  • GrowCheckIntervalMins - Interval dalam hitungan menit antara pemeriksaan untuk tumbuh.

  • ShrinkCheckIntervalMins - Interval dalam hitungan menit antara pemeriksaan menyusut.

  • ShrinkCheckIdleTimes - Jumlah pemeriksaan penyusutan terus menerus (dipisahkan oleh ShrinkCheckIntervalMins) untuk menunjukkan node menganggur.

  • UseLastConfigurations - Konfigurasi sebelumnya disimpan dalam file argumen.

  • ArgFile - Nama file argumen yang digunakan untuk menyimpan dan memperbarui konfigurasi untuk menjalankan skrip.

  • LogFilePrefix - Nama awalan file log. Anda dapat menentukan jalur. Secara default log ditulis ke direktori kerja saat ini.

Contoh 1

Contoh berikut mengonfigurasi node burst Azure yang disebarkan dengan Template AzureNode Default untuk tumbuh dan menyusut secara otomatis. Jika semua node awalnya dalam status Tidak Disebarkan , setidaknya 3 node dimulai. Jika jumlah pekerjaan yang diantri melebihi 8, skrip memulai node hingga jumlahnya melebihi rasio pekerjaan yang diantrikan dengan NumOfQueuedJobsPerNodeToGrow. Jika node ditemukan idle dalam 3 kali idle berturut-turut, node dihentikan.

.\AzureAutoGrowShrink.ps1 -NodeTemplates @('Default AzureNode
 Template') -NodeType AzureNodes -NumOfQueuedJobsPerNodeToGrow 5
 -NumOfQueuedJobsToGrowThreshold 8 -NumOfInitialNodesToGrow 3
 -GrowCheckIntervalMins 1 -ShrinkCheckIntervalMins 1 -ShrinkCheckIdleTimes 3

Contoh 2

Contoh berikut mengonfigurasi VM simpul komputasi Azure yang disebarkan dengan Templat ComputeNode Default untuk tumbuh dan menyusut secara otomatis. Pekerjaan yang dikonfigurasi oleh templat Pekerjaan default menentukan cakupan beban kerja pada kluster. Jika semua node awalnya dihentikan, setidaknya 5 node dimulai. Jika jumlah tugas antrean aktif melebihi 15, skrip memulai node hingga jumlahnya melebihi rasio tugas antrean aktif ke NumOfActiveQueuedTasksPerNodeToGrow. Jika node ditemukan idle dalam 10 kali idle berturut-turut, node dihentikan.

.\AzureAutoGrowShrink.ps1 -NodeTemplates 'Default ComputeNode Template' -JobTemplates 'Default' -NodeType ComputeNodes -NumOfActiveQueuedTasksPerNodeToGrow 10 -NumOfActiveQueuedTasksToGrowThreshold 15 -NumOfInitialNodesToGrow 5 -GrowCheckIntervalMins 1 -ShrinkCheckIntervalMins 1 -ShrinkCheckIdleTimes 10 -ArgFile 'IaaSVMComputeNodes_Arg.xml' -LogFilePrefix 'IaaSVMComputeNodes_log'