Udostępnij za pośrednictwem


Wprowadzenie z węzłami obliczeniowymi systemu Linux w klastrze HPC Pack na platformie Azure

Ważne

Klasyczne maszyny wirtualne zostaną wycofane 1 marca 2023 r.

Jeśli używasz zasobów IaaS z usługi ASM, wykonaj migrację do 1 marca 2023 r. Zachęcamy do wcześniej przełączenia, 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.

Skonfiguruj klaster pakietu Microsoft HPC Pack na platformie Azure zawierający węzeł główny z uruchomionym serwerem Windows i kilkoma węzłami obliczeniowymi z obsługiwaną dystrybucją systemu Linux. Zapoznaj się z opcjami przenoszenia danych między węzłami systemu Linux i węzłem głównym klastra Windows. Dowiedz się, jak przesyłać zadania HPC systemu Linux do klastra.

Uwaga

Platforma Azure ma dwa różne modele wdrażania związane z tworzeniem zasobów i pracą z nimi: Resource Manager i model klasyczny. W tym artykule przedstawiono oba modele, ale firma Microsoft zaleca przeprowadzanie większości nowych wdrożeń z zastosowaniem modelu wdrażania przy użyciu usługi Azure Resource Manager.

Na wysokim poziomie na poniższym diagramie przedstawiono utworzony i współdziałany klaster pakietu HPC Pack.

HPC Pack cluster with Linux nodes

Aby uzyskać inne opcje uruchamiania obciążeń HPC systemu Linux na platformie Azure, zobacz Zasoby techniczne dotyczące przetwarzania wsadowego i obliczeń o wysokiej wydajności.

Wdrażanie klastra pakietu HPC Pack przy użyciu węzłów obliczeniowych systemu Linux

W tym artykule przedstawiono dwie opcje wdrażania klastra pakietu HPC Pack na platformie Azure z węzłami obliczeniowymi systemu Linux. Obie metody używają obrazu witryny Marketplace serwera Windows z pakietem HPC Pack w celu utworzenia węzła głównego.

  • Szablon usługi Azure Resource Manager — użyj szablonu z Azure Marketplace lub szablonu Szybkiego startu ze społeczności, aby zautomatyzować tworzenie klastra w modelu wdrażania Resource Manager. Na przykład szablon klastra HPC Pack dla obciążeń systemu Linux w Azure Marketplace tworzy pełną infrastrukturę klastra HPC Pack dla obciążeń HPC Dla systemu Linux.
  • Skrypt programu PowerShell — użyj skryptu wdrażania IaaS pakietu Microsoft HPC Pack (New-HpcIaaSCluster.ps1), aby zautomatyzować kompletne wdrożenie klastra w klasycznym modelu wdrażania. Ten skrypt Azure PowerShell używa obrazu maszyny wirtualnej pakietu HPC Pack w Azure Marketplace do szybkiego wdrażania i zapewnia kompleksowy zestaw parametrów konfiguracji do wdrażania węzłów obliczeniowych systemu Linux.

Aby uzyskać więcej informacji na temat opcji wdrażania klastra HPC Pack na platformie Azure, zobacz Opcje tworzenia klastra obliczeń o wysokiej wydajności (HPC) na platformie Azure i zarządzania nim za pomocą pakietu Microsoft HPC Pack.

Wymagania wstępne

  • Subskrypcja platformy Azure — możesz użyć subskrypcji w usłudze Azure Global lub Azure China. Jeśli go nie masz, możesz utworzyć bezpłatne konto w zaledwie kilka minut.

  • Limit przydziału rdzeni — może być konieczne zwiększenie limitu przydziału rdzeni, zwłaszcza jeśli zdecydujesz się wdrożyć kilka węzłów klastra z wielordzeniowymi rozmiarami maszyn wirtualnych. Aby zwiększyć limit przydziału, otwórz żądanie pomocy technicznej online bez opłat.

  • Dystrybucje systemu Linux — obecnie pakiet HPC Pack obsługuje następujące dystrybucje systemu Linux dla węzłów obliczeniowych. Możesz użyć wersji witryny Marketplace tych dystrybucji, jeśli są dostępne, lub podać własne.

    • Oparte na systemie CentOS: 6.5, 6.6, 6.7, 7.0, 7.1, 7.2, 6.5 HPC, 7.1 HPC

    • Red Hat Enterprise Linux: 6.7, 6.8, 7.2

    • SUSE Linux Enterprise Server: SLES 12, SLES 12 (Premium), SLES 12 SP1, SLES 12 SP1 (Premium), SLES 12 for HPC, SLES 12 for HPC (Premium)

    • Ubuntu Server: 14.04 LTS, 16.04 LTS

      Porada

      Aby użyć sieci RDMA platformy Azure z jednym z rozmiarów maszyn wirtualnych obsługujących funkcję RDMA, określ obraz HPC oparty na technologii SUSE Linux Enterprise Server 12 HPC lub CentOS z Azure Marketplace. Aby uzyskać więcej informacji, zobacz Rozmiary maszyn wirtualnych obliczeniowych o wysokiej wydajności.

