Udostępnij za pośrednictwem


Węzły i pule usługi Azure Batch

W przepływie pracy usługi Azure Batch węzeł obliczeniowy (lub węzeł) to maszyna wirtualna, która przetwarza część obciążenia aplikacji. Pula to kolekcja tych węzłów, w których aplikacja ma być uruchamiana. W tym artykule wyjaśniono więcej na temat węzłów i pul oraz zagadnienia dotyczące tworzenia i używania ich w przepływie pracy usługi Azure Batch.

Węzły

Węzeł to maszyna wirtualna platformy Azure lub maszyna wirtualna usługi w chmurze przeznaczona do przetwarzania części obciążenia aplikacji. Rozmiar węzła określa liczbę rdzeni procesora, pojemność pamięci oraz rozmiar lokalnego systemu plików przydzielony do tego węzła.

Pule węzłów systemu Windows lub Linux można tworzyć przy użyciu usługi Azure Cloud Services, obrazów z witryny Marketplace usługi Azure Virtual Machines lub przygotowanych samodzielnie obszarów niestandardowych.

Węzły można uruchamiać przy użyciu dowolnego pliku wykonywalnego lub skryptu, który jest obsługiwany przez środowisko systemu operacyjnego węzła. Pliki wykonywalne lub skrypty obejmują *.exe, *.cmd, *.bat i skrypty programu PowerShell (dla systemu Windows) oraz pliki binarne, powłoki i skrypty języka Python (dla systemu Linux).

Wszystkie węzły obliczeniowe usługi Batch obejmują również:

Domyślnie węzły mogą komunikować się ze sobą, ale nie mogą komunikować się z maszynami wirtualnymi, które nie są częścią tej samej puli. Aby umożliwić węzłom bezpieczną komunikację z innymi maszynami wirtualnymi lub siecią lokalną, możesz aprowizować pulę w podsieci sieci wirtualnej platformy Azure. Gdy to zrobisz, węzły mogą być dostępne za pośrednictwem publicznych adresów IP. Te publiczne adresy IP są tworzone przez usługę Batch i mogą ulec zmianie w okresie istnienia puli. Możesz również utworzyć pulę ze statycznymi publicznymi adresami IP, które kontrolujesz, co gwarantuje, że nie zostaną nieoczekiwanie zmienione.

Pule

Pula to kolekcja węzłów, na których działa aplikacja.

Pule usługi Batch są oparte na podstawowej platformie obliczeniowej Azure. Zapewniają one alokację na dużą skalę, instalację aplikacji, dystrybucję danych, monitorowanie kondycji i elastyczne dostosowywanie (skalowanie) liczby węzłów obliczeniowych w puli.

Do każdego węzła, który jest dodawany do puli zostaje przypisana unikatowa nazwa i adres IP. Gdy węzeł zostanie usunięty z puli, wszelkie zmiany wprowadzone w systemie operacyjnym lub w plikach zostaną utracone, a jego nazwa i adres IP zostaną zwolnione do użytku w przyszłości. Gdy węzeł opuści pulę, oznacza to, że zakończył się jego okres istnienia.

Pula może być używana tylko na koncie usługi Batch, w ramach którego ją utworzono. Konto usługi Batch może utworzyć wiele pul, aby spełnić wymagania dotyczące zasobów aplikacji, które będą uruchamiane.

Pulę można utworzyć ręcznie lub automatycznie przez usługę Batch po określeniu pracy do wykonania. Podczas tworzenia puli można określić następujące atrybuty:

Ważne

Konta usługi Batch mają domyślny limit przydziału, który ogranicza liczbę rdzeni na koncie usługi Batch. Liczba rdzeni odpowiada liczbie węzłów obliczeniowych. Domyślne limity przydziału oraz instrukcje dotyczące zwiększania limitów przydziału znajdują się w artykule Quotas and limits for the Azure Batch service (Limity przydziału i limity dla usługi Azure Batch). Przyczyną tego, że pula nie osiągnęła docelowej liczby węzłów, może być przydział rdzeni.

System operacyjny i wersja

Podczas tworzenia puli usługi Batch należy określić konfigurację maszyny wirtualnej platformy Azure i typ systemu operacyjnego, który ma być uruchamiany w każdym węźle obliczeniowym w puli.

Konfiguracje

Konfiguracja maszyny wirtualnej

Konfiguracja maszyny wirtualnej określa, że pula składa się z maszyn wirtualnych platformy Azure. Te maszyny wirtualne można tworzyć na podstawie obrazów systemu Windows albo Linux.

