Server Clustering

Server Clustering, available in PReS Connect, enhances the processing capabilities of PReS Connect Server by load-balancing jobs between the main Server module (master) and one or more Server Extension installations.

Setting up Server Clustering requires two or more installations of PReS Connect on separate machines. The Master server is setup by installing the PReS Connect Server module during the Installation Wizard, while the Slave Server is setup by installing the PReS Connect Server Extension module instead.

Quick Howto

  1. Install the Master server (PReS Connect Server module), making sure to select the MySQL module.
  2. Ensure that the TCP/IP port 9340 is open on the Master server, and that port 3306 is open on the MySQL server is open.
  3. Set the appropriate bindings in MySQL's my.ini file on the Master server.
  4. Grant access to the MySQL root user for the appropriate IP range on the Master server.
  5. Restart the MySQL Service on the Master server.
  6. Install Slave servers (PReS Connect Server Extension module only).
  7. Install the license on the Master server (a Performance Pack license is required).
  8. Set the preferences for the engines (see Scheduling Preferences) on both the Master and Slaves
  9. Install the license on the Slave servers
  10. Restart the Master server then, once restarted, restart the Slave servers.

What if MySQL is not on the Master server?

It is possible to setup clustering with a MySQL instance that is on a Slave server instead of on the master. In this case, the Slave server must be installed with the Server Extension and MySQL modules, the MySQL instance configured (steps 2-4 above) then the master and other slaves can be installed. The remainder of the instructions remain the same.

It is also possible to setup clustering with MySQL being installed completely separately from PReS Connect, such as using an existing MySQL instance. In this case, the instructions for the bind address must be followed, but the user does not have to be root. A user for MySQL must, however, be created and have full access (GRANT ALL PRIVILEGES) to a database called "objectiflune" that can be created before Connect is installed.

Binding and Root access on the Master server

  • The MySQL server's binding must be set to accept connections from the slave servers. To do this, open C:\Program Files\Objectif Lune\OL Connect\MySQL Product\MySQL\my.ini in a text editor and change the line bind-address= 127.0.0.1 to bind-address=0.0.0.0.
    • Once the changes have been made and saved you need to restart the MySQL services.
  • Access must be granted to the root user on the IPs from which the Slave server will connect:
    • Open a Command Prompt in the following folder: C:\Program Files\Objectif Lune\OL Connect\MySQL Product\MySQL\bin (tip: navigate to the folder, SHIFT+Right-click and select "Open a command prompt here!).
    • Type in the following command to connect to the database, where <password> is your MySQL password (by default it is admin):
      mysql --user=root --password=<password> objectiflune
    • You should see the prompt become mysql>. Here, type the command to allow the "root" user to be accessed from a specific IP subnet range. For example, to accept communication on 192.168.*.*, use: GRANT ALL PRIVILEGES ON objectiflune.* TO 'root'@'192.168.0.0/255.255.0.0' IDENTIFIED BY 'password'; , where password is the one provided during installation. ( ref: http://dev.mysql.com/doc/mysql-security-excerpt/5.5/en/adding-users.html)
IP Subnets understanding is beyond the scope of this documentation. If you want to learn more, please see the Subnetwork article on Wikipedia.

Clustering Preferences and Setup

When server extensions are installed and connected to a Master, the following options and settings change in availability or behavior:

  • In the Scheduling Preferences of the Slave, both "Maximum Records" are ignored. Scheduling is handled by the Master.
  • The "Expected Remote Merge Engine" and "Expected Remote Weaver Engine" in Merge Engine Scheduling and Weaver Engine Scheduling respectively, on the Master, should each equal the total number of engines in all the slaves combined.
    • For example, the Expected Remote Merge Engine on the Master should equal the total of "Local Engines Launched" for each slave.
    • If the number of expected remote engines is lower than the actual number, performance will not be optimal.
    • If the number of expected remote engines is higher than the actual number, jobs may fail and not complete.
  • Cleanup Service requires special configuration on Clustering setups:
    • Cleanup service should not run simultaneously on all machines (staggered cleanup). Doing so may cause jobs not to be processed since all servers are busy.
    • Only the machine where the MySQL Server product is installed should attempt to cleanup database items. Essentially server that do not have MySQL should only run Orphan File Cleanup.

 
  • Last Topic Update: 01:24 PM Sep-01-2017
  • Last Published: 2019-05-22 : 2:37 PM