[MCOL-1146] One step configuration of Multi Server Node Created: 2018-01-07  Updated: 2018-08-07  Resolved: 2018-08-07

Status: Closed
Project: MariaDB ColumnStore
Component/s: installation
Affects Version/s: None
Fix Version/s: 1.1.6

Type: Task Priority: Major
Reporter: Dipti Joshi (Inactive) Assignee: Daniel Lee (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Epic Link: ColumnStore Installation Improvements
Sprint: 2018-13, 2018-14, 2018-15, 2018-16

 Description   

At present single node and multi-node install requires postConfig to be run after binary has been installed. postConfig is interactive configuration utility.

Please provide a utility for Multi node install - that simply takes IP addresses of UM node and IP address of the PM node on command line and then applies all the default parameters for posConfig automatically without user interaction in the background.

Something like: multiNodeConfig UM=IP1,IP2,IP3... PM=IP4,IP5,IP6

All the packages (rpm, deb, zypher or binaries) must have been installed on each of the UM and PM nodes before invoking this configuration utility.



 Comments   
Comment by David Hill (Inactive) [ 2018-01-08 ]

get infinidb amazon multi-node installes, we had a script called amazonInstaller where you just configure an XML file, run the amazonInstaller and it would do the rest including running postConfigure. This would be a good place to start with a general multi-node install script.

Comment by Assen Totin (Inactive) [ 2018-02-16 ]

I'd suggest we extend the postConfigure with the option to read an XML file (since CS uses XML for configuration), verify its contents and then run the usual tasks.

The only thing here, aside from the actual work (which should be trivial, I could take it after M18), is to ask whether there are any plans to move CS to INI-style configs like the TX has (since there is a trend to converge the two). If yes, then it will make more sense to make this kickstart file for postConfigure use INI style; if not, we can stick with XML. For what it's worth, INI is easier for humans to write and will be less error-prone than XML.

Comment by David Hill (Inactive) [ 2018-07-05 ]

Non AWS install configuration items that postConfigure normal ask for:

Module Config type [separate or combined]
Enable Local Query [y,n] // separate systems only
Enable MariaDB ColumnStore Schema Sync Feature [y,n]
Data Storage [internal, external]
Data Storage type [standard, Data-Redundancy]
UM HostNames nnnnnn,nnnnnn
UM IP Addresses xxxx.xxxx.xxxx.xxxx,xxxx.xxxx.xxxx.xxxx // option is not on DNS
PM HostNames nnnnnn,nnnnnn
PM IP Addresses xxxx.xxxx.xxxx.xxxx,xxxx.xxxx.xxxx.xxxx // option is not on DNS
Number of DBroots per PM [1-x]

And if Data Redundancy, these
Data Redundancy Copies [2-MAX-Pms]
Data Redundancy Network [existing, dedicated]

Comment by Dipti Joshi (Inactive) [ 2018-07-05 ]

Simply ask for UM and PM IP addresses and non-root user id /password on the command line. For rest of the post config options take defaults. Also assume non-distributed install.

This should be non-interactive. The user should not be required to edit any config file.

See here https://github.com/mariadb-corporation/mariadb-columnstore-docker/blob/master/columnstore/Dockerfile - how David Thompson has done it for a single node.

Comment by David Hill (Inactive) [ 2018-07-05 ]

Ok, so for 1.1.6, this would be the default multi-node install. User would just provide UM and PM ip addresses

Module Config type [separate]
Enable Local Query [n]
Enable MariaDB ColumnStore Schema Sync Feature [y]
Data Storage [internal]
Data Storage type [standard]
Number of DBroots per PM [1]

and the Ip-addresses would be used as the host-names

Comment by David Hill (Inactive) [ 2018-07-05 ]

I can implement it like I did for MCOL-1145. a few new command line arguments for postConfigure and a quick-install script where user provides UM and PM IP address. If they only provide PM, then its a combo install.

example on postConfigure change

./postConfigure -qm -um-ip-addresses xxxx.xxxx.xxxx.xxxx,xxxx.xxxx.xxxx.xxxx -pm-ip-addresses xxxx.xxxx.xxxx.xxxx,xxxx.xxxx.xxxx.xxxx

And the quick install script:

./quick_installer_multi_node.sh --um-ip-addresses=xxxx.xxxx.xxxx.xxxx,xxxx.xxxx.xxxx.xxxx --pm-ip-addresses=xxxx.xxxx.xxxx.xxxx,xxxx.xxxx.xxxx.xxxx

or for a combined system

./quick_installer_multi_node.sh --pm-ip-addresses=xxxx.xxxx.xxxx.xxxx,xxxx.xxxx.xxxx.xxxx

SO going this route, the data just gets passed into postConfigure, dont need to prefill in a Columnstore.xml

Comment by David Hill (Inactive) [ 2018-07-10 ]

Distrubuted and Non-distributed. The default will be Non-distributed, which will require users to preinstall packages on all servers. But I did add an option to do Distributed installs, which is something I would use more.. So it will be good to have the option of both both ways..

here is an example and a full output:

/usr/local/mariadb/columnstore/bin/quick_installer_multi_server.sh --pm-ip-addresses=172.31.46.144,172.31.33.138 --um-ip-addresses=172.31.40.253 --dist-install

NOTE: Performing a Multi-Server Seperate install with um and pm running on seperate servers

Run post-install script

The next step is:

If installing on a pm1 node:

/usr/local/mariadb/columnstore/bin/postConfigure

If installing on a non-pm1 using the non-distributed option:

/usr/local/mariadb/columnstore/bin/columnstore start

Run postConfigure script

This is the MariaDB ColumnStore System Configuration and Installation tool.
It will Configure the MariaDB ColumnStore System and will perform a Package
Installation of all of the Servers within the System that is being configured.

IMPORTANT: This tool requires to run on the Performance Module #1

With the no-Prompting Option being specified, you will be required to have the following:

1. Root user ssh keys setup between all nodes in the system or
use the password command line option.
2. A Configure File to use to retrieve configure data, default to Columnstore.xml.rpmsave
or use the '-c' option to point to a configuration file.

===== Quick Install Multi-Server Configuration =====

===== Setup System Module Type Configuration =====

There are 2 options when configuring the System Module Type: separate and combined

'separate' - User and Performance functionality on separate servers.

'combined' - User and Performance functionality on the same server

Select the type of System Module Install [1=separate, 2=combined] (1) >

Seperate Server Installation will be performed.

NOTE: Local Query Feature allows the ability to query data from a single Performance
Module. Check MariaDB ColumnStore Admin Guide for additional information.

Enable Local Query feature? [y,n] >

NOTE: The MariaDB ColumnStore Schema Sync feature will replicate all of the
schemas and InnoDB tables across the User Module nodes. This feature can be enabled
or disabled, for example, if you wish to configure your own replication post installation.

MariaDB ColumnStore Schema Sync feature is Enabled, do you want to leave enabled? [y,n] >

NOTE: MariaDB ColumnStore Replication Feature is enabled

Enter System Name (columnstore-1) >

===== Setup Storage Configuration =====

----- Setup Performance Module DBRoot Data Storage Mount Configuration -----

There are 2 options when configuring the storage: internal or external

'internal' - This is specified when a local disk is used for the DBRoot storage.
High Availability Server Failover is not Supported in this mode

'external' - This is specified when the DBRoot directories are mounted.
High Availability Server Failover is Supported in this mode.

Select the type of Data Storage [1=internal, 2=external] (1) >

===== Setup Memory Configuration =====

NOTE: Setting 'NumBlocksPct' to 70%
Setting 'TotalUmMemory' to 50%

===== Setup the Module Configuration =====

----- User Module Configuration -----

Enter number of User Modules [1,1024] (1) >

      • User Module #1 Configuration ***

Enter Nic Interface #1 Host Name (172.31.40.253) >
Enter Nic Interface #1 IP Address of 172.31.40.253 (172.31.40.253) >

----- Performance Module Configuration -----

Enter number of Performance Modules [1,1024] (2) >

      • Parent OAM Module Performance Module #1 Configuration ***

Enter Nic Interface #1 Host Name (172.31.46.144) >
Enter Nic Interface #1 IP Address of 172.31.46.144 (172.31.46.144) >
Enter the list (Nx,Ny,Nz) or range (Nx-Nz) of DBRoot IDs assigned to module 'pm1' (1) >

      • Performance Module #2 Configuration ***

Enter Nic Interface #1 Host Name (172.31.33.138) >
Enter Nic Interface #1 IP Address of 172.31.33.138 (172.31.33.138) >
Enter the list (Nx,Ny,Nz) or range (Nx-Nz) of DBRoot IDs assigned to module 'pm2' (2) >

===== System Installation =====

System Configuration is complete.
Performing System Installation.

Performing a MariaDB ColumnStore System install using a Binary package
located in the /root directory.

Next step is to enter the password to access the other Servers.
This is either your password or you can default to using a ssh key
If using a password, the password needs to be the same on all Servers.

Enter password, hit 'enter' to default to using a ssh key, or 'exit' >

----- Performing Install on 'um1 / 172.31.40.253' -----

Install log file is located here: /tmp/um1_binary_install.log

----- Performing Install on 'pm2 / 172.31.33.138' -----

Install log file is located here: /tmp/pm2_binary_install.log

MariaDB ColumnStore Package being installed, please wait ... DONE

===== Checking MariaDB ColumnStore System Logging Functionality =====

The MariaDB ColumnStore system logging is setup and working on local server

===== MariaDB ColumnStore System Startup =====

System Configuration is complete.
Performing System Installation.

----- Starting MariaDB ColumnStore on local server -----

MariaDB ColumnStore successfully started

MariaDB ColumnStore Database Platform Starting, please wait .......... DONE

System Catalog Successfully Created

Run MariaDB ColumnStore Replication Setup.. DONE

MariaDB ColumnStore Install Successfully Completed, System is Active

Enter the following command to define MariaDB ColumnStore Alias Commands

. /usr/local/mariadb/columnstore/bin/columnstoreAlias

Enter 'mcsmysql' to access the MariaDB ColumnStore SQL console
Enter 'mcsadmin' to access the MariaDB ColumnStore Admin console

NOTE: The MariaDB ColumnStore Alias Commands are in /etc/profile.d/columnstoreAlias.sh

root@ip-172-31-46-144:~#

Comment by David Hill (Inactive) [ 2018-07-12 ]

Multi-node quick install completed, here is the help

./quick_installer_multi_server.sh --help
Usage ./quick_installer_multi_server.sh [OPTION]

Quick Installer for a Multi Server MariaDB ColumnStore Install

Defaults to non-distrubuted install, meaning MariaDB Columnstore
needs to be preinstalled on all nodes in the system

Performace Module (pm) IP addresses are required
User Module (um) IP addresses are option
When only pm IP addresses provided, system is combined setup
When both pm/um IP addresses provided, system is seperate setup

--pm-ip-addresses=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx
--um-ip-addresses=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx, optional
--dist-install Use Distributed Install, optional
--system-name=nnnn System Name, optional

Amazon AMI quick install completed, here is the help

./quick_installer_amazon.sh --help
Usage ./quick_installer_amazon.sh [OPTION]

Quick Installer for an Amazon MariaDB ColumnStore Install
This requires to be run on a MariaDB ColumnStore AMI

Performace Module (pm) number is required
User Module (um) number is option
When only pm counts provided, system is combined setup
When both pm/um counts provided, system is seperate setup

--pm-count=x Number of pm instances to create
--um-count=x Number of um instances to create, optional
--system-name=nnnn System Name, optional

Comment by David Hill (Inactive) [ 2018-07-12 ]

https://github.com/mariadb-corporation/mariadb-columnstore-engine/pull/518

Comment by Ben Thompson (Inactive) [ 2018-07-12 ]

Merged

Comment by Daniel Lee (Inactive) [ 2018-07-16 ]

Build tested: 1.1.6-1 source

/root/columnstore/mariadb-columnstore-server
commit 1741c7e7d522d1245ec9c1e4c7c7474574f09bd2
Merge: 2adc4b5 6abef48
Author: benthompson15 <ben.thompson@mariadb.com>
Date: Tue Jun 19 09:51:48 2018 -0500

Merge pull request #113 from mariadb-corporation/davidhilldallas-patch-3

update readme

/root/columnstore/mariadb-columnstore-server/mariadb-columnstore-engine
commit 32bd7d4e270f46a6052df64cff871f2c3371bb3a
Merge: af6108d 400ae51
Author: benthompson15 <ben.thompson@mariadb.com>
Date: Thu Jul 12 15:36:42 2018 -0500

Merge pull request #518 from mariadb-corporation/MCOL-1146

Mcol 1146 - multi node quick install

root installation, distributed worked
non-distributed. root and non-root, Procmons did not start on um1 and pm2
none-root installation, distributed reported library error.

[guest@localhost bin]$ ./quick_installer_multi_server.sh --pm-ip-addresses=10.0.0.15,10.0.0.16 --um-ip-addresses=10.0.0.11 --dist-install

NOTE: Performing a Multi-Server Seperate install with um and pm running on seperate servers

Run post-install script

The next steps are:

If installing on a pm1 node:

export COLUMNSTORE_INSTALL_DIR=/home/guest/mariadb/columnstore
export LD_LIBRARY_PATH=:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib
/home/guest/mariadb/columnstore/bin/postConfigure -i /home/guest/mariadb/columnstore

If installing on a non-pm1 using the non-distributed option:

export COLUMNSTORE_INSTALL_DIR=/home/guest/mariadb/columnstore
export LD_LIBRARY_PATH=:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib
/home/guest/mariadb/columnstore/bin/columnstore start

Run postConfigure script

/home/guest/mariadb/columnstore/bin/postConfigure: error while loading shared libraries: libmariadb.so.3: cannot open shared object file: No such file or directory

using the same VMs, manually running postConfigure installed successfully.

Comment by Daniel Lee (Inactive) [ 2018-07-26 ]

reopen per last test result

Comment by David Hill (Inactive) [ 2018-08-01 ]

reproduce issue and fixed... Also added another command that user needs to run after postconfigure is finished to set env and alias's

guest@ip-172-31-37-130:~$ mariadb/columnstore/bin/quick_installer_multi_server.sh --pm-ip-addresses=172.31.37.130

NOTE: Performing a Multi-Server Combined install with um/pm running on some server

Run post-install script

The next steps are:

If installing on a pm1 node:

export COLUMNSTORE_INSTALL_DIR=/home/guest/mariadb/columnstore
export LD_LIBRARY_PATH=:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib
/home/guest/mariadb/columnstore/bin/postConfigure -i /home/guest/mariadb/columnstore

If installing on a non-pm1 using the non-distributed option:

export COLUMNSTORE_INSTALL_DIR=/home/guest/mariadb/columnstore
export LD_LIBRARY_PATH=:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib:/home/guest/mariadb/columnstore/lib:/home/guest/mariadb/columnstore/mysql/lib
/home/guest/mariadb/columnstore/bin/columnstore start

Run postConfigure script

This is the MariaDB ColumnStore System Configuration and Installation tool.
It will Configure the MariaDB ColumnStore System and will perform a Package
Installation of all of the Servers within the System that is being configured.

IMPORTANT: This tool requires to run on the Performance Module #1

With the no-Prompting Option being specified, you will be required to have the following:

1. Root user ssh keys setup between all nodes in the system or
use the password command line option.
2. A Configure File to use to retrieve configure data, default to Columnstore.xml.rpmsave
or use the '-c' option to point to a configuration file.

===== Quick Install Multi-Server Configuration =====

===== Setup System Module Type Configuration =====

There are 2 options when configuring the System Module Type: separate and combined

'separate' - User and Performance functionality on separate servers.

'combined' - User and Performance functionality on the same server

Select the type of System Module Install [1=separate, 2=combined] (2) >

Combined Server Installation will be performed.
The Server will be configured as a Performance Module.
All MariaDB ColumnStore Processes will run on the Performance Modules.

NOTE: The MariaDB ColumnStore Schema Sync feature will replicate all of the
schemas and InnoDB tables across the User Module nodes. This feature can be enabled
or disabled, for example, if you wish to configure your own replication post installation.

MariaDB ColumnStore Schema Sync feature is Enabled, do you want to leave enabled? [y,n] >

NOTE: MariaDB ColumnStore Replication Feature is enabled

NOTE: MariaDB ColumnStore Non-Distributed Install Feature is enabled

Enter System Name (columnstore-1) >

===== Setup Storage Configuration =====

----- Setup Performance Module DBRoot Data Storage Mount Configuration -----

There are 2 options when configuring the storage: internal or external

'internal' - This is specified when a local disk is used for the DBRoot storage.
High Availability Server Failover is not Supported in this mode

'external' - This is specified when the DBRoot directories are mounted.
High Availability Server Failover is Supported in this mode.

Select the type of Data Storage [1=internal, 2=external] (1) >

===== Setup Memory Configuration =====

NOTE: Setting 'NumBlocksPct' to 50%
Setting 'TotalUmMemory' to 25%

===== Setup the Module Configuration =====

----- Performance Module Configuration -----

Enter number of Performance Modules [1,1024] (1) >

      • Parent OAM Module Performance Module #1 Configuration ***

Enter Nic Interface #1 Host Name (172.31.37.130) >
Enter Nic Interface #1 IP Address of 172.31.37.130 (172.31.37.130) >
Enter the list (Nx,Ny,Nz) or range (Nx-Nz) of DBRoot IDs assigned to module 'pm1' (1) >

===== Running the MariaDB ColumnStore MariaDB Server setup scripts =====

post-mysqld-install Successfully Completed
post-mysql-install Successfully Completed

===== Checking MariaDB ColumnStore System Logging Functionality =====

The MariaDB ColumnStore system logging is setup and working on local server

MariaDB ColumnStore System Configuration and Installation is Completed

===== MariaDB ColumnStore System Startup =====

System Configuration is complete.
Performing System Installation.

----- Starting MariaDB ColumnStore on local Server 'pm1' -----

MariaDB ColumnStore successfully started

MariaDB ColumnStore Database Platform Starting, please wait ....... DONE

System Catalog Successfully Created

Run MariaDB ColumnStore Replication Setup.. DONE

MariaDB ColumnStore Install Successfully Completed, System is Active

Enter the following command to define MariaDB ColumnStore Alias Commands

. /etc/profile.d/columnstoreEnv.sh
. /etc/profile.d/columnstoreAlias.sh

Enter 'mcsmysql' to access the MariaDB ColumnStore SQL console
Enter 'mcsadmin' to access the MariaDB ColumnStore Admin console

NOTE: The MariaDB ColumnStore Alias Commands are in /etc/profile.d/columnstoreAlias.sh

guest@ip-172-31-37-130:~$

. /etc/profile.d/columnstoreEnv.sh
. /etc/profile.d/columnstoreAlias.sh

ma

MariaDB ColumnStore Admin Console
enter 'help' for list of commands
enter 'exit' to exit the MariaDB ColumnStore Command Console
use up/down arrows to recall commands

Active Alarm Counts: Critical = 0, Major = 0, Minor = 0, Warning = 0, Info = 0

Critical Active Alarms:

Comment by David Hill (Inactive) [ 2018-08-01 ]

https://github.com/mariadb-corporation/mariadb-columnstore-engine/pull/530

Comment by Daniel Lee (Inactive) [ 2018-08-07 ]

Build verified: 1.1.6-1 source

/root/columnstore/mariadb-columnstore-server
commit 513775738f72ec990d055a5d47e2511e3c0e34dd
Merge: 3c37210 9236098
Author: Andrew Hutchings <andrew@linuxjedi.co.uk>
Date: Wed Jul 18 09:37:17 2018 +0100

Merge pull request #123 from drrtuy/MCOL-970

MCOL-970 Slow query log now contains original query even in vtable mode

/root/columnstore/mariadb-columnstore-server/mariadb-columnstore-engine
commit ee40c3ac050ad7b64302673fc4ab08640f64892f
Merge: 0df1b92 979d00a
Author: benthompson15 <ben.thompson@mariadb.com>
Date: Mon Aug 6 13:02:08 2018 -0500

Merge pull request #523 from mariadb-corporation/MCOL-1579

MCOL-1579 Remove chmod of /dev/shm

Generated at Thu Feb 08 02:26:33 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.