Ćwiczenie — dodawanie dysku do węzła harmonogramu klastra HPC

Ukończone

Usługa Azure CycleCloud korzysta z szablonów do definiowania konfiguracji klastra. Jego domyślna implementacja obejmuje wbudowane szablony dla najbardziej typowych harmonogramów, ale możesz znaleźć kilka innych w repozytorium GitHub usługi Azure CycleCloud.

Pamiętaj, że chcesz przetestować proces implementowania klastra przy użyciu dostosowanego szablonu usługi Azure CycleCloud. W tym celu użyjesz repozytorium GitHub Azure CycleCloud, które hostuje wyselekcjonowanych projektów Slurm firmy Microsoft. Zmodyfikujesz w tym repozytorium istniejący szablon klastra, zmieniając konfigurację pamięci węzła planującego, następnie zaimportujesz nowo zmodyfikowany szablon do aplikacji Azure CycleCloud i użyj graficznego interfejsu aplikacji, aby utworzyć klaster, a na koniec sprawdź zmianę konfiguracji pamięci.

Ważny

Aby wykonać ćwiczenia w tym module, musisz spełnić następujące wymagania wstępne:

  • Masz subskrypcję platformy Azure z dostępnością rdzeni vCPU w trzech grupach rozmiarowych maszyn wirtualnych:
    • co najmniej 4 rdzenie vCPU serii DSv3
    • co najmniej 100 rdzeni vCPU serii FSv2
    • co najmniej 48 rdzeni vCPU serii NC
  • Posiadać konto Microsoft lub konto Microsoft Entra z rolą Owner lub Contributor w subskrypcji Azure.
  • Wdróż aplikację Azure CycleCloud na maszynie wirtualnej platformy Azure dostępną za pomocą publicznego adresu IP skojarzonego z interfejsem sieciowym.
  • Skonfiguruj aplikację Azure CycleCloud z dostępem na poziomie roli Właściciel lub Współautor do subskrypcji platformy Azure.
  • Mieć konto użytkownika aplikacji Azure CycleCloud z rolą Administrator.
  • Utwórz podsieć sieci wirtualnej platformy Azure, w której można wdrożyć węzły klastra.
  • Miej klucz prywatny pary kluczy SSH używanej do konfigurowania aplikacji Azure CycleCloud.

Notatka

Aby uzyskać informacje na temat identyfikowania i zwiększania limitów przydziałów procesorów wirtualnych w subskrypcji platformy Azure, zapoznaj się z następującą dokumentacją:

Notatka

Klucz prywatny będzie potrzebny do nawiązania bezpośredniego połączenia z węzłami klastra w ostatnim ćwiczeniu tego modułu.

W tym ćwiczeniu wykonasz następujące zadania:

  • Zadanie 1. Instalowanie i konfigurowanie interfejsu wiersza polecenia usługi Azure CycleCloud
  • Zadanie 2. Konfigurowanie projektu Azure CycleCloud Slurm
  • Zadanie 3. Implementowanie niestandardowego szablonu usługi Azure CycleCloud
  • Zadanie 4. Uruchamianie nowego klastra i badanie konfiguracji magazynu

Zadanie 1. Instalowanie i konfigurowanie interfejsu wiersza polecenia usługi Azure CycleCloud

Większość zadań zarządzania w tym i kolejnych ćwiczeniach używa interfejsu wiersza polecenia usługi Azure CycleCloud, więc rozpoczniesz od zainstalowania go i połączenia z aplikacją Azure CycleCloud. Aby uprościć początkową konfigurację, użyjesz usługi Azure Cloud Shell.

Notatka

