mbus.conf

March 26, 2020

Name

mbus.conf — Momentum Cluster Messaging Bus configuration file

Description

/opt/msys/ecelerity/etc/conf/global/mbus.conf configures the behavior of the Momentum Cluster Messaging Bus, mbusd. Configuration changes to the message bus cannot be made through the web UI, you must manually change mbus.conf. For instructions on doing this see “Best Practices for Manually Changing Configuration Files”.

Momentum’s clustering solution makes heavy use of a group communication messaging bus called "Spread". Spread provides a mechanism for distributing data to various nodes in a networked configuration. Without this messaging bus, the nodes and the cluster manager cannot communicate and all cluster tasks such as DuraVIP™ binding, logging, and replication will cease to operate.

The cluster manager node and each Momentum node will pull the configuration from ecconfigd on a periodic basis (once per minute) and if the configuration has changed, the messaging bus will shut itself down and restart operations under the new configuration.

An initial configuration for the messaging bus is constructed as part of the installation process. Typically, this file is /opt/msys/ecelerity/etc/conf/global/mbus.conf.

Note

As of version 3.4, cluster communication is handled by the msgc modules rather than by mbus. Configuration is handled by the msgc_server.conf file. For more information see “msgc – Modules”.

SocketPortReuse = on
DaemonUser = ecspread
DaemonGroup = ecspread
DebugFlags = { EXIT CONFIGURATION }
RuntimeDir = /var/run/spread
EventLogFile = /var/log/spread/mainlog
EventTimeStamp
DangerousMonitor = false

# Subcluster: default => manager-0-1
Spread_Segment  10.0.0.255:4803 {         # 10.0.0.255 is the bcast
       manager-0-1          10.0.0.91     # management node
       ec-0-1               10.0.0.191    # ecelerity node 1
       ec-0-2               10.0.0.192    # ecelerity node 2
       ec-0-3               10.0.0.193    # ecelerity node 3
       ec-0-4               10.0.0.194    # ecelerity node 4
       ec-0-5               10.0.0.195    # ecelerity node 5
       ec-0-6               10.0.0.196    # ecelerity node 6
}

The above configuration listing illustrates a standard configuration. In this configuration, 10.0.0.255 is the network broadcast address. Inside the Spread_Segment declaration we see each participating node. The node name should match the output of the hostname command on that node. The IP interface on which the node’s participating address resides must have the same broadcast address as this Spread_Segment, as reported by ifconfig.

If you need to edit the mbus.conf file, edit it in place and commit it to the repository using eccfg.

Note

The mbus.conf file is promulgated to cluster nodes by ecconfigd. It is advisable to restart ecconfigd after making extensive changes to mbus.conf, after adding multiple nodes for instance. Do this by issuing the command /etc/init.d/ecconfigd restart . It is also advisable to restart the ecelerity and the eccmgr processes.

Depending upon your configuration, there may be additional Spread_Segment stanzas. Spread_Segments are created both if the nodes are not all in the same net block as well as if there are multiple subclusters. A single subcluster with two segments might look like the following:

SocketPortReuse = on
DaemonUser = ecspread
DaemonGroup = ecspread
DebugFlags = { EXIT CONFIGURATION }
RuntimeDir = /var/run/spread
EventLogFile = /var/log/spread/mainlog
EventTimeStamp
DangerousMonitor = false

# Subcluster: default => rh52mgr.vmnet24.example.com
Spread_Segment 10.79.240.255:4803 {
       rh52bar2    10.79.240.129
}
Spread_Segment 10.79.24.255:4803 {
       rh52bare    10.79.24.130
       rh52mgr     10.79.24.136
}

With multiple subclusters the Spread_Segments could be configured in the following way:

SocketPortReuse = on
DaemonUser = ecspread
DaemonGroup = ecspread
DebugFlags = { EXIT CONFIGURATION }
RuntimeDir = /var/run/spread
EventLogFile = /var/log/spread/mainlog
EventTimeStamp
DangerousMonitor = false

# Subcluster: east => rh52mgr.vmnet24.example.com
Spread_Segment 10.79.24.255:4803 {
        rh52bare        10.79.24.130
        rh52mgr         10.79.24.136
}
SocketPortReuse = on
DaemonUser = ecspread
DaemonGroup = ecspread
DebugFlags = { EXIT CONFIGURATION }
RuntimeDir = /var/run/spread
EventLogFile = /var/log/spread/mainlog
EventTimeStamp
DangerousMonitor = false

# Subcluster: west => rh52mgr.vmnet24.example.com
Spread_Segment 10.79.240.255:4803 {
        rh52bar2        10.79.240.129
}

For more information about subclusters see “Subclusters”.

See Also

eccmgr, mbusd, mbusd_monitor,