Opis podstaw usługi Azure CycleCloud
Wiele organizacji chce przenieść swoje lokalne obciążenia HPC na platformę Azure, aby skorzystać z możliwości hiperskalowania. Chcą również zminimalizować krzywą uczenia skojarzoną z takim przejściem i wykorzystać wiedzę skojarzoną z istniejącymi wdrożeniami, taką jak konkretny harmonogram HPC. Na koniec szukają wglądu w wydajność i koszty zasobów klastra w chmurze w sposób równoległy do ich środowisk lokalnych.
Implementowanie niestandardowego rozwiązania, które odpowiada tym potrzebom, jest trudne. Wymaga to dogłębnej wiedzy na temat zasobów obliczeniowych, sieciowych i magazynowych platformy Azure, które służą jako bloki konstrukcyjne klastrów HPC opartych na chmurze. Ponadto bez odpowiedniego interfejsu zarządzania działanie takiego rozwiązania przez poleganie na standardowych narzędziach do zarządzania platformą Azure spowodowałoby znaczne obciążenie administracyjne.
Usługa Azure CycleCloud rozwiązuje te problemy, zapewniając prosty, bezpieczny i skalowalny sposób implementowania harmonogramów HPC na platformie Azure. W tej lekcji poznasz jej podstawowe funkcje.
Uwaga
Usługa Azure CycleCloud jest przeznaczona dla scenariuszy wdrażania, które wymagają użycia określonego harmonogramu HPC. Uzupełnia to usługę Azure Batch, która udostępnia harmonogram jako usługę na platformie Azure.
Czym jest usługa Azure CycleCloud?
Azure CycleCloud to narzędzie do wdrażania klastrów HPC na platformie Azure i zarządzania obciążeniami. Oferuje szeroką gamę funkcji HPC, w tym:
Wdrożenie klastrów HPC oparte na szablonach. Usługa Azure CycleCloud udostępnia wbudowane szablony dostosowywalne do wdrażania najpopularniejszych harmonogramów klastrów, w tym Slurm, OpenPBS, LSF, Grid Engine i HTCondor. Wiele innych wstępnie zdefiniowanych szablonów, które można zaimportować do wystąpienia usługi Azure CycleCloud, jest dostępnych w repozytorium GitHub CycleCloud.
Uwaga
Szablony to pliki w formacie INI, które używają składni deklaratywnej do opisywania sposobu organizowania węzłów w klastrze CycleCloud, w tym ich odpowiednich relacji. Szablony zawierają odwołania do projektów, które definiują konfigurację węzła.
Ręczne i automatyczne skalowanie węzłów klastra. Usługa Azure CycleCloud umożliwia ręczne i automatyczne skalowanie w poziomie klastrów zarządzanych zgodnie z długością kolejek zadań i zasad ładu. Oferuje również interfejs API REST do tworzenia kart skalowania automatycznego dla niestandardowych harmonogramów.
Konfiguracja węzła za pomocą skryptów cloud-init. Usługa Azure CycleCloud obsługuje zarządzanie konfiguracją na podstawie skryptów niestandardowych uruchamianych w węzłach klastra zarządzanego przed innymi zadaniami konfiguracji specyficznymi dla usługi CycleCloud.
Zarządzanie wewnętrznym i zewnętrznym magazynem klastra. Usługa Azure CycleCloud umożliwia konfigurowanie magazynu klastra przez aprowizowanie, instalowanie i formatowanie dysków zarządzanych platformy Azure oraz magazynu dołączonego do sieci, takiego jak serwery NFS lub klastry BeeGFS.
Monitorowanie, rejestrowanie i alerty. Usługa Azure CycleCloud oferuje wbudowane monitorowanie klastra i integruje się z usługą Azure Monitor. Istnieje również możliwość przechowywania danych dziennika z klastrów CycleCloud do usługi Log Analytics i tworzenia niestandardowych pulpitów nawigacyjnych metryk. Ponadto można tworzyć niestandardowe alerty i powiadomienia e-mail wyzwalane przez dane telemetryczne. Wszystkie działania usługi Azure CycleCloud są rejestrowane.
Uwierzytelnianie i autoryzacja. Usługa Azure CycleCloud obsługuje wbudowane uwierzytelnianie lokalne. Alternatywnie można ją zintegrować z usługami domena usługi Active Directory lub innymi dostawcami tożsamości opartymi na protokole LDAP (Lightweight Directory Access Protocol). Domyślnie lokalnie zdefiniowani użytkownicy mają dostęp do systemu operacyjnego w zarządzanych węzłach klastra, ale można administrować użytkownikami klastra oddzielnie. Do zarządzania zasobami w ramach subskrypcji platformy Azure można użyć jednostki usługi Microsoft Entra lub tożsamości zarządzanej.
Raportowanie i kontrole kosztów niemal w czasie rzeczywistym. Usługa Azure CycleCloud śledzi użycie klastra i szacuje odpowiedni koszt. Ta funkcja umożliwia skonfigurowanie alertów budżetowych wyzwalanych, gdy koszt klastra przekracza określoną kwotę pieniężną. Usługa Azure CycleCloud integruje się również z usługą Microsoft Cost Management.
Jak zaimplementować i używać usługi Azure CycleCloud?
Usługa CycleCloud jest implementowana jako aplikacja internetowa oparta na systemie Linux, którą można zainstalować w dowolnej lokalizacji, z której można uzyskać dostęp do środowiska platformy Azure. Najprostszym sposobem jej skonfigurowania jest wdrożenie maszyny wirtualnej platformy Azure przy użyciu odpowiedniego obrazu witryny Azure Marketplace z opcją automatyzacji wdrożenia przy użyciu szablonu usługi Azure Resource Manager (ARM). Alternatywnie możesz użyć pakietów yum lub apt albo obrazu kontenera dostępnego w usłudze Microsoft Container Registry.
Podczas początkowej konfiguracji można podać klucz SSH w celu zabezpieczenia dostępu do systemu operacyjnego obsługującego aplikację CycleCloud oraz do węzłów klastra wdrożonych później. Aby umożliwić aplikacji CycleCloud interakcję z usługą Azure Resource Manager, należy wybrać tożsamość firmy Microsoft Entra, która zapewnia kontekst zabezpieczeń dla tej interakcji i przypisać do niej wystarczające uprawnienia w docelowej subskrypcji platformy Azure przy użyciu kontroli dostępu opartej na rolach (RBAC) platformy Azure. Ta tożsamość może mieć formę jednostki usługi lub tożsamości zarządzanej, jeśli hostuje aplikację Azure CycleCloud na maszynie wirtualnej platformy Azure.
Wystąpienie usługi Azure CycleCloud wymaga również konta usługi Azure Storage i towarzyszącego kontenera obiektów blob. Ten kontener, znany jako locker, zapewnia tymczasowy obszar dla wdrażania projektów na węzły klastra.
Po zainstalowaniu aplikacja Azure CycleCloud udostępnia graficzny interfejs użytkownika, który umożliwia użytkownikowi zarządzanie systemami HPC i interfejsem wiersza polecenia, który ułatwia automatyzację i integrację aplikacji CycleCloud z istniejącymi przepływami pracy. Interfejs wiersza polecenia umożliwia również importowanie szablonów, automatyzowanie aprowizacji klastra i wykonywanie bardziej zaawansowanych zadań zarządzania.
Jaka jest architektura usługi Azure CycleCloud?
Usługa Azure CycleCloud zapewnia dodatkową warstwę abstrakcji w porównaniu z usługą Azure Resource Manager, minimalizując potrzebę bezpośredniej obsługi zasobów obliczeniowych i magazynowych platformy Azure przez użytkowników. Jej rolą jest tłumaczenie konfiguracji na poziomie harmonogramu, które są dostępne za pośrednictwem interfejsu graficznego lub interfejsu wiersza polecenia do wywołań interfejsu API usługi Azure Resource Manager (ARM), które współdziałają z maszynami wirtualnymi platformy Azure i usługą Azure VM Scale Sets w sieciach wirtualnych i podsieciach zdefiniowanych przez użytkownika. Te wywołania uwzględniają również regionalne limity przydziałów procesorów wirtualnych, limity rozmiaru klastra i ograniczenia topologii sieci InfiniBand. Ułatwiają one również optymalizację wydajności klastra przy użyciu takich konstrukcji jak grupy umieszczania w pobliżu lub łączenie węzłów klastra z tym samym przełącznikiem InfiniBand.
Uwaga
Grupa umieszczania w pobliżu umożliwia sortowanie maszyn wirtualnych platformy Azure blisko siebie, ale nie uwzględnia sieci InfiniBand. Usługa Azure CycleCloud umożliwia użycie własnej konkretnej konstrukcji nazywanej PlacementGroupId do grupowania węzłów klastra w jeden zestaw skalowania maszyn wirtualnych platformy Azure połączony z tym samym przełącznikiem sieciowym. Te dwie funkcje można połączyć, ale może to zmniejszyć liczbę węzłów, które można aprowizować w tym samym zestawie skalowania maszyn wirtualnych platformy Azure.
Usługa Azure CycleCloud organizuje cykl życia klastrów HPC, które zwykle składają się z co najmniej jednego węzła głównego harmonogramu HPC i węzłów obliczeniowych, ale mogą również obejmować magazyn dołączony do sieci, taki jak serwer NFS lub klaster BeeGFS, Azure NetApp Files, Azure HPC Cache i Microsoft Entra Domain Services. Zawiera wewnętrzny magazyn danych NoSQL, który buforuje stany klastra i węzła. Jego system monitorowania węzłów umożliwia alerty. Jej funkcje zarządzania są udostępniane za pośrednictwem interfejsu API REST i są dostępne za pośrednictwem internetu i interfejsu wiersza polecenia.
Skalowanie automatyczne klastra zarządzanego opiera się na kalkulatorze zapotrzebowania i bibliotece autoskalowania. Poznasz ich cechy w następnej lekcji tego kursu.
Co to jest cykl życia klastra Usługi Azure CycleCloud?
Cykl życia klastra rozpoczyna się od wybrania szablonu zawierającego jego definicję. Istnieje możliwość użycia jednego z wbudowanych szablonów lub utworzenia niestandardowego i zaimportowania go do aplikacji CycleCloud. Szablon zazwyczaj zawiera kilka parametrów, które umożliwiają dostosowanie konfiguracji klastra podczas jego tworzenia. Specyfika procesu tworzenia klastra zależy od tego, czy używasz sieci Web, czy interfejsu wiersza polecenia.
Po utworzeniu klastra można go uruchomić. Uruchamianie klastra wyzwala sekwencję zadań dla każdego węzła będącego częścią definicji opartej na szablonie klastra. Ta sekwencja składa się z wywołania do usługi Azure Resource Manager, żądającego przydzielenia zasobów dla maszyny wirtualnej Azure, znanego jako stan Uzyskiwanie. Następuje po nim konfiguracja maszyny wirtualnej, w tym wykonanie jego inicjowania zdefiniowane w odpowiednim projekcie, wykonanie skryptów do zainstalowania i skonfigurowania oprogramowania do planowania oraz aprowizowanie i instalowanie woluminów systemu plików. Po zakończeniu sekwencji węzeł osiągnie stan Rozpoczęte . Każdy nieobsługiwany lub nieznany błąd powoduje wyświetlenie stanu Błąd .
Po uruchomieniu węzłów klastra są one dostępne zdalnie za pośrednictwem protokołu SSH lub RDP, w zależności od systemu operacyjnego. Za pomocą takich połączeń można przesyłać zadania klastra. W zależności od konfiguracji klastra może to spowodować skalowanie klastra.
Klaster można zakończyć po zakończeniu wszystkich przesłanych zadań. Zakończenie klastra usuwa jego węzły i nietrwałe woluminy, pozostawiając klaster w stanie Wyłączone.