Agent węzła usługi Batch to program uruchamiany w każdym węźle w puli i udostępnia interfejs polecenia i sterowania między węzłem a usługą Batch. Istnieją różne implementacje agenta węzła, znane jako jednostki SKU, dla różnych systemów operacyjnych. Podczas tworzenia puli na podstawie konfiguracji usługi Virtual Machines należy określić nie tylko rozmiar węzłów i obrazów użytych do ich utworzenia, ale także odwołanie do obrazu maszyny wirtualnej i jednostkę SKU węzła agenta usługi Batch do zainstalowania w węzłach. Więcej informacji na temat określania powyższych właściwości puli znajduje się w artykule Provision Linux compute nodes in Azure Batch pools (Aprowizowanie węzłów obliczeniowych systemu Linux w pulach usługi Azure Batch). Możesz opcjonalnie dołączyć co najmniej jeden pusty dysk danych do puli maszyn wirtualnych utworzonej z obrazów witryny Marketplace lub uwzględnić dyski danych w niestandardowych obrazach używanych do tworzenia maszyn wirtualnych. W przypadku dołączania dysków danych należy zainstalować i sformatować dyski z maszyny wirtualnej, aby ich używać.

Jednostki SKU agenta węzła

W przypadku tworzenia puli musisz wybrać odpowiednią wartość elementu nodeAgentSkuIdw zależności od systemu operacyjnego podstawowego obrazu dysku VHD. Możesz uzyskać mapowanie dostępnych identyfikatorów jednostek SKU agenta węzła do ich odwołań do obrazu systemu operacyjnego, wywołując operację Tworzenia listy obsługiwanych jednostek SKU agenta węzła.

Niestandardowe obrazy dla pul usługi Virtual Machines

Aby dowiedzieć się, jak utworzyć pulę przy użyciu obrazów niestandardowych, zobacz Tworzenie puli niestandardowej przy użyciu galerii obliczeń platformy Azure.

Obsługa kontenerów w pulach maszyn wirtualnych

Podczas tworzenia puli konfiguracji maszyny wirtualnej za pomocą interfejsów API usługi Batch możesz skonfigurować pulę do uruchamiania zadań w kontenerach platformy Docker. Obecnie musisz utworzyć pulę przy użyciu obrazu, który obsługuje kontenery platformy Docker. Użyj systemu Windows Server 2016 Datacenter z obrazem kontenerów z witryny Azure Marketplace lub podać niestandardowy obraz maszyny wirtualnej obejmujący platformę Docker Community Edition lub Enterprise Edition i wszystkie wymagane sterowniki. Ustawienia puli muszą zawierać konfigurację kontenera, która kopiuje obrazy kontenera do maszyn wirtualnych po utworzeniu puli. Zadania uruchamiane w puli mogą następnie odwoływać się do obrazów kontenera i opcji uruchamiania kontenera.

Aby uzyskać więcej informacji, zobacz Uruchamianie aplikacji kontenera platformy Docker w usłudze Azure Batch.

Typ węzła i element docelowy

Podczas tworzenia puli można określić typy węzłów, które chcesz, oraz liczbę docelową dla każdego z nich. Dwa typy węzłów to:

  • Węzły dedykowane. Dedykowane węzły obliczeniowe są zarezerwowane dla konkretnych obciążeń. Są one droższe niż węzły typu spot, ale nie mają gwarancji, że nigdy nie zostaną wywłaszczone.
  • Węzły typu spot. Węzły typu spot korzystają z nadwyżkowej pojemności na platformie Azure, aby uruchamiać obciążenia usługi Batch. Węzły typu spot są tańsze na godzinę niż węzły dedykowane i umożliwiają obciążenia wymagające znacznej mocy obliczeniowej. Aby uzyskać więcej informacji, zobacz Use Spot VMs with Batch (Używanie maszyn wirtualnych typu spot z usługą Batch).

Węzły typu spot mogą zostać wywłaszczone, gdy platforma Azure ma niewystarczającą nadwyżkę pojemności. Jeśli węzeł zostanie przerwany podczas przetwarzania zadań, zadania te są ponownie umieszczane w kolejce, a następnie ponownie uruchamiane, kiedy węzeł obliczeniowy znowu stanie się dostępny. Węzły typu spot to dobra opcja dla obciążeń, w których czas ukończenia zadania jest elastyczny, a praca jest dystrybuowana między wiele węzłów. Przed podjęciem decyzji o użyciu węzłów typu Spot w scenariuszu upewnij się, że każda praca utracona z powodu wywłaszczania będzie minimalna i łatwa do odtworzenia.

