Skip to main content
Version: v23.0

DxEnterprise Admin Guide

Introduction and Configuration

DxEnterprise Software decouples Windows or GNU/Linux Server application instances from a physical server, virtual machine or cloud server. This intelligent de-coupling virtualizes the application instance connection, enabling InstanceMobility® from any host, to any host, anywhere, with a simple stop and restart.

DxEnterprise creates a framework for orchestrating SQL Server management, Docker Container management, high availability/disaster tolerance and policy-based SLA management across a heterogeneous physical and virtual infrastructure. DxEnterprise can be used to create and manage heterogeneous Windows/Linux cross-platform Microsoft Always On availability groups starting with the Microsoft SQL Server 2017 release. DxEnterprise can be used to provide discreet and private micro-tunnels for distributed applications across multi-cloud environments without the cost, complexity, and security risks of VPNs.

DxEnterprise was designed specifically for virtualizing, providing high availability and consolidating mission-critical SQL Server instances. However, it can be used in any environment, including the most performance-centric and critical instances. DxEnterprise will also provide high availability for most generic services and Docker containers.

DxEnterprise leverages native file systems (NTFS/ext4/xfs) and shared storage technology to coordinate access to a pool of disk resources in the cluster. DxEnterprise supports any vendor-supported version or edition of SQL Server or Docker, as well as any OS across physical, virtual, or hybrid infrastructure.

The following sections describe hardware and software requirements for DxEnterprise.

Minimal System Requirements

Physical/Virtual Server Requirements

DxEnterprise is hardware agnostic. Please follow operating system and application best practices to achieve performance expectations.

Supported Operating Systems

  • Windows Server 2012, x64
  • Windows Server 2012 R2, x64
  • Windows Server 2016, x64
  • Windows Server 2019, x64
  • Windows Server 2022, x64
  • Windows 8 and above, x86 and x64
  • CentOS Linux 7.x
  • RedHat Enterprise Linux 7.x
  • RedHat Enterprise Linux 8.x
  • RedHat Enterprise Linux 9.x
  • Ubuntu 16.04.x
  • Ubuntu 18.04.x
  • Ubuntu 20.04.x
  • Ubuntu 22.04.x
  • SUSE Linux Enterprise Server 15
  • Alpine Linux 3.15 (containers only)
info

DxEnterprise Software requires .NET Framework 4.7.2 on Windows and .NET Runtime 6.0 on Linux. Please ensure that these packages are installed on your servers prior to installing DxEnterprise Software.

Network Configuration Guidelines

DxEnterprise uses a proprietary communications protocol (based on TCP and UDP) for its cluster communication. To mitigate or remove the potential for heavy network traffic adversely affecting DxEnterprise communications, DH2i allows the use of a private or stand-alone network for DxEnterprise. This dedicated network can be created using a crossover cable for a two-server cloud or an ethernet switch for clusters/clouds comprised of three or more servers.

DxEnterprise supports the following network configurations:

  • IPv4
  • IPv6
  • Multiple subnet ranges

To ensure proper communication between the cluster member nodes, the following guidelines should be observed.

  • A static entry for each node's private IP should exist in the hosts file (%systemroot%\system32\drivers\etc\hosts or /etc/hosts). For example:

    192.168.1.101   node1 #private IP
    192.168.1.102 node2 #private IP
  • "A" and "PTR" records are present in DNS for each Vhost/IP for proper forward and reverse lookup. Dynamic DNS registration is not supported.

  • On Windows, ensure Register this computer's addresses in DNS is unchecked for all network adapters under the properties for the interface. This prevents the virtual IP from being registered with DNS for the physical host. If this option is checked, it will cause resolution issues when the virtual IP moves between cluster member nodes.

  • DxEnterprise uses the following network ports

    • Open remotely:
      • TCP: 7979 -- DxLMonitor
      • TCP: 7980 -- DxCMonitor
      • UDP: 7980 -- DxLMonitor
      • UDP: 7981 -- DxCMonitor
      • TCP: 7985 -- DxWebEngine
    • Open locally:
      • 127.0.0.1:7801 -- DxRegMonitor
      • 127.0.0.1:7802 -- DxHealthMonitor
      • 127.0.0.1:7803 -- DxStorMonitor
      • 127.0.0.1:7804 -- DxLEngine

Storage Configuration Guidelines

HA Instances and Stateful Applications/Containers

DxEnterprise supports management of shared volumes for managed instances and other workloads that need access to a shared disk. While cluster disks and volumes can be managed outside of DxEnterprise, DH2i strongly recommends using DxEnterprise Storage Manager to create and manage shared volumes to simplify management. Prior to DxEnterprise management for any shared disk use cases, simply present each disk to every member you want to be able to run a particular instance or workload. At least one disk per workload is recommended.

caution

Only storage devices with SCSI-3 persistent reservation capability are supported.

Availability Groups

DxEnterprise can also manage SQL Server availability groups (AGs) and make them highly available. Since AGs will replicate databases between cluster members automatically, shared storage and DxEnterprise Storage Manager are not required or used.

Definitions, Acronyms, Abbreviations

Table 1‑1 Acronyms & Abbreviations

ItemDefinition
AGSRefers to DH2i's implementation of Microsoft's availability groups. Availability groups are a database mirroring technique for Microsoft SQL Server 2017 and newer that allows for a cross platform (Linux/Windows) group of user databases to replicate between a primary and multiple secondaries.
APIApplication Program Interface.
DRDisaster Recovery. Typically this would be multiple groups of servers that are geographically separated.
CIDRClassless Inter-Domain Routing.
Context MenuRight-click pop-up menu.
DNDistinguished Name of a user. A DN is a sequence of relative distinguished name attributes connected by commas used by LDAP for identification.
DxAdminComputer software component that is individually versioned and used as the graphical user interface to the DxEnterprise suite of products.
DxCliDH2i Command Line interface.
DxConnectDH2i Client tool used to connect to a tunnel.
DxPSDH2i Power Shell library (DxPS.DLL).
exVhostA Vhost whose members are other Vhosts.
GUIGraphical User Interface.
IPInternet Protocol. A numerical label assigned to each device connected to a computer network.
IPv4Internet Protocol version 4. IPv4 addresses have a size of 32 bits.
IPv6Internet Protocol version 6. IPv6 addresses have a size of 128 bits.
LDAPLightweight Directory Access Control, often Microsoft Active Directory.
RBACRole Based Access Control.
RSA keyAn RSA key pair includes a private and a public key. The RSA private key is used to generate digital signatures, and the RSA public key is used to verify digital signatures.
TCPTransmission Control Protocol.
UDPUser Datagram Protocol.
VhostVirtual Host.
VIPVirtual IP address.
VPNVirtual Private Network.

Table 1‑2 Definitions

ItemDefinition
ClientA remote client connecting to a tunnel.
Client GroupA group composed of one or more clients.
ClusterThe overall group of member servers.
LinuxThe family of supported GNU/Linux operating systems.
MemberA member of a Vhost, which can be node(s) (standard Vhost) or Vhost(s) (exVhost).
NodeNodes are devices, physical, virtual, or cloud on a larger network. A node is anything that has an IP address.
ProcessA running application that resides in its own address space.
ScreenRefers to the display of related data.
TunnelDirect secure connection between two or more servers without the need for a VPN, expensive hardware, or data passing through a vender portal.
Tunnel GroupA collection of tunnels and nodes that allows for virtual tunnel configuration. Synonymous with virtual host.
WindowRefers to a panel with a border as defined in the Windows Operating system. Typically, a window can be opened, closed, resized and moved. A tabbed window is an example of a single window containing more than one screen.
WindowsThe family of Microsoft Windows operating systems.

Alias Definition

AliasDefinition
.ACTIVEThe active node in a virtual host.
.INACTIVEAll inactive nodes in a virtual host.
.ALLAll nodes in a cluster.
.PARTAny node in the virtual host.
.NONPARTAny node in the cluster that is not in the virtual host.
.NONDESTAny node that is not the destination node.

Installing and Configuring a New DxEnterprise Cluster

DxEnterprise leverages shared storage, as well as any supported version or edition of SQL Server and OS, anywhere.

Pre-requisite procedure for a new DxEnterprise cluster for Windows

  1. Install Windows operating system and apply the latest patches. Consult Microsoft documentation for further details.
  2. Install Microsoft .NET Framework 4.7.2.
  3. Install SQL Server and apply the latest patches (optional). Consult Microsoft documentation for further details. Please note, SQL Server default databases and binaries should reside on any volumes that are not used as the shared volume(s). E.g. %ProgramFiles%\Microsoft SQL Server\MSSQL10.Products.
  4. Install Docker and pull desired images on all nodes (optional). Consult Docker documentation for further details.
  5. Install and configure/present/map shared disks.

Pre-requisite procedure for a new DxEnterprise cluster for Linux

  1. Install Linux operating system and apply the latest updates. Consult Linux provider documentation for further details.
  2. Update the /etc/hosts file with the IPs and host names for all nodes in the cluster.
  3. Install .NET Runtime 6.0.
  4. Install SQL Server and apply the latest updates (optional). Consult Microsoft documentation for further details.
  5. Install Docker and pull desired images on all nodes (optional). Consult Docker documentation for further details.
  6. Install and configure/present/map shared disks.

Installing and configuring the first server for a new DxEnterprise cluster

  1. Install DxEnterprise software.
  2. Activate the server.
  3. Configure shared volumes.
  4. Create a virtual host.
  5. Add diskgroups.
  6. Attach/virtualize an instance of SQL Server.
  7. Add a virtual file share (optional).
  8. Add a generic service (optional).
  9. Add a Docker Container (optional).
  10. Add an Availability Group (optional).

Installing and configuring the additional server for a new DxEnterprise cluster

  1. Install DxEnterprise software.

  2. Join the second server to the existing cluster node.

  3. Join/participate in the virtual host.

  4. Test failover/failback (Optional).

Installing DxEnterprise software for Linux

DxEnterprise can be installed on Linux either manually or using the DH2i Repository.

Installing DxEnterprise Software for Windows

Installing DxAdmin Software on Stand-Alone Windows Clients

DxAdmin can be installed on a stand-alone Windows client(s) to remotely administer a DxEnterprise cluster.

Connecting to DxEnteprise with DxAdmin

A pass key is required to log in to the cluster for administration.  The pass key is case-sensitive and can be any combination of alpha-numeric characters, punctuation, or symbols.  If the user has not configured a pass key or has forgotten the pass key, the user will be unable to log in remotely, or log in using unprivileged accounts. The pass key requirement can be bypassed by launching DxAdmin Client as an administrator on a cluster node.

In order to maintain the security of the cluster, DxAdmin will prompt the user to confirm that they are connecting to the correct server when they connect for the first time.  It does this by checking the server's RSA key against its list of known server keys.

known server check

The public key for a server in the cluster can be viewed by selecting the server under Cluster Nodes and searching for the PubkeyHash.  In addition, the public keys can be found in the DxCluster.xml file.

If the user accepts the server's public key, DxAdmin will save a record of the key in its configuration and will not prompt for verification in the future.  If the user is unexpectedly prompted to verify a server's public key, the user may be the target of a man-in-the-middle attack and should immediately reject that public key and re-verify the server's correct public key using other means.

Role-Based Access Control

Optionally, Role-Based Access Control (RBAC) can be configured to grant users either full or read access to DxEnteprise through the DxAdmin management UI, DxPS commands and/or DxCLI commands.

  • Full - Allows the user to perform any and all management tasks.
  • Read - Restricts the user to only being able to read non-sensitive data.

Configuring an Authenticator

To configure an RBAC authenticator, first login to the DxEnterprise cluster using DxAdmin with a privileged account, select Advanced Configuration > Cluster Settings. Under the RBAC section, select Authenticator. The RBAC Authenticator Management window is then displayed.

RBAC Authenticator Maintenance window

  • Type - The available options are:

    • None - No authenticator is configured. The built-in Admin role is the only available login.

    • Observer Password - The built-in Observer role is enabled and assigned a password. The login options are then either Admin + Cluster Passkey for full-control, or Observer + Observer Password for read-only access.

    • LDAP - An existing LDAP server is used to authenticate users. The built-in Admin role is also still available.

All of the below options are required to configure the LDAP type of authenticator.

  • Server - The hostname or IP address of the server used to perform user and group lookups and the authentication of those users and groups.

  • Filter - A filter to apply to the LDAP query. This option may be necessary when the LDAP server is not Active Directory.

  • Credential Type - Either Password (distinguished name and password) or stored Credentials can be specified. See the Credentials section of this guide for more information on stored credentials.

    • Credential - The name of the stored credential to use. This option is only visible if the Credentials authentication type is selected.

    • Distinguished Name - The Distinguished Name (DN) of the user used to login to the authenticator. This option is only visible if the Password authentication type is selected.

      tip

      For more information on Active Directory DNs see Microsoft - Distinguished Names

      To query the DN of a specific Active Directory user, run the PowerShell command get-aduser <username>.

    • Password - The password used to login to the authenticator. This option is only visible if the Password authentication type is selected.

  • Submit - Save the changes and close the window.

  • Cancel - Discard the changes and close the window.

Configuring Users, Groups and Permissions

To configure the permissions for users and groups, right-click on DxCluster at the top of the treeview and select Permissions. The Permissions window is then displayed.

user and group permissions

  • Add - Add a new user or group. When selected, the Permission Manager window is then displayed.

    permission manager window

    • ID - The user or group ID. Selecting the elipses (...) allows searching the configured authenticator for existing users and groups.

    • Group - Whether or not the supplied ID is a group name.

    • Permissions - Allow or deny full or read access to the specified user or group. Deny should be used only if necessary, as it will always over-ride an allow.

    • Show Groups - If the supplied ID is a user, then this option will query the authenticator to find the groups that the user is a member of.

    • Inherit - Whether or not to turn on inheritance for the supplied permissions.

    • OK - Save the changes and close the window.

    • Cancel - Discard the changes and close the window.

  • Remove - Remove the selected user or group.

  • Edit - Edit the selected user or group.

  • Submit - Save the changes and close the window.

  • Close - Discard the changes and close the window.

tip

It is recommended to create a full-control group and a read-only group on the authenticator (LDAP) server. Users can then be added or removed from those groups to manage their DxEnterprise access. This is a much more simplified approach than trying to manage a large list of users individually.

Overview of DxAdmin

DxAdmin is organized into multiple sections located on the left side of the user interface and a main panel in the center that shows the details of a section. Each section is a distinct group of commands that perform a specific action.

dxadmin overview

navigation

The Navigation section shows a global view of the connected clusters. From here, the user can manage various cluster connections and view dashboard information, status logs, and alerts.

Connected Server List

connected server list

The connected server list displays each node or server DxAdmin is connected to. The overall alert status on the left is normally green, but will display a yellow icon if the cluster has a warning condition, or a red icon if the cluster has an error condition. The version is the installed version on the connected server. The process icon is normally light grey, but displays a dark grey icon when there is new information to review, which can be viewed by clicking on the icon itself. The process icon is used to track background processes such as installations or re-hosting of Vhosts. The Chat icon on the right displays a red icon when there are unread chat messages for the cluster. Click the chat icon to show the message, who it is from, and any other message they've submitted.

With the exception of the Navigation section, all other sections will display the information from the currently selected node or cluster member.

Tree View

treeview

The tree view shows a collapsible list of Vhosts and cluster members, each of which can be selected for further details. It is displays related and child elements in a single view. For the example above, the virtual host, VHOST1, has three members, DXENODE1, DXENODE2 and DXENODE3 and the attached shared disks and volumes associated with the Vhost.

Storage Management

storage management

The storage management section shows the view of the state of managed and unmanaged storage on a per-node basis. Selecting a cluster node name in this view will display that node's view of its storage details.

Advanced Configuration

advanced configuration

The Advanced Configuration section contains these additional dialogs and tools.

  • Cluster Membership - This section allows the user to manage cluster members and license activation.

  • Cluster Settings - This section allows the user to set various advanced internal settings for the cluster itself. This is not typically recommended without specific advice or explanation from DH2i Support or Engineering staff.

  • Contact Address Book - This section is where email aliases or addresses are stored for the notification system.

  • Performance Policies - This section allows the user to set Performance or Allocation policies on objects defined in the cluster.

  • Notification Policies - The notification policies section allows the creation or modification of global alerts, filtered by object and severity, so contacts or email addresses can be alerted when a notification policy is triggered.

  • DxPowerShell Utility - This launches a PowerShell console with the DxPS module loaded. For more information, please see the DxPS Admin Guide.

  • Debug Commands - The debug commands section allows for the execution of commands internal to DxEnterprise. Use of this section is not recommended without a specific request from DH2i Support or Engineering staff.

  • Collect Logs - The collect logs utility automatically bundles selected logs and configuration files for troubleshooting.

Application Installer (Windows Servers Only)

application installer

The Application Installer allows parallel installation or upgrades of SQL Server instances across the cluster.

search bar

The search bar is located in the main panel at the top of the window. It displays context-specific details depending on what is selected in other panes.

search results

Once a search string has been entered, the results will be displayed. Double-clicking on a result will navigate to that entity. The results can be hidden by selecting the Hide Results bar. Click the red X in the top right corner to close the search pane.

Cluster Nodes

Cluster nodes are the entities on which DxEnterprise clustering software is installed — be it a bare metal machine, virtual machine, or container. Cluster nodes are listed in the explorer tree and various actions can be performed against them.

Cluster Node Commands

In DxAdmin, select a Cluster Node on the explorer tree, then right-click to display a menu listing the available options.

node additional commands

  • Refresh - Refresh the displayed data.

  • Freeze cluster node - This command allows you to administratively put a node in the frozen state. While the node is in the frozen state, applications are not monitored by DxEnterprise and continue to run on the node even if the DxEnterprise software is removed from the node. If the node is rebooted, all SQL Server instances running on the node will require a manual restart. When a node is frozen, its color changes to purple.

  • Unfreeze cluster node - This command allows you to administratively take a cluster node out of the frozen state. All applications are again monitored by DxEnterprise and continue to run on the node. When a node is unfrozen, its color changes from purple to reflect the current status.

  • Disable cluster node - This command allows you to put a node in maintance mode. It's still a member of configured Vhosts, but it's no longer an active failover target. When a node is disabled, all active instances will failover to other nodes in the cluster and the node is highlighted in orange.

  • Enable cluster node - This command allows you to take a node out of maintance mode. The node will resume being an active failover target. When a node is enabled, it is no longer highlighted in orange. Its color might change to reflect a new status.

  • Set app coordinator - Administratively select a node in the cluster to be the application service coordinator. When a node is selected as the application service coordinator, it is responsible for coordinating and maintaining the application queue.

  • Set cluster coordinator - Administratively select a node in the cluster to be the cluster coordinator. When a node is selected as the cluster coordinator, it is responsible for coordinating cluster communication between member nodes.

  • Set storage coordinator - Administratively select a node in the cluster to be the storage coordinator. When a node is selected as the storage coordinator, it is responsible for coordinating and maintaining the storage queue.

Cluster Node Status

cluster tree leaf

Storage Management

Configuring Shared Disks/Volumes for use with DxEnterprise

DxEnterprise leverages native file system (NTFS/ext4/xfs) and shared storage technology to coordinate access to a pool of disk resources in the cluster. Although Windows Disk Manager can be used to manage shared disks and volumes on Windows, Windows Disk Manager is not designed to manage cluster resources.

To achieve greater levels of performance, scalability, and availability while simplifying the management of shared storage, DxEnterprise Storage Manager should be used to create and manage shared disks and volumes. DxEnterprise Storage Manager allows administrators to put any new or existing basic disks under DxEnterprise management. Operations such as clean, online, offline, create, delete, format, extend, and shrink volume sets are fully supported for DxEnterprise managed disks and are fully cluster coordinated.

To access DxEnterprise Storage Manager, from the DxAdmin main menu, select Storage Management and select a node.

storage management tree view

To view all managed and unmanaged disks from the selected node perspective, refer to the main panel:

all disks view

Disk Operations

Manage Disks

Before DxEnterprise can operate and coordinate write access on the shared disks, the shared disks must be put under DxEnterprise management.

To manage disk(s), right-click on a disk and select Manage.

select manage

The Manage Disks window then appears.

manage disks window

Select the desired disk(s) to be managed by DxEnterprise. A custom name can be defined for each managed disk by entering the value in the Name text field. Click Submit to commit the changes. Click Close to cancel the operation without making changes.

Unmanage Disks

At any time, a disk or set of disks can be detached from DxEnterprise management. To unmanage disk(s), right-click on a managed disk and select Unmanage.

select unmanage

The Unmanage Disks window then appears.

unmanage disks

Select desired disk(s) to be unmanaged by DxEnterprise. Click Submit to commit the changes. Click Close to cancel the operation without making changes.

Clean a Disk

Under some circumstances, a disk may need to be cleaned to delete all of its partitions, volumes, and any hidden sector information.

danger

Cleaning a disk will destroy all data, including the partition tables, on that disk.

To clean a managed disk, right-click on a disk and select Clean.

select clean

A Clean disk warning dialog then appears.

clean warning

Select Yes to commit the change or No to cancel the operation.

Taking a Disk Offline

Under normal operation, a managed disk is set to online on only one node (the active node). All other nodes will have the same disk set to offline. When a disk is brought online on a different node, that node is the only node allowed to write to the disk. An online disk has a shaded blue box in the Storage Manager.

To disallow writes to a managed disk, right-click on a disk and select Offline.

select offline

The Disk offline warning dialog then appears.

disk offline warning

Select Yes to commit the change or No to cancel the operation.

Bringing a Disk Online

Under normal operation, a managed disk is set to offline on all nodes except the active node. When a disk is set to offline on a node, that node is disallowed from writing to the disk. An offline disk is marked as yellow in the Storage Manager.

To allow writes to a managed disk, right-click on a disk and select Online.

select online

The Disk online warning dialog then appears.

bring disk online warning

Select Yes to commit the change or No to cancel the operation.

SCSI Reservation

DxEnterprise employs SCSI-3 persistent reservations as a means to fence or designate the current owner of a disk. This SCSI reservation information is often hidden or difficult to determine using other tools. It is DH2i's intention to make managing any disk(s) or storage subsystem SCSI reservation a task like any other normal tasks.

caution

Only storage devices with SCSI-3 persistent reservation capability are supported.

To view the current SCSI reservation, right-click on a disk and select Reservation Detail.

select reservation detail

The Disk Reservation window then appears.

Disk reservation

  • Refresh - Select to query the latest information about a disk.

  • Clear - This button will be enabled if a reservation is set for the disk, allowing the existing reservation to be cleared.

danger

Clearing the disk reservation can cause data corruption if the disk is visible to any other servers outside of the DxEnterprise cluster.

Disk Info

Disk Info will provide further details of a disk including SCSI Page 83 information.

disk info

disk info main window

Rescan Disk

Rescan Disk will refresh the disk device information across all nodes in the cluster.

rescan disk

Volume Operations

Create Volume

DxEnterprise allows a volume to be created from any empty space available on a disk. To create a volume, right-click on an empty partition and select Create Volume.

create volume

The Specify Volume Size window then appears.

specify volume size

  • Maximum disk space - The current maximum free space on disk in MB.

  • Minimum disk space - The minimum disk space for the new volume in MB. The default value is 8 MB.

  • Selected disk space - The chosen size for the new volume in MB. Either enter the desired value in the text field or use the up & down arrows or the slide bar to pick the desired value.

  • Submit - Click to commit the changes.

  • Close - Click to cancel the process without making any changes.

Delete Volume

When a volume is no longer needed, its disk space can be reclaimed. To delete a volume, right-click on a volume and select Delete Volume.

select delete volume

The Volume Management Warning dialog then appears.

volume management warning

Select Yes to commit the change or No to cancel the operation.

Extend Volume

DxEnterprise Storage Manager supports extending basic volumes if additional contiguous space exists on the disk. A basic volume is a volume that occupies a single partition on the same basic disk.

To increase the volume size, right-click on a volume and select Extend Volume.

select extend volume

The Specify Extend Size window then appears.

specify extend size

  • Maximum disk space - Maximum amount of space on the disk available for expansion.

  • Minimum disk space - Minimum amount to extend the disk.

  • Selected disk space - The amount in MB to extend the volume.

  • Submit - Click to commit the changes.

  • Close - Click to cancel the process without making any changes.

Shrink Volume

DxEnterprise Storage Manager supports shrinking volumes.

To shrink the volume size, right-click on a volume and select Shrink Volume.

select shrink volume

The Specify Volume Size window then appears.

specify shrink size

  • Current disk space - The current size of the volume in MB.

  • After reclaimed space - The tentative final size of the volume after shrinking in MB.

  • Reclaimed disk space - The desired disk space to reclaim in MB.

  • Submit - Click to attempt to reclaim the disk space of the volume. If the reclaimed disk space exceeds the minimum volume size (determined by the operating system), an error dialog will appear. Click OK to redefine the reclaimed space and resubmit.

    volume management error

  • Close - Click to cancel the process without making any changes.

info

Shrinking a volume may require the operating system to defragment the volume, which can require minutes or hours to complete, depending on the size of the volume.

Format

Before a volume is usable, it needs to be formatted with NTFS/ext4/xfs. To (re)format a volume, right-click on a volume and select Format.

select format

The Format window then appears.

format window

  • VolumeID - The unique volume ID. The field is read-only.

  • Volume label - The user-defined label for the volume. Default value is "New Dx Volume".

  • File system - The file system type for which the volume should be formatted. Default value is NTFS on Windows and ext4 on Linux.

  • Block size - The user-defined block size for the volume. Default value is 4096.

  • Optional - Optional flags available to Windows format.

  • Quick format - Check to use quick format. Quick format does not fill the data on the volume with zeroes (0), but the operation takes less time to complete.

  • Enable compression - Check to enable compression support for the volume.

  • OK - Click to start the format. A Format-Volume Warning then appears. Click Yes to format or No to cancel.

    format warning

  • Cancel - Click to cancel the process without making any changes.

Set Logical Drive

DxEnterprise supports both a logical drive letter and one or more mountpoints for a volume. If the empty folder(s) for the mountpoint(s) do(es) not exist when the node becomes active, DxEnterprise will ensure the folder(s) is/are created on the fly and the mountpoints are properly set. Administrators do not need to pre-create the empty folder(s) for the mountpoints on each node participating in the cluster.

To specify the logical drive letter or mountpoints, right-click on a volume and select Set Logical Drive.

select set logical drive

The Logical Paths window then appears.

logical paths window

  • VolumeID - The unique volume ID. The field is read-only.

  • Set drive letter or mountpoints - Current list of drive letter and mountpoints to be set for the volume.

  • Add - Click to add a drive letter or mountpoint to the list. When clicked, the Add new drive letter or mountpoint window appears. Please note that there can only be one drive letter assigned per volume. If a drive letter is assigned to any other volume, the drive letter will no longer be available for assignment to additional volumes. Drive letter assignment is available and applicable on Windows only.

    add drive or mountpoint

  • Change - Click to change the drive letter assignment. The Change drive letter window appears. Drive letter assignments are available and applicable on Windows only.

    change drive letter

  • Remove - Click to remove the drive letter or mountpoint assignment for the volume.

  • Submit - Click to set the drive letter and mountpoints for the volume. A warning dialog for the operation then appears. Click Yes to assign the mountpoints or No to cancel.

  • Cancel - Click to cancel the process without making any changes.

Set Volume Label

DxEnterprise supports a custom label for a formatted volume to be set at any time. To specify the volume label, right-click on a volume and select Set Volume Label.

select set volume label

The Set Volume Label window then appears.

set volume label

  • OK - Click to set the new label for the volume.

  • Cancel - Click to cancel the process without making any changes.

Virtual Hosts

DxEnterprise uses Virtual Hosts (Vhosts) to provide failover support and high availability. A Vhost virtualizes the network name and IP address associated to a particular SQL Server Instance, file share, and/or service. Instead of using the network name and IP address of a physical server, a Vhost is created and assigned a unique name/IP-address pair. Clients access the databases associated with an instance via the Vhost name or IP address; they do not need to know which member is running the SQL instance. When a Vhost is configured, the user will need to specify at least one member to participate in the Vhost. The members of a standard Vhost are cluster nodes, whereas extended Vhost (exVhost) members consist of other Vhosts.

To create a Vhost, right-click on Virtual Hosts from the DxAdmin tree-view and select Add a virtual host. The Vhost Properties window then appears.

vhost properties

  • Virtual Host Name - Use this field to specify a Vhost name. Make sure the Vhost/IP-address pair is registered in DNS. The name entered in this field cannot include spaces.

  • Virtual IPs - Specify the IP address(es) that will be associated with this Vhost. Prefix by an asterisk (*) for existing address. Multiple virtual IP addresses can be specified for a Vhost, delimited by a comma.

    There are three types of networking topologies supported by DxEnterprise:

    1. A Vhost with a virtual IP that can be bound to either side of the DR (e.g. Source: 10.1.200.100/8, Target: 10.2.200.100/8, VIP: 10.3.200.100/8). This topology is ideal for network that has VLAN stretched across both sites.

    2. A Vhost with two virtual IPs that each VIP can be bound to one side of DR only (e.g. Source: 10.1.200.100/24, Target: 10.2.200.100/24, VIP: 10.1.200.111/24, 10.2.200.111/24). This topology is ideal for network without VLAN stretched across sites.

    3. A Vhost with no virtual IP (e.g. Source: 10.1.200.100/24, Target: 10.2.200.100/24, VIP: *10.1.200.100/24, *10.2.200.100/24). This topology is ideal for cloud based network where the server's public IP is the only means to connect to external services.

    info

    DxEnterprise will bind the virtual IP to the adapter with the same network mask. A DNS entry must exist for each Vhost/IP address. The entry must include an A record and a PTR record for forward and reverse lookup. Windows authentication may fail if these records do not exist. Be sure to create a DNS entry for each Vhost/IP address that you create. Dynamic DNS registration is not supported.

  • Probe Port - Specify the port(s) to use for the Internal Load Balancer health probing for cloud solutions.

  • Member Type - Specify the member type for the Vhost. Available options are NODE or VHOST. When NODE is selected the Vhost being created will be a standard Vhost. When VHOST is selected the Vhost being created will become an extended Vhost (exVhost).

  • Priority - This setting defines the importance (from 1 to 5, 5 being most important) of the Vhost relative to other Vhost(s) running on a system. When there is a system resource (processor, memory, disk I/O, network I/O) pressure or a system failure, DxEnterprise uses this value to determine the best possible cluster member to start the Vhost.

  • Auto Failback - This policy is intended to return the Vhost to its original configuration, or as close to it as possible. After the Vhost fails over to a backup member, DxEnterprise watches the health of the members that are higher in the order list configured for that Vhost. When the health of one of these members is equal to or greater than the backup member where the Vhost currently resides, the Vhost will automatically attempt to fail over to that member.

    info

    By default the Vhost remains active on the backup member as long as it is healthy.

  • Available Members - Move the DxEnterprise nodes or Vhosts on which the Vhost should be configured from the Available Members column to the Selected Members column. The first member that is selected is the primary member. The other members that are selected are backup members. You can use the up and down arrows to reorder the members in the Selected Members column. The member ordering will determine the failover ordering.

  • OK - When you click OK, a confirmation dialog displays asking the user to confirm the changes.

    confirmation dialog

    When you click Yes on the Confirmation Dialog, DxEnterprise will create the Vhost.

  • Close - If you click the Close button, the virtual host will not be created and the dialog will close.

Vhost Commands

These additional commands can be performed from DxAdmin. In DxAdmin, select a Vhost on the explorer tree, then right-click to display a menu listing the available options.

vhost additional commands

  • Refresh - Refresh the displayed data.

  • Remove virtual host - Removes the Vhost from the configuration.

  • Update virtual host - Allows the virtual IP, Auto failback and failover ordering of the nodes to be updated.

    vhost maintenance

  • Stop virtual host - Stops all running applications on the active node and sets the Vhost to the administratively disabled state.

  • Restart virtual host - Stops, then starts a virtual host on the currently active node.

  • Add a member - Allows adding a member to a Vhost and then to reorder the failover priority of the members. The failover priority of the members starts at the top of the list down. The higher the member on the list, the higher the priority it has to host the Vhost.

  • Freeze virtual host on member - Allows putting a Vhost into a "frozen" state. While the Vhost is in this frozen state, applications running under the Vhost are not monitored and can be manually stopped and started without causing the cluster to initiate a failover. If the node is rebooted, all SQL Server instances running on the node would require manual restart.

  • Unfreeze virtual host on member - Allows taking a Vhost out of the "frozen" state and back into "active" state. Monitoring of applications running on the Vhost will be resumed, and the Vhost can be failed over between members.

  • Manage virtual host diskgroup - Allows adding or removing disk(s) from the Vhost diskgroup. See the Add Diskgroups section for more information.

  • Add availability group - Allows creating a new SQL Server availability group. See the Add Availability Group section for more information.

  • Attach availability group - Allows attaching an existing SQL Server availability group to a Vhost. See the Attach Availability Group section for more information.

  • Add SQL instance - Allows adding a highly available SQL Server instance to a Vhost. See the Add a Highly Available SQL Server Instance section for more information.

  • Add a fileshare - Allows adding a highly available file share to the Vhost. See the Add a File Share section for more information.

  • Add a service - Allows adding a highly available generic service to a Vhost. See the Add a Service section for more information.

  • Add Docker instance - Allows adding a highly available Docker container instance to a Vhost. See the Add a Docker Container section for more information.

  • Add a tunnel - Allows adding a new tunnel to a Vhost. The tunnel will be displayed in the treeview by a leaf under the Vhost and a leaf under Tunnels. See the Add a Tunnel section for more information.

Vhost Status

cluster overview

Vhost Member Commands

node members

In DxAdmin, select a member under a Vhost on the explorer tree, then right-click to display a menu listing the available options.

  • Refresh - Refresh the displayed data.

  • Remove member - Allows removing a member from a Vhost.

  • Start hosting on Member - Allows re-hosting or "moving" the active member for a Vhost from one member to another. Select the member you want to Vhost to start on or "move to", then right-click and select Start hosting on Member.

  • Stop virtual host - This command administratively stops all running applications on the active member and sets the Vhost to the administratively disabled state.

Vhost Member Status

vhost tree leaf

Advanced Scripting

In the Vhost details pane, there is an Advanced accordion control. When selected, the advanced scripting options are displayed. The advanced scripting is user-defined script management for the Vhost. A custom script can be set by specifying the absolute path (...) or by embedding the logic content within DxEnterprise cluster configuration. When the logic content is embedded within DxEnterprise, it is guaranteed to be available for any member when the instance fails over/back between members. It is the preferred choice for DxEnterprise.

advanced accordian control

  • Pre-Start - when set, custom script is executed before the Vhost starts up. Ideal event to embed business logic to switch over the replicated storage from read-only to read-write before starting up the instance.

  • Post-Start - when set, custom script is executed after the Vhost successfully starts up on a member but before any applications start up. Ideal event to embed business logic to start 3^rd^ party agents or dependencies for the Vhost.

  • Pre-Stop - when set, custom script is executed before the Vhost stops on a member. Ideal event to embed business logic to stop 3^rd^ party agents or dependencies for the Vhost.

  • Post-Stop - when set, custom script is executed after the Vhost successfully stops on a member. Ideal event to embed business logic to clean the Vhost environment.

Add Diskgroups

A diskgroup is a logical set of disks that are added to a Vhost. When a disk is added to a Vhost diskgroup, the disk will be set online on the active member and offline on all other members. If there is a failure of a disk within the diskgroup, the Vhost will failover onto the next available member in the Vhost.

To add a disk to a Vhost diskgroup, right-click on Diskgroups under the Vhost, select Manage virtual host diskgroup.

manage virtual diskgroup

The Virtual Host Diskgroup Management window then appears. Select the desired disk(s) in the Available Disks window and click on the right arrows (or double-click the disk) to move the desired disk(s) to the Selected Disks window. To remove the Selected Disks, use the left arrows (or double-click the disk) to move the disks back to the Available Disks window.

manage virtual diskgroups

  • Submit - Click to commit the changes.

  • Close - Click to cancel the process without making any changes.

Application Management

DxEnterprise Software is a high availability solution created for managing and consolidating mission-critical Microsoft® SQL Server databases, availability groups and Docker containers. DxEnterprise manages the applications and storage, creating manageable private cloud utilities for medium size businesses to large corporations. DxEnterprise can configure and manage availability groups for SQL Server 2017 or newer on Windows and/or Ubuntu, CentOS and Red Hat Enterprise Linux servers.

Highly Available SQL Server Instances

DxEnterprise enables SQL Server instance to be made highly available (HA). The solution allows for managing and consolidating mission-critical Microsoft® SQL Server databases across multiple cluster members.

Plan Your HA SQL Server Instance Configuration

Before installing SQL Server, it is important to determine how the SQL Server instances should be configured in DxEnterprise. First, determine the number of SQL instances that you will need. These instances can be installed on any or all members in the DxEnterprise cluster.

Next, determine how you want to associate the instances with Vhosts. Here are some common configurations:

  • Create a separate Vhost for each instance (Recommended).

  • Assign all of the instances on a member to a single Vhost.

  • Use some other organization.

info

If you want individual InstanceMobility, you should create one Vhost per instance. Alternately, you could stack multiple instances within a given Vhost. This will create a failover group of all instances within that Vhost

Then determine how you want to configure the Vhosts. Each Vhost needs a primary member and one or more backup members. The backup members for each Vhost must have local installations of all of the configured SQL instances.

info

A primary SQL instance and its backup SQL instances must have the same name. For example, if you install a SQL instance called "instance1" on the primary member, you will also need to install an instance called "instance1" on every backup member.

Add an HA SQL Server Instance

When a SQL Server instance is added to a Vhost, DxEnterprise virtualizes the network name and IP address associated with the SQL Server instance creating a highly available (HA) SQL Server instance. Clients can then access the highly available SQL Server instance via the Vhost\instance name.

Assigning a SQL Server instance to a Vhost creates a managed instance. Each Vhost can be associated with any number of SQL Server instances. You can add all of the primary SQL Server instances on a member to the same Vhost, or you can create multiple Vhosts and spread the primary SQL Server instances among them.

When assigning SQL Server instances to a Vhost, you should be aware of the following:

  • If you want to use SQL Server replication on a SQL Server instance assigned to a Vhost, you will need to define the replication after you add the instance to the Vhost.

  • If you assign multiple SQL Server instances to the same Vhost, keep in mind that a failure of one instance can cause the Vhost to fail over. This failover will include all instances associated with the Vhost, not just the failed instance.

  • An instance of SQL Server cannot be managed by DxEnterprise if the physical computer name is changed after the SQL Server instance is installed and before the instance is managed.

To add a SQL Server instance to a Vhost, select the Vhost on the DxAdmin explorer tree, right-click, and select Add SQL instance.

select add sql instance

The Virtual Host Instance Maintenance window then appears.

vhost maintenance window

  • Instance Name - This field lists all of the SQL Server instances that are available for assignment to this Vhost. Select the appropriate SQL Server instance.

  • Description - Enter your description for the instance. It is ideal to annotate your SQL Server instances.

  • TCP Port - Enter the port number for TCP/IP Sockets that the SQL Server instance should listen on. A static listening port per instance is required.

  • Data Path - Specify the full path that will be used for the Master data files for this highly available SQL Server instance. Ensure the path is on shared storage. For Linux, specify the mount path for the managed shared disk.

  • Log Path - Specify the full path that will be used for the Master log file and Error log files for this highly available SQL Server instance. Ensure the path is on shared storage. For Linux, specify the mount path for the managed shared disk.

    caution

    Due to the way that SQL Server works on Linux, the supplied Data Path is used for both data and logs. Although the Log Path is still a required field, the field is ignored for Linux deployments.

  • New virtualization - Specify whether DxEnterprise should copy the baseline data from the active member to the SAN. If this checkbox is not checked, DxEnterprise will re-use data defined from Data Path and Log Path as-is.

  • SQL Authentication - This section is required only if using SQL Server login credentials.

  • Type - The Password option allows a login and password to be supplied. The Windows option allows the current Windows login to be used. The Credentials option allows a stored credential to be used. See the Credentials section of this guide for more information on stored credentials.

    • Credential - The name of the stored credential to use. This option is only visible if the Credentials authentication type is selected.

    • Login - The user name used to login to SQL Server. This option is only visible if the Password authentication type is selected. The SQL Server login can be any SQL login or Windows domain accounts that has been assigned the appropriate roles for the instance being managed. When supplying a domain account, the username needs to follow the UPN format (for example: user@domain.com).

      info

      The sysadmin role is recommended, but if a more restrictive role is required, then please see Minimum SQL Server Security Privileges for Managing HA Instances.

    • Password - The password used to login to SQL Server. This option is only visible if the Password authentication type is selected.

Click OK to add the SQL Server instance to the Vhost. The process of adding an instance may take several minutes to complete depending on the system capability and the size of the databases copied to the shared storage.

caution

By default DxEnterprise executes under the LocalSystem account context on Windows. It may be necessary to add this account to SQL sysadmin group in order for the process to succeed. If it is necessary to run DxEnterprise under a different account, please ensure the account used for DxCMonitor, DxLMonitor, DxHealthMonitor, DxRegMonitor, and DxStorMonitor are part of the local Administrators group, the SQL sysadmin group, and has full access to any SQL data folders.

Configure SQL Server Clients

To connect to a SQL database, SQL clients must specify the fully qualified name or IP address of the Vhost and the instance name or static TCP port number of the SQL Server instance associated with the SQL Server database. For example, if VHOST1\Customers listens on port 50001 and has the virtual IP address 192.168.1.71, clients could specify either "VHOST1\Customers", "192.168.1.71\Customers", "VHOST1,50001" or "192.168.1.71,50001" (remotely connecting by instance name requires a client alias to be configured).

info

DxEnterprise needs to know the port that SQL Server clients will use to access the SQL Server database. This means that SQL Server clients cannot use dynamic port assignment.

What Happens During a Failover?

Failovers can be planned (for example, upgrading the operating system) or unplanned (such as a crash of a primary member). DxEnterprise takes these actions during a failover:

  • Removes the IP address for the Vhost from the original member and then adds it to the backup member.

    info

    DxEnterprise allows the use of the local loopback or local IP address as the Vhost IP address. In these cases, the Vhost IP address is not added or removed on each failover/failback.

  • Updates registry keys and then starts SQL Server and SQL Agent on the backup member.

Clients using the IP address of the Vhost will now access the databases on the shared storage via the SQL Server instance on the backup member.

After a Vhost fails over, by default it remains on the backup member even after the primary member comes back online. (Optionally, you can configure the Vhost to automatically fail back to the original member.)

info

Failover time needed for a planned outage is as long as it takes to shut the SQL Server instance down and restart it, as fast as your particular instance takes on your infrastructure. For unplanned outages, it is the time necessary for DxEnterprise to exceed user definable threshold to declare the instance offline, and SQL Server to start and do recovery, typically less than 30 seconds.

Replication of Registry Keys

DxEnterprise replicates the registry keys for the SQL Server instance from the local server to a location on the shared storage containing the corresponding "Master" SQL databases. The registry monitor watches the main SQL Server instance key, and if it changes, persists the key to this location.

If a Vhost fails over to a backup member, that member reads the keys from the shared storage and applies them to its local registry before starting the SQL Server services. On failback, after SQL Server services are stopped on the backup member, the registry is returned to its original state on that member.

Installing SQL Server Instances

The SQL Server instances associated with a Vhost must be installed on all of the members. The Vhost is active on the primary member and SQL Server database requests are serviced from there. On failure, DxEnterprise will failover the Vhost to one of the designated backup servers where it will continue to provide access to the shared data under the same Vhost name/IP-address pair.

Before starting installation of SQL Server instances, be aware of the following.

SQL Server Version Support

DxEnterprise Software can be used with SQL Server 2012/2014/2016/2017/2019, Express, Standard, Enterprise, and BI (2012), 64-bit.

General Prerequisites

Before installing SQL Server through DxEnterprise, the following prerequisites should be met:

  • DxEnterprise Software must be installed on each node.

  • .NET Framework 4.7.2 (Windows) or .NET Runtime 6.0 (Linux), or higher must be installed.

  • SQL Server and the SQL Agent can be configured to use either the Local System account or a Domain account. However, certain SQL Server features are not available if you use the Local System account. Consult the Microsoft documentation for more information about these accounts and the features they support.

  • Multiple instances per Windows node are supported. Consult the Microsoft documentation for supported limit.

  • A primary SQL Server instance and its backup SQL Server instances must have the same name. For example, if you install a SQL 2016 instance called "instance1" on the primary node, you will also need to install a SQL 2016 instance called "instance1" on any backup nodes.

Run the Application Installer > Install SQL Server

Before starting the DxEnterprise Application Installer, be sure to review the prerequisites and installation considerations described above. Also be sure that the product files are in a location that can be accessed by the Installer. Mount a virtual CD/DVD for SQL media on each node unless using a network UNC path. Be sure the assigned drive letter is mapped the same for the virtual CD on all nodes unless using UNC.

To start the DxEnterprise Application Installer, select Application Installer > Install SQL Server in DxAdmin.

application installer

To install a new instance, provide the following information.

  • SQL Version - Select the SQL Server instance version.

  • Setup file name - Enter the name and location of the SQL Server setup files, or click the Browse button to locate them.

  • Template file name - Enter the name and location of a SQL Server template (INI) file, or click the Browse button to locate them. Sample templates are located at %ProgramFiles%\DH2i\template. Template files are a standard answer (configuration) file used by Microsoft SQL Server unattended operations. For details, please visit

  • Optional parameter(s) - Enter any optional setup parameters (e.g. FEATURES=SQLEngine).

  • Executing command - Enter or edit the SQL Server instance setup command.

  • Network user - A required field if the setup media resides on a network share. Enter the user credential with proper access. This parameter is ignored if the setup media is local to the server(s).

  • Network password - A required field if the setup media resides on a network share. Enter the password for the network user credential.

Select the servers on which the instance will be installed and then click Install to begin the installation process.

Updating SQL Server Instances

This section describes how to install Service Packs and Hotfixes on SQL Server instances.

Update Overview

The DxEnterprise Application Installer can be used for all updates of SQL Server instances that have been managed and made highly available by DxEnterprise on Windows. Both managed and unmanaged instances can be updated with the installer. If the installer is not used for an update, version mismatches can occur between the managed and original registry and the data files on the active node.

The DxEnterprise Application Installer can install any edition or version of SQL Server 2012/2014/2016/2017/2019, associated Service Packs, and most to all SQL Server hotfixes. SQL Server setup packages must support silent and unattended installations.

To minimize downtime and have a rollback option, DH2i strongly recommends that you perform rolling updates for your managed instances, starting with the non-active servers first. Once the update is complete on the non-active node, failover the instance to allow SQL Server to complete online upgrade of the databases. Confirm that the instance is upgraded, then update the remaining server(s).

info

The DxEnterprise application installer cannot be used to apply updates to a managed SQL Server instance on the active node. This is because the application of a service pack will typically cause the instance to be temporarily shut down, which will be detected by DxEnterprise and interpreted as a failure.

Location of Service Packs and Hotfixes

The SQL Server product files must be in a location that can be reached by the DxEnterprise Application Installer. Mount a virtual CD/DVD for SQL Server media on each node. Be sure the assigned drive letter is mapped the same for the virtual CD on all nodes. If the setup media in on a network share, enter appropriate network share credential to access the media from all nodes.

Update Considerations for SQL Server

  • Extract zip files - Some hotfixes are provided as zip files. Be sure to extract the contacts of the file and review the README before starting the installation.

  • Service pack and hotfix names - The installation procedure expects the names of SQL Server service packs and hotfixes to follow the standardized naming schema defined in the following Microsoft Knowledge Base article: Naming schema and Fix area descriptions for SQL Server software update packages. The installation will fail if the name of a service pack or hotfix has been changed and it no longer matches the schema.

Run the Application Installer > Update SQL Server

Before starting the DxEnterprise Application Installer, be sure to review the prerequisites and installation considerations described above.

To start the DxEnterprise Application Installer, select Application Installer > Update SQL Server in DxAdmin.

managed instance name

To dynamically push a SQL update to any desired instances, supply the following information. The update will run in parallel on all selected nodes.

  • SQL Version - Select the SQL Server instance version.

  • Setup file name - Enter the name and location of the SQL Server service packs and hotfixes files or click the Browse button to locate.

  • Template file name - Not enabled for update.

  • Optional parameter(s) - Enter any optional setup parameters (e.g. FEATURES=SQLEngine).

  • Executing command - Enter or edit the SQL Server instance setup command.

  • Network user - A required field if the setup media resides on a network share. Enter the user credential with proper access. This parameter is optional if the setup media is local to the server(s).

  • Network password - A required field if the setup media resides on a network share. Enter the password for the network user credential.

Select the instances, managed and unmanaged, to be updated and the servers on which the instance will be updated. Click Install to begin the update process.

SQL Server Instance Details

When a SQL Server instance is selected on the explorer tree, various instance details are displayed.

instance details window

  • Name - The selected SQL Server instance name.

  • Description - User-defined description for the instance. Click the pencil icon to set or update the description for the instance.

  • Port - SQL Server instance static listening TCP port.

  • Data path - Data path on the shared storage.

  • Log path - Log path on the shared storage.

  • SQL login - The login user is displayed if connecting using server login credentials. Click the pencil icon to update the SQL login credentials. The SQL Server login can be any SQL login or Windows domain account that has been assigned the sysadmin role for the instance being managed. When supplying a domain account, the username needs to follow the UPN format (for example: user@domain.com).

Advanced

User-defined script management for the instance. This is a logic insertion point for a SQL Server application workflow. A custom script can be set by specifying the absolute path (...) or by embedding the script contents within the DxEnterprise cluster configuration. When the script content is embedded within DxEnterprise, it is guaranteed to be available for any node when the instance fails over/back between nodes. It is the preferred choice for DxEnterprise.

  • Pre-Start - A custom script is executed before the instance starts up on a node. Ideal event to embed business logic to switch over the replicated storage from read-only to read-write before starting up the instance.

  • Post-Start - A custom script is executed after the instance successfully starts up on a node. Ideal event to embed business logic to start 3rd party agents or dependencies for the instance.

  • Pre-Stop - A custom script is executed before the instance stops on a node. Ideal event to embed business logic to stop 3rd party agents or dependencies for the instance.

  • Post-Stop - A custom script is executed after the instance successfully stops on a node. Ideal event to embed business logic to clean the instance environment.

info

Highly available SQL Server instances can be moved between Vhosts by simply dragging the SQL Server instance from one Vhost and dropping the instance onto another Vhost. However, service and disk dependencies will need to be considered when using this feature.

SQL Server Instance Commands

In DxAdmin, select a highly available SQL Server instance on the explorer tree, then right-click to display a menu listing the available options.

instance member

  • Refresh - Refresh the displayed data.

  • Remove instance - Removes, or "devirtualizes", a highly available SQL Server Instance from the Vhost.

  • Stop instance - Stops and disables a managed SQL Server instance. The instance services will be shut down, and will not be included in failover actions for the Vhost.

  • Relocate system databases - When the current disk is at capacity, it may be necessary to relocate the system databases (i.e. master, msdb, model) to another disk with more free space. This operation can also be used to migrate SQL data from one storage system to another.

  • Set dependencies - To define the dependencies between SQL Server instances and/or services to prioritize which instances or services should start up first.

    When an application depends on another application, it will be started after all of the depended on applications finish starting. If a circular reference is set for the dependencies (i.e. instance1 depends on service1, and service1 depends on instance1), the system will break the dependency tree and revert back to default behavior as if there is no dependency set.

    dependency management

    • OK - Commit the changes.

    • Close - Cancel the process without making any changes.

SQL Server Instance Status

instances tree leaf

SQL Server Availability Groups

DxEnterprise enables SQL Server availability groups (AGs) to be made highly available within and between Windows and Linux nodes and across any type of infrastructure---all without relying on cumbersome and restrictive cluster orchestration technologies such as Pacemaker or Windows Server Failover Clustering (WSFC). DxEnterprise provides advanced fault detection and failover automation to minimize outages for SQL Server databases, helping customers achieve nearest-to-zero total downtime. The DxEnterprise tool is the only technology on the market that enables highly available SQL Server availability groups across mixed Linux and Windows nodes and mixed Linux distributions. Use this tool to make your AG deployments easier to set up and manage. This functionality requires the use of Microsoft's SQL Server 2017 or later release. Additionally, the creation of an availability group under a Vhost simplifies common configuration criteria.

DxEnterprise for availability groups also integrates seamlessly with DH2i's network security technology to make it easy to create highly available multi-server / multi-site / multi-cloud availability groups. Without exposing any open ports or requiring the use of a VPN, DxEnterprise automatically creates the networking tunnels between the nodes that are required for cluster communication and availability group replication. These micro-tunnels then transmit TCP payloads via UDP for superior performance and security.

Add an AG

DxEnterprise allows the creation of an availability group within SQL Server and to manage it across Linux and/or Windows members.

note

To enable availability group management and/or tunneling features, please contact your DH2i account representative.

The pre-requisites are as follows:

  • The tunneling feature must be activated if you intend to build a cross-site or cross-subnet AGs.

  • A Microsoft SQL Server 2017 or later instance on each member.

  • A Vhost that does not have a Docker, Instance, or service configured.

Steps to Add an AG

  1. To add an availability group, right-click on a Vhost and select Add availability group.

    add availability group

  2. The AGS Management window then appears.

    AGS management

  3. Give the availability group a unique name.

  4. [OPTIONAL] Check the Tunnel box to create a tunnel between all of the members in the group if needed (cross-site mirroring or cross subnet mirroring).

  5. [OPTIONAL] Set the Cluster Type to EXTERNAL (automatic failover) or NONE (no automatic failover). The default is EXTERNAL.

  6. [OPTIONAL] Add a description for the AG if desired.

  7. [OPTIONAL] Add optional parameters to the AG. An example of an optional parameter is the new SQL Server 2022 option for CONTAINED availability groups.

  8. Select the Instance name on each member.

  9. Click on Authenticate for each member to supply sysadmin credentials for the instance. Once authenticated the Valid checkbox will be checked.

    sql server login

    • Type - The Password option allows a login and password to be supplied. The Windows option allows the current Windows login to be used. The Credentials option allows a stored credential to be used. See the Credentials section of this guide for more information on stored credentials.

      • Credential - The name of the stored credential to use. This option is only visible if the Credentials authentication type is selected.

      • Login - The user name used to login to SQL Server. This option is only visible if the Password authentication type is selected. The SQL Server login can be any SQL login or Windows domain accounts that has been assigned the appropriate roles for the instance being managed. When supplying a domain account, the username needs to follow the UPN format (for example: user@domain.com).

      • Password - The password used to login to SQL Server. This option is only visible if the Password authentication type is selected.

info

The authentication can be any SQL login, Windows domain account or Kerberos ticket cache that has been assigned the appropriate roles for the availability group being managed. When supplying a domain account, the username needs to follow the UPN format (for example: user@domain.com).

The sysadmin role is recommended, but if a more restrictive role is required, then please see Minimum SQL Server Security Privileges for Managing Availability Groups.

  1. Select the Availability Mode (Synchronous, Asynchronous or Configuration Only).

  2. Click OK to add or Close to exit without making changes.

Configure a Listener Port

After the Availability Group has been added there is an option to configure a Listener Port.

caution

The listener port is not functional with SQL versions prior to SQL Server 2017 CU22 and SQL Server 2019 CU7.

  1. Left click on the name of the Availability Group.

  2. Click on the pencil icon to edit the Listener Port field.

  3. Click on the pencil again and then click Yes to save changes or No to discard the changes.

    name the AG

Manage Availability Databases

To add or remove databases from an availability group, right-click on the availability group and select Manage availability databases.

manage availability databases

The AGS Database Maintenance window then appears.

ags database maintenance

Select the database(s) and use the arrow buttons to add or remove them from the Selected Databases. Click Submit to save or Close to cancel.

Attach an Existing AG

DxEnterprise allows the user to attach an existing availability group and manage it across Linux and/or Windows members.

note

To enable availability group management and/or tunneling features, please contact your DH2i account representative.

The pre-requisites are as follows:

  • All members in the Vhost must have Microsoft SQL Server 2017 or newer installed and are members of an availability group prior to attaching it.

  • The Vhost does not have a Docker, Instance, file share or service configured.

  • Stop any cluster software that previously managed the availability group. I.e. If using Pacemaker then stop the Corosync and Pacemaker services.

  • Availability Groups with a cluster type of WSFC are not eligible for attachment.

Steps to Attach an AG

  1. To attach an availability group, right-click on a Vhost and select Attach availability group.

    attach availability group

  2. The Attach Availability Group window then opens.

    attach ag window

  3. Select the Instance name in the dropdown box.

  4. Click on Authenticate for each member to supply credentials for the instances. Once authenticated the Valid checkbox will be checked.

    sql server login

info

The authentication can be any SQL login or Windows domain accounts that has been assigned the appropriate roles for the availability group being managed. When supplying a domain account, the username needs to follow the UPN format (for example: user@domain.com).

The sysadmin role is recommended, but if a more restrictive role is required, then please see Minimum SQL Server Security Privileges for Managing Availability Groups.

  1. Click on Search for Availability Group to find any existing availability groups.

    search for ag to attach

  2. Select the availability group to attach.

  3. Click OK to attach or Close to exit without making any changes.

Detach an AG

To detach an availability group but not delete it from SQL Server, right-click on the availability group and select Detach availability group. This will allow the AG to be imported again later.

select detach availability group

Remove an AG

To remove the availability group from both the cluster and delete it from SQL Server, right-click on the availability group and select Remove availability group.

caution

This option will completely remove the availability group configuration from SQL Server.

select remove availability group

Modifying AG Credentials

If the credentials inside of SQL Server are modified, then the credentials used by DxEnterprise to manage the availability group will also need to be modified. To modify the credentials used by DxEnterprise, use the following method.

  1. Select the availability group under the Vhost.

  2. In the availability group details pane, click on the Replica Credentials bar.

  3. The Replica Credentials section will then be visible.

    modify ags credentials

  4. Select Update to modify the Login and/or Password for the management user(s). Click Submit to save the changes.

Automatic Tunneling with AGS

Tunneling with AGS can be performed automatically during the initial configuration of an AGS Vhost. To perform this function, right-click on a Vhost and select Add availability group. The following dialog is presented.

add availability group

The Tunnel checkbox under the AGS Name will automatically create a tunnel between the members in the Vhost for AGS replication.

For additional information on tunneling, please see the Tunnels section of this guide.

Extended Vhosts for AG

This section describes how to add an extended Vhost (exVhost) to a DxEnterprise cluster and then add an Availability Group to the exVhost. DxEnterprise supports two types of Vhosts: standard Vhosts, which have nodes as members, and extended Vhosts (exVhost) whose members consist of other Vhosts. exVhosts are designed for running a single highly available Availability Group (AG) across multiple HA instances. This gives users the ability to have HA on both the primary replica and secondary replicas for the AG while providing independent health monitoring and failovers of the HA instances and the AG.

Add an exVhost

To configure an exVhost, at least 2 highly available (HA) instances will need to be configured beforehand. However, to meet the Microsoft quorum requirements for availability groups with automatic failover, a minimum of 3 HA instances should be configured.

caution

For SQL Server on Linux, SQL Server 2019 CU8 or later is required.

vhost properties

  1. Right-click on DxCluster and select Add virtual host.

  2. Add the name for the exVhost.

  3. Add the virtual IP for the exVhost. If no virtual IP is required, then leave it blank.

  4. OPTIONAL: Add a probe port for internal load balancer probing.

  5. Under Member Type, select VHOST.

  6. Add the desired Vhost members from the Available Members list to the Selected Members list.

  7. Click OK to commit the changes.

Add an AG to an exVhost

ags management exvhost

  1. Right-click on the exVhost and select Add availability group.

  2. Add a name for the AG.

  3. OPTIONAL: Select the Tunnel checkbox to automatically create tunnel connections between AG members. This is applicable for cross-site, cross-domain cluster topology joined through the DH2i Matchmaking Service (match.dh2i.com).

  4. Verify that the correct instances are selected for each Vhost.

  5. Set the desired mirroring port (default is 5022).

  6. Verify that the correct Availability Mode are selected for each Vhost.

  7. Click OK to commit the changes

File Shares (Windows Only)

When you add a file share to a Vhost you create a highly available (HA) File Share. Be sure to use DxEnterprise instead of a Windows application. If Windows utilities are used to create the Virtual File Shares, they will not be made highly available.

DxEnterprise Software periodically checks whether the HA File Share can be accessed externally. A failure detected by DxEnterprise can cause the Vhost to fail over to a backup member.

Add a File Share

To add a highly available File Share to a Vhost, select the Vhost on the DxAdmin explorer tree and right-click to select Add a fileshare.

select add fileshare

The Adding a new file share window then appears.

add new fileshare

  • Share Name - A name for the file share.

  • Share Path - Type the location of the file share on shared storage (such as O:\Share1). This is typically the drive letter or path assigned to the filesystem that will be accessed via this share.

  • Description - If desired, enter a description of the file share.

  • User limit - This value specifies the number of users that will be allowed to access the file share simultaneously. Maximum is the system maximum, which is limited by the available memory. To specify a different number of users, select Allow and then type the number of users to be given access.

  • Caching - Offline caching allows users to cache files and programs from the share to their local machines. There are five options:

    • Only the files and programs that users specify will be available offline - This option lets users select the files that will be available offline.

    • Enable BranchCache and Only the files and programs that users specify are available offline - A Microsoft feature that can reduce wide area network (WAN) utilization and enhance network application responsiveness when users access content in a central office from branch office locations. When you enable BranchCache, a copy of the content that is retrieved from the Web server or file server is cached within the branch office. If another client in the branch requests the same content, the client can download it directly from the local branch network without needing to retrieve the content by using the Wide Area Network (WAN).

    • All files and programs that users open from the share will be automatically available offline - Whenever a user accesses the shared folder or volume and opens a file or program in it, that file or program will be automatically made available offline to that user.

    • Optimized for Performance - All programs are automatically cached and can be run locally. This feature is useful for file servers that host applications because it reduces network traffic and improves server scalability.

    • No files or programs from the share will not be available offline - Files and programs are not cached offline.

  • Grant - This indicates user roles and permission granted for the new file share. The default READ for all users.

    grant to file share

    Clicking Add will display a new dialog box allowing you to grant permissions of Read, Change, or Full to the selected user name. The user name may a single user or a group defined on the server.

    • Remove - To remove a permission, select the position in the Grant list and click the Remove button to the right.

    • OK - Click to commit settings.

    • Close - Click to cancel the process without making any changes.

Services

DxEnterprise supports adding a generic service to a Vhost. When a service is added to a Vhost, it will follow the Vhost and will be brought online on the active member, similar to a SQL Server instance added to a Vhost.

This feature is ideal for various backup agents, stand-alone applications, and dependent services/applications on SQL Server. In essence, the generic service or application is made highly available because it is always available through the Vhost endpoint.

Add a Service

To add a generic service to a Vhost, right-click on a Vhost and select Add a service.

add a service

The Virtual Host Generic Service Maintenance window then appears.

service maintenance window

  • Service Name - Select the drop-down list and pick the desired service to add. This list is dynamically created based on the services that are available across all members of the Vhost.

  • Description - Enter a description for the service.

  • Assume Vhost Name - Optional. When the checkbox is checked, the service will assume the Vhost name when it starts up on the active member. Applicable when the service is connected to via the Vhost name.

  • Set - Optional. When the checkbox is checked, the Registry key and Repository Path are available for data input.

  • Registry key - A service registry key that will follow the service during a failover. The registry key provided will be copied from the primary member for the Vhost and used as the cluster registry for the service.

  • Repository Path - A local path where the registry key will be backed up on all members.

  • OK - Click to commit settings. A confirmation dialog then appears. Select Yes to commit or No to cancel.

    confirmation dialog

  • Close - Click to cancel the process without making any changes.

Service Commands

In DxAdmin, select a highly available service on the explorer tree, then right-click to display a menu listing the available options.

HA service commands

  • Refresh - Refresh the displayed data.

  • Remove service - Removes a service from DxEnterprise management.

  • Stop service - Administratively disables a service. The service will be stopped, and will not be included in failover actions for the Vhost.

  • Set dependencies - Defines dependencies between SQL Server instances and the service.

    specify dependencies

    When an instance or service depends on other instances or services, it will be started after all of the dependent instances or services finish starting. If a circular reference is set for the dependencies (i.e. instance1 depends on service1, and service1 depends on instance1), the system will break the dependency tree and revert back to default behavior as if there is no dependency set.

  • OK - Click to commit the changes.

  • Close - Click to cancel the process without making any changes.

info

Generic services can be moved between Vhosts by simply dragging the service from one Vhost and dropping the service onto another Vhost.

Service Status

services tree leaf

Docker Containers

DxEnterprise allows you to make a Docker container highly available across members with stateful storage. Additionally, the creation of a Docker instance within a Vhost manages the container and simplifies common configuration criteria.

note

To enable Docker management features, please contact your DH2i account representative.

The pre-requisites are as follows:

  • Installation of Docker on each member.

  • Pull the same image or set of images on each member.

Add a Docker Container

To add a Docker instance to a Vhost, right-click on a Vhost and select Add Docker instance.

select add docker

The Docker Management window then appears.

docker management

  • Docker Container Type - Contains pre-set templates for common images, as well as a Custom blank template allowing you to utilize arbitrary images.

  • Docker Name - The logical name for this container instance. This must be unique, as this is also used as the Docker container name.

  • Docker Image - This is a pull-down list of eligible images installed across members. The user may enter an arbitrary name instead, but it is recommended to utilize the drop-down list. If the MSSQL Container Type is selected, the user will need to check the Accept EULA checkbox in order for an mssql-server container to be started.

  • Host Port - This is the static port mapping between the host and container instance. It is in the form of <host>:<container>. The pre-defined templates contain the known endpoint, whereas the custom template requires you to enter the container endpoint.

  • SA Password - When using pre-defined templates, this field will input the MSSQL sa, MySQL root, or Postgress postgress user passwords.

  • Data Path - This is a pull-down list of managed and mounted volumes for stateful data. The volume selected should be one added to the Vhost diskgroup to ensure it is online where the Vhost is active. You may enter an arbitrary data path, but it is recommended to utilize the drop-down list. Custom container types require that it be entered manually. The target is pre-populated for known container types in the form of <host path>:<container path>. If this field is not populated, the container instance will not be stateful, but it is a valid configuration.

  • Optional fields - The optional fields allow you to specify any additional parameters to be passed in. Any option supported by the docker run command can be specified here.

To add an entry, click the plus sign to the right of the field. The Docker Param Management window will open. Param Name is a drop-down list of commonly-used options, and you can enter other options by typing into the field. The Value is the argument to the option, if one is necessary. If the contents of the Value are sensitive, you can click the checkbox to the right. This will store the Value encrypted and will not display in plain text in the Optional parameters list.

  • OK - Click to commit the changes.

  • Close - Click to cancel the process without making any changes.

Tunnels

DH2i TCP Tunneling is a new way for accessing specific applications without the cost, complexity, and security risks of VPNs. DH2i TCP Tunneling is designed for scaling across environments to build a secure hybrid/multi-cloud distributed application infrastructure from any platform to any platform, any host to any host, anywhere. DH2i TCP Tunneling features:

Configuration and Management Simplicity

  • Lightweight Windows or Linux install
  • Simply install and connect
  • No dedicated VPN routers
  • No ACLs, no firewall rules
  • No expensive cloud VPN services

Highest Level of Security and Performance

  • Application-level micro-tunneling
  • Discreetly transports TCP payloads via UDP
  • Eliminates lateral network attack surface
  • Highly available, auto self-healing tunnels
  • Invisible to port scanners

To enable the tunneling features within DxEnterprise, please contact your account representative.

Tunnel Types

There are two different types of tunnels that can be configured; stand-alone tunnels or Vhost tunnels.

Stand-alone Tunnels

Stand-alone tunnels create a destination and a listener for each origin row that is defined, but does not provide high availability.

Vhost Tunnel

Vhost tunnels provide failover support and high availability. A Vhost tunnel virtualizes the network name and IP address associated with a particular member. Rather than using the network name and IP address of an actual server, a Vhost is created and assigned a unique name/IP-address pair.

Tunnel groups can be assigned aliases for the Destination Gateway Name and Origin Names. The aliases are defined as follows:

  • Destination Alias
    • .ACTIVE - The tunnel destination will always follow the active member of the Vhost.
  • Origin Aliases
    • .ACTIVE - The tunnel origin listener will always follow the active member of the Vhost.
    • .INACTIVE - The tunnel origin listener will be created on all inactive members of the Vhost.
    • .ALL - The tunnel origin listener will be created on all cluster members.
    • .PART - The tunnel origin listener will be created on all participating members of the Vhost.
    • .NONPART - The tunnel origin listener will be created on all non-participating members of the Vhost.
    • .NONDEST - The tunnel origin listener will be created on all cluster members that are not the same as the destination gateway.

Add a Tunnel

select add a tunnel

Right-click on DxCluster in the tree view and select Add a tunnel. The following dialog is displayed to allow the user to configure the new tunnel.

tunnel management

  • Tunnel Name - The logical name for the tunnel. This must be unique.

Destination

  • Gateway Name - The node name, or .ACTIVE alias if the tunnel is assigned to a Vhost. The destination gateway is the node or Vhost alias that will recieve all tunnel traffic and forward it to the target host/IP.

  • Target Host/IP - The desired host name or IP address of the target server. This is the hostname or IP address that the destination application is listening for connections on.

  • Target Port - The destination port of the target server. This is the port that the destination application is listening for connections on.

Origin

  • Name - The node name, or alias if the tunnel is assigned to a Vhost. The origin node or Vhost alias is where the tunnel listeners are created. Any traffic sent to the tunnel origin will be sent across the tunnel to the destination.

  • Network Address - The network address or subnet where the origin listener will be created. Setting a network address of all zeros (0.0.0.0) creates a listner on all available network addresses for the applicable cluster members.

  • Origin Listening Port - Port number for the listener on the origin side of the tunnel.

  • Origin Source Filter - Source filter rules defined by the Source Filter Manager.

  • Add Row - Add a row to the origin listener set.

  • Delete Row - Deletes the selected row from the tunnel definition.

    info

    DxEnterprise allows the tunnel to be configured using aliases only if the tunnel is assigned to a virtual host and the NATEnabled setting is set to true.

Tunnel Detail View

The main panel displays the details of the selected tunnel from the tree view.

tunnel detail

  • Edit/Save - The Edit button allows the user to edit the data that is set up in the Add Tunnel screen with the exception of the tunnel name. After clicking Edit, the same button changes to Save, which saves any changes made to the tunnel details. However, as stated above, the tunnel name is the unique identifier in the cluster and can only be changed by deleting the tunnel and adding a new one with the same parameters but a different tunnel name.

  • Manage Clients - Allows clients and groups to be added and/or removed from the tunnel.

  • Cancel - This will undo any changes made in the edit screen and will return to the tunnel detail view in read-only mode.

Adding Tunnels to a Vhost

DxEnterprise Software allows adding tunnels to Vhosts to provide failover support and high availability. A Vhost virtualizes the network name and IP address associated with a particular gateway. Rather than using the network name and IP address of a physical server, a Vhost is created and assigned a unique name/IP-address pair to be used as a tunnel gateway.

To add a tunnel to a Vhost, right-click on the Vhost and select Add a tunnel.

vhost tunnel

The Tunnel Management window is then displayed to allow configuring the tunnel.

Vhost Tunnel Detail View

vhost tunnel detail

  • Add - Add a new tunnel.

  • Delete - Deletes the tunnel from the cluster configuration. To remove the tunnel from the Vhost instead, select the Assign button.

  • Assign - Allows existing tunnels to be added or removed from the Vhost. The following dialog is displayed.

    vhost tunnel config

    To remove a tunnel, move it from the Selected Tunnels to the Available Tunnels. To add a tunnel, move it from the Available Tunnels to the Selected Tunnels. To move a tunnel between available and selected, you can double-click on the tunnel or select the tunnel and use the appropriate arrow.

    • OK - All changes are submitted.

    • Close - This will close the dialog without making any changes.

Source Filters

The Source Filter Manager dialog allows the user to configure specific rules for allowing or denying one or many IP addresses, subnets, ports or ranges. To add a source filter, right-click on DxCluster at the top of the treeview and select Add a source filter.

select add source filter

The Configure Address Filter rules dialogue is then displayed.

configure filter rules

  • Filter Name - The name of the rule to create.

  • Address - The first column is a text entry that allows input in the following formats:

    • IPAddress - 10.0.0.10
    • IPAddress:Port - 10.0.0.10:2345
    • IPAddress/CIDR - 10.0.0.0/24
    • IPAddress/Mask - 10.0.0.0/255.255.255.0  
  • Action - In this column is a drop down with the following selections:

    • Allow - Allows the configured address access to the tunnel.

    • Deny - Denies the configured address access to the tunnel.

  • Delete - The red X in the delete column will delete the selected IP definition from the rule.

  • Default - This is the default rule for the source filter. Select DENY ALL or ACCEPT ALL for the default rule, depending on the intent to deny all connections but allow a specific IP, or allow all connections and deny a specific IP.

  • Up Arrows - Moves the selected IP definition up in the sorting order of the rule.

  • Down Arrows - Moves the selected IP definition down in the sorting order of the rule.

  • New Row - Add a new IP definition for the rule.

  • Submit - Close the form and commit changes.

  • Close - Close the form without making changes.

To manage existing source filters, select Source Filters at the bottom of the treeview. Any existing filters will then be displayed in the center detail pane.

manage existing filter

  • Add - Create a new rule.

  • Edit - Edits the highlighted rule.

  • Delete - Deletes the highlighted rule.

Credentials

The Credentials Manager allows the user to add and store 2 different types of logins; usernames/passwords or Kerberos Credential Caches. These stored credentials can then be used to manage virtualized SQL Server instances for high availability and/or availability groups.

In the treeview, select Credentials. The detail pane will then display any configured credentials that have been created.

To add a new credential, select the Add Credential button in the top-right corner. The Credential Manager window is then displayed.

credential manager window

  • Name - The display name assigned to the credential.

  • Type - Either Login (username and password combination) or Kerberos Credential Cache obtained from a Key Distribution Center (KDC) in the domain.

    tip

    In order to use a Kerberos Credential Cache, the nodes must be joined to a domain. The steps to join nodes to a domain should be obtained from the provider of the operating system.

    For more information on creating a ticket cache on Linux, see Create Ticket Cache File for Kerberos Authentication in Linux

    Once the ticket cache has been created, then use the output of the following command as the Kerberos Credential Cache to be saved by DxEnterprise.

    cat <ticket_cache_file> | base64
  • Submit - Save the changes and exit.

  • Close - Close the window without saving.

Clients and Groups

select clients and groups

The Clients and Groups Manager allows the user to add a new remote client, a remote client group, edit a client, or edit a group. This is where the configuration file is generated that allows the client to access one or more tunnels based on which tunnels the client is associated with. To access the Clients and Groups Manager, select Clients and Groups in the treeview.

client group management

  • Clients - Click the radio button to display a list of current clients.

  • Client Groups - Click the radio button to display a list of current client groups.

  • Grid Navigation Bar - The navigation bar allows the user to set the number of items per page and navigate to a specific page.

    navigation bar

    From left to right the actions are:

    • Move to first page.
    • Move back one page.
    • Set the page number manually.
    • Move forward one page.
    • Move to last page.
    • Number of items per page.
    • Refresh data.
    • Display the details of the selected client (only available in client view).
  • Add New Group - Add a new remote client group. A remote client group is a unique name used to group members together. The "add new group" window is the same as the edit window, the only difference being the group name cannot be changed.

info

Every Group Name must be unique.

group window

  • Search... - Filter the list of clients based on the search parameters.

  • Add Client - Opens the Add new client dialog.

  • Add Arrows - After selecting one or more clients, the right arrow button can be used to add the clients to the remote group. Changes are not saved until the Submit button is selected.

  • Remove Arrows - After selecting one or more client members, the left arrow button can be used to remove them from the current group. Changes are not saved until the Submit button is selected.

  • Submit - Changes are saved and the dialog closes.

  • Close - Changes are not saved and the dialog closes.

  • Add New Client - Adds a new remote client. The Add remote client dialog is the same as the Edit remote client, except the username cannot be changed in edit mode.

    info

    Every client username must be unique.

    remote client window

    • Submit - Submits the data and closes the dialog. If Apply or Submit is not selected, any information in the fields will not be saved.

    • Close - Closes the dialog.

    • Apply - Submits the current data and clears the form so the user can add another remote client.

  • Export Config File - Exports the client configuration file. The configuration file will be needed, along with the username and password, for a user to connect to a tunnel using the DxConnect application. For more information about DxConnect please see the DxConnect Admin Guide.

Policies

DxEnterprise has a policy-driven system resource monitor and load balancer designed to maintain ideal operating conditions for hosted applications. When systems fail or load conditions change, DxEnterprise will ensure that all database instances remain responsive. DxEnterprise supports two different modes of operation: Performance Thresholds and Resource allocation. All DxEnterprise settings are configured in the Resource Manager.

Performance Policies

DxEnterprise performance thresholds support alerting and load-balancing based on the usage of specific system resources. Performance thresholds are configured by policies in the Performance tab of the Resource Manager dialog. In this tab, all defined resource threshold policies are listed and grouped by the SQL Server instance or node for which they are defined.

performance policy window

Add a Policy

To add or define a new policy, click Add.

policy detail

  • Policy ID - System generated policy ID.

  • Enabled - Enables or disables a policy.

  • Description - User-defined field for the policy.

  • Type - There are four types of policy supported by DxEnterprise:

    • System - policy defined for a cluster member node.
    • Instance - policy defined for an application, such as a SQL Server instance.
    • Service - policy defined for a generic service.
    • Docker - policy defined for a Docker instance.
  • For - A given entity based on type selected.

  • Counter - The performance counter or type of resource to be monitored. Supported counters for instances and cluster member nodes are:

    • Instance-Disk-IO
    • Instance-Networking
    • Instance-Processor
    • Instance-Working-Set
    • Process-Consumption
    • System-Disk-IO
    • System-Down
    • System-Free-Memory
    • System-Networking
    • Service-Disk-Io
    • Service-Networking
    • Service-Processor
    • Service-Working-Set
    • Docker-Disk-Io
    • Docker-Networking
    • Docker-Processor
    • Docker-Working-Set
  • Threshold - The conditional value when a policy is considered met or exceeded. For processor resources, this is specified in units of percentages. For memory resources, this is specified in units of megabytes (MB). For disk I/O and network I/O, this is specified in units of kilobytes per second (KB/s).

  • Email Operator(s) - Corrective action triggered when a threshold is met or exceeded. An email alert is sent to all the operators defined in the field. Use a comma to delimit multiple email addresses.

  • Execute Script - Corrective action triggered when a threshold is met or exceeded. Specify a full path to a custom script to be executed. The path must be accessible to all cluster nodes.

  • Load Balance - Corrective action triggered when a threshold is met or exceeded. Define whether the system should move an application instance to another cluster member node. Note that the load balance action is always taken for the System-Down condition.

  • Priority - Priority value ranges from 1 to 5 relative to other policies. When a load-balancing action is set, it is set with a priority which identifies the order of the instance relative to others for relocation. Vhosts with highest-priority instances are relocated last.

Allocation Policies

Using DxEnterprise resource allocation policies, you can define a Service Level Agreement (SLA) for each SQL Server instance. This ensures the availabilty of specific resources for each instance and will raise administrative alerts if the allocations cannot be met.

Mechanics of Allocation

To use allocation, a fixed amount of processor, memory, disk I/O, and network I/O resources may be specified for each instance. Resource allocation limits must also be specified for all cluster nodes. DxEnterprise will summarize the resource allocations of all instances running on a cluster node and ensure that they fit within the allocation cap for that node. DxEnterprise will also ensure that failover actions uphold allocations, if possible. If allocation limits are violated, administrative alerts are raised. Alerting actions can be configured.

allocation window

  • Refresh - Requery the cluster for the latest allocation policies.

  • Edit - Edit the associated application or node allocation policy.

  • Reset - Reset the allocation policy back to the default (none).

Allocation Policy Editor

Allocation policies allow the allocation of each of the four system resources (processor, memory, disk I/O, and network I/O) to be specified for a given entity and the allocation limits to be specified for each cluster node.

allocation editor

Instance(s), Application(s) and Service(s)

When configuring policies for a given application, the allocation policy editor displays the total quantity of each resource available on the current host, the allocation size, and the actual usage of the application. The allocation size may be specified as zero; in that case, the resource will be ignored.

Actions configured for application allocations are taken when the actual resource use of the application exceeds the allocation.

Cluster Nodes

When configuring policies for a cluster node, the allocation policy editor displays the configured allocations for the node. If the node is running, the total quantity of each resource available and the actual resource usage will be displayed. The allocation size may be specified as zero; in this case, the resource will be ignored and considered to be unlimited.

Actions configured for cluster node allocations are taken when the sum of resources allocated to all instances running on the node exceed the allocation limits set for the node.

Two types of actions may be configured for allocation policies:

  • Email - If specified, an email alert is sent to all the operators defined in the field. Use a comma (,) to delimit multiple email addresses.

  • Script - If specified, this field contains the full path to a custom script to be executed. The path must be accessible to all cluster nodes.

Notification Policies

DxEnterprise Global Alerts feature allows you to define a "catch-all" alert system that will notify the appropriate personnel when a particular system event is triggered.

global policy alert

  • Add - Adds a new global alert (filter) policy.

  • Edit - Edits an existing alert (filter) policy.

  • Delete - Removes an alert (filter) policy.

Global Alerts

Adding or editing an existing alert (filter) policy.

global alerts filter

  • Enabled - Enable or disable the global alert (filter) policy.

  • Description - User defined description for the alert (filter) policy.

  • Severity level - Message severity level. To raise the alert for only particular severity, check the desired box. If none is checked, the system considers it as "all" severity level. The default is all severity levels.

  • Includes Filters - The filter policy based on selected entities. To select the entities to filter, click the button with the ellipsis (...).

    select items to filter

    • Virtual host(s) - To raise the alert for particular Vhost(s).

    • Service(s) - To raise the alert for particular service(s).

    • Availability Group(s) - To raise the alert for particular availability group(s).

    • Docker(s) - To raise the alert for particular Docker(s).

    • Instance(s) - To raise the alert for particular instance(s).

    • Node(s) - To raise the alert for particular node(s).

  • Clear - Click to clear selected filters and reset dialog to default.

  • Email Operator(s) - When the alert is triggered, the system can notify user(s) via email if one is defined. Enter the recipient's email address here. If more than one email address is required, delimit them using a comma (,).

  • Submit - Click to save settings.

  • Close - Click to exit and do not save settings.

Contact Address Book

DxEnterprise Software uses Contact Address Book to store email addresses. A contact entry can be added, edited, or deleted at any time.

contact address book

Add a Contact

To add or define a new contact, click Add.

add a contact

  • Name - The name of the contact. Must be unique.

  • Email - Email address of the contact.

  • Submit - Click to save the contact info.

  • Close - Close the dialog.

Edit a Contact

To update a contact email address, click Edit.

contact detail add email

  • Name - The name of the contact. Non-editable.

  • Email - Email address of the contact.

  • Submit - Click to save the contact info.

  • Close - Close the dialog.

Delete a Contact

To delete a contact, click Delete.

remove confirmation window

Cluster Settings

The DxEnterprise Cluster Settings dialog contains options to configure low-level, cluster-wide settings for DxEnterprise. This dialog can be accessed in DxAdmin by selecting Advanced Configuration > Cluster Settings.

tip

For information about the usage of each global setting, run the DxCLI command dxcli list-globalsettings.

AGS

The AGS Settings section contains options related to DxEnterprise managed availability groups.

  • Demote Delay - The duration the system waits after issuing a demotion for Availability Groups, in seconds, to allow all replicas to sync. The default is 3 seconds.

  • DemoteOffline - Whether to set the primary replica offline on demotion for Availability Groups. Default is false.

  • UseAgsMonitor2 - Use sp_server_diagnostics health monitoring for Availability Groups. Note: run dxcli reload-monitored-ags <target_node> to commit.

Allocation Settings

The Allocation Settings section contains options related to DxEnterprise resource allocation.

  • AllocatorAlerts - When this setting is True, administrative alerts will be raised when allocations are exceeded, and configured actions related to allocations will be taken.

  • AllocatorEnabled - When this setting is True, allocations that are configured will be used to guide failover operations.

Broadcast Settings

The Broadcast Settings section specifies whether or not and how the cluster should deliver data among cluster members.

  • PerfBroadcastEnabled - When this setting is "True", the performance statistic data is delivered via UDP broadcasting. If this setting is False, performance statistic data is delivered through the cluster coordinator. Default value is false.

  • RelayBroadcast - When this setting is True, performance statistic data delivered via UDP broadcasting is relayed between disjoined subnet cluster members via a selected member from each subnet. Default value is True.

Cluster Info

The Cluster Info section contains a unique system-generated cluster ID.

  • ClusterID - A unique system-generated cluster ID.

Cluster Passkey

A pass key is required to log in to the cluster for administration. The pass key is case-sensitive and can be any combination of alpha-numeric characters, punctuation, or symbols. If the user has not configured a pass key or has forgotten the pass key, the user will be unable to log in remotely or log in using unprivileged accounts. The pass key requirement can be bypassed by launching DxAdmin as an administrator on a cluster node.

  • PassKey - The cluster passkey.

General

  • GroupDescription - The server group description.

  • GroupMaintenanceMode - Administratively disable automatic failovers for the entire group. Default is false.

Licensing

  • AutoReactivateEnabled - This setting allows automatic license reactivation to be enabled. Whenever the license key on a cluster member approaches within 10 days of expiration, then it will automatically try to reactivate the license using the DH2i Client Portal.

Networking

  • Beacons - Enable or disable LAN beacons for finding peers.

  • ClientHeartBeat - The remote client heartbeat. How often the server checks the remote client connection for alive status, in seconds. Default is 20.

  • MemberNameAlerts - Whether to raise alerts for hostname lookup failures of peer names.

  • MemberNameLookup - Whether to perform hostname lookup on peer names to find addresses.

  • MemberNameSuffix - List of suffixes to append when performing hostname lookup on members, delimited by commas (",").

  • NATAgentHeartBeat - How often the nodes check in with Matchmaking Service, in seconds. Default is 60.

  • NATDNSRefresh - DNS refresh interval for NATMatchMaking agent, in seconds.

  • NATEnabled - Enable or Disable registration with Matchmaking Service.

  • NATKeepAlive - How often the nodes check in with the Matchmaking Service in seconds. The default is 30 seconds.

  • NATMatchAgent - The comma (,) delimited list of Matchmaking Service used to resolve cluster member servers across clouds.

  • TunnelBufSize - The maximum buffer size for tunnel, in bytes. The default is 1048576.

  • TunnelConnectTimeout - Tunnel destination connection timeout, in seconds.

  • TunnelMaxPending - The maximun number of tunnels waiting to connect. Default is 5.

  • UDPBufSize - The maximum buffer size for UDP, in bytes. The default is 1048576.

Quorum

  • QuorumSize - The required quorum size to be active. Value can be either number of alive members, a percent of the alive members, or the maximum down members. E.g. (1) at least one alive member required; (-2) up to two down members is allowed; (75%) at least 75% of alive members is required.

RBAC

  • Authenticator - The authenticator type to use for role-based access control. The valid options are none, observer password and LDAP. For more information on configuring an authenticator, see the Role-Based Access Control section of this guide.

Sampling Intervals

When performance thresholds are configured, the usage of certain system resources are monitored, and actions are taken if a threshold is met or exceeded. In most cases, it is undesirable for a temporary spike in resource usage to cause such actions to be taken. To protect against this, DxEnterprise computes a moving average for all resources that it monitors. The sampling interval setting can be used to set the size of the moving average, and is specified in seconds. When the sampling interval for the processor is set at 120 seconds, the processor usage for the previous 120 seconds is averaged together and reported as the resource usage for the purpose of thresholds. Reducing the length of the interval causes thresholds to be triggered faster, but also makes it easier for the threshold to be triggered by a short spike.

  • IntervalDisk - The moving average size for disk I/O. Default value is 120 seconds.

  • IntervalMemory - The moving average size for memory. Default value is 1 second.

  • IntervalNetwork - The moving average size for network I/O. Default value is 120 seconds.

  • IntervalProcessor - The moving average size for processor. Default value is 120 seconds.

  • IntervalReservationCheck - The sampling duration in seconds in which the system rechecks the storage reservation. Default value is 5 seconds.

SMTP Configuration

DxEnterprise Software uses the settings in SMTP Configuration to send email alerts when a system event has been triggered.

SMTP config window

  • Server - The name or IP address of the SMTP server.

  • Port - The listening or connecting port of the SMTP server. Default is 25.

  • Protocol - The security protocol used to connect to SMTP server. Supported protocol are "None", "TLS", and "SSL".

  • Name - The user name used to connect to SMTP server.

  • Email - The email used to test connection to SMTP server and to send email from.

  • Password - The password for user credential used to connect to SMTP server.

  • Set - Click to persist the SMTP info.

  • Delete - Click to delete the SMTP info.

  • Close - Close the dialog.

Storage Management

The Storage Management section defines how the cluster will handle and manage cluster storage resources.

  • DiskWatcher - Enable or disable failover based on availability of the Vhost diskgroups. Default value is true.

  • PathWatcher - When this setting is True, the cluster regularly checks and monitors cluster storage availability. If storage is not available or lost, the cluster will indicate the current cluster member is ineligible to host applications and will failover as necessary. This setting is only set to False if the cluster is using replicated storage subsystems. Default value is true.

System Settings

The System Settings section defines internal cluster processing logic that affects system overall performance. This setting should be changed only at the direction of DH2i support staff.

  • MaxProcesses - The number of processes the system allows to work on in parallel. Default value is 10.

Timeouts

These options are used to specify the timeout period before a fault is reported.

caution

Timeout settings should only be changed at the direction of DH2i support staff.

  • AgsTimeout - The timeout in seconds that the system waits for an availability group to initialize on add-ags. Default value is 30 seconds.

  • CreateProcessTimeout - The timeout period for creating a new worker process, in seconds.

  • DelayStartNode - The short delay in seconds to wait for the Preferred state after add-ip operation. Default value is 4 seconds.

  • DelayStopNode - The short delay in seconds after stop-node operation to avoid subsequent false-positive duplicate address. Default value is 2 seconds.

  • DismountTimeout - The timeout in seconds that the system waits for the file handles to be closed on a volume before performning a forced dismount. Default value is 15 seconds.

  • DockerTimeout - The timeout in seconds that the system waits for a Docker container to return the running state on add-docker to a Vhost. Default value is 5 seconds.

  • FileSystemTimeout - The file system timeout specifies the number of seconds to wait for file systems to become available when starting SQL Server instances. Default value is 120 seconds.

  • IoTimeout - The timeout in seconds that the system waits for I/O API call to complete. Default value is 15 seconds.

  • PathRecheckTimeout - The path recheck timeout specifies the number of seconds to wait before rechecking the data path for managed SQL instances. Default value is 120 seconds.

  • PingTimeout - The ping timeout specifies the number of seconds of non-communication before a node is considered inaccessible and is removed from the cluster. Default value is 9 seconds.

  • ScriptTimeout - The time in seconds that the system waits for a pre/post script to complete before taking corrective actions. Default value is 300 seconds.

  • SqlServerConnectTimeout - The timeout period for connecting to SQL Server, in seconds. 0=timeout disabled

  • VdsWait - The timeout in seconds the system waits for a PnP-enumerated disk or volume to be noticed by VDS and reported. Default value is 15 seconds.

  • VhostRetry - The Vhost retry timeout specifies the number of seconds to wait before the system retries to start the Vhost from the last failed start-node. Default value is 120 seconds.

  • VolumeTimeout - The timeout in seconds that the system waits for a volume PnP device to appear after setting a disk to online state. Default value is 15 seconds.

Witness

This section defines the network share(s) used as the cluster witness. In order to prevent a split-brain scenario when the cluster members are unable to communicate with one another, the witness is used to decide which set of members should own the cluster resources (i.e. storage, configurations, etc.). The rule for deciding the winning side is as follow, from highest to lowest ranking:

  1. Majority witness quorum

  2. First-come first-lock/win

To achieve the best tie-breaking/witness system, DH2i recommends that you employ an odd number of witness system(s). A maximum of 3 unique file shares can be specified for DxEnterprise cluster.

Select Advanced Settings > Cluster Settings then select the Witness section. The displayed configuration options are:

  • WitnessProperties - The witness properties.

  • Shares - The read-only witness share(s). Delimited by comma (,).

  • User - The read-only user credential used to access witness share(s).

  • Password - The read-only password used to access witness share(s).

Click on the ellipses (...) button to edit the properties. The Witness Manager window will then be displayed.

witness manager

  • Add Witness - Add a new witness share to the configuration.

  • Delete Witness - Remove an existing witness share from the configuration.

After selecting Add Witness the following window is displayed.

add witness share

  • Witnesss Type - Valid options are Azure Blog Storage or Network Share (SMB).

  • Witness Path - The SMB file share path used as a cluster witness. For example:

    \\server1\share1

    Or it can be an Azure Storage Blob. For example:

    https://mystorage.blob.core.windows.net/witness?sp=racwdl&st=2021-06-11T04:29:01Z&se=2021-06-30T12:29:01Z&spr=https&sv=2020-02-10&sr=c&sig=lbnP%2FQyQdTJbsi%2BNx0bzi8qU%2F93lEKtb0Dob5JeFMZk%3D
  • Type - Valid options are either Password (username and password) or Credential (stored credential).

  • User - The user credential used to access the witness share(s). This option is only visible if the Password type has been selected. For example:

    <domain>\<user>
  • Password - The password used to access the witness share(s). This option is only visible if the Password type has been selected.

  • Credential - The name of the stored credential.

  • Test - Test the validity of the witness share(s) with user credentials. The test must pass before the witness properties can be committed.

  • OK - Accept the witness settings.

  • Close - Cancel witness properties modification.

Cluster Membership

The DxEnterprise Cluster Membership section allows you to define or join DxEnterprise cluster members and manage license keys.

cluster memebership

  • Submit - Submit any changes to the cluster membership.

  • Resync Config - Forces all nodes in the cluster to resync their configuration files.

  • Manage License - Allows viewing and (re)activating licensing for each cluster node.

license manager

  • Node Name - Each node in the cluster will appear in its own row displaying the activation status of that node.

  • License Key - The license key used to activate the product.

  • Product - The DH2i product that corresponds to the license.

  • Clients - The number of active remote clients allowed to connect to each server.

  • Expiration Date - The last date the product can be used.

  • Support Date - The expiration of the support contract. The product may be used until the expiration date, but the ability to request customer service and receive new updates stops when the support date is reached.

  • Is Valid - If the license is active, this column will be checked. If not, select the node using the checkbox on the left side and click Activate.

  • Activate - Click to activate the selected servers. The Accept EULA checkbox must also be selected.

info

The Activate option will automatically activate the license using the server's internet connection. If no internet access is available on the server, then the Manual option will need to be used instead.

manual activation

  • Automatic over the internet - Activation using the server's internet connection.

  • Manual activation - When the server is not connected to the internet, a license request blob is generated for the license code and must be activated from a workstation with internet access using the Client Portal. Once a license answer blob has been generated, it needs to be copied into the text box at the bottom of the license activation window.

  • Activate - Click to activate the server with the license key.

  • Close - Click to cancel the process without making any changes.

  • Refresh - Click to refresh the cluster list.

  • Close - Click to exit.

  • Join New Cluster - Allows administrative re-assignment of the local server to another existing DxEnterprise cluster.

    join cluster

    • Advanced - Toggles the visibility of the NatMatchAgent checkbox.

      • NatMatchAgent Checkbox - If the NatMatchAgent checkbox is selected, the default value of the target cluster server is match.DH2i.com. This allows servers to join the cluster from remote locations using the DH2i Matchmaking Service.
    • Target Cluster Server - Enter the hostname or IP address of a server from an existing DxEnterprise cluster.

    • Pass Key - The passkey for the existing DxEnterprise cluster.

      info

      When joining a cluster via the NatMatchAgent, supply the OTPK instead of the passkey. See the Manage OTPK section below for more information.

    • Activate after joining - This only needs to be selected if local sever activation is still required.

    • Accept EULA - Confirm acceptance of the software EULA. An option to view the EULA is provided by a link below the checkbox. Acceptance is required to continue.

    • OK - Click to process the request.

    • Close - Click to cancel and exit without saving change(s).

  • Manage OTPK - Creates, edits or clears a One-Time PassKey (OTPK).

    The OTPK is used to join cluster members together over the internet using the DH2i MatchMaking Service. When on OTPK is set, it opens a group invitation on the DH2i MatchMaking Server. Additional members that authenticate to this group using the OTPK are then allowed to find and communicate directly with each other over the internet.

    This option requires a NAT and TUN enabled license.

    otpk manager

    • Current One-Time PassKey - The currently active OTPK.

    • Good Until - The time and date of how long the current OTPK is valid for.

    • New - Create a new OTPK.

    • Clear - Clear the current OTPK.

    • Copy - Copy the current OTPK.

    • Close - Click to exit.

DxPowerShell Utility

DH2i software includes Windows PowerShell cmdlets (DxPS) that you can use to control and administer DxEnterprise cluster(s) locally or remotely. This includes all of the cmdlets necessary to successfully manage a DxEnterprise cluster. For additional information on how to use DxPS, please see the DxPS Admin Guide.

DxPS Requirements

DxPS requires a minimum Windows PowerShell version 3. This version is installed by default on Windows operating systems. For Linux installations, please see Microsoft - Install PowerShell on Linux.

Collect Logs

The collect logs utility automatically gathers logs and configuration files from the selected members, zips them up and then stores them at the following locations on each member:

  • Windows - %ProgramFiles%\DH2i\support

  • Linux - /opt/dh2i/support

Cluster View

The Cluster View on DxEnterprise shows all SQL Server instance resources, Services, Fileshares and Coordinator resources configured in the cluster, and enables you to manage and monitor them from a single screen. To access the cluster view, select DxCluster at the top of the tree view. Each of the different views are located in tabs across the top of the detail pane.

  • The SQL Server resources are grouped under the Instance View tab of the Cluster View. The SQL Server resources appear in the rows of the table.

  • The service resources are grouped under the Service View tab of the Cluster View. The Service resources also appear in the rows of the table.

  • The File Share resources are grouped under the Fileshare View tab of the Cluster View. The File Share resources also appear in the rows of the table.

  • The Coordinator resources are grouped under the Coordinator View tab of the Cluster View. The coordinator resources also appear in the rows of the table.

Using the Cluster View, you can quickly determine whether clients are able to access SQL Server, Service, File Share and/or Docker resources. If a problem occurs, you can locate the resource experiencing the problem.

Instance View

The Instance View shows all of the Vhosts and highly available SQL Server instances configured in the cluster. Each row shows the HA SQL Server instance's name, version, Vhost, and primary and backup nodes.

The columns show the configuration of each highly available SQL Server Instance. A "1" indicates the primary server; the other numbers indicate the failover order of the other servers. The green box specifies the server on which the Vhost/highly available SQL Server instance is currently active. The red box specifies the current server is down or offline.

In the Instance View, you can drag and drop the SQL Server instances from the currently active node to any available node that is also a member of the Vhost. This will cause the Vhost to failover.

Service View

The Service View shows all of the Vhosts and highly available Services configured in the cluster. Each row shows the HA Service's name, version, Vhost and primary and backup nodes.

The columns show the configuration of each highly available Service. A "1" indicates the primary server; the other numbers indicate the failover order of the other servers. The green box specifies the server on which the Vhost/highly available Service is currently active. The red box specifies the current server is down or offline.

In the Service View, you can drag and drop the services from the currently active node to any available node that is also a member of the Vhost. This will cause the Vhost to failover.

Fileshare View

The Fileshare View shows the configuration of the Vhost and highly available File Shares. Each row shows the HA File Share's share name, share path, Vhost, and primary and backup nodes.

The columns show the configuration of each highly available File Share. A "1" indicates the primary server; the other numbers indicate the failover order of the other servers. The dark blue box specifies the server on which the Vhost/highly available File Share is currently active.

In the Fileshare View, you can drag and drop the fileshare from the currently active node to any available node that is also a member of the Vhost. This will cause the Vhost to failover.

Coordinator View

The Coordinator View shows all of the Coordinators in the Cluster. The Cluster Coordinator controls cluster messages and priorities. The Storage Coordinator manages the storage priorities and issues the storage commands. The Application Coordinator is in charge of maintaining the application states and reporting on them as they change.

The columns show the configuration of each coordinator. The green box specifies the server on which the coordinator is currently active. To change coordinators, you can drag the green box to a new desired node.

In the Coordinator View, you can drag and drop the Cluster Coordinator, Storage Coordinator, or Application Coordinator to move each coordinator role to another node.

AGS View

The AGS View shows all of the availability groups in the Cluster. Each row shows the availability group's name, Vhost, and status.

The columns show the configuration of each availability group. The green box specifies the primary server for the availability group. The numbers in the boxes indicate the failover order of the availability group Vhost. To change the primary, you can drag the green box to a new desired node.

In the AGS View, you can drag and drop the primary server from the currently active node to any available node that is also a member of the Vhost. This will cause the Vhost to failover.

Docker View

The Docker View provides information about Docker instances managed by DxEnterprise. Each row shows the Docker name, virtual host, image name, port mapping, status, and primary and backup nodes.

The columns show the configuration of each managed Docker container. A "1" indicates the primary server; the other numbers indicate the failover order of the other servers. The green box specifies the server on which the Vhost/Container is currently active.

In the Docker View, you can drag and drop the container from the currently active node to any available node that is also a member of the Vhost. This will cause the Vhost to failover.

High Availability Features

DxEnterprise Software includes components that monitor the health and availability of individual hosted applications, and the ability of each node to host applications. When an application fails, DxEnterprise will automatically take actions to ensure application availability. As required, and as possible, DxEnterprise will restart failing applications on a different cluster node. 

Failure Scenarios

Node Unresponsive

DxEnterprise monitors the availability of each node participating in a cluster. If a node becomes unresponsive in the cluster (ex. sudden power loss or a system crash), any applications that were hosted on that node will be failed over to another node. Nodes that are unresponsive are shown in orange in the user interface, and administrative alerts are raised for this condition.

node unresponsive

Instance Failure

DxEnterprise monitors the service process of each managed instance of Microsoft SQL Server, application, or container. If any process terminates unexpectedly, DxEnterprise will attempt to restart the entire Vhost of that instance on a different cluster node.

Administratively Disabled

When a node is administratively disabled, any applications hosted on the node will be failed over to another node. Administratively disabled nodes are shown with a yellow background in the user interface.

lost disk access

File System/Disk Access

DxEnterprise monitors the availability of shared disks on each node participating in a cluster. If it detects that disk access is lost (ex. by unplugging a fiber channel host adapter or external fencing), the node will be considered ineligible to host applications. Any applications currently hosted on the node will fail over to another node. Nodes that have lost file system access are shown in orange in the user interface, and administrative alerts are raised for this condition.

lost shared disk

Load Balancing

DxEnterprise monitors the resource utilization of each node and each hosted application and will enforce certain limits set by policies. If a policy is set for memory usage and one of the hosted applications starts leaking memory, actions may be taken to move that application to a different cluster node that satisfies the resource allocation policy.

Auto-Failback

Normally, failover actions are only taken when the availability of an application is compromised. Vhosts are configured with a prioritized list of nodes that are able to host them. If a Vhost is being hosted on a lower-priority node, and a higher priority node that was down becomes available, it may be desirable to start hosting the application on the higher priority node. If the Vhost is marked as "auto-failback" then this action will be taken.

Cascading Failures

When DxEnterprise attempts to fail over an application to a specific cluster node, it is possible that the application may fail to start on that node. In this case, DxEnterprise will remember that it was unable to start the application on that node, and will attempt to start the application on the next eligible node. If the list of eligible nodes is exhausted, DxEnterprise will raise an administrative alert and wait until the VhostRetry lapses before re-attempting to start the application from beginning of the node list.

failed to start node

High Availability Behaviors

It is possible to control high availability behavior using certain configuration options.

Node Priority

Each Vhost has a list of cluster nodes that are eligible to host it. The list is in priority order, and nodes closer to the top will be chosen as failover targets first. The ordering of the list may be changed with the "Update Vhost" command in the user interface.

Auto-Failback

Each Vhost can be marked as "auto-failback." While fail-over actions are only taken when the availability of an application is compromised, fail-back actions are taken when a higher priority node becomes available.

Administrative Disablement

A node may be marked as administratively disabled, in which case it becomes ineligible to host applications. Disabled nodes are never chosen as failover targets.

DxEnterprise Software uses a subset of standalone dialogs to provide additional information about the cluster states and operations.

Search

The Search dialog allows the user to search for and select any entity within any connected server connection from a single pane.

search box

Selecting the Search bar expands the pane and provides a text box to search for arbitrary entities. The user may optionally choose to make the search case-sensitive, clear the search, or exit the search by clicking the red X at the top right. Clicking Hide Results will leave the search open but collapse the result view, clearing space without clearing the Search pane. Clicking any result will show the user details of that result as if they had selected the entity within the tree view.

Connection Manager

To connect to additional servers or to disconnect from a server, go to Connection Manager.

This will bring up the connection manager dialog. The user can enter the name or IP address of the target server and click Connect Server or disconnect by clicking on the "X" in the Delete column.

connection manager

Dashboard Manager

The Dashboard Manager allows the user to create a custom dashboard environment for viewing data from one or more clusters in a single view.

Selecting Dashboard Manager from the Navigation Pane, the user can view active Dashboard controls. To add items to the view, select Design from the bottom of the pane. There is the ability to drill down from a single server or all servers and select the entity to view, the specific value of that entity, and the information to be viewed.

dashboard design

The following table lists the available options for each selection:

ServerEntityNameInfo
All ServersN/AAlertsRegular (2x1)
Large (3x1)
Status LogsRegular (2x1)
Large (3x1)
XLarge (4x1)
server_nameServer Nodesnode_nameProcessor %
Memory Usage
Disk I/O
Network
SQL Instancesinstance_nameProcessor %
Memory Usage
Disk I/O
Network
Servicesservice_nameProcessor %
Memory Usage
Disk I/O
Network
Docker Containersdocker_nameProcessor %
Memory Usage
Disk I/O
Network
Disk Volumesvolume_nameVolume
Virtual Hostsvhost_nameStatus
WitnessesWitnessSmall (1x1)
Regular (2x1)
  • Server - A specific connection as defined in Connection Manager

  • Entity - This includes the following entities to monitor if a specific server is selected:

    • Server Nodes
    • SQL Instances
    • Services
    • Docker
    • Disk Volumes
    • Virtual Hosts
    • Witnesses
    info

    If All Servers is selected, the Entity field is not available.

  • Name - The field displays a context-specific list of objects to display depending on the Entity specified above. For example, a list of Nodes, SQL Instances, or Volumes.

  • Info - The specific information to be displayed from the Entity and Name selected above.

Once each field is selected, the Design section will allow the selection of the Info View. The data display type can then be set to either Graph view or a textual Data view.

infoview

Once complete, click Add to Dashboard and the control will be added to the dashboard pane above. An arbitrary number of controls can be added as desired. Once the controls are added, they can be re-ordered by dragging and dropping the title bar of each control. To remove a control, simply click the X in the top-right corner of each control.

dashboard controls

Clicking the Design bar will collapse it again, providing more space in the display pane.

Status Log Manager

The Status Log dialog provides a short collection of system health and status information for the connected servers since the time the UI started. To display the dialog, select the Status Log Manager option from the Navigation panel. There is a drop down filter to limit the status messages to only the non-selected servers and a Live update checkbox to enable or disable the live-scrolling of new messages. Right-click in the status log to either copy or clear the log.

select servers to exclude

Status messages are in black and white unless there is a warning (yellow) or severe (red) alert.

Alert Manager

When a system event is triggered due to a system down or over-utilization of system resources, an alert is raised and registered with the Alert Manager. The alert continues to remain in the Alert Manager until the system is stabilized or the over-utilization has subsided.

To display the dialog, select the Alert Manager option from the menu.

Historical alerts are available from the time DxAdmin was launched or until the user clears the old alerts.

Debug Commands

Under some special circumstances, DH2i support staff may request to use the Debug Window to diagnose the system.

To display the dialog, select the Debug Commands option from the Advanced Configuration menu.

debug commands