November 30, 2017

Validating a MariaDB ColumnStore System Setup

 

We have learned that the MariaDB ColumnStore prerequisites and install can be complex for multi-node installs so we decided it would help our users to develop a tool to validate for install readiness.

This tool will validate the setup whether installing on a single server or a multi-server system. It is called MariaDB ColumnStore Cluster Test Tool. It is part of the MariaDB ColumnStore package and can be run from the installing server once the MariaDB ColumnStore package has been installed.

You can also use this tool on a MariaDB ColumnStore system if it fails to startup or a server has been replaced within an existing system. Some OS settings could have been changed by a System Admin or lost during a reboot. This tool will help detect those issues.

The tool will:

  • Communicate with all the servers that are going to be used in the MariaDB ColumnStore system to test out the SSH connectivity

  • Check for matching OSs and locale settings on all servers

  • Check that each of the required dependency packages are installed on each node

  • Check the firewall settings and test the ports that the MariaDB ColumnStore product will utilize to communicate between the servers

  • Compare the system’s date and time to make sure they are in sync between the local servers and the other servers

Running this tool will detect and report any issues that might prevent the MariaDB ColumnStore product from installing and starting up, which can save a lot of time during the initial install.

Here is an example where the tool detected two issues on a three-node system. The two non-local nodes are referenced by the provided IP addresses in the command. This command is run from the server and is designated as ‘pm1’

 

# ./columnstoreClusterTester.sh --ipaddr=172.30.0.59,172.30.0.152

*** This is the MariaDB Columnstore Cluster System test tool ***

** Validate local OS is supported

Local Node OS System Name : CentOS Linux 7 (Core)

** Run Ping access Test to remote nodes

172.30.0.59  Node Passed ping test
172.30.0.152  Node Passed ping test

** Run SSH Login access Test to remote nodes

172.30.0.59  Node Passed SSH login test using ssh-keys
172.30.0.152  Node Passed SSH login test using ssh-keys

** Run OS check - OS version needs to be the same on all nodes

Local Node OS Version : CentOS Linux 7 (Core)

172.30.0.59 Node OS Version : CentOS Linux 7 (Core)
172.30.0.152 Node OS Version : CentOS Linux 7 (Core)

** Run Locale check - Locale needs to be the same on all nodes

Local Node Locale : LANG=en_US.UTF-8
172.30.0.59 Node Locale : LANG=en_US.UTF-8
172.30.0.152 Node Locale : LANG=en_US.UTF-8

** Run SELINUX check - Setting should to be disabled on all nodes

Local Node SELINUX setting is Not Enabled
172.30.0.59 Node SELINUX setting is Not Enabled
172.30.0.152 Node SELINUX setting is Not Enabled

** Run Firewall Services check - Firewall Services should to be Inactive on all nodes

Local Node iptables service is Not Active
Local Node ufw service is Not Active
Local Node firewalld service is Not Active
Local Node firewall service is Not Active

172.30.0.59 Node iptables service is Not Enabled
172.30.0.59 Node ufw service is Not Enabled
172.30.0.59 Node firewalld service is Not Enabled
172.30.0.59 Node firewall service is Not Enabled

172.30.0.152 Node iptables service is Not Enabled
172.30.0.152 Node ufw service is Not Enabled
172.30.0.152 Node firewalld service is Not Enabled
172.30.0.152 Node firewall service is Not Enabled


** Run MariaDB ColumnStore Port (8600-8620) availability test

172.30.0.59  Node Passed port test
172.30.0.152  Node Passed port test

** Run Date/Time check - Date/Time should be within 10 seconds on all nodes

Passed: 172.30.0.59 Node date/time is within 10 seconds of local node
Passed: 172.30.0.152 Node date/time is within 10 seconds of local node

** Run MariaDB ColumnStore Dependent Package Check

Local Node - Passed, all dependency packages are installed

172.30.0.59 Node - Passed, all dependency packages are installed

Failed, 172.30.0.152 Node package expect is not installed, please install

Failure occurred, do you want to continue? (y,n) > y