Węzły obliczeniowe typu Spot i dedykowane mogą znajdować się w tej samej puli. Każdy typ węzła ma własne ustawienie docelowe, dla którego można określić żądaną liczbę węzłów.

Liczbę węzłów obliczeniowych określa się jako docelową, ponieważ w niektórych sytuacjach wybrana liczba węzłów w puli nie zostanie osiągnięta. Na przykład pula może nie osiągnąć wartości docelowej, jeśli wcześniej zostanie osiągnięty podstawowy przydział dla konta usługi Batch. Lub pula może nie osiągnąć celu, jeśli zastosowano formułę automatycznego skalowania do puli, która ogranicza maksymalną liczbę węzłów.

Aby uzyskać informacje o cenach węzłów typu spot i węzłów dedykowanych, zobacz Cennik usługi Batch.

Rozmiar węzła

Podczas tworzenia puli usługi Azure Batch możesz wybierać spośród prawie wszystkich rodzin i rozmiarów maszyn wirtualnych dostępnych na platformie Azure. Platforma Azure oferuje szereg rozmiarów maszyn wirtualnych dla różnych obciążeń, w tym specjalizowane rozmiary maszyn wirtualnych HPC lub z obsługą procesorów GPU. Należy pamiętać, że rozmiary węzłów można wybrać tylko w momencie utworzenia puli. Innymi słowy, po utworzeniu puli nie można zmienić rozmiaru węzła.

Aby uzyskać więcej informacji, zobacz Choose a VM size for compute nodes in an Azure Batch pool (Wybieranie rozmiaru maszyn wirtualnych dla węzłów obliczeniowych w puli usługi Azure Batch).

Zasady automatycznego skalowania

W przypadku obciążeń dynamicznych można zastosować zasady automatycznego skalowania do puli. Usługa Batch okresowo ocenia formułę i dynamicznie dostosowuje liczbę węzłów w puli zgodnie z bieżącym obciążeniem i użyciem zasobów w scenariuszu obliczeniowym. Dzięki temu można zmniejszyć całkowity koszt działania aplikacji przy użyciu tylko potrzebnych zasobów, zwalniając te zbędne.

Automatyczne skalowanie można włączyć, pisząc formułę automatycznego skalowania i kojarząc ją z pulą. Usługa Batch używa formuły do określenia docelowej liczby węzłów w puli dla kolejnego interwału skalowania (interwału, który możesz skonfigurować). Ustawienia automatycznego skalowania puli można wybrać podczas jej tworzenia. Można również włączyć skalowanie puli później. Masz również możliwość aktualizowania ustawień skalowania już włączonych w puli.

Na przykład być może zadanie wymaga przesłania dużej liczby zadań do wykonania. Do puli można przypisać formułę skalowania, która dostosowuje liczbę węzłów w puli w oparciu o bieżącą liczbę zadań podrzędnych w kolejce oraz szybkość ich wykonywania w ramach zadania. Usługa Batch okresowo ocenia formułę i zmienia rozmiar puli w oparciu o obciążenie i innych ustawień formuły. Usługa dodaje węzły w przypadku dużej liczby zadań podrzędnych w kolejce i usuwa węzły w przypadku braku zadań podrzędnych, które znajdują się w kolejce lub są uruchomione.

Formuła skalowania może opierać się na następujących metrykach:

  • Metryki czasu — na podstawie danych statystycznych zbieranych co pięć minut przez określoną liczbę godzin.
  • Metryki zasobów — na podstawie użycia procesora, wykorzystania przepustowości, użycia pamięci i liczby węzłów.
  • Metryki zadań podrzędnych — na podstawie stanu zadania podrzędnego, takiego jak Aktywne (w kolejce), Uruchomione lub Ukończone.

Ponieważ automatyczne skalowanie zmniejsza liczbę węzłów obliczeniowych w puli, należy rozważyć sposób obsługi zadań podrzędnych wykonywanych w czasie operacji zmniejszania tej liczby. Aby to umożliwić, usługa Batch oferuje opcje cofnięcia alokacji węzłów umieszczanych w formułach. Możesz na przykład zdecydować, że przed usunięciem węzła z puli uruchomione zadania podrzędne będą zatrzymywane natychmiast i ponownie umieszczane w kolejce do wykonania w innym węźle albo ich wykonywanie zostanie najpierw ukończone. Należy pamiętać, że ustawienie opcji cofania przydziału węzła jako taskcompletion lub retaineddata uniemożliwi operacje zmiany rozmiaru puli do czasu ukończenia wszystkich zadań lub wszystkich okresów przechowywania zadań wygasły odpowiednio.

