Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Running

...

a

...

Qpidd

...

cluster

...

There

...

are

...

several

...

pre-requisites

...

to

...

running

...

a

...

qpidd

...

cluster:

...

Install

...

and

...

configure

...

openais/corosync

...

Qpid

...

clustering

...

uses

...

a

...

multicast

...

protocol

...

provided

...

by

...

the

...

corosync

...

(formerly

...

called

...

openais)

...

library.

...

Install

...

whichever

...

is

...

available

...

on

...

your

...

OS.

...


E.g.

...

in

...

fedora10:

...

yum

...

install

...

corosync.

...

The

...

configuration

...

file

...

is

...

/etc/ais/openais.conf

...

on

...

openais,

...

/etc/corosync.conf

...

on

...

early

...

corosync

...

versions

...

and

...

/etc/corosync/corosync.conf

...

on

...

recent

...

corosync

...

versions.

...

You

...

will

...

need

...

to

...

edit

...

the

...

default

...

file

...

created

...

when

...

you

...

installed

...

Here

...

is

...

an

...

example,

...

with

...

places

...

marked

...

that

...

you

...

will

...


change.

...

(

...

Below,

...

I

...

will

...

describe

...

how

...

to

...

change

...

the

...

file.

...

)

{
Code Block
}
# Please read the openais.conf.5 manual page

totem {
        version: 2
        secauth: off
        threads: 0
        interface {
                ringnumber: 0
                ## You must change this address ##
                bindnetaddr: 20.0.100.0
                mcastaddr: 226.94.32.36
                mcastport: 5405
        }
}

logging {
        debug: off
	timestamp: on
	to_file: yes
	logfile: /tmp/aisexec.log
}

amf {
     	mode: disabled
}
{code}

You

...

must

...

sent

...

the

...

bindnetaddr

...

entry

...

in

...

the

...

configuration

...

file

...

to

...

the

...

network

...

address

...

of

...

your

...

network

...

interface.

...

This

...

must

...

be

...

a

...

real

...

network

...

interface,

...

not

...

the

...

loopback

...

address

...

127.0.0.1

...

You

...

can

...

find

...

your

...

network

...

interface

...

by

...

running

...

ifconfig.

...

This

...

will

...

list

...

the

...

address

...

and

...

the

...

mask,

...

e.g.

{
Code Block
}
inet addr:20.0.20.32  Bcast:20.0.20.255  Mask:255.255.255.0
{code}

The

...

bindnetaddr

...

is

...

the

...

logical

...

AND

...

of

...

the

...

inet

...

addr

...

and

...

mask

...

values,

...

in

...

the

...

example

...

above

...

20.0.20.0

...

Open your firewall

In the above example file, I use mcastport 5405.
This implies that your firewall must allow UDP
protocol over port 5405, or that you disable the firewall

Use the proper identity.

The qpidd process must be started with the correct identity in order to use the corosync/openais library.

For openais and early corosync versions the installation of openAIS/corosync on your system will create a new
group called "ais". The user that starts the qpidd processes of the cluster
must have "ais" as its effective group id. You can create a user specifically for this purpose with ais as the primary group, or
a user that has ais as a secondary group can use "newgrp" to set the primary group to ais when running qpidd.

For recent corosync versions you no longer need to set your group to "ais" but you do need to create a file in /etc/corosync/uidgid.d/

...

to

...

allow

...

access

...

for

...

whatever

...

user/group

...

ID

...

you

...

want

...

to

...

use.

...

For

...

example

...

create

...

/etc/corosync/uidgid.d/qpid

...

th

...

the

...

contents:

Code Block

uidgid {
   uid: qpid
   gid: qpid
}



h2. Starting a Cluster

To be a member of a cluster you must pass the \

Starting a Cluster

To be a member of a cluster you must pass the --cluster-name

...

argument

...

to

...

qpidd.

...

This

...

is

...

the

...

only

...

required

...

option

...

to

...

join a  cluster,

...

