Kom igång med Linux-beräkningsnoder i ett HPC Pack-kluster i Azure
Viktigt
Klassiska virtuella datorer dras tillbaka den 1 mars 2023.
Om du använder IaaS-resurser från ASM slutför du migreringen senast den 1 mars 2023. Vi rekommenderar att du gör bytet snabbare för att dra nytta av de många funktionsförbättringarna i Azure Resource Manager.
Mer information finns i Migrera dina IaaS-resurser till Azure Resource Manager senast den 1 mars 2023.
Konfigurera ett Microsoft HPC Pack-kluster i Azure som innehåller en huvudnod som kör Windows Server och flera beräkningsnoder som kör en Linux-distribution som stöds. Utforska alternativ för att flytta data mellan Linux-noderna och Windows huvudnoden i klustret. Lär dig hur du skickar Linux HPC-jobb till klustret.
Anteckning
Azure har två olika distributionsmodeller för att skapa och arbeta med resurser: Resource Manager och klassisk. Den här artikeln täcker bägge modellerna, men Microsoft rekommenderar de flesta nya distributioner att använda Resource Manager-modellen.
På en hög nivå visar följande diagram det HPC Pack-kluster som du skapar och arbetar med.
Andra alternativ för att köra Linux HPC-arbetsbelastningar i Azure finns i Tekniska resurser för batchbaserad databehandling och databehandling med höga prestanda.
Distribuera ett HPC Pack-kluster med Linux-beräkningsnoder
Den här artikeln visar två alternativ för att distribuera ett HPC Pack-kluster i Azure med Linux-beräkningsnoder. Båda metoderna använder en Marketplace-avbildning av Windows Server med HPC Pack för att skapa huvudnoden.
- Azure Resource Manager-mall – Använd en mall från Azure Marketplace, eller en snabbstartsmall från communityn, för att automatisera skapandet av klustret i Resource Manager distributionsmodellen. Till exempel skapar mallen HPC Pack-kluster för Linux-arbetsbelastningar i Azure Marketplace en fullständig HPC Pack-klusterinfrastruktur för Linux HPC-arbetsbelastningar.
- PowerShell-skript – Använd IaaS-distributionsskriptet för Microsoft HPC Pack (New-HpcIaaSCluster.ps1) för att automatisera en fullständig klusterdistribution i den klassiska distributionsmodellen. Det här Azure PowerShell skriptet använder en virtuell HPC Pack-avbildning i Azure Marketplace för snabb distribution och tillhandahåller en omfattande uppsättning konfigurationsparametrar för att distribuera Linux-beräkningsnoder.
Mer information om distributionsalternativ för HPC Pack-kluster i Azure finns i Alternativ för att skapa och hantera ett HPC-kluster (databehandling med höga prestanda) i Azure med Microsoft HPC Pack.
Förutsättningar
Azure-prenumeration – Du kan använda en prenumeration i tjänsten Azure Global eller Azure China. Om du inte har något konto kan du skapa ett kostnadsfritt konto på bara några minuter.
Kärnkvot – Du kan behöva öka kvoten för kärnor, särskilt om du väljer att distribuera flera klusternoder med VM-storlekar med flera kärnor. Om du vill öka en kvot öppnar du en kundsupportbegäran online utan kostnad.
Linux-distributioner – HPC Pack stöder för närvarande följande Linux-distributioner för beräkningsnoder. Du kan använda Marketplace-versioner av dessa distributioner där det är tillgängligt eller ange dina egna.
CentOS-baserad: 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 för HPC, SLES 12 för HPC (Premium)
Ubuntu Server: 14.04 LTS, 16.04 LTS
Tips
Om du vill använda Azure RDMA-nätverket med någon av DE RDMA-kompatibla VM-storlekarna anger du en SUSE Linux Enterprise Server 12 HPC- eller CentOS-baserad HPC-avbildning från Azure Marketplace. Mer information finns i Vm-storlekar för beräkning med höga prestanda.
Ytterligare förutsättningar för att distribuera klustret med hjälp av IaaS-distributionsskriptet för HPC Pack:
- Klientdator – Du behöver en Windows-baserad klientdator för att köra klusterdistributionsskriptet.
- - Azure PowerShell Installera och konfigurera Azure PowerShell (version 0.8.10 eller senare) på klientdatorn.
-
HPC Pack IaaS-distributionsskript – Ladda ned och packa upp den senaste versionen av skriptet från Microsoft Download Center. Du kan kontrollera versionen av skriptet genom att köra
.\New-HPCIaaSCluster.ps1 –Version
. Den här artikeln baseras på version 4.4.1 eller senare av skriptet.
Distributionsalternativ 1. Använda en Resource Manager-mall
Gå till mallen HPC Pack-kluster för Linux-arbetsbelastningar i Azure Marketplace och klicka på Distribuera.
Granska informationen i Azure Portal och klicka sedan på Skapa.
På bladet Grundläggande anger du ett namn för klustret, som även namnger den virtuella datorn med huvudnoden. Du kan välja en befintlig resursgrupp eller skapa en grupp för distributionen på en plats som är tillgänglig för dig. Platsen påverkar tillgängligheten för vissa VM-storlekar och andra Azure-tjänster (se Tillgängliga produkter per region).
På bladet Inställningar för huvudnod kan du för en första distribution vanligtvis acceptera standardinställningarna.
Anteckning
URL för skript efter konfiguration är en valfri inställning för att ange ett offentligt tillgängligt Windows PowerShell skript som du vill köra på huvudnodens virtuella dator när den har körts.
På bladet Inställningar för beräkningsnod väljer du ett namngivningsmönster för noderna, antalet noder och storleken på noderna och den Linux-distribution som ska distribueras.
På bladet Infrastrukturinställningar anger du namn för det virtuella nätverket och autentiseringsuppgifterna för Active Directory-domän, domän och VM-administratör samt ett namngivningsmönster för lagringskontona.
Anteckning
HPC Pack använder Active Directory-domänen för att autentisera klusteranvändare.
När valideringstesterna har körts och du har granskat användningsvillkoren klickar du på Köp.
Distributionsalternativ 2. Använda IaaS-distributionsskriptet
Följande är ytterligare krav för att distribuera klustret med hjälp av IaaS-distributionsskriptet för HPC Pack:
- Klientdator – Du behöver en Windows-baserad klientdator för att köra klusterdistributionsskriptet.
- - Azure PowerShell Installera och konfigurera Azure PowerShell (version 0.8.10 eller senare) på klientdatorn.
-
HPC Pack IaaS-distributionsskript – Ladda ned och packa upp den senaste versionen av skriptet från Microsoft Download Center. Du kan kontrollera versionen av skriptet genom att köra
.\New-HPCIaaSCluster.ps1 –Version
. Den här artikeln baseras på version 4.4.1 eller senare av skriptet.
XML-konfigurationsfil
HPC Pack IaaS-distributionsskriptet använder en XML-konfigurationsfil som indata för att beskriva HPC-klustret. Följande exempelkonfigurationsfil anger ett litet kluster som består av en HPC Pack-huvudnod och två A7 CentOS 7.0 Linux-beräkningsnoder.
Ändra filen efter behov för din miljö och önskad klusterkonfiguration och spara den med ett namn som HPCDemoConfig.xml. Du måste till exempel ange ditt prenumerationsnamn och ett unikt lagringskontonamn och molntjänstnamn. Dessutom kanske du vill välja en annan Linux-avbildning som stöds för beräkningsnoderna. Mer information om elementen i konfigurationsfilen finns i filen Manual.rtf i skriptmappen och Skapa ett HPC-kluster med IaaS-distributionsskriptet för 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>
Så här kör du IaaS-distributionsskriptet för HPC Pack
Öppna Windows PowerShell på klientdatorn som administratör.
Ändra katalogen till mappen där skriptet är installerat (E:\IaaSClusterScript i det här exemplet).
cd E:\IaaSClusterScript
Kör följande kommando för att distribuera HPC Pack-klustret. Det här exemplet förutsätter att konfigurationsfilen finns i E:\HPCDemoConfig.xml
.\New-HpcIaaSCluster.ps1 –ConfigFile E:\HPCDemoConfig.xml –AdminUserName MyAdminName
a. Eftersom AdminPassword inte anges i föregående kommando uppmanas du att ange lösenordet för användaren MyAdminName.
b. Skriptet börjar sedan verifiera konfigurationsfilen. Det kan ta upp till flera minuter beroende på nätverksanslutningen.
c. När valideringarna har godkänts visar skriptet de klusterresurser som ska skapas. Ange Y för att fortsätta.
d. Skriptet börjar distribuera HPC Pack-klustret och slutför konfigurationen utan ytterligare manuella steg. Skriptet kan köras i flera minuter.
Anteckning
I det här exemplet genererar skriptet en loggfil automatiskt eftersom parametern -LogFile inte har angetts. Loggarna skrivs inte i realtid, men samlas in i slutet av verifieringen och distributionen. Om PowerShell-processen stoppas medan skriptet körs går vissa loggar förlorade.
Anslut till huvudnoden
När du har distribuerat HPC Pack-klustret i Azure ansluter du via Fjärrskrivbord till den virtuella datorn med huvudnoden med de domänautentiseringsuppgifter som du angav när du distribuerade klustret (till exempel hpc\clusteradmin). Du hanterar klustret från huvudnoden.
Starta HPC Cluster Manager på huvudnoden för att kontrollera HPC Pack-klustrets status. Du kan hantera och övervaka Linux-beräkningsnoder på samma sätt som du arbetar med Windows beräkningsnoder. Du kan till exempel se De Linux-noder som anges i Resurshantering (dessa noder distribueras med LinuxNode-mallen ).
Du ser även Linux-noderna i vyn Värmekarta .
Flytta data i ett kluster med Linux-noder
Du har flera alternativ för att flytta data mellan Linux-noder och Windows huvudnod i klustret. Här är tre vanliga metoder som beskrivs mer detaljerat i följande avsnitt:
- Azure File – Exponerar en hanterad SMB-filresurs för att lagra datafiler i Azure Storage. Windows noder och Linux-noder kan montera en Azure-filresurs som en enhet eller mapp samtidigt, även om de distribueras i olika virtuella nätverk.
- SMB-resurs för huvudnoder – Monterar en standardmapp Windows delad mapp för huvudnoden på Linux-noder.
- NFS-server för huvudnod – Tillhandahåller en fildelningslösning för en blandad Windows- och Linux-miljö.
Azure File Storage
Azure File-tjänsten exponerar filresurser med standardprotokollet SMB 2.1. Virtuella Azure-datorer och molntjänster kan dela fildata mellan programkomponenter via monterade resurser, och lokala program kan komma åt fildata i en resurs via API:et för fillagring.
Detaljerade steg för att skapa en Azure-filresurs och montera den på huvudnoden finns i Kom igång med Azure File Storage på Windows. Information om hur du monterar Azure-filresursen på Linux-noderna finns i Så här använder du Azure File Storage med Linux. Information om hur du konfigurerar beständiga anslutningar finns i Spara anslutningar till Microsoft Azure-filer.
I följande exempel skapar du en Azure-filresurs på ett lagringskonto. Om du vill montera resursen på huvudnoden öppnar du en kommandotolk och anger följande kommandon:
cmdkey /add:allvhdsje.file.core.windows.net /user:allvhdsje /pass:<storageaccountkey>
net use Z: \\allvhdje.file.core.windows.net\rdma /persistent:yes
I det här exemplet är allvhdsje ditt lagringskontonamn, storageaccountkey är din lagringskontonyckel och rdma är Namnet på Azure-filresursen. Azure-filresursen monteras som Z: på huvudnoden.
Om du vill montera Azure-filresursen på Linux-noder kör du ett clusrun-kommando på huvudnoden. Clusrun är ett användbart HPC Pack-verktyg för att utföra administrativa uppgifter på flera noder. (Se även Clusrun för Linux-noder i den här artikeln.)
Öppna ett Windows PowerShell fönster och ange följande kommandon:
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
Det första kommandot skapar en mapp med namnet /rdma på alla noder i gruppen LinuxNodes. Det andra kommandot monterar Azure-filresursen allvhdsjw.file.core.windows.net/rdma på mappen /rdma med dir- och fillägesbitar inställda på 777. I det andra kommandot är allvhdsje ditt lagringskontonamn och storageaccountkey är din lagringskontonyckel.
Anteckning
Symbolen "'" i det andra kommandot är en escape-symbol för PowerShell. "'," betyder att "," (kommatecken) är en del av kommandot.
Huvudnodresurs
Du kan också montera en delad mapp med huvudnoden på Linux-noder. En resurs är det enklaste sättet att dela filer, men huvudnoden och alla Linux-noder måste distribueras i samma virtuella nätverk. Gör så här:
Skapa en mapp på huvudnoden och dela den till Alla med läs-/skrivbehörighet. Du kan till exempel dela D:\OpenFOAM på huvudnoden som \CentOS7RDMA-HN\OpenFOAM. Här är CentOS7RDMA-HN huvudnodens värdnamn.
Öppna ett Windows PowerShell fönster och kör följande kommandon:
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
Det första kommandot skapar en mapp med namnet /openfoam på alla noder i gruppen LinuxNodes. Det andra kommandot monterar den delade mappen //CentOS7RDMA-HN/OpenFOAM på mappen med dir- och fillägesbitar inställda på 777. Användarnamnet och lösenordet i kommandot ska vara användarnamnet och lösenordet för en klusteranvändare på huvudnoden. (Se Lägga till eller ta bort klusteranvändare.)
Anteckning
Symbolen "'" i det andra kommandot är en escape-symbol för PowerShell. "'," betyder att "," (kommatecken) är en del av kommandot.
NFS-server
Med NFS-tjänsten kan du dela och migrera filer mellan datorer som kör Windows Server 2012 operativsystem med hjälp av SMB-protokollet och Linux-baserade datorer med hjälp av NFS-protokollet. NFS-servern och alla andra noder måste distribueras i samma virtuella nätverk. Det ger bättre kompatibilitet med Linux-noder jämfört med en SMB-resurs. Den stöder till exempel fillänkar.
Om du vill installera och konfigurera en NFS-server följer du stegen i Server for Network File System First Share End-to-End.
Skapa till exempel en NFS-resurs med namnet nfs med följande egenskaper:
Öppna ett Windows PowerShell fönster och kör följande kommandon:
clusrun /nodegroup:LinuxNodes mkdir -p /nfsshare clusrun /nodegroup:LinuxNodes mount CentOS7RDMA-HN:/nfs /nfsshared
Det första kommandot skapar en mapp med namnet /nfsshared på alla noder i gruppen LinuxNodes. Det andra kommandot monterar NFS-resursen CentOS7RDMA-HN:/nfs i mappen. Här är CentOS7RDMA-HN:/nfs fjärrsökvägen för din NFS-resurs.
Skicka jobb
Det finns flera sätt att skicka jobb till HPC Pack-klustret:
- HPC Cluster Manager eller HPC Job Manager GUI
- HPC-webbportal
- REST-API
Jobböverföring till klustret i Azure via HPC Pack GUI-verktyg och HPC-webbportalen är desamma som för Windows beräkningsnoder. Se HPC Pack Job Manager och Skicka jobb från en lokal klientdator.
Om du vill skicka jobb via REST-API:et läser du Skapa och skicka jobb med hjälp av REST-API:et i Microsoft HPC Pack. Om du vill skicka jobb från en Linux-klient läser du även Python-exemplet i HPC Pack SDK.
Clusrun för Linux-noder
Verktyget HPC Pack clusrun kan användas för att köra kommandon på Linux-noder antingen via en kommandotolk eller HPC Cluster Manager. Här följer några grundläggande exempel.
Visa aktuella användarnamn på alla noder i klustret.
clusrun whoami
Installera felsökningsverktyget gdb med yum på alla noder i gruppen linuxnodes och starta sedan om noderna efter 10 minuter.
clusrun /nodegroup:linuxnodes yum install gdb –y; shutdown –r 10
Skapa ett gränssnittsskript som visar varje nummer 1 till 10 för en sekund på varje Linux-nod i klustret, kör det och visa utdata från noderna omedelbart.
clusrun /interleaved /nodegroup:linuxnodes echo \"for i in {1..10}; do echo \\\"\$i\\\"; sleep 1; done\" ^> script.sh; chmod +x script.sh; ./script.sh
Anteckning
Du kan behöva använda vissa escape-tecken i clusrun-kommandon . Som du ser i det här exemplet använder du ^ i en kommandotolk för att undkomma symbolen ">".
Nästa steg
- Prova att skala upp klustret till ett större antal noder eller prova att köra en Linux-arbetsbelastning i klustret. Ett exempel finns i Köra NAMD med Microsoft HPC Pack på Linux-beräkningsnoder i Azure.
- Prova ett kluster med RDMA-kompatibla, beräkningsintensiva virtuella datorer för att köra MPI-arbetsbelastningar. Ett exempel finns i Kör OpenFOAM med Microsoft HPC Pack på ett Linux RDMA-kluster i Azure.
- Om du är intresserad av att arbeta med Linux-noder i ett lokalt HPC Pack-kluster kan du läsa TechNet-vägledningen.