Więcej informacji na temat automatycznego skalowania aplikacji znajduje się w temacie Automatically scale compute nodes in an Azure Batch pool (Automatyczne skalowanie węzłów obliczeniowych w puli usługi Azure Batch).

Napiwek

Aby maksymalnie zwiększyć wykorzystanie zasobów obliczeniowych, ustaw docelową liczbę węzłów na zero na końcu zadania, ale zezwól, aby uruchomione zadania zostały ukończone.

Zasady planowania zadań podrzędnych

Opcja konfiguracji maksymalnej liczby zadań podrzędnych na węzeł określa maksymalną liczbę zadań podrzędnych, które można uruchomić równolegle w poszczególnych węzłach obliczeniowych w ramach puli.

Domyślna konfiguracja polega na tym, że w danym momencie w węźle jest uruchamiane jedno zadanie podrzędne, ale istnieją scenariusze, w których korzystne jest, aby w danym momencie w węźle było wykonywanych więcej zadań podrzędnych. Zobacz przykładowy scenariusz w artykule dotyczącym równoczesnych zadań podrzędnych węzła, aby dowiedzieć się, jak można korzystać z wielu zadań podrzędnych w jednym węźle.

Można również określić typ wypełnienia, który określa, czy usługa Batch rozdziela zadania równomiernie we wszystkich węzłach w puli, czy pakuje każdy węzeł z maksymalną liczbą zadań przed przypisaniem zadań do innego węzła.

Stan komunikacji

W większości przypadków zadania podrzędne działają niezależnie i nie muszą komunikować się ze sobą. Jednak w niektórych aplikacjach będzie wymagana komunikacja między zadaniami podrzędnymi (np. w scenariuszach MPI).

Pulę można skonfigurować tak, aby zezwalała na komunikację międzywęzłową, aby węzły w puli mogły komunikować się w czasie wykonywania. Po włączeniu komunikacji międzywęzłowej węzły w pulach konfiguracji usług Cloud Services mogą komunikować się ze sobą na portach większych niż 1100, a w przypadku pul konfiguracji usługi Virtual Machines ruch nie jest ograniczony do żadnego portu.

Włączenie komunikacji międzywęzłowej ma również wpływ na umieszczanie węzłów w klastrach i może ograniczyć maksymalną liczbę węzłów w puli z powodu ograniczeń wdrażania. Jeśli aplikacja nie wymaga komunikacji między węzłami, usługa Batch może przydzielić potencjalnie dużą liczbę węzłów do puli z wielu różnych klastrów i centrów danych, aby umożliwić zwiększoną równoległą moc przetwarzania.

Uruchamianie zadań

W razie potrzeby można dodać zadanie uruchamiania, które będzie wykonywane w każdym węźle, gdy węzeł dołącza do puli, i za każdym razem, gdy węzeł jest ponownie uruchamiany lub odtwarzany. Zadanie podrzędne uruchamiania jest szczególnie przydatne w przypadku przygotowywania węzłów obliczeniowych do wykonywania zadań podrzędnych, takich jak instalowanie aplikacji, które będą uruchamiane przez zadania podrzędne w tych węzłach.

Pakiety aplikacji

Można wybrać pakiety aplikacji do wdrożenia w węzłach obliczeniowych w puli. Pakiety aplikacji umożliwiają uproszczone wdrażanie aplikacji uruchamianych w ramach zadań podrzędnych oraz zarządzanie ich wersjami. Pakiety aplikacji wybrane dla puli są instalowane w każdym węźle dołączanym do puli oraz za każdym razem, gdy węzeł jest ponownie uruchamiany lub odtwarzany z obrazu.

Aby uzyskać więcej informacji o używaniu pakietów aplikacji do wdrażania aplikacji w węzłach usługi Batch, zobacz temat Deploy applications to compute nodes with Batch application packages (Wdrażanie aplikacji w węzłach obliczeniowych za pomocą pakietów aplikacji usługi Batch).

Konfiguracja sieci wirtualnej i zapory