*** Finished Validation of the Cluster, Failures occurred. Check for Error/Failed test results ***

 

-----------------------------------------------------------------------------------------------------------------------

As you can see from the report above, one issue was detected:

  • Package ‘expect’ was missing on one of the other servers.

So we fix the one issue as shown here

INSTALL THE MISSING PACKAGE

# ssh 172.30.0.152 yum install expect -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.hostduplex.com
 * extras: mirrors.kernel.org
 * updates: mirrors.cat.pdx.edu
Resolving Dependencies
--> Running transaction check
---> Package expect.x86_64 0:5.45-14.el7_1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch             Version                 Repository      Size
================================================================================
Installing:
 expect           x86_64           5.45-14.el7_1           base           262 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 262 k
Installed size: 566 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : expect-5.45-14.el7_1.x86_64                                  1/1 
  Verifying  : expect-5.45-14.el7_1.x86_64                                  1/1 

Installed:
  expect.x86_64 0:5.45-14.el7_1                                                 

Complete!

 

-----------------------------------------------------------------------------------------------------------------------

 

Now rerun the test to validate a clean setup

# ./columnstoreClusterTester.sh --ipaddr=172.30.0.59,172.30.0.152

*** This is the MariaDB Columnstore Cluster System test tool ***

** Validate local OS is supported

Local Node OS System Name : CentOS Linux 7 (Core)

** Run Ping access Test to remote nodes

172.30.0.59  Node Passed ping test
172.30.0.152  Node Passed ping test

** Run SSH Login access Test to remote nodes

172.30.0.59  Node Passed SSH login test using ssh-keys
172.30.0.152  Node Passed SSH login test using ssh-keys

** Run OS check - OS version needs to be the same on all nodes

Local Node OS Version : CentOS Linux 7 (Core)

172.30.0.59 Node OS Version : CentOS Linux 7 (Core)
172.30.0.152 Node OS Version : CentOS Linux 7 (Core)

** Run Locale check - Locale needs to be the same on all nodes

Local Node Locale : LANG=en_US.UTF-8
172.30.0.59 Node Locale : LANG=en_US.UTF-8
172.30.0.152 Node Locale : LANG=en_US.UTF-8

** Run SELINUX check - Setting should to be disabled on all nodes

Local Node SELINUX setting is Not Enabled
172.30.0.59 Node SELINUX setting is Not Enabled
172.30.0.152 Node SELINUX setting is Not Enabled

** Run Firewall Services check - Firewall Services should to be Inactive on all nodes

Local Node iptables service is Not Active
Local Node ufw service is Not Active
Local Node firewalld service is Not Active
Local Node firewall service is Not Active

172.30.0.59 Node iptables service is Not Enabled
172.30.0.59 Node ufw service is Not Enabled
172.30.0.59 Node firewalld service is Not Enabled
172.30.0.59 Node firewall service is Not Enabled

172.30.0.152 Node iptables service is Not Enabled
172.30.0.152 Node ufw service is Not Enabled
172.30.0.152 Node firewalld service is Not Enabled
172.30.0.152 Node firewall service is Not Enabled


** Run MariaDB ColumnStore Port (8600-8620) availability test

172.30.0.59  Node Passed port test
172.30.0.152  Node Passed port test

** Run Date/Time check - Date/Time should be within 10 seconds on all nodes

Passed: 172.30.0.59 Node date/time is within 10 seconds of local node
Passed: 172.30.0.152 Node date/time is within 10 seconds of local node

** Run MariaDB ColumnStore Dependent Package Check

Local Node - Passed, all dependency packages are installed

172.30.0.59 Node - Passed, all dependency packages are installed

172.30.0.152 Node - Passed, all dependency packages are installed


*** Finished Validation of the Cluster, all Test Passed ***

 

-----------------------------------------------------------------------------------------------------------------------

 

Please find more details about the MariaDB ColumnStore Cluster Test Tool and how to use it.

We are excited to offer this new tool for MariaDB ColumnStore 1.1, which is available for download as part of MariaDB AX, an enterprise open source solution for modern data analytics and data warehousing.