Dodatkowe wymagania wstępne dotyczące wdrażania klastra przy użyciu skryptu wdrażania IaaS pakietu HPC Pack:

  • Komputer kliencki — do uruchomienia skryptu wdrażania klastra potrzebny jest komputer kliencki oparty na Windows.
  • - Azure PowerShell Zainstaluj i skonfiguruj Azure PowerShell (wersja 0.8.10 lub nowsza) na komputerze klienckim.
  • Skrypt wdrażania IaaS pakietu HPC Pack — pobierz i rozpakuj najnowszą wersję skryptu z Centrum pobierania Microsoft. Możesz sprawdzić wersję skryptu, uruchamiając polecenie .\New-HPCIaaSCluster.ps1 –Version. Ten artykuł jest oparty na wersji 4.4.1 lub nowszej skryptu.

Opcja wdrożenia 1. Używanie szablonu usługi Resource Manager

  1. Przejdź do szablonu pakietów HPC Pack dla obciążeń systemu Linux w Azure Marketplace, a następnie kliknij pozycję Wdróż.

  2. W Azure Portal przejrzyj informacje, a następnie kliknij przycisk Utwórz.

    Portal creation

  3. W bloku Podstawy wprowadź nazwę klastra, która również nazywa maszynę wirtualną węzła głównego. Możesz wybrać istniejącą grupę zasobów lub utworzyć grupę dla wdrożenia w lokalizacji dostępnej dla Ciebie. Lokalizacja wpływa na dostępność niektórych rozmiarów maszyn wirtualnych i innych usług platformy Azure (zobacz Produkty dostępne według regionów).

  4. W bloku Ustawienia węzła głównego dla pierwszego wdrożenia można ogólnie zaakceptować ustawienia domyślne.

    Uwaga

    Adres URL skryptu po konfiguracji to opcjonalne ustawienie umożliwiające określenie publicznie dostępnego skryptu Windows PowerShell, który chcesz uruchomić na maszynie wirtualnej węzła głównego po jego uruchomieniu.

  5. W bloku Ustawienia węzła obliczeniowego wybierz wzorzec nazewnictwa dla węzłów, liczbę i rozmiar węzłów oraz dystrybucję systemu Linux do wdrożenia.

  6. W bloku Ustawienia infrastruktury wprowadź nazwy dla sieci wirtualnej i domeny usługi Active Directory, domeny i poświadczeń administratora maszyny wirtualnej oraz wzorzec nazewnictwa dla kont magazynu.

    Uwaga

    Pakiet HPC Pack używa domeny usługi Active Directory do uwierzytelniania użytkowników klastra.

  7. Po uruchomieniu testów weryfikacji i przejrzeniu warunków użytkowania kliknij przycisk Kup.

Opcja wdrożenia 2. Korzystanie ze skryptu wdrażania IaaS

Poniżej przedstawiono dodatkowe wymagania wstępne dotyczące wdrażania klastra przy użyciu skryptu wdrażania IaaS pakietu HPC Pack:

  • Komputer kliencki — do uruchomienia skryptu wdrażania klastra potrzebny jest komputer kliencki oparty na Windows.
  • - Azure PowerShell Zainstaluj i skonfiguruj Azure PowerShell (wersja 0.8.10 lub nowsza) na komputerze klienckim.
  • Skrypt wdrażania IaaS pakietu HPC Pack — pobierz i rozpakuj najnowszą wersję skryptu z Centrum pobierania Microsoft. Możesz sprawdzić wersję skryptu, uruchamiając polecenie .\New-HPCIaaSCluster.ps1 –Version. Ten artykuł jest oparty na wersji 4.4.1 lub nowszej skryptu.

Plik konfiguracji XML

Skrypt wdrażania IaaS pakietu HPC Pack używa pliku konfiguracji XML jako danych wejściowych w celu opisania klastra HPC. Poniższy przykładowy plik konfiguracji określa mały klaster składający się z węzła głównego pakietu HPC Pack i dwóch rozmiarów węzłów obliczeniowych systemu Linux A7 CentOS 7.0 Linux.

