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

# ./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 ***

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.