Descrieți noțiunile de bază despre Azure CycleCloud

Finalizat

Multe organizații doresc să facă tranziția sarcinilor lor de lucru HPC locale la Azure, pentru a beneficia de capacitățile sale hiperscale. De asemenea, aceștia doresc să reducă la minimum curba de învățare asociată cu o astfel de tranziție și să utilizeze expertiza asociată implementărilor existente, cum ar fi un programator HPC specific. În cele din urmă, caută detalii despre performanța și costul resurselor clusterelor bazate pe cloud, în modul în care paralelează mediile lor locale.

Implementarea unei soluții particularizate care se adresează acestor cerințe este dificilă. Necesită cunoștințe aprofundate despre resursele azure de calcul, rețea și stocare care servesc drept blocuri componente ale clusterelor HPC bazate pe cloud. De asemenea, fără o interfață de gestionare corespunzătoare, operarea unei astfel de soluții prin utilizarea unor instrumente standard de gestionare Azure ar duce la o suprapunere administrativă semnificativă.

Azure CycleCloud tratează aceste probleme, oferind o modalitate simplă, sigură și scalabilă de a implementa programatori HPC în Azure. În această unitate, veți afla despre funcționalitatea sa de bază.

Notă

Azure CycleCloud vizează scenariile de implementare care necesită utilizarea unui anumit programator HPC. Acest lucru completează Azure Batch, care oferă un programator ca serviciu pe Azure.

Ce este Azure CycleCloud?

Azure CycleCloud este un instrument pentru implementarea clusterelor HPC în Azure și gestionarea sarcinilor de lucru. Acesta oferă o gamă largă de capacități HPC, inclusiv:

  • Implementare bazată pe șablon a clusterelor HPC. Azure CycleCloud oferă șabloane particularizabile încorporate pentru implementarea celor mai comune programatoare de clustere, inclusiv Slurm, OpenPBS, LSF, Grid Engine și HTCondor. Multe alte șabloane predefinite, pe care le puteți importa în instanța Azure CycleCloud, sunt disponibile din depozitul CycleCloud GitHub.

    Notă

    Șabloanele sunt fișiere formatate INI care utilizează sintaxă declarativă pentru a descrie modul în care sunt organizate nodurile într-un cluster CycleCloud, inclusiv relațiile lor. Șabloanele conțin referințe la proiecte, care definesc configurația nodului.

  • scalarea manuală și automată a nodurilor cluster. Azure CycleCloud permite scalarea orizontală manuală și automată a clusterelor gestionate în funcție de lungimea cozilor de lucrări și a politicilor de guvernanță. De asemenea, oferă o interfață API REST pentru dezvoltarea adaptoarelor de scalare automată pentru programatori particularizați.

  • Configurație nod prin scripturi cloud-init. Azure CycleCloud acceptă gestionarea configurației pe baza scripturilor particularizate care rulează în nodurile de cluster gestionate înainte de orice alte activități de configurare specifice CycleCloud.

  • Gestionarea stocării clusterului intern și extern. Azure CycleCloud vă permite să configurați stocarea în cluster prin asigurarea accesului, montarea și formatarea discurilor gestionate Azure și a stocării atașate la rețea, cum ar fi serverele NFS sau clusterele BeeGFS.

  • Monitorizare, înregistrare în jurnal și avertizare. Azure CycleCloud oferă monitorizare de clustere încorporate și se integrează cu Azure Monitor. De asemenea, este posibil să stocați date jurnal din clusterele CycleCloud în Log Analytics și să creați tablouri de bord cu măsurători particularizate. În plus, puteți crea avertizări particularizate și notificări prin e-mail declanșate de datele de telemetrie. Toate activitățile Azure CycleCloud sunt înregistrate în jurnal.

  • autentificare și autorizare . Azure CycleCloud acceptă autentificarea locală încorporată. Alternativ, o puteți integra cu Serviciile de domeniu Active Directory sau cu alți furnizori de identitate bazate pe Lightweight Directory Access Protocol (LDAP). În mod implicit, utilizatorii definiți local au acces la sistemul de operare pe nodurile de cluster gestionate, dar este posibil să administrați separat utilizatorii clusterului. Pentru gestionarea resurselor dintr-un abonament Azure, puteți utiliza un cont principal de serviciu Microsoft Entra sau o identitate gestionată.

  • Raportarea și controalele privind costurile în timp real apropiat. Azure CycleCloud urmărește utilizarea clusterului și estimează costul corespunzător. Această caracteristică vă permite să configurați avertizări de buget declanșate atunci când costul clusterului depășește suma monetară specificată. Azure CycleCloud se integrează, de asemenea, cu Microsoft Cost Management.

Cum implementați și utilizați Azure CycleCloud?

CycleCloud este implementat ca aplicație web bazată pe Linux, pe care o puteți instala în orice locație din care vă puteți accesa mediul Azure. Cea mai simplă modalitate de a o configura este implementarea unei mașini virtuale Azure utilizând imaginea Azure Marketplace corespunzătoare, cu opțiunea de a automatiza implementarea utilizând un șablon Azure Resource Manager (ARM). Ca alternativă, puteți utiliza pachete yum sau apt sau o imagine container disponibilă din Microsoft Container Registry.