Zmodyfikuj plik zgodnie z potrzebami dla środowiska i żądanej konfiguracji klastra, a następnie zapisz go przy użyciu nazwy, takiej jak HPCDemoConfig.xml. Na przykład musisz podać nazwę subskrypcji oraz unikatową nazwę konta magazynu i nazwę usługi w chmurze. Ponadto możesz wybrać inny obsługiwany obraz systemu Linux dla węzłów obliczeniowych. Aby uzyskać więcej informacji na temat elementów w pliku konfiguracji, zobacz plik Manual.rtf w folderze script i Tworzenie klastra HPC za pomocą skryptu wdrażania IaaS pakietu HPC Pack.

<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
  <Subscription>
    <SubscriptionName>Subscription-1</SubscriptionName>
    <StorageAccount>allvhdsje</StorageAccount>
  </Subscription>
  <Location>Japan East</Location>  
  <VNet>
    <VNetName>centos7rdmavnetje</VNetName>
    <SubnetName>CentOS7RDMACluster</SubnetName>
  </VNet>
  <Domain>
    <DCOption>HeadNodeAsDC</DCOption>
    <DomainFQDN>hpc.local</DomainFQDN>
  </Domain>
  <Database>
    <DBOption>LocalDB</DBOption>
  </Database>
  <HeadNode>
    <VMName>CentOS7RDMA-HN</VMName>
    <ServiceName>centos7rdma-je</ServiceName>
  <VMSize>ExtraLarge</VMSize>
  <EnableRESTAPI />
  <EnableWebPortal />
  </HeadNode>
  <LinuxComputeNodes>
    <VMNamePattern>CentOS7RDMA-LN%1%</VMNamePattern>
    <ServiceName>centos7rdma-je</ServiceName>
    <VMSize>A7</VMSize>
    <NodeCount>2</NodeCount>
    <ImageName>5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-70-20150325</ImageName>
  </LinuxComputeNodes>
</IaaSClusterConfig>

Aby uruchomić skrypt wdrożenia IaaS pakietu HPC Pack

  1. Otwórz Windows PowerShell na komputerze klienckim jako administrator.

  2. Zmień katalog na folder, w którym jest zainstalowany skrypt (E:\IaaSClusterScript w tym przykładzie).

    cd E:\IaaSClusterScript
    
  3. Uruchom następujące polecenie, aby wdrożyć klaster HPC Pack. W tym przykładzie przyjęto założenie, że plik konfiguracji znajduje się w E:\HPCDemoConfig.xml

    .\New-HpcIaaSCluster.ps1 –ConfigFile E:\HPCDemoConfig.xml –AdminUserName MyAdminName
    

    a. Ponieważ element AdminPassword nie jest określony w poprzednim poleceniu, zostanie wyświetlony monit o wprowadzenie hasła użytkownika MyAdminName.

    b. Następnie skrypt rozpoczyna walidację pliku konfiguracji. Może upłynąć do kilku minut w zależności od połączenia sieciowego.

    Validation

    c. Po zakończeniu weryfikacji skrypt wyświetla listę zasobów klastra do utworzenia. Wprowadź wartość Y , aby kontynuować.

    Resources

    d. Skrypt rozpoczyna wdrażanie klastra HPC Pack i kończy konfigurację bez dalszych kroków ręcznych. Skrypt może działać przez kilka minut.

    Deploy

    Uwaga

    W tym przykładzie skrypt generuje plik dziennika automatycznie, ponieważ parametr -LogFile nie jest określony. Dzienniki nie są zapisywane w czasie rzeczywistym, ale są zbierane na końcu weryfikacji i wdrożenia. Jeśli proces programu PowerShell zostanie zatrzymany podczas działania skryptu, niektóre dzienniki zostaną utracone.

Połączenie do węzła głównego

Po wdrożeniu klastra PAKIETU HPC Pack na platformie Azure połącz się z maszyną wirtualną węzła głównego przy użyciu poświadczeń domeny podanych podczas wdrażania klastra (na przykład hpc\clusteradmin). Klaster można zarządzać z węzła głównego.

W węźle głównym uruchom menedżera klastra HPC, aby sprawdzić stan klastra HPC Pack. Węzły obliczeniowe systemu Linux można zarządzać i monitorować w taki sam sposób, jak w przypadku węzłów obliczeniowych Windows. Na przykład węzły systemu Linux są wyświetlane w temacie Zarządzanie zasobami (te węzły są wdrażane przy użyciu szablonu Systemu LinuxNode ).

Node Management

Węzły systemu Linux są również widoczne w widoku Mapa cieplna .

Heat map

Jak przenosić dane w klastrze z węzłami systemu Linux