Podczas aprowizowania puli węzłów obliczeniowych w usłudze Batch możesz ją skojarzyć z podsiecią sieci wirtualnej platformy Azure. Aby korzystać z sieci wirtualnej platformy Azure, interfejs API klienta usługi Batch musi używać uwierzytelniania Firmy Microsoft Entra. Obsługa usługi Azure Batch dla identyfikatora Entra firmy Microsoft jest udokumentowana w temacie Uwierzytelnianie rozwiązań usługi Batch za pomocą usługi Active Directory.

Wymagania dotyczące sieci wirtualnej

Aby uzyskać więcej informacji na temat konfigurowania puli usługi Batch w sieci wirtualnej, zobacz Create a pool of virtual machines with your virtual network (Tworzenie puli maszyn wirtualnych przy użyciu sieci wirtualnej).

Napiwek

Aby upewnić się, że publiczne adresy IP używane do uzyskiwania dostępu do węzłów nie ulegają zmianie, możesz utworzyć pulę z określonymi publicznymi adresami IP, które kontrolujesz.

Okres istnienia puli i węzła obliczeniowego

Podczas projektowania rozwiązania usługi Azure Batch należy określić, jak i kiedy są tworzone pule, oraz jak długo węzły obliczeniowe w tych pulach są dostępne.

Z jednej strony można utworzyć pulę dla każdego przesyłanego zadania i usunąć pulę, gdy tylko zakończy się wykonywanie zadań podrzędnych. Pozwala to zmaksymalizować wykorzystanie, ponieważ węzły są przydzielane tylko w razie potrzeby i są zamykane po bezczynności. Chociaż oznacza to, że zadanie musi czekać na przydzielenie węzłów, należy pamiętać, że zadania są zaplanowane do wykonania, gdy tylko węzły zostaną przydzielone indywidualnie, a zadanie uruchamiania zostało ukończone. Usługa Batch nie oczekuje, aż wszystkie węzły w puli zostaną udostępnione przed przypisaniem zadań podrzędnych do węzłów. Dzięki temu zapewnia maksymalne wykorzystanie wszystkich dostępnych węzłów.

Z drugiej strony, jeśli natychmiastowe uruchomienie zadań ma najwyższy priorytet, pula może zostać utworzona przed czasem, a jej węzły mogą zostać udostępnione przed przesłaniem zadań. W tym scenariuszu zadania podrzędne mogą być uruchamiane natychmiast, ale podczas oczekiwania na ich przypisanie węzły mogą być w stanie bezczynności.

Połączone podejście jest zwykle używane do obsługi zmiennej, ale ciągłego obciążenia. Można mieć pulę, w której przesłano wiele zadań, i można skalować liczbę węzłów w górę lub w dół zgodnie z obciążeniem zadania. Można to robić w sposób reaktywny, na podstawie bieżącego obciążenia, lub aktywny, jeśli obciążenie można przewidzieć. Aby uzyskać więcej informacji, zobacz Zasady automatycznego skalowania.

automatyczne

Pula automatyczna to pula tworzona przez usługę Batch po przesłaniu zadania, a nie tworzona przed zadaniami, które będą uruchamiane w puli. Usługa Batch będzie zarządzać okresem istnienia puli automatycznej zgodnie z określonymi cechami. Najczęściej te pule są również ustawiane na automatyczne usuwanie po zakończeniu zadań.

Zabezpieczenia oparte na certyfikatach

Zazwyczaj certyfikatów należy użyć podczas szyfrowania i odszyfrowywania poufnych informacji dotyczących zadań podrzędnych, np. klucza konta usługi Azure Storage. Aby to umożliwić, można zainstalować certyfikaty w węzłach. Zaszyfrowane klucze tajne są przekazywane do zadań za pomocą parametrów wiersza polecenia lub osadzane w jednym z zasobów zadań, a zainstalowanych certyfikatów można użyć do ich odszyfrowania.

Aby dodać certyfikat do konta usługi Batch, należy użyć operacji Dodaj certyfikat (interfejs API REST usługi Batch) lub metody CertificateOperations.CreateCertificate (platforma .NET usługi Batch). Następnie można skojarzyć certyfikat z nową lub istniejącą pulą.

Gdy certyfikat zostaje skojarzony z pulą, usługa Batch instaluje certyfikat w każdym węźle w puli. Usługa Batch instaluje odpowiednie certyfikaty podczas uruchamiania węzła przed uruchomieniem jakichkolwiek zadań (w tym zadania podrzędnego uruchamiania i menedżera zadań).

W przypadku dodania certyfikatu do istniejącej puli należy ponownie uruchomić jego węzły obliczeniowe, aby certyfikat został zastosowany do węzłów.

Następne kroki