În timpul configurării inițiale, puteți furniza o cheie SSH pentru a asigura accesul la sistemul de operare care găzduiește aplicația CycleCloud și la nodurile cluster implementate mai târziu. Pentru a activa aplicația CycleCloud pentru a interacționa cu Azure Resource Manager, trebuie să alegeți o identitate Microsoft Entra care oferă context de securitate pentru această interacțiune și să o atribuiți permisiuni suficiente în abonamentul Azure țintă, utilizând controlul de acces bazat pe roluri Azure (RBAC). Această identitate poate lua forma unui cont principal de serviciu sau o identitate gestionată dacă găzduiește aplicația Azure CycleCloud pe o mașină virtuală Azure.

O instanță Azure CycleCloud necesită, de asemenea, un cont de stocare Azure și un container blob însoțitor. Acest container, cunoscut sub numele de locker, furnizează zona de așteptare pentru implementarea proiectelor în noduri cluster.

Odată instalată, aplicația Azure CycleCloud oferă o interfață de utilizator grafică care îi permite unui utilizator să gestioneze și să monitorizeze sistemele HPC și o interfață în linia de comandă (CLI) care facilitează automatizarea și integrarea CycleCloud în fluxurile de lucru existente. De asemenea, puteți utiliza CLI pentru a importa șabloane, a automatiza asigurarea accesului la clustere și a efectua activități de gestionare mai complexe.

Captură de ecran a interfeței grafice a aplicației web Azure CycleCloud.

Care este arhitectura Azure CycleCloud?

Azure CycleCloud oferă un nivel de abstractizare adăugat comparativ cu Azure Resource Manager, minimizând necesitatea ca utilizatorii săi să se ocupe direct de resursele de calcul și stocare Azure. Rolul său este de a traduce configurații la nivel de programator care sunt accesibile prin interfața grafică sau CLI în API-ul Azure Resource Manager (ARM) care interacționează cu mașini virtuale Azure și seturi de scale Azure VM în rețelele virtuale și subrețelele definite de utilizator. Aceste apeluri consideră, de asemenea, cotele vCPU regionale, limitele de dimensiune de cluster și restricțiile topologiei de rețea InfiniBand. De asemenea, facilitează optimizarea performanței clusterului utilizând astfel de construcții ca grupuri de plasare a proximității sau conectarea nodurilor cluster la același comutator InfiniBand.

Notă

Un grup de plasare a proximității permite collocarea mașinilor virtuale Azure aproape unul de celălalt, dar nu consideră rețelele InfiniBand. Azure CycleCloud vă permite să utilizați propria construcție specifică, denumită PlacementGroupId pentru a grupa nodurile cluster într-un singur set de scări VM Azure conectat la același comutator de rețea. Puteți combina aceste două caracteristici, dar acest lucru poate reduce numărul de noduri pe care le puteți asigura în cadrul aceluiași set de scale VM Azure.

Azure CycleCloud orchestrază ciclul de viață al clusterelor HPC, care constă de obicei dintr-unul sau mai multe noduri cap programator HPC și noduri de calcul, dar poate include și Stocare atașată la rețea, cum ar fi un server NFS sau un cluster BeeGFS, Fișiere Azure NetApp, Azure HPC Cache și Microsoft Entra Domain Services. Acesta include un depozit de date NoSQL intern care memorează în cache clusterul și stările nodului. Sistemul său de monitorizare a nodului activează avertizarea. Funcționalitatea sa de gestionare este expusă prin API-ul REST și accesibilă prin web și CLI.

Scalarea automată a clusterului gestionat se bazează pe Calculator la cerere și pe Biblioteca de scală automată. Veți afla despre caracteristicile lor în următoarea unitate a acestui curs.

Diagrama arhitecturii de nivel înalt a Azure CycleCloud.

Ce este ciclul de viață al clusterului Azure CycleCloud?

Ciclul de viață al unui cluster începe cu selectarea unui șablon care conține definiția sa. Aveți opțiunea de a utiliza unul dintre șabloanele predefinite sau de a crea unul particularizat și de a-l importa în aplicația CycleCloud. Șablonul include de obicei mai mulți parametri, care vă permit să particularizați configurația clusterului în timpul creării acestuia. Specificul procesului de creare a clusterului depinde de utilizarea webului sau a CLI-ului.

După ce creați un cluster, îl puteți porni. Pornirea unui cluster declanșează o secvență de activități pentru fiecare nod care face parte din definiția bazată pe șablonul cluster. Această secvență constă dintr-o apelare către Azure Resource Manager care solicită asigurarea accesului pentru o mașină virtuală Azure, denumită starea de achiziționare a. Aceasta este urmată de configurarea mașinii virtuale, inclusiv executarea inițializării sale definite în proiectul corespunzător, executarea scripturilor pentru instalarea și configurarea software-ului de planificare și asigurarea accesului și montarea volumelor sistemului de fișiere. Când se termină secvența, nodul ajunge la starea Pornit. Orice eroare netratată sau necunoscută are ca rezultat eroare stare.

După ce rulează nodurile de cluster, acestea sunt accesibile de la distanță prin SSH sau RDP, în funcție de sistemul lor de operare. Aveți posibilitatea să utilizați astfel de conexiuni pentru a remite lucrări de cluster. În funcție de configurația clusterului, acest lucru poate declanșa scalarea clusterului.

Puteți termina un cluster atunci când termină toate lucrările remise. Închiderea clusterului oprește și elimină nodurile și șterge toate volumele non-persistente, lăsând clusterul în starea de Dezactivat.