Istnieje kilka opcji przenoszenia danych między węzłami systemu Linux i węzłem głównym klastra Windows. Poniżej przedstawiono trzy typowe metody opisane bardziej szczegółowo w poniższych sekcjach:

  • Azure File — udostępnia zarządzany udział plików SMB do przechowywania plików danych w usłudze Azure Storage. Windows węzły i węzły systemu Linux mogą instalować udział plików platformy Azure jako dysk lub folder w tym samym czasie, nawet jeśli są one wdrażane w różnych sieciach wirtualnych.
  • Udział SMB węzła głównego — instaluje standardowy folder Windows udostępniony węzła głównego w węzłach systemu Linux.
  • Serwer główny systemu plików NFS — udostępnia rozwiązanie do udostępniania plików dla mieszanego środowiska Windows i Linux.

Azure File Storage

Usługa Azure File udostępnia udziały plików przy użyciu standardowego protokołu SMB 2.1. Maszyny wirtualne platformy Azure i usługi w chmurze mogą udostępniać dane plików między składnikami aplikacji za pośrednictwem zainstalowanych udziałów, a aplikacje lokalne mogą uzyskiwać dostęp do danych plików w udziale za pośrednictwem interfejsu API magazynu plików.

Aby uzyskać szczegółowe instrukcje tworzenia udziału plików platformy Azure i instalowania go w węźle głównym, zobacz Wprowadzenie z usługą Azure File Storage w Windows. Aby zainstalować udział plików platformy Azure w węzłach systemu Linux, zobacz Jak używać usługi Azure File Storage z systemem Linux. Aby skonfigurować połączenia utrwalające, zobacz Utrwalanie połączeń z plikami Microsoft Azure.

W poniższym przykładzie utwórz udział plików platformy Azure na koncie magazynu. Aby zainstalować udział w węźle głównym, otwórz wiersz polecenia i wprowadź następujące polecenia:

cmdkey /add:allvhdsje.file.core.windows.net /user:allvhdsje /pass:<storageaccountkey>

net use Z: \\allvhdje.file.core.windows.net\rdma /persistent:yes

W tym przykładzie allvhdsje jest nazwą konta magazynu, kluczem konta magazynu jest klucz konta magazynu, a rdma to nazwa udziału plików platformy Azure. Udział plików platformy Azure jest instalowany jako Z: w węźle głównym.

Aby zainstalować udział plików platformy Azure w węzłach systemu Linux, uruchom polecenie clusrun w węźle głównym. Clusrun to przydatne narzędzie HPC Pack do wykonywania zadań administracyjnych w wielu węzłach. (Zobacz również Clusrun dla węzłów systemu Linux w tym artykule).

Otwórz okno Windows PowerShell i wprowadź następujące polecenia:

clusrun /nodegroup:LinuxNodes mkdir -p /rdma

clusrun /nodegroup:LinuxNodes mount -t cifs //allvhdsje.file.core.windows.net/rdma /rdma -o vers=2.1`,username=allvhdsje`,password=<storageaccountkey>'`,dir_mode=0777`,file_mode=0777

Pierwsze polecenie tworzy folder o nazwie /rdma we wszystkich węzłach w grupie LinuxNodes. Drugie polecenie instaluje udział plików platformy Azure allvhdsjw.file.core.windows.net/rdma w folderze /rdma z dir i bitami trybu plików ustawionymi na 777. W drugim poleceniu allvhdsje jest nazwą konta magazynu, a kluczem konta magazynu jest klucz konta magazynu.

Uwaga

Symbol "'" w drugim poleceniu jest symbolem ucieczki dla programu PowerShell. "'", oznacza, że znak "", (znak przecinka) jest częścią polecenia.

Udział węzła głównego

Alternatywnie zainstaluj udostępniony folder węzła głównego w węzłach systemu Linux. Udział zapewnia najprostszy sposób udostępniania plików, ale węzeł główny i wszystkie węzły systemu Linux muszą zostać wdrożone w tej samej sieci wirtualnej. Oto odpowiednia procedura:

  1. Utwórz folder w węźle głównym i udostępnij go wszystkim z uprawnieniami do odczytu/zapisu. Na przykład udostępnij D:\OpenFOAM w węźle głównym jako \CentOS7RDMA-HN\OpenFOAM. Tutaj CentOS7RDMA-HN jest nazwą hosta węzła głównego.

    File share permissions

    File sharing

  2. Otwórz okno Windows PowerShell i uruchom następujące polecenia:

    clusrun /nodegroup:LinuxNodes mkdir -p /openfoam
    
    clusrun /nodegroup:LinuxNodes mount -t cifs //CentOS7RDMA-HN/OpenFOAM /openfoam -o vers=2.1`,username=<username>`,password='<password>'`,dir_mode=0777`,file_mode=0777
    

