Ćwiczenie — dodawanie dysku do węzła harmonogramu klastra HPC
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.
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.
W witrynie Azure Portal otwórz Cloud Shell, wybierając jej ikonę na pasku narzędzi obok pola tekstowego wyszukiwania.
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.
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>
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
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.
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 nafalse
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.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.
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.
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ładcc-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ępnieUpload failed!
, o ile poszczególne kopie plików projektu się powiodą. Aby to potwierdzić, sprawdź, czy ostateczny stan zadania jest wyświetlany jakoCompleted
, 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.
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
Uruchom następujące polecenia, aby utworzyć kopię zapasową oryginalnego szablonu klastra:
cp slurm.txt slurm.bak.txt
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.
W interfejsie edytora nano przejdź do sekcji
[[node scheduler]]
. W tej sekcji znajdź podsekcję[[[volume shared]]]
, przejdź do wierszaPersistent = ${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.
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.
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.
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ć.
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.
W interfejsie graficznym usługi Azure CycleCloud przejdź do strony klastrów i wybierz pozycję +.
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.
Na karcie Informacje o na stronie New Slurm Cluster wprowadź contoso-custom-slurm-lab-cluster w polu tekstowym Nazwa Klastra.
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. 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.
Na karcie Ustawienia zaawansowane na stronie Nowy Klaster Slurm przejrzyj dostępne opcje, nie wprowadzając żadnych zmian, i wybierz pozycję Dalej.
Na karcie Cloud-init na stronie New Slurm Cluster przejrzyj dostępne opcje bez dokonywania zmian i wybierz opcję Zapisz.
Na stronie contoso-custom-slurm-lab-cluster wybierz link Rozpocznij. Po wyświetleniu monitu o potwierdzenie wybierz pozycję OK.
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.
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.
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.
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.