Tworzenie klastra Windows obliczeń o wysokiej wydajności (HPC) za pomocą skryptu wdrażania IaaS pakietu HPC Pack
Ważne
Klasyczne maszyny wirtualne zostaną wycofane 1 marca 2023 r.
Jeśli używasz zasobów IaaS z usługi ASM, ukończ migrację do 1 marca 2023 r. Zachęcamy do skorzystania z tego przełącznika wcześniej, aby skorzystać z wielu ulepszeń funkcji w usłudze Azure Resource Manager.
Aby uzyskać więcej informacji, zobacz Migrowanie zasobów IaaS do usługi Azure Resource Manager do 1 marca 2023 r.
Uruchom skrypt programu PowerShell wdrażania IaaS pakietu HPC Pack, aby wdrożyć kompletny klaster HPC Pack 2012 R2 dla obciążeń Windows na maszynach wirtualnych platformy Azure. Klaster składa się z przyłączanego do usługi Active Directory węzła głównego z uruchomionym programem Windows Server i pakietem Microsoft HPC Pack oraz Windows zasobów obliczeniowych. Jeśli chcesz wdrożyć klaster hpc pack na platformie Azure dla obciążeń systemu Linux, zobacz Tworzenie klastra HPC systemu Linux za pomocą skryptu wdrażania IaaS pakietu HPC Pack.
Ważne
Skrypt programu PowerShell opisany w tym artykule tworzy klaster pakietu Microsoft HPC Pack 2012 R2 na platformie Azure przy użyciu klasycznego modelu wdrażania. Firma Microsoft zaleca, aby w przypadku większości nowych wdrożeń korzystać z modelu opartego na programie Resource Manager. Ponadto skrypt opisany w tym artykule nie obsługuje pakietu HPC Pack 2016. Aby uzyskać informacje Resource Manager szablonów dla pakietu HPC Pack 2012 R2 i HPC Pack 2016, zobacz opcje wdrażania klastra HPC Pack na platformie Azure.
W zależności od środowiska i opcji skrypt może utworzyć całą infrastrukturę klastra, w tym sieć wirtualną platformy Azure, konta magazynu, usługi w chmurze, kontroler domeny, zdalne lub lokalne bazy danych SQL, węzeł główny i dodatkowe węzły klastra. Alternatywnie skrypt może używać istniejącej infrastruktury platformy Azure i tworzyć tylko węzły klastra HPC.
Aby uzyskać podstawowe informacje na temat planowania klastra hpc pack, zobacz temat Ocena produktu i planowanie oraz Wprowadzenie w bibliotece TechNet pakietu HPC Pack 2012 R2.
Wymagania wstępne
- Subskrypcja platformy Azure: możesz użyć subskrypcji w globalnej usłudze Platformy Azure lub chińskiej usłudze Azure. Limity subskrypcji mają wpływ na liczbę i typ węzłów klastra, które można wdrożyć. Aby uzyskać więcej informacji, zobacz Azure subscription and service limits, quotas, and constraints (Limity, przydziały i ograniczenia usług i subskrypcji platformy Azure).
- Windows klienta z zainstalowanym i skonfigurowanym programem Azure PowerShell w wersji 0.8.10 lub nowszej: zobacz Wprowadzenie with Azure PowerShell (Usługa Wprowadzenie z usługą Azure PowerShell), aby uzyskać instrukcje instalacji i kroki nawiązywania połączenia z subskrypcją platformy Azure.
-
Skrypt wdrażania IaaS pakietu HPC Pack: pobierz i rozpakuj najnowszą wersję skryptu z Centrum pobierania Microsoft. Sprawdź wersję skryptu, uruchamiając .
New-HPCIaaSCluster.ps1 –Version
Ten artykuł jest oparty na wersji 4.5.2 skryptu. - Plik konfiguracji skryptu: utwórz plik XML używany przez skrypt do konfigurowania klastra HPC. Aby uzyskać informacje i przykłady, zobacz sekcje w dalszej części tego artykułu i plik Manual.rtf, który jest dołączany do skryptu wdrażania.
Składnia
New-HPCIaaSCluster.ps1 [-ConfigFile] <String> [-AdminUserName]<String> [[-AdminPassword] <String>] [[-HPCImageName] <String>] [[-LogFile] <String>] [-Force] [-NoCleanOnFailure] [-PSSessionSkipCACheck] [<CommonParameters>]
Uwaga
Uruchom skrypt jako administrator.
Parametry
ConfigFile: określa ścieżkę pliku konfiguracji do opisania klastra HPC. Zobacz więcej informacji o pliku konfiguracji w tym temacie lub w pliku Manual.rtf w folderze zawierającym skrypt.
AdminUserName: określa nazwę użytkownika. Jeśli las domeny jest tworzony przez skrypt, staje się to nazwą użytkownika administratora lokalnego dla wszystkich maszyn wirtualnych i nazwą administratora domeny. Jeśli las domeny już istnieje, określa użytkownika domeny jako nazwę użytkownika administratora lokalnego, aby zainstalować pakiet HPC Pack.
AdminPassword: określa hasło administratora. Jeśli nie zostanie określony w wierszu polecenia, skrypt wyświetli monit o wprowadzenie hasła.
HPCImageName (opcjonalnie): określa nazwę obrazu maszyny wirtualnej pakietu HPC Pack używaną do wdrażania klastra HPC. Musi to być obraz pakietu HPC Pack dostarczony przez firmę Microsoft z Azure Marketplace. Jeśli nie zostanie określony (zwykle zalecane), skrypt wybierze najnowszy opublikowany obraz pakietu HPC Pack 2012 R2. Najnowszy obraz jest oparty na Windows Server 2012 R2 Datacenter z zainstalowanym pakietem HPC Pack 2012 R2 Update 3.
Uwaga
Wdrożenie kończy się niepowodzeniem, jeśli nie określisz prawidłowego obrazu pakietu HPC Pack.
LogFile (opcjonalnie): określa ścieżkę pliku dziennika wdrożenia. Jeśli nie zostanie określony, skrypt tworzy plik dziennika w katalogu tymczasowym komputera, na którym jest uruchomiony skrypt.
Wymuszaj (opcjonalnie): pomija wszystkie monity o potwierdzenie.
NoCleanOnFailure (opcjonalnie): określa, że maszyny wirtualne platformy Azure, które nie zostały pomyślnie wdrożone, nie zostaną usunięte. Usuń te maszyny wirtualne ręcznie przed ponownego uruchamiania skryptu w celu kontynuowania wdrażania lub wdrożenie może się nie powieść.
PSSessionSkipCACheck (opcjonalnie): dla każdej usługi w chmurze z maszynami wirtualnych wdrożonymi za pomocą tego skryptu platforma Azure automatycznie generuje certyfikat z podpisem własnym, a wszystkie maszyny wirtualne w usłudze w chmurze używają tego certyfikatu jako domyślnego certyfikatu usługi Windows Remote Management (WinRM). Aby wdrożyć funkcje HPC na tych komputerach wirtualnych platformy Azure, skrypt domyślnie tymczasowo instaluje te certyfikaty w magazynie Komputer lokalny\Zaufane główne urzędy certyfikacji komputera klienckiego, aby pominąć błąd zabezpieczeń "nie zaufany urząd certyfikacji" podczas wykonywania skryptu. Certyfikaty są usuwane po zakończeniu wykonywania skryptu. Jeśli ten parametr jest określony, certyfikaty nie są instalowane na komputerze klienckim, a ostrzeżenie o zabezpieczeniach jest pomijane.
Ważne
Ten parametr nie jest zalecany w przypadku wdrożeń produkcyjnych.
Przykład
Poniższy przykład tworzy klaster pakietu HPC Pack przy użyciu pliku konfiguracjiMyConfigFile.xmli określa poświadczenia administratora do instalowania klastra.
.\New-HPCIaaSCluster.ps1 –ConfigFile MyConfigFile.xml -AdminUserName <username> –AdminPassword <password>
Dodatkowe zagadnienia
- Skrypt może opcjonalnie włączyć przesyłanie zadań za pośrednictwem portalu internetowego pakietu HPC Pack lub interfejsu API REST pakietu HPC Pack.
- Skrypt może opcjonalnie uruchamiać niestandardowe skrypty przed i po konfiguracji w węźle głównym, jeśli chcesz zainstalować dodatkowe oprogramowanie lub skonfigurować inne ustawienia.
Plik konfiguracji
Plik konfiguracji skryptu wdrażania jest plikiem XML. Plik schematu HPCIaaSClusterConfig.xsd znajduje się w folderze skryptu wdrożenia IaaS pakietu HPC Pack. IaaSClusterConfig to główny element pliku konfiguracji, który zawiera elementy podrzędne opisane szczegółowo w pliku Manual.rtf w folderze skryptu wdrażania.
Przykładowe pliki konfiguracji
W poniższych przykładach zastąp własne wartości identyfikatorem lub nazwą subskrypcji oraz nazwami kont i usług.
Przykład 1
Poniższy plik konfiguracji wdraża klaster pakietu HPC Pack z węzłem głównym z lokalnymi bazami danych i pięcioma węzłami obliczeniowymi z systemem operacyjnym Windows Server 2012 R2. Wszystkie usługi w chmurze są tworzone bezpośrednio w lokalizacji Zachodnie stany USA. Węzeł główny działa jako kontroler domeny lasu domeny.
<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
<Subscription>
<SubscriptionId>08701940-C02E-452F-B0B1-39D50119F267</SubscriptionId>
<StorageAccount>mystorageaccount</StorageAccount>
</Subscription>
<Location>West US</Location>
<VNet>
<VNetName>MyVNet</VNetName>
<SubnetName>Subnet-1</SubnetName>
</VNet>
<Domain>
<DCOption>HeadNodeAsDC</DCOption>
<DomainFQDN>hpc.local</DomainFQDN>
</Domain>
<Database>
<DBOption>LocalDB</DBOption>
</Database>
<HeadNode>
<VMName>MyHeadNode</VMName>
<ServiceName>MyHPCService</ServiceName>
<VMSize>ExtraLarge</VMSize>
</HeadNode>
<ComputeNodes>
<VMNamePattern>MyHPCCN-%1000%</VMNamePattern>
<ServiceName>MyHPCCNService</ServiceName>
<VMSize>Medium</VMSize>
<NodeCount>5</NodeCount>
<OSVersion>WindowsServer2012R2</OSVersion>
</ComputeNodes>
</IaaSClusterConfig>
Przykład 2
Poniższy plik konfiguracji wdraża klaster pakietu HPC Pack w istniejącym lesie domeny. Klaster ma 1 węzeł główny z lokalnymi bazami danych i 12 węzłami obliczeniowymi z zastosowanym rozszerzeniem maszyny wirtualnej BGInfo. Automatyczna instalacja Windows jest wyłączona dla wszystkich maszyn wirtualnych w lesie domeny. Wszystkie usługi w chmurze są tworzone bezpośrednio w Azja Wschodnia lokalizacji. Węzły obliczeniowe są tworzone w trzech usługach w chmurze i trzech kontach magazynu: MyHPCCN-0001 do MyHPCCN-0005 w usługach MyHPCCNService01 i mycnstorage01; Od MyHPCCN-0006 do MyHPCCN0010 w usługach MyHPCCNService02i mycnstorage02; i MyHPCCN-0011 doMyHPCCN-0012 w myHPCCNService03i mycnstorage03). Węzły obliczeniowe są tworzone na podstawie istniejącego obrazu prywatnego przechwyconego z węzła obliczeniowego. Usługa automatycznego powiększania i zmniejszania jest włączona z domyślnymi interwałami wzrostu i zmniejszania.
<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
<Subscription>
<SubscriptionName>Subscription-1</SubscriptionName>
<StorageAccount>mystorageaccount</StorageAccount>
</Subscription>
<Location>East Asia</Location>
<VNet>
<VNetName>MyVNet</VNetName>
<SubnetName>Subnet-1</SubnetName>
</VNet>
<Domain>
<DCOption>NewDC</DCOption>
<DomainFQDN>hpc.local</DomainFQDN>
<DomainController>
<VMName>MyDCServer</VMName>
<ServiceName>MyHPCService</ServiceName>
<VMSize>Large</VMSize>
</DomainController>
<NoWindowsAutoUpdate />
</Domain>
<Database>
<DBOption>LocalDB</DBOption>
</Database>
<HeadNode>
<VMName>MyHeadNode</VMName>
<ServiceName>MyHPCService</ServiceName>
<VMSize>ExtraLarge</VMSize>
</HeadNode>
<Certificates>
<Certificate>
<Id>1</Id>
<PfxFile>d:\mytestcert1.pfx</PfxFile>
<Password>MyPsw!!2</Password>
</Certificate>
</Certificates>
<ComputeNodes>
<VMNamePattern>MyHPCCN-%0001%</VMNamePattern>
<ServiceNamePattern>MyHPCCNService%01%</ServiceNamePattern>
<MaxNodeCountPerService>5</MaxNodeCountPerService>
<StorageAccountNamePattern>mycnstorage%01%</StorageAccountNamePattern>
<VMSize>Medium</VMSize>
<NodeCount>12</NodeCount>
<ImageName HPCPackInstalled=”true”>MyHPCComputeNodeImage</ImageName>
<VMExtensions>
<VMExtension>
<ExtensionName>BGInfo</ExtensionName>
<Publisher>Microsoft.Compute</Publisher>
<Version>1.*</Version>
</VMExtension>
</VMExtensions>
</ComputeNodes>
<AutoGrowShrink>
<CertificateId>1</CertificateId>
</AutoGrowShrink>
</IaaSClusterConfig>
Przykład 3
Poniższy plik konfiguracji wdraża klaster pakietu HPC Pack w istniejącym lesie domeny. Klaster zawiera jeden węzeł główny, jeden serwer bazy danych z dyskiem danych 500 GB, dwa węzły brokera z systemem operacyjnym Windows Server 2012 R2 i pięć węzłów obliczeniowych z systemem operacyjnym Windows Server 2012 R2. Usługa w chmurze MyHPCCNService jest tworzona w grupie koligacji MyIBAffinityGroup, a inne usługi w chmurze są tworzone w grupie koligacji MyAffinityGroup. Interfejs API REST Job Scheduler HPC i portal internetowy HPC są włączone w węźle głównym.
<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
<Subscription>
<SubscriptionName>Subscription-1</SubscriptionName>
<StorageAccount>mystorageaccount</StorageAccount>
</Subscription>
<AffinityGroup>MyAffinityGroup</AffinityGroup>
<Location>East Asia</Location>
<VNet>
<VNetName>MyVNet</VNetName>
<SubnetName>Subnet-1</SubnetName>
</VNet>
<Domain>
<DCOption>ExistingDC</DCOption>
<DomainFQDN>hpc.local</DomainFQDN>
</Domain>
<Database>
<DBOption>NewRemoteDB</DBOption>
<DBVersion>SQLServer2014_Enterprise</DBVersion>
<DBServer>
<VMName>MyDBServer</VMName>
<ServiceName>MyHPCService</ServiceName>
<VMSize>ExtraLarge</VMSize>
<DataDiskSizeInGB>500</DataDiskSizeInGB>
</DBServer>
</Database>
<HeadNode>
<VMName>MyHeadNode</VMName>
<ServiceName>MyHPCService</ServiceName>
<VMSize>ExtraLarge</VMSize>
<EnableRESTAPI />
<EnableWebPortal />
</HeadNode>
<ComputeNodes>
<VMNamePattern>MyHPCCN-%0000%</VMNamePattern>
<ServiceName>MyHPCCNService</ServiceName>
<VMSize>A8</VMSize>
<NodeCount>5</NodeCount>
<AffinityGroup>MyIBAffinityGroup</AffinityGroup>
</ComputeNodes>
<BrokerNodes>
<VMNamePattern>MyHPCBN-%0000%</VMNamePattern>
<ServiceName>MyHPCBNService</ServiceName>
<VMSize>Medium</VMSize>
<NodeCount>2</NodeCount>
</BrokerNodes>
</IaaSClusterConfig>
Przykład 4
Poniższy plik konfiguracji wdraża klaster pakietu HPC Pack w istniejącym lesie domeny. Klaster ma dwa węzły główne z lokalnymi bazami danych, tworzone są dwa szablony węzłów platformy Azure oraz trzy średnie węzły platformy Azure dla szablonu węzła platformy Azure AzureTemplate1. Plik skryptu jest uruchamiany w węźle głównym po skonfigurowaniu węzła głównego.
<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
<Subscription>
<SubscriptionName>Subscription-1</SubscriptionName>
<StorageAccount>mystorageaccount</StorageAccount>
</Subscription>
<AffinityGroup>MyAffinityGroup</AffinityGroup>
<Location>East Asia</Location>
<VNet>
<VNetName>MyVNet</VNetName>
<SubnetName>Subnet-1</SubnetName>
</VNet>
<Domain>
<DCOption>ExistingDC</DCOption>
<DomainFQDN>hpc.local</DomainFQDN>
</Domain>
<Database>
<DBOption>LocalDB</DBOption>
</Database>
<HeadNode>
<VMName>MyHeadNode</VMName>
<ServiceName>MyHPCService</ServiceName>
<VMSize>ExtraLarge</VMSize>
<PostConfigScript>c:\MyHNPostActions.ps1</PostConfigScript>
</HeadNode>
<Certificates>
<Certificate>
<Id>1</Id>
<PfxFile>d:\mytestcert1.pfx</PfxFile>
<Password>MyPsw!!2</Password>
</Certificate>
<Certificate>
<Id>2</Id>
<PfxFile>d:\mytestcert2.pfx</PfxFile>
</Certificate>
</Certificates>
<AzureBurst>
<AzureNodeTemplate>
<TemplateName>AzureTemplate1</TemplateName>
<SubscriptionId>bb9252ba-831f-4c9d-ae14-9a38e6da8ee4</SubscriptionId>
<CertificateId>1</CertificateId>
<ServiceName>mytestsvc1</ServiceName>
<StorageAccount>myteststorage1</StorageAccount>
<NodeCount>3</NodeCount>
<RoleSize>Medium</RoleSize>
</AzureNodeTemplate>
<AzureNodeTemplate>
<TemplateName>AzureTemplate2</TemplateName>
<SubscriptionId>ad4b9f9f-05f2-4c74-a83f-f2eb73000e0b</SubscriptionId>
<CertificateId>1</CertificateId>
<ServiceName>mytestsvc2</ServiceName>
<StorageAccount>myteststorage2</StorageAccount>
<Proxy>
<UsesStaticProxyCount>false</UsesStaticProxyCount>
<ProxyRatio>100</ProxyRatio>
<ProxyRatioBase>400</ProxyRatioBase>
</Proxy>
<OSVersion>WindowsServer2012</OSVersion>
</AzureNodeTemplate>
</AzureBurst>
</IaaSClusterConfig>
Rozwiązywanie problemów
Błąd "Sieć wirtualna nie istnieje" — jeśli uruchamiasz skrypt w celu wdrożenia wielu klastrów jednocześnie na platformie Azure w ramach jednej subskrypcji, co najmniej jedno wdrożenie może się nie powieść z błędem "Sieć wirtualna VNet_Name nie istnieje". Jeśli ten błąd wystąpi, uruchom skrypt ponownie dla wdrożenia, które zakończyło się niepowodzeniem.
Problem z dostępem do Internetu z sieci wirtualnej platformy Azure — jeśli tworzysz klaster z nowym kontrolerem domeny przy użyciu skryptu wdrażania lub ręcznie podniesiesz maszynę wirtualną węzła głównego do kontrolera domeny, mogą wystąpić problemy z połączeniem maszyn wirtualnych z Internetem. Ten problem może wystąpić, jeśli serwer DNS usługi przesyłania dalej jest automatycznie konfigurowany na kontrolerze domeny, a ten serwer DNS usługi przesyłania dalej nie zostanie prawidłowo rozwiązany.
Aby rozwiązać ten problem, zaloguj się do kontrolera domeny i usuń ustawienie konfiguracji usługi przesyłania dalej lub skonfiguruj prawidłowy serwer DNS usługi przesyłania dalej. Aby skonfigurować to ustawienie, w Menedżer serwera narzędziaDNS> otworzyć Menedżera DNS, a następnie kliknij dwukrotnie usług przesyłania dalej.
Problem z dostępem do sieci RDMA z maszyn wirtualnych intensywnie korzystających z mocy obliczeniowej — jeśli dodasz maszyny wirtualne węzła obliczeniowego lub brokera serwera Windows przy użyciu rozmiaru z możliwością RDMA, takiego jak A8 lub A9, mogą wystąpić problemy z połączeniem tych maszyn wirtualnych z siecią aplikacji RDMA. Jednym z powodów wystąpienia tego problemu jest to, że rozszerzenie HpcVmDrivers nie jest poprawnie zainstalowane po dodaniu maszyn wirtualnych do klastra. Na przykład rozszerzenie może być zablokowane w stanie instalacji.
Aby rozwiązać ten problem, najpierw sprawdź stan rozszerzenia na maszyn wirtualnych. Jeśli rozszerzenie nie jest poprawnie zainstalowane, spróbuj usunąć węzły z klastra HPC, a następnie ponownie dodaj węzły. Możesz na przykład dodać maszyny wirtualne węzła obliczeniowego, uruchamiając skrypt Add-HpcIaaSNode.ps1 w węźle głównym.
Następne kroki
- Spróbuj uruchomić obciążenie testowe w klastrze. Przykład można znaleźć w przewodniku wprowadzenie do pakietu HPC Pack.
- Aby uzyskać samouczek dotyczący skryptu wdrożenia klastra i uruchamiania obciążenia HPC, zobacz Wprowadzenie with an HPC Pack cluster in Azure to run Excel and SOA workloads (Usługa Wprowadzenie z klastrem HPC Pack na platformie Azure w celu uruchamiania obciążeń Excel SOA.
- Wypróbuj narzędzia pakietu HPC Pack, aby uruchamiać, zatrzymywać, dodawać i usuwać węzły obliczeniowe z klastra, który tworzysz. Zobacz Zarządzanie węzłami obliczeniowymi w klastrze pakietu HPC Pack na platformie Azure.
- Aby skonfigurować przesyłanie zadań do klastra z komputera lokalnego, zobacz Submit HPC jobs from an on-premises computer to an HPC Pack cluster in Azure (Przesyłanie zadań HPC z komputera lokalnego do klastra HPC Pack na platformie Azure).