Pierwsze polecenie tworzy folder o nazwie /openfoam we wszystkich węzłach w grupie LinuxNodes. Drugie polecenie instaluje folder udostępniony //CentOS7RDMA-HN/OpenFOAM w folderze z bitami dir i trybu plików ustawionymi na 777. Nazwa użytkownika i hasło w poleceniu powinny być nazwą użytkownika i hasłem użytkownika klastra w węźle głównym. (Zobacz Dodawanie lub usuwanie użytkowników klastra).

Uwaga

Symbol "'" w drugim poleceniu jest symbolem ucieczki dla programu PowerShell. "'", oznacza, że znak "", (znak przecinka) jest częścią polecenia.

Serwer NFS

Usługa NFS umożliwia udostępnianie i migrowanie plików między komputerami z systemem operacyjnym Windows Server 2012 przy użyciu protokołu SMB i komputerów z systemem Linux przy użyciu protokołu NFS. Serwer NFS i wszystkie inne węzły muszą zostać wdrożone w tej samej sieci wirtualnej. Zapewnia lepszą zgodność z węzłami systemu Linux w porównaniu z udziałem SMB. Na przykład obsługuje linki do plików.

  1. Aby zainstalować i skonfigurować serwer NFS, wykonaj kroki opisane w temacie Serwer dla pierwszego udziału systemu plików sieciowych.

    Na przykład utwórz udział NFS o nazwie nfs z następującymi właściwościami:

    NFS authorization

    NFS share permissions

    NFS NTFS permissions

    NFS management properties

  2. Otwórz okno Windows PowerShell i uruchom następujące polecenia:

    clusrun /nodegroup:LinuxNodes mkdir -p /nfsshare
    
    clusrun /nodegroup:LinuxNodes mount CentOS7RDMA-HN:/nfs /nfsshared
    

    Pierwsze polecenie tworzy folder o nazwie /nfsshared we wszystkich węzłach w grupie LinuxNodes. Drugie polecenie instaluje udział NFS CentOS7RDMA-HN:/nfs w folderze. Tutaj CentOS7RDMA-HN:/nfs jest ścieżką zdalną udziału NFS.

Jak przesyłać zadania

Istnieje kilka sposobów przesyłania zadań do klastra HPC Pack:

  • Menedżer klastra HPC lub graficzny interfejs użytkownika menedżera zadań HPC
  • Portal internetowy HPC
  • Interfejs API REST

Przesyłanie zadań do klastra na platformie Azure za pośrednictwem narzędzi gui pakietu HPC Pack i portalu internetowego HPC jest takie samo jak w przypadku węzłów obliczeniowych Windows. Zobacz Menedżer zadań pakietu HPC Pack i Jak przesyłać zadania z lokalnego komputera klienckiego.

Aby przesłać zadania za pośrednictwem interfejsu API REST, zobacz Tworzenie i przesyłanie zadań przy użyciu interfejsu API REST w pakiecie Microsoft HPC Pack. Aby przesłać zadania z klienta systemu Linux, zapoznaj się również z przykładem języka Python w zestawie SDK pakietu HPC Pack.

Clusrun dla węzłów systemu Linux

Narzędzie clusrun pakietu HPC Pack może służyć do wykonywania poleceń w węzłach systemu Linux za pomocą wiersza polecenia lub menedżera klastra HPC. Poniżej przedstawiono kilka podstawowych przykładów.

  • Pokaż bieżące nazwy użytkowników we wszystkich węzłach w klastrze.

    clusrun whoami
    
  • Zainstaluj narzędzie debugera gdb z yum na wszystkich węzłach w grupie linuxnodes, a następnie uruchom ponownie węzły po 10 minutach.

    clusrun /nodegroup:linuxnodes yum install gdb –y; shutdown –r 10
    
  • Utwórz skrypt powłoki wyświetlający każdą liczbę od 1 do 10 na jedną sekundę w każdym węźle systemu Linux w klastrze, uruchomić go i natychmiast wyświetlić dane wyjściowe z węzłów.

    clusrun /interleaved /nodegroup:linuxnodes echo \"for i in {1..10}; do echo \\\"\$i\\\"; sleep 1; done\" ^> script.sh; chmod +x script.sh; ./script.sh
    

Uwaga

W poleceniach clusrun może być konieczne użycie pewnych znaków ucieczki. Jak pokazano w tym przykładzie, użyj polecenia ^ w wierszu polecenia, aby uciec od symbolu ">".

Następne kroki