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 or Azure SQL.

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

  1. 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

  2. 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.

  3. To prepare each instance of SQL Server for remote access, ensure the following:

    1. The TCP/IP protocol is enabled for the instance. For more information, see Enable or Disable a Server Network Protocol (SQL Server Configuration Manager).

    2. The Allow remote connections to this server option is enabled for the instance. For more information, see Configure the remote access Server Configuration Option.

  4. 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.

  5. 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.

  6. Go to Run SetupHpcDatabase.cmd in this topic to complete the preparation of the remote database servers.

  7. 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.

  8. 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.

  9. 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.

  10. 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)

  11. 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

  1. On the database server, start a command prompt using an account that has access and permissions to configure SQL Server.

  2. Type the following command if you are using HPC Pack 2016 or later:

    .\SetupHpcDatabase.ps1 [-ServerInstance] <String> [-HpcSetupUser] <String> [-HeadNodeList] <String[]> [-HpcReportsAdminGroup  
    

    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.

  3. 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 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

See also