Background
CentreStack may be deployed in scenarios that support "high availability" (HA). In general, "high availability" is achieved by deploying:
- At least two CentreStack servers in the same "cluster"
- At least two external database servers hosting the CentreStack database for the cluster. CentreStack currently supports the MySQL 5.7 and Microsoft SQL Server 2012+ database engines.
- At least two HTTP/HTTPS application load balancers fronting the CentreStack servers.
- A fully qualified DNS name configured to point to the application load balancers
If at all possible, it would be wise to deploy the CentreStack servers and database servers in separate but well connected networks.
This diagram shows one potential scenario where CentreStack is deployed at Amazon Web Services (AWS) in a single Region with two different Availability Zones. This scenario also leverages AWS Relational Database Services (RDS) in HA mode:
A detailed explanation of this diagram is included at the end of this article in the section titled CentreStack High Availability in AWS. This is just one possible deployment scenario. CentreStack could be deployed in similar scenarios in Microsoft Azure or other public or private clouds.
Note that database configuration, replication, and maintenance is outside the scope of this document. Likewise, the configuration of the network and load balancers are outside the scope of this document.
There are two different "starting points" for deploying high availability:
- CentreStack hasn't been deployed yet. This is documented in the section below titled New CentreStack Deployment.
- CentreStack was originally deployed in the "all-in-one" scenario where the database is deployed on the same server as CentreStack. In this case, the database will need to be "migrated" from the CentreStack server to an external database server. The migration process is documented in the section below titled Migrate Existing All-In-One Database.
The deployment of additional CentreStack servers is the same regardless if the "starting point". See the section below titled Deploying an additional CentreStack server in the cluster.
New CentreStack Deployment
For new CentreStack deployments it is recommended that the latest version of CentreStack be deployed (at least 9.5.5409.41172 or later).
Deploying the first CentreStack server in the cluster
- Prior to installing CentreStack you must create a empty database in MySQL or Microsoft SQL Server. If using Microsoft SQL Server, the server must be configured to allow "SQL Authentication" as CentreStack does not support Windows Integrated Authentication. A user account must be created for CentreStack with full access to the database (i.e. "db_owner"). The database should be configured for high availability.
- CentreStack version 9.5.5409.41172 and later will display this page when navigating to http://localhost during the initial configuration of the server:
- Clicking on the Default - all in one drop down displays:
- Selecting My Sql from the drop down will display:
- Selecting SQL Server from the drop down will display:
- Select the engine from the drop down (either My Sql or SQL Server) that matches your HA database deployment and fill in the text boxes with the information appropriate to your deployment.
- After the installation has completed, update the worker node configuration, setting the FQDN of the cluster to match the FQDN that resolves to the load balancers:
Migrate Existing All-In-One Database
Prior to migrating an existing "all-in-one" database to an external database server, it is strongly recommended that CentreStack be upgraded to the latest version (at least 9.5.5409.41172 or later). The most recent versions of CentreStack contain this page for migrating the database from one database server to another or even one database engine to another: http://localhost/management/migratedatabase.aspx
.
Migrating from the first CentreStack server in the cluster
- Prior to migration, you must create a empty database in MySQL or Microsoft SQL Server. If using Microsoft SQL Server, the server must be configured to allow "SQL Authentication" as CentreStack does not support Windows Integrated Authentication. A user account must be created on the database server with full access to the database (i.e. "db_owner"). The database should be configured for high availability.
- Start an elevated command prompt (as Administrator) and execute these commands:
reg.exe export "HKLM\SOFTWARE\Gladinet\Enterprise" "%userprofile%\Documents\gcent64.reg"
reg.exe export "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Gladinet\Enterprise" "%userprofile%\Documents\gcent32.reg" - Backup the SQL Server Express Edition database. Read this article and download the PowerShell script to backup the database, unless you are familiar with backing up SQL Server: https://support.centrestack.com/hc/en-us/articles/360003603493-SQL-Server-Backup-Script
- Ensure that database server firewall rules allow access from the CentreStack server. One quick test is to download the SysInternal Suite, psping.exe tool and test connectivity from the CentreStack server to the SQL server with a command like this:
SQL Server
psping.exe <mssql-server>:1433
MySQL
psping.exe <mysql-server>:3306
- In a browser navigate to the http://localhost/management/migratedatabase.aspx page on the first CentreStack server:
- Clicking on the Default - all in one drop down displays:
- Selecting My Sql from the drop down displays:
- Selecting SQL Server from the drop down displays:
- Select the engine from the drop down (either My Sql or SQL Server) that matches your HA database deployment and fill in the text boxes with the information appropriate to your deployment.
- This warning message will be displayed because the database exists (although it is empty initially). Click Continue to start the migration:
Deploying an additional CentreStack server in the cluster
- Install the same version of CentreStack on the second server.
- After installation, use the browser to navigate to http://localhost
- Because it is a new installation the browser will be redirected to http://localhost/management/admindatabase.aspx
- Select the same database engine with the same database configuration options as the first server.
- The CentreStack sign on page will be displayed
- After signing in this http://managment/ClusterMgr.aspx page will be displayed. Set the External URL to match the fully qualified domain name (FQDN) that will include the load balancers. Set the Internal URL to match the internal FQDN of server 2:
- On the second CentreStack server it is important to disable the Process Background Task such that only one CentreStack server is responsible for tasks such as migrating backend storage data.
- In the Cluster Control Panel of the second CentreStack server, click on Worker Nodes:
- Click on the large gear icon (Edit Cloud Monitor Settings) in the row corresponding to the second CentreStack server:
- Disable the Process Background Task option then click Apply:
- In the Cluster Control Panel of the second CentreStack server, click on Worker Nodes:
CentreStack High Availability in AWS
This section will describe the diagram at the beginning of this article. The same diagram is included here for easy reference:
A CentreStack cluster could be deployed in AWS for high availability. At a high level, this diagram shows a single AWS Region with a single AWS Virtual Private Cloud (VPC) that spans two Availability Zones. Each Availability Zone contains two subnets, one Public facing and another Private.
The AWS RDS instances are deployed with network interfaces assigned to the Private subnets because there should be no need to access the RDS databases directly from the Internet. The CentreStack servers are deployed with their network interfaces in the Public subnet because they will be accessible from the Internet. Likewise, the Application Load Balancers are deployed with network interfaces in the Public subnets as they will typically service any client using HTTPS (TCP 443).
At least three different VPC Network Security Groups (NSGs) should be deployed to secure traffic to these resources. For example, the RDS instances would only allow database traffic from the CentreStack servers. The CentreStack server would only allow HTTP/HTTPS from the load balancers, plus potentially RDP traffic from specific IP addresses. The load balancers would allow HTTP/HTTPS from any address (0.0.0.0/0).
CentreStack supports the following AWS RDS instances types:
- MySQL 5.7
- Aurora MySQL 5.7
- Microsoft SQL Server 2012 and later
Comments
0 comments
Please sign in to leave a comment.