Alternatywnie możesz zalogować się do maszyny wirtualnej platformy Azure hostowanej w aplikacji Azure CycleCloud, w której jest już zainstalowany interfejs wiersza polecenia usługi Azure CycleCloud.

  1. Na komputerze uruchom dowolną przeglądarkę internetową zgodną z witryną Azure Portal, przejdź do witryny Azure Portal, a po wyświetleniu monitu uwierzytelnij się przy użyciu konta Microsoft lub konta Microsoft Entra z rolą Współautor lub Właściciel w subskrypcji platformy Azure, której będziesz używać w tym module.

    Notatka

    Witryna Azure Portal obsługuje najbardziej typowe nowoczesne przeglądarki internetowe, w tym bieżące wersje przeglądarki Microsoft Edge, Google Chrome, Mozilla Firefox i Apple Safari.

  2. W witrynie Azure Portal otwórz Cloud Shell, wybierając jej ikonę na pasku narzędzi obok pola tekstowego wyszukiwania.

  3. Jeśli zostanie wyświetlony monit o wybranie Bash lub PowerShell, wybierz Bash.

    Notatka

    Jeśli po raz pierwszy uruchamiasz usługę Azure Cloud Shell i zostanie wyświetlony komunikat Nie masz zamontowanego magazynu, wybierz subskrypcję używaną w tym ćwiczeniu, a następnie wybierz Utwórz magazyn.

  4. W sesji powłoki Bash w okienku usługi Azure Cloud Shell uruchom następujące polecenie, aby ustawić wartość zmiennej na publiczny adres IP serwera aplikacji Azure CycleCloud (zastąp symbol zastępczy <public_ip_address> rzeczywistym publicznym adresem IP):

    PIP=<public_ip_address>
    
  5. Uruchom następujące polecenie, aby pobrać plik .zip zawierający instalator CLI specyficznego dla instancji Azure CycleCloud.

    curl -O --insecure https://$PIP/static/tools/cyclecloud-cli.zip
    
  6. Uruchom następujące polecenia z rzędu, aby wyodrębnić i wykonać skrypt wykonujący instalację interfejsu wiersza polecenia usługi Azure CycleCloud:

    unzip ./cyclecloud-cli.zip
    cd ./cyclecloud-cli-installer
    ./install.sh
    

    Notatka

    Ignoruj wszystkie komunikaty dotyczące zmiennej środowiskowej ścieżki i przejdź do następnego kroku.

  7. Uruchom następujące polecenie, aby ustanowić połączenie z instancją Azure CycleCloud, gdzie symbole zastępcze <username> i <password> oznaczają poświadczenia konta użytkownika Twojej aplikacji Azure CycleCloud posiadającego rolę Administratora.

    cyclecloud initialize --batch --url=https://$PIP --username=<username> --password=<password> --verify-ssl=false
    

    Notatka

    Parametr --verify-ssl ustawiony na false uwzględnia scenariusze, w których aplikacja Azure CycleCloud jest skonfigurowana przy użyciu certyfikatu z podpisem własnym lub certyfikatu z niezaufanego urzędu certyfikacji.

  8. Uruchom następujące polecenie, aby zweryfikować połączenie z wystąpieniem usługi Azure CycleCloud, wyświetlając jego konfigurację blokady.

    cyclecloud locker list
    

    Notatka

    Dane wyjściowe powinny zawierać nazwy szafek dla każdej subskrypcji platformy Azure zarejestrowanej w usłudze CycleCloud oraz ich odpowiednich kontenerów na indywidualnych kontach usługi Azure Storage. Należy zarejestrować nazwę szafki odpowiadającej subskrypcji platformy Azure, którą zamierzasz używać w tym laboratorium, ponieważ będzie potrzebna później w tym ćwiczeniu. Dane wyjściowe polecenia są w następującym formacie (gdzie symbol zastępczy <locker-name> reprezentuje nazwę szafki, symbol zastępczy <storage_account_name> reprezentuje nazwę konta magazynu przechowującego tę szafkę, a symbol zastępczy <container_name> reprezentuje nazwę kontenera dla tej szafki na tym koncie magazynu):

    <locker-name> (az://<storage_account_name>/<container_name>)
    

Zadanie 2. Konfigurowanie projektu Azure CycleCloud Slurm

Następnie skonfigurujesz przykładowy projekt Azure CycleCloud Slurm. Użyjesz istniejącego projektu Slurm z repozytorium na GitHubie platformy Azure CycleCloud. Pobierzesz go do katalogu macierzystego w usłudze Azure Cloud Shell, a następnie przekażesz do skrytki Azure CycleCloud.

  1. Na komputerze, w sesji Bash w okienku Azure Cloud Shell, uruchom następujące polecenia, aby utworzyć katalog projektu i pobrać projekt Slurm z odpowiedniego repozytorium GitHub.

    mkdir ~/cyclecloud-slurm && cd ~/cyclecloud-slurm
    cyclecloud project fetch https://github.com/Azure/cyclecloud-slurm . 
    

    Notatka

    Pamiętaj, aby uwzględnić kropkę końcową na końcu drugiego polecenia.

  2. Uruchom następujące polecenie, aby wyznaczyć domyślny schowek i załadować do niego projekt (zastąp symbol <locker_name> nazwą schowka zidentyfikowaną w poprzednim zadaniu, na przykład cc-lab-subscription-storage).

    cyclecloud project default_locker <locker_name>
    cyclecloud project upload 
    

    Notatka

    Alternatywnie można uruchomić cyclecloud project upload <locker_name>, gdzie symbol zastępczy <locker_name> wyznacza nazwę szafki.

    Notatka

    Zignoruj komunikat o błędzie związany z narzędziem azcopy, który informuje o Cannot perform sync due to error: sync must happen between source and destination of the same type, e.g., either file <-> file, or directory/container <-> directory/container, a następnie Upload failed!, o ile poszczególne kopie plików projektu się powiodą. Aby to potwierdzić, sprawdź, czy ostateczny stan zadania jest wyświetlany jako Completed, z zerowymi transferami zakończonymi niepowodzeniem.

Zadanie 3. Implementowanie niestandardowego szablonu usługi Azure CycleCloud

Teraz pobierzesz i zmodyfikujesz przykładowy szablon usługi Azure CycleCloud zgodny z pobranym projektem opartym na usłudze GitHub. Użyjesz tego, aby zdefiniować niestandardową konfigurację pamięci, która obejmuje dodatkowy dysk dołączony do węzła planowania i udostępniony za pośrednictwem sieciowego systemu plików (NFS). Po tej modyfikacji zaimportujesz ją do aplikacji Azure CycleCloud.

Notatka

Zawartość szablonu można sprawdzić za pomocą przeglądarki internetowej, przechodząc do repozytorium Azure/cyclecloud-slurm.

  1. Na komputerze w oknie przeglądarki internetowej wyświetlającym sesję powłoki Bash w okienku usługi Azure Cloud Shell uruchom następujące polecenie, aby zmienić katalog roboczy na nowo pobrane repozytorium:

    cd ~/cyclecloud-slurm/templates
    
  2. Uruchom następujące polecenia, aby utworzyć kopię zapasową oryginalnego szablonu klastra:

    cp slurm.txt slurm.bak.txt
    
  3. Uruchom następujące polecenie, aby otworzyć pobrany szablon w edytorze nano:

    nano slurm.txt
    

    Notatka

    Zamiast edytora nano można użyć dowolnego innego dostępnego edytora tekstów, w tym wbudowanego edytora usługi Azure Cloud Shell.

  4. W interfejsie edytora nano przejdź do sekcji [[node scheduler]]. W tej sekcji znajdź podsekcję [[[volume shared]]], przejdź do wiersza Persistent = ${NFSType == "Builtin"}i dodaj po niej następującą zawartość:

    
        # Add 2 premium disks in a RAID 0 configuration to the NFS export
        [[[volume nfs-1]]]
        Size = 128
        StorageAccountType = Premium_LRS
        Mount = nfs
        Persistent = true
    
        [[[volume nfs-2]]]
        Size = 128
        StorageAccountType = Premium_LRS
        Mount = nfs
        Persistent = true
    
        [[[configuration cyclecloud.mounts.nfs]]]
        mountpoint = /mnt/exports/lab
        fs_type = ext4
        raid_level = 0
    
    

    Notatka

    Jeśli używasz komputera z systemem Windows, możesz wkleić zawartość Schowka przy użyciu kombinacji Shift + Insert.

    Notatka

    Zmiany definiują dwa dyski magazynu Premium o rozmiarze 128 GB w woluminie opartym na paskach, które zostaną automatycznie zainstalowane na węźle głównym podczas aprowizacji. Wolumin użyje punktu montowania /mnt/exports/ i zostanie automatycznie sformatowany jako system plików ext4. Ustawienie Persistent = true wskazuje, że dyski będą utrwalane po zakończeniu działania klastra, ale zostaną one automatycznie usunięte w przypadku usunięcia klastra.

    Notatka

    Usługa Azure CycleCloud wdraża woluminy jako dyski zarządzane platformy Azure.

  5. W interfejsie edytora Nano wybierz kombinację Ctrl + O, wybierz Enter, a następnie wybierz kombinację Ctrl + X, aby zapisać wprowadzone zmiany i zamknąć plik.

    Notatka

    W tym momencie możesz użyć połączenia z aplikacją Azure CycleCloud za pomocą interfejsu wiersza polecenia, aby zaimportować szablon.

  6. Uruchom następujące polecenie, aby zaimportować szablon zmodyfikowany w poprzednim zadaniu do aplikacji Azure CycleCloud:

    cyclecloud import_template -f ~/cyclecloud-slurm/templates/slurm.txt
    

    Notatka

    Polecenie wyświetli nazwę zaimportowanego szablonu, stan harmonogramu (scheduler: Off -- --) i liczbę węzłów całkowitych (Total nodes: 1).

Zadanie 4. Uruchamianie nowego klastra i badanie konfiguracji magazynu

Aby zakończyć to ćwiczenie, sprawdzisz, czy szablon zaimportowany do aplikacji Azure CycleCloud zapewnia zamierzone funkcje, tworząc nowy klaster i przeglądając konfigurację magazynu węzła głównego, aby upewnić się, że zawiera wolumin składający się z dwóch dysków trwałych.

  1. Na komputerze otwórz inne okno przeglądarki i przejdź do adresu URL https://<IP_address> (zastąp symbol zastępczy <IP_address> publicznym adresem IP serwera aplikacji Azure CycleCloud). Jeśli zostanie wyświetlony monit, potwierdź, że chcesz kontynuować.

  2. Jeśli zostanie wyświetlony monit o uwierzytelnienie, zaloguj się, podając poświadczenia tego samego konta użytkownika aplikacji Azure CycleCloud użytego do skonfigurowania interfejsu wiersza polecenia usługi Azure CycleCloud.

  3. W interfejsie graficznym usługi Azure CycleCloud przejdź do strony klastrów i wybierz pozycję +.

  4. Na stronie Utwórz nowy klaster wybierz ikonę o etykiecie Slurm w kształcie trójkąta równoramiennego z małymi kółkami na jego wierzchołkach.

    zrzut ekranu przedstawiający stronę Tworzenie nowego klastra aplikacji internetowej Azure CycleCloud.

  5. Na karcie Informacje o na stronie New Slurm Cluster wprowadź contoso-custom-slurm-lab-cluster w polu tekstowym Nazwa Klastra.

    Zrzut ekranu zakładki

  6. Na karcie Wymagane ustawienia na stronie Nowy klaster Slurm skonfiguruj następujące ustawienia (pozostaw inne z ich wartościami domyślnymi) i wybierz pozycję Dalej:

    Ustawienie Wartość
    Region Wybierz nazwę regionu świadczenia usługi Azure, w którym zamierzasz wdrożyć klaster w tym ćwiczeniu.
    Typ maszyny wirtualnej dla harmonogramu Wybierz pozycję Wybierz w oknie podręcznym Wybierz typ maszyny. W polu tekstowym SKU Search wprowadź D4s_v3. Na liście wyników zaznacz pole wyboru obok wpisu D4s_v3, a następnie wybierz pozycję Zastosuj.

    Notatka

    Upewnij się, że wybrano rozmiar maszyny wirtualnej, który obsługuje warstwę Premium usługi Azure Storage, która jest wymagana do aprowizowania dysków węzła głównego zgodnie z konfiguracją niestandardową.

    Ustawienie Wartość
    Maksymalna liczba rdzeni HPC Wprowadź 100.
    Maksymalna liczba rdzeni HTC Wprowadź 100.
    Maksymalna liczba maszyn wirtualnych w zestawie skalowania Wprowadź 40.
    Identyfikator podsieci Wybierz pozycję cyclecloud-rg: cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet.
  7. Na karcie Network Attached Storage strony New Slurm Cluster sprawdź, czy typ NFS jest ustawiony na Builtin, zaakceptuj wartość domyślną Size (GB) jako 100i wybierz Next.

    Zrzut ekranu przedstawiający kartę Sieciowa pamięć masowa na stronie Nowy klaster Slurm aplikacji internetowej Azure CycleCloud.

  8. Na karcie Ustawienia zaawansowane na stronie Nowy Klaster Slurm przejrzyj dostępne opcje, nie wprowadzając żadnych zmian, i wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający zakładkę Ustawienia zaawansowane na stronie Nowy klaster Slurm aplikacji internetowej Azure CycleCloud.

  9. Na karcie Cloud-init na stronie New Slurm Cluster przejrzyj dostępne opcje bez dokonywania zmian i wybierz opcję Zapisz.

  10. Na stronie contoso-custom-slurm-lab-cluster wybierz link Rozpocznij. Po wyświetleniu monitu o potwierdzenie wybierz pozycję OK.

    Zrzut ekranu przedstawiający stronę karty Węzły klastra contoso-slurm-lab-cluster w stanie wyłączonym w aplikacji internetowej Azure CycleCloud.

  11. Monitoruj proces uruchamiania.

    Notatka

    Proces obejmuje aprowizowanie maszyny wirtualnej platformy Azure obsługującej rolę węzła głównego klastra, instalacji i konfiguracji harmonogramu Swarm oraz tworzenia i instalowania woluminów dysków. Może to potrwać około pięciu minut.

  12. Po zmianie stanu węzła harmonogramu na Gotowewybierz jego wpis na karcie Węzły, a następnie wybierz opcję Pokaż szczegóły, aby wyświetlić jego szczegółowy widok.

    Zrzut ekranu karty Węzły harmonogramu w klastrze contoso-custom-slurm-lab-cluster.

  13. W podręcznym oknie Wyświetlanie harmonogramu w klastrze contoso-custom-slurm-lab-cluster przejdź do karty Węzeł, przewiń do sekcji Woluminy i sprawdź, czy wpisy nfs-1 i nfs-2 są wyświetlane na liście woluminów.

    Zrzut ekranu przedstawiający zakładkę Węzeł w szczegółowym widoku klastra skonfigurowanego z dwoma dodatkowymi woluminami NFS.

Gratulacje! Pierwsze ćwiczenie tego modułu zostało ukończone pomyślnie. W tym ćwiczeniu zaimplementowano klaster na podstawie dostosowanego szablonu usługi Azure CycleCloud. Użyto interfejsu wiersza polecenia usługi Azure CycleCloud do zaimportowania przykładowego projektu hostowanego w repozytorium GitHub Azure CycleCloud, w tym dostosowanej kopii jednego z jego szablonów. Następnie utworzono klaster na podstawie zaimportowanego szablonu za pomocą interfejsu graficznego usługi Azure CycleCloud, uruchomiono go i sprawdzono, czy zmiana niestandardowa została wprowadzona.

Notatka

Nie usuwaj zasobów wdrożonych i skonfigurowanych w tym ćwiczeniu, jeśli planujesz uruchomić następne ćwiczenie w tym module. Te zasoby są wymagane w celu ukończenia następnego ćwiczenia.