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
- Install the Master server (PReS Connect
Server module), making sure to select the MySQL module.
- 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.
- Set the appropriate bindings in MySQL's my.ini file on the Master
server.
- Grant access to the MySQL root user for the appropriate IP range
on the Master server.
- Restart the MySQL Service on the Master server.
- Install Slave servers (PReS Connect
Server Extension module only).
- Install the license on the Master server (a Performance Pack license
is required).
- Set the preferences for the engines (see Scheduling Preferences) on both the Master and Slaves
- Install the license on the Slave servers
- 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)
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:
|
|