other

...

options

...

can

...

be

...

set

...

as

...

for

...

a

...

normal

...

qpidd.

...

For

...

example

...

to

...

start

...

a

...

cluster

...

of

...

3

...

brokers

...

on

...

the

...

current

...

host

...


Here

...

is

...

an

...

example

...

of

...

starting

...

a

...

cluster

...

of

...

3

...

members,

...

all

...

on

...

the

...

current

...

host

...

but

...

with

...

different

...

ports

...

and

...

different

...

log

...

files:

{
Code Block
}
qpidd -p5672 --cluster-name=MY_CLUSTER --log-output=cluster0.log -d --no-data-dir --auth=no
qpidd -p5673 --cluster-name=MY_CLUSTER --log-output=cluster0.log -d --no-data-dir --auth=no
qpidd -p5674 --cluster-name=MY_CLUSTER --log-output=cluster0.log -d --no-data-dir --auth=no
{code}

In

...

a

...

deployed

...

system,

...

cluster

...

members

...

will

...

normally

...

be

...

on

...

different

...

hosts

...

but

...

for

...

development

...

its

...

useful

...

to

...

be

...

able

...

to

...

create

...

a

...

cluster

...

on

...

a

...

single

...

host.

...

SELinux

...

conflicts

...

Developers

...

will

...

often

...

start

...

openais/corosync

...

as

...

a

...

service

...

like

...

this:

...

service

...

openais

...

start

...

But

...

will

...

then

...

will

...

start

...

a

...

cluster-broker

...

without

...

using

...

the

...

service

...

script

...

like

...

this:

...

/usr/sbin/qpidd

...

--cluster-name

...

my_cluster

...

...

...

If

...

SELinux

...

is

...

in

...

enforcing

...

mode

...

this

...

may

...

cause

...

qpidd

...

to

...

hang

...

due

...

because

...

of

...

the

...

different

...

SELinux

...

contexts.

...


There

...

are

...

3

...

ways

...

to

...

resolve

...

this:

...

  • run

...

  • both

...

  • qpidd

...

  • and

...

  • openais/corosync

...

  • as

...

  • services.

...

  • run

...

  • both

...

  • qpidd

...

  • and

...

  • openais/corosync

...

  • as

...

  • user

...

  • processes.

...

  • make

...

  • selinux

...

  • permissive:

...

To

...

check

...

what

...

mode

...

selinux

...

is

...

running:

{
Code Block
}
# getenforce
{code}

To

...

change

...

the

...

mode:

{
Code Block
}
# setenforce permissive
{code}

Note

...

that

...

in

...

a

...

deployed

...

system

...

both

...

openais/corosync

...

and

...

qpidd

...

should

...

be

...

started

...

as

...

services,

...

in

...

which

...

case

...

there

...

is

...

no

...

problem

...

with

...

SELinux

...

running

...

in

...

enforcing

...

mode.

...

Troubleshooting

...

checklist.

...

If

...

you

...

have

...

trouble

...

starting

...

your

...

cluster,

...

make

...

sure

...

that:

...

1.

...

You

...

have

...

edited

...

the

...

correct

...

openais/corosync

...

configuration

...

file

...

and

...

set

...

bindnetaddr

...

correctly

...


1.

...

Your

...

firewall

...

allows

...

UDP

...

on

...

the

...

openais/corosync

...

mcastport

...


2.

...

Your

...

effective

...

group

...

is

...

"ais"

...

(openais/old

...

corosync)

...

or

...

you

...

have

...

created

...

an

...

appropriate

...

ID

...

file

...

(new

...

corosync)

...


3.

...

Your

...

firewall

...

allows

...

TCP

...

on

...

the

...

ports

...

used

...

by

...

qpidd.

...


4.

...

If

...

you're

...

starting

...

openais

...

as

...

a

...

service

...

but

...

running

...

qpidd

...

directly,

...

ensure

...

selinux

...

is

...

in

...

permissive

...

mode

...