Step 1: Prepare the Remote Databases
Before starting the installation process for your HPC cluster, you need to prepare the remote HPC Pack databases. You can use either Microsoft SQL Server, Azure SQL Managed Instance or Azure SQL Database.
Remote SQL Database Servers
If you want to install HPC Pack databases on one or more remote SQL database servers, perform these tasks to prepare:
Prepare the servers for remote access
Configure the instance or instances of SQL Server where you want to install the HPC databases
Create the HPC databases in those instances
Create and configure the SQL Server logins for the HPC cluster
The procedure in this topic explains how to perform these tasks.
Important
- To follow the steps in this procedure, the management tools for SQL Server must be installed on the remote database servers. These tools include SQL Server Management Studio and SQL Server Configuration Manager. Alternatively, SQL Server Management Studio can be installed on a client computer that can connect to the remote database servers.
- This procedure assumes that you have access and permissions to configure SQL Server on the remote database servers. If the remote database servers are not managed by you, contact the administrator of those servers and request that the steps listed in this topic be performed on the servers.
- Some configuration steps differ, depending on the versions of SQL Server and HPC Pack that are being installed. Starting in HPC Pack 2012, the HPC Pack installation files include the SetupHpcDatabases.cmd script in the Setup folder to automate certain configuration steps.
To prepare the remote database servers
If you have not yet installed SQL Server on each computer that you want to use as a remote database server, install it by following the steps in Initial Installation (SQL Server). Select the instructions that are appropriate for your version of SQL Server.
Note
- The editions of SQL Server that can be installed on the remote database servers are listed in Applicable versions of Microsoft HPC Pack and Microsoft SQL Server.
- Ensure that you apply any service packs needed for your version of SQL Server.
- If you are unsure about what version or what edition of SQL Server you have installed, see How to identify your SQL Server version and edition.
If you have not yet created the instances of SQL Server where you want to create the HPC databases, create the instances on the remote database servers. For more information, see Instance Configuration.
To prepare each instance of SQL Server for remote access, ensure the following:
The TCP/IP protocol is enabled for the instance. For more information, see Enable or Disable a Server Network Protocol (SQL Server Configuration Manager).
The Allow remote connections to this server option is enabled for the instance. For more information, see Configure the remote access Server Configuration Option.
Configure Windows Firewall on the remote database servers to allow remote access to the database instances. For more information, see Configure a Windows Firewall for Database Engine Access.
Ensure that the SQL Server Browser service is running on each remote database server. For more information, see How to: Start and Stop the SQL Server Browser Service.
Go to Run SetupHpcDatabase.cmd in this topic to complete the preparation of the remote database servers.
On each instance, create a SQL Server login for the domain account that you will use for the installation of the HPC cluster. For more information, see How to: Create a SQL Server Login.
If you want to connect to the databases by using logins that use SQL Server authentication instead of using Windows authentication, create the logins on each instance. Also, ensure that each instance is configured to accept SQL Server authentication. For more information, see Change Server Authentication Mode.
Assign the sysadmin server role for the instance to all the logins that you created for the HPC cluster. For more information, see Server-Level Roles.
On each instance, create the HPC databases that you want to install in that instance. For more information, see Create a Database.
To expedite the installation process of HPC Pack, you can assign the HPC databases their default names. By assigning the HPC databases their default names, the installation process requires fewer changes (the default name for each database is suggested during the installation process). The default names for the HPC databases for HPC Pack 2012 or later are as follows:
Cluster management database: HPCManagement
Job scheduling database: HPCScheduler
Reporting database: HPCReporting
Diagnostics database: HPCDiagnostics
Monitoring database: HPCMonitoring
HA Storage database: HPCHAStorage (only for HPC Pack 2019)
HA Witness database: HPCHAWitness (only for HPC Pack 2019)
Optionally, configure the initial size and the Autogrowth parameter for each of the databases, and for the log files of each of the databases. For information about the settings, see HPC database size and growth settings in this topic.
Run SetupHpcDatabase script
Starting in HPC Pack 2012, the installation files include the SetupHpcDatabase.cmd script, in the Setup folder. In HPC Pack 2016 and later, the script is changed to the PowerShell script named SetupHpcDatabase.ps1. You or the database administrator can run the script, or manually perform or modify the tasks in the script, to complete the configuration of the HPC databases and SQL Server logins. These include:
Create and configure the HPC databases with default settings.
Create SQL Server instance logins and database users for the account that will install HPC Pack and for the machine account for HPC services.
Grant to those accounts the minimum permissions required to install HPC Pack 2012 (or a later version) with the remote databases and to get the services started and running. The minimum permissions are granted by adding the user and services to the db_datareader, db_datawriter, and db_ddladmin database-level roles.
Note
Starting in HPC Pack 2012, you do not need to be a member of the SQL Server sysadmin role to install HPC Pack with remote databases.
Create a SQL Server instance login and database user of the HPC Monitoring database for a security group that includes the cluster administrators who need to view reports, and grant permissions to them. The security group must be created in advance.
Add custom error messages for HPC database stored procedures and optionally configure common language runtime (CLR) settings for the management service.
To run SetupHpcDatabase.cmd
On the database server, start a command prompt using an account that has access and permissions to configure SQL Server.
Type the following command if you are using HPC Pack 2016 or later:
.\SetupHpcDatabase.ps1 [-ServerInstance] <String> [-HpcSetupUser] <String> [-HeadNodeList] <String[]> [-HpcReportsAdminGroup] <String>
where:
<ServerInstance> specifies the instance of SQL Server for all of the HPC databases on the database server, in the form computer_name\instance_name
<HpcSetupUser> specifies the domain user account (in the form domain_name\user_name) that will install HPC Pack.
<HeadNodeLIst> specifies the name of the head node computer (in the form domain_name\computer_name or, in the case of a service fabric cluster, "domain_name\computer_name1$", "domain_name\computer_name2$", "domain_name\computer_name3$").
<DataLocation> specifies tthe full path of the directory in which the database files will be created. If not specified, created in the default location.
<HpcReportingAdminGroup> optionally specifies the security group (in the form domain_name\group_name) that includes the HPC cluster administrators who need to view reports. If not specified, the script performs actions on a security group named HpcReportsAdmin. A domain administrator must create the security group in advance.
Type the following command if you are using HPC Pack 2012 or HPC Pack 2012 R2:
SetupHpcDatabase.cmd <SqlServerInstance> <HpcSetupUser> <HeadNode> [<HpcReportingAdminGroup>]
where:
<SqlServerInstance> specifies the instance of SQL Server for all of the HPC databases on the database server, in the form computer_name\instance_name
<HpcSetupUser> specifies the domain user account (in the form domain_name\user_name) that will install HPC Pack.
<HeadNode> specifies the name of the head node computer (in the form domain_name\computer_name or, in the case of a head node configured in a failover cluster, domain_name\clustered_instance_name).
<HpcReportingAdminGroup> optionally specifies the security group (in the form domain_name\group_name) that includes the HPC cluster administrators who need to view reports. If not specified, the script performs actions on a security group named HpcReportsAdmin. A domain administrator must create the security group in advance.
Note
HPC cluster administrators that are added later should be added to this security group to view reports.
HPC database size and growth settings
The following tables list the default initial size and the Autogrowth parameter for each of the databases, and for the log files of each of the databases. You can modify these default settings as needed for your environment. If you are configuring a large cluster, consider applying the settings listed in Configuration and tuning best practices.
HPC database | Initial size (MB) | Autogrowth |
---|---|---|
Cluster management | 1024 | 50% |
Job scheduling | 256 | 10% |
Reporting | 128 | 10% |
Diagnostics | 256 | 10% |
Monitoring | 256 | 10% |
HA Storage | 64 | 10% |
HA Witness | 64 | 10% |
Log file | Initial size (MB) | Autogrowth |
---|---|---|
Cluster management database log file | 128 | 50% |
Job scheduling database log file | 64 | 10% |
Reporting database log file | 64 | 10% |
Diagnostics database log file | 64 | 10% |
Monitoring database log file | 64 | 10% |
HA Storage database log file | 16 | 10% |
HA Witness database log file | 16 | 10% |
For more information, see View or Change the Properties of a Database.
Additional considerations
A common issue that can cause the deployment of the HPC databases on remote database servers to fail is the incorrect configuration of Windows Firewall on the remote database servers. One way to verify that Windows Firewall is configured correctly is to connect to each remote database server from another computer (for example, the head node computer) by using SQL Server Management Studio and the SQL Server logins that you created.
The following Windows Firewall configurations have been tested to work:
Create an inbound rule to allow connections on the TCP port that is assigned to the instance where you created the HPC databases (for example, default port 1433). Also create an inbound rule for UDP port 1434, which is the port that is used by the SQL Server Browser service.
–OR–
Create an inbound rule to allow connections to the sqlservr.exe program for the instance where you created the HPC databases (for example, %Program Files%\Microsoft SQL Server\MSSQL13.COMPUTERCLUSTER\MSSQL\Binn\sqlservr.exe). Also create an inbound rule to allow connections to the SQL Server Browser service (for example, %Program Files(x86)%\Microsoft SQL Server\130\Shared\sqlbrowser.exe).
Caution
You must use a Windows Firewall configuration that complies with the security policies of your organization.
Azure SQL Managed Instance
Note
Azure SQL Managed Instance is supported for HPC Pack 2019 and later releases.
The setup for HPC databases is similiar to that of Microsoft SQL Server, as described above.
Azure SQL Databases
Note
Azure SQL databases are supported for HPC Pack 2012 R2 Update 3 (with 4.5.5194.0 or later version) , HPC Pack 2016 and later releases.
If you want to install HPC Pack databases on Azure SQL, perform these tasks to prepare:
- Create the Azure SQL databases for each HPC databases, refer to Create an Azure SQL database. The following table is the minimum initial DTUs required for each HPC databases. You shall adjust the DTUs per your cluster workload later.
HPC database | Initial DTUs |
---|---|
Cluster management | >= 20 |
Job scheduling | >= 100 |
Reporting | >= 20 |
Diagnostics | >= 10 |
Monitoring | >= 20 |
- Configure the firewall rules for the Azure SQL databases to allow the connection from head nodes. For more information, see Azure SQL Database and Azure Synapse IP firewall rules.