Create a Linux high-performance computing (HPC) cluster with the HPC Pack IaaS deployment script
Important
Classic VMs will be retired on March 1, 2023.
If you use IaaS resources from ASM, please complete your migration by March 1, 2023. We encourage you to make the switch sooner to take advantage of the many feature enhancements in Azure Resource Manager.
For more information, see Migrate your IaaS resources to Azure Resource Manager by March 1, 2023.
Run the HPC Pack IaaS deployment PowerShell script to deploy a complete HPC Pack 2012 R2 cluster for Linux workloads in Azure virtual machines. The cluster consists of an Active Directory-joined head node running Windows Server and Microsoft HPC Pack, and compute nodes that run one of the Linux distributions supported by HPC Pack. If you want to deploy an HPC Pack cluster in Azure for Windows workloads, see Create a Windows HPC cluster with the HPC Pack IaaS deployment script.
Important
The PowerShell script described in this article creates a Microsoft HPC Pack 2012 R2 cluster in Azure using the classic deployment model. Microsoft recommends that most new deployments use the Resource Manager model. In addition, the script described in this article does not support HPC Pack 2016. For information about Resource Manager templates for HPC Pack 2012 R2 and HPC Pack 2016, see the HPC Pack cluster deployment options in Azure.
Depending on your environment and choices, the script can create all the cluster infrastructure, including the Azure virtual network, storage accounts, cloud services, domain controller, remote or local SQL databases, head node, and additional cluster nodes. Alternatively, the script can use pre-existing Azure infrastructure and create only the HPC cluster nodes.
For background information about planning an HPC Pack cluster, see the Product Evaluation and Planning and Getting Started content in the HPC Pack 2012 R2 TechNet Library.
Prerequisites
- Azure subscription: You can use a subscription in either the Azure Global or Azure China service. Your subscription limits affect the number and type of cluster nodes you can deploy. For information, see Azure subscription and service limits, quotas, and constraints.
- Windows client computer with Azure PowerShell 0.8.10 or later installed and configured: See Get started with Azure PowerShell for installation instructions and steps to connect to your Azure subscription.
- HPC Pack IaaS deployment script: Download and unpack the latest version of the script from the Microsoft Download Center. Check the version of the script by running
New-HPCIaaSCluster.ps1 –Version
. This article is based on version 4.5.2 of the script. - Script configuration file: Create an XML file that the script uses to configure the HPC cluster. For information and examples, see sections later in this article and the file Manual.rtf that accompanies the deployment script.
Syntax
New-HPCIaaSCluster.ps1 [-ConfigFile] <String> [-AdminUserName]<String> [[-AdminPassword] <String>] [[-HPCImageName] <String>] [[-LogFile] <String>] [-Force] [-NoCleanOnFailure] [-PSSessionSkipCACheck] [<CommonParameters>]
Note
Run the script as an administrator.
Parameters
ConfigFile: Specifies the file path of the configuration file to describe the HPC cluster. See more about the configuration file in this topic, or in the file Manual.rtf in the folder containing the script.
AdminUserName: Specifies the user name. If the domain forest is created by the script, this becomes the local administrator user name for all VMs and the domain administrator name. If the domain forest already exists, this specifies the domain user as the local administrator user name to install HPC Pack.
AdminPassword: Specifies the administrator’s password. If not specified in the command line, the script prompts you to input the password.
HPCImageName (optional): Specifies the HPC Pack VM image name used to deploy the HPC cluster. It must be a Microsoft-provided HPC Pack image from the Azure Marketplace. If not specified (recommended usually), the script chooses the latest published HPC Pack 2012 R2 image. The latest image is based on Windows Server 2012 R2 Datacenter with HPC Pack 2012 R2 Update 3 installed.
Note
Deployment fails if you don't specify a valid HPC Pack image.
LogFile (optional): Specifies the deployment log file path. If not specified, the script creates a log file in the temp directory of the computer running the script.
Force (optional): Suppresses all the confirmation prompts.
NoCleanOnFailure (optional): Specifies that the Azure VMs that are not successfully deployed are not removed. Remove these VMs manually before rerunning the script to continue the deployment, or the deployment may fail.
PSSessionSkipCACheck (optional): For every cloud service with VMs deployed by this script, a self-signed certificate is automatically generated by Azure, and all the VMs in the cloud service use this certificate as the default Windows Remote Management (WinRM) certificate. To deploy HPC features in these Azure VMs, the script by default temporarily installs these certificates in the Local Computer\Trusted Root Certification Authorities store of the client computer to suppress the “not trusted CA” security error during script execution. The certificates are removed when the script finishes. If this parameter is specified, the certificates are not installed in the client computer, and the security warning is suppressed.
Important
This parameter is not recommended for production deployments.
Example
The following example creates an HPC Pack cluster using the configuration file MyConfigFile.xml, and specifies administrator credentials for installing the cluster.
.\New-HPCIaaSCluster.ps1 –ConfigFile MyConfigFile.xml -AdminUserName <username> –AdminPassword <password>
Additional considerations
- The script can optionally enable job submission through the HPC Pack web portal or the HPC Pack REST API.
- The script can optionally run custom pre- and post-configuration scripts on the head node if you want to install additional software or configure other settings.
Configuration file
The configuration file for the deployment script is an XML file. The schema file HPCIaaSClusterConfig.xsd is in the HPC Pack IaaS deployment script folder. IaaSClusterConfig is the root element of the configuration file, which contains the child elements described in detail in the file Manual.rtf in the deployment script folder.
Example configuration file
The following configuration file creates a domain controller and domain forest and deploys an HPC Pack cluster which has one head node with local databases and 10 Linux compute nodes. All the cloud services are created directly in the East Asia location. The Linux compute nodes are created in two cloud services and two storage accounts (that is, MyLnxCN-0001 to MyLnxCN-0005 in MyLnxCNService01 and mylnxstorage01, and MyLnxCN-0006 to MyLnxCN-0010 in MyLnxCNService02 and mylnxstorage02). The compute nodes are created from an OpenLogic CentOS version 7.0 Linux image.
Substitute your own values for your subscription name and the account and service names.
<?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>
</Domain>
<Database>
<DBOption>LocalDB</DBOption>
</Database>
<HeadNode>
<VMName>MyHeadNode</VMName>
<ServiceName>MyHPCService</ServiceName>
<VMSize>ExtraLarge</VMSize>
</HeadNode>
<LinuxComputeNodes>
<VMNamePattern>MyLnxCN-%0001%</VMNamePattern>
<ServiceNamePattern>MyLnxCNService%01%</ServiceNamePattern>
<MaxNodeCountPerService>5</MaxNodeCountPerService>
<StorageAccountNamePattern>mylnxstorage%01%</StorageAccountNamePattern>
<VMSize>Medium</VMSize>
<NodeCount>10</NodeCount>
<ImageName>5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-70-20150325 </ImageName>
</LinuxComputeNodes>
</IaaSClusterConfig>
Troubleshooting
“VNet doesn’t exist” error. If you run the HPC Pack IaaS deployment script to deploy multiple clusters in Azure concurrently under one subscription, one or more deployments may fail with the error “VNet VNet_Name doesn't exist”. If this error occurs, rerun the script for the failed deployment.
Problem accessing the Internet from the Azure virtual network. If you create an HPC Pack cluster with a new domain controller by using the deployment script, or you manually promote a head node VM to domain controller, you may experience problems connecting the VMs in the Azure virtual network to the Internet. This can occur if a forwarder DNS server is automatically configured on the domain controller, and this forwarder DNS server doesn’t resolve properly.
To work around this problem, log on to the domain controller and either remove the forwarder configuration setting or configure a valid forwarder DNS server. To do this, in Server Manager click Tools > DNS to open DNS Manager, and then double-click Forwarders.
Next steps
- See Get started with Linux compute nodes in an HPC Pack cluster in Azure for information about supported Linux distributions, moving data, and submitting jobs to an HPC Pack cluster with Linux compute nodes.
- For tutorials that use the script to create a cluster and run a Linux HPC workload, see: