DH2i DxEnterprise 19.5 Software: MSSQL HA Instances on Linux Quickstart Guide

Download the PDF

Install DxEnterprise

To install DH2i DxEnterprise on Linux, please reference the following documentation:

Activate the Server Licenses

  • sudo dxcli activate-server AAAA-BBBB-CCCC-DDDD

Set a Cluster Passkey (First node installation)

  • sudo dxcli cluster-set-secret

Create a Cluster

Join two or more nodes to the DxEnterprise cluster using the “sudo dxcli join-cluster” command. If prompted to join via NAT proxy, input “no,” input the IP address of the cluster node you wish to join, and then enter the cluster passkey.

  • sudo dxcli join-cluster

Install Microsoft SQL Server

To install Microsoft SQL Server on Linux, please see the below link from Microsoft Docs, select the correct operating system and follow the steps.

Configure Storage

Present Storage

Note: Please ensure proper presentation of storage to nodes. If there is storage that is not managed by this DxEnterprise cluster presented to the nodes, it is possible to overwrite or corrupt the data held on that storage.

DxEnterprise supports any storage that is SCSI-3 Persistent Reservation compliant. The below examples are specific to iSCSI, but not limited to iSCSI.

Install the iSCSI Initiator

  • RedHat
    • sudo yum install -y iscsi-initiator-utils
  • Ubuntu
    • sudo apt install -y open-iscsi

Configure the iSCSI Initiator

  • RedHat
    • sudo systemctl enable iscsi
    • Edit (as root, or via sudo) /usr/lib/systemd/system/iscsi.service
    • Ensure the entries below are changed from “–loginall=automatic” to simply “-l”
    • ExecStart=-/sbin/iscsiadm -m node -l
    • ExecReload=-/sbin/iscsiadm -m node -l
  • Ubuntu
    • sudo systemctl enable open-iscsi
    • Edit (as root, or via sudo) /lib/systemd/system/open-iscsi.service
    • Ensure the entry below is changed from “–loginall=automatic” to simply “-l”
    • ExecStart=-/sbin/iscsiadm -m node -l

Discover and Login to iSCSI Target

  • sudo iscsiadm -m discovery -t sendtargets -p <target IP>
  • sudo iscsiadm -m node –login

Locate the New Storage Device Path

  • iscsiadm -m session -P3
  • At or near the bottom, you should see your attached disk (Note, in the example below, “sdb” may be a different device)
    • “Attached scsi disk sdb          State: running”

Manage the Disk(s)

DxEnterprise leverages native file system (NTFS/ext4/xfs) and shared storage technology to coordinate access to a pool of disk resources in the cluster. Managing a disk puts that disk under DxEnterprise control. To manage a disk, use the “sudo dxcli add-disk” command. The “sudo dxcli get-disks” command can be used to look up a diskid of interest.

Syntax

dxcli add-disk <disk_id> [label]

Parameters

Name Description Required
disk_id The ID of the disk True
label The unique label for the disk False

Example

sudo dxcli add-disk 50842140-be32-d3a7-45d4-3999bf3ad3a8 “Cluster Disk 1”

Create a Volume

Create a volume on the managed disk using the “sudo dxcli create-volume” command.

Syntax

dxcli create-volume <disk_id>,<size_in_bytes>

Parameters

Name Description Required
disk_id The ID of the disk True
size_in_bytes The size of the volume to create in bytes. True

Example

sudo dxcli create-volume 50842140-be32-d3a7-45d4-3999bf3ad3a8,1073741824

Format the Volume

Format a volume on the managed disk using the “sudo dxcli format-volume” command. The “sudo dxcli get-disk-detail <disk_label>” command can be used to look up a volume ID of interest.

Syntax

dxcli format-volume <volume_id> <fstype> <label> <block_size> <quick_format:true|false> <compression:true|false> [optional_parameters]

Parameters

Name Description Required
volume_id The ID of the volume. True
fstype The file system type. [FAT|FAT32|exFAT|EXT3|EXT4|NTFS|UDF|ReFS|XFS] True
label The label for the volume. True
Block_size The block size in bytes.[512|1024|2048|4096|8192|16384|32768|65536] True
quick_format:true|false Whether or not to perform a quick format. True
compression:true|false Whether or not to enable compression. True
optional_parameters Optional parameters from format.com. False

Example

sudo dxcli format-volume 3409ed39-60c1-4f49-8186-dfface26e2a1 EXT4 Volume1 4096 quick_format:true compression:false

Assign a Mount Point for the Volume

Assign a mount point to the volume using the “sudo dxcli set-mountpoint” command.

Syntax

dxcli set-mountpoint <volume_id> <mount_point>

Parameters

Name Description Required
volume_id The ID of the volume True
mount_point The mount path. True

Example

sudo dxcli set-mountpoint 3409ed39-60c1-4f49-8186-dfface26e2a1 /mnt/volume1

Create a Vhost

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/virtual 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 node is running the SQL instance. When a Vhost is configured, the user will need to specify at least one node to participate in the Vhost. It is recommended to create A and PTR records for each Vhost in DNS for resolution as well as add Vhost entries to each node’s local hosts file.

To add a Vhost, use the “sudo dxcli cluster-add-vhost” command.

Syntax

dxcli cluster-add-vhost <vhost> <vips> <nodes> [autofailback] [priority[1-5]]

Parameters

Name Description Required
vhost The name of the Vhost. True
vips The virtual IP(s) for the Vhost (comma separated list for multiples). The use of a loopback address (127.0.0.1) is supported, but must be preceded by an asterisk (*). True
nodes The node(s) to add to the Vhost (comma separated list for multiples). True
autofailback Set autofailback option, or leave blank if autofailback is not desired. False
priority The priority order of failover between Vhosts (1 is the highest and 5 is the lowest). False

Example

sudo dxcli cluster-add-vhost vhost1 192.168.1.10 dxemssql1,dxemssql2

Manage a Vhost Diskgroup

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 node and offline on all other nodes. If there is a failure of a disk within the diskgroup, the Vhost will failover onto the next available node in the cluster.

To assign a disk to a Vhost, use the “sudo dxcli vhost-set-diskgroup” command.

Syntax

dxcli vhost-set-diskgroup <vhost> <disk_ids>

Parameters

Name Description Required
vhost The name of the Vhost. True
disk_ids A full list of pipe (|) delimited disk IDs to add to the diskgroup. True

Example

sudo dxcli vhost-set-diskgroup VHOST1 50842140-be32-d3a7-45d4-3999bf3ad3a8

Add a SQL instance to a Vhost

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 Virtual SQL Server instance. Clients can then access the Virtual SQL Server instance via the Vhost\instance name.

Assigning a SQL Server instance to a Vhost creates a managed instance. To add a SQL instance to a Vhost, use the “sudo dxcli add-instance” command.

Syntax

add-instance <vhost>\<instance> <port> <sql_data_path> <sql_log_path> [sql_login] [sql_pass]

Parameters

Name Description Required
vhost The name of the Vhost. True
instance The name of the SQL instance. True
port The port to be used. True
sql_data_path The path for the SQL data. True
sql_log_path The path for the SQL logs. True
sql_login A sysadmin user for the SQL instance. False
sql_pass The password for the SQL sysadmin user. “dxcli encrypt-text <pass>” command can be used to generate encrypted string. False
keep Specify this parameter to keep the current SQL data. False

Example

sudo dxcli add-instance vhost1\mssqlserver 1433 /mnt/volume1/data /mnt/volume1/log sa Gks+GJplFmUbTLlBy4wPmw==

References