The branch, master has been updated
       via  b6f7cddc68508e52bc65b357b0b77258ae96362a (commit)
       via  742283a8f8da7c614ee3a30d48c430e3a3bceeb9 (commit)
       via  4c598ab6f8e9b826d437b9ab869c4490f7c4faba (commit)
      from  0772190203d501a39072f16948604742d7d59a5e (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit b6f7cddc68508e52bc65b357b0b77258ae96362a
Author: Ronnie Sahlberg <ronniesahlb...@gmail.com>
Date:   Wed Mar 18 10:05:00 2009 +1100

    add documentation for the NAT-GW feature

commit 742283a8f8da7c614ee3a30d48c430e3a3bceeb9
Author: root <r...@rcn1.vsofs1.com>
Date:   Wed Mar 18 09:33:58 2009 +1100

    change the NATGW_ example in sysconfig to make it more realistic

commit 4c598ab6f8e9b826d437b9ab869c4490f7c4faba
Author: root <r...@rcn1.vsofs1.com>
Date:   Tue Mar 17 07:35:53 2009 +1100

    NAT-GW updates. Describe the functionality in the sysconfig file

-----------------------------------------------------------------------

Summary of changes:
 config/ctdb.sysconfig    |   37 +++
 config/events.d/11.natgw |   79 ++++++
 doc/ctdbd.1              |  654 ++++++++++++++++------------------------------
 doc/ctdbd.1.html         |  117 ++++++++-
 doc/ctdbd.1.xml          |  164 ++++++++++++
 5 files changed, 625 insertions(+), 426 deletions(-)
 create mode 100644 config/events.d/11.natgw


Changeset truncated at 500 lines:

diff --git a/config/ctdb.sysconfig b/config/ctdb.sysconfig
index db5d16c..03b91b6 100644
--- a/config/ctdb.sysconfig
+++ b/config/ctdb.sysconfig
@@ -128,6 +128,43 @@
 # CTDB_CAPABILITY_RECMASTER=yes
 # CTDB_CAPABILITY_LMASTER=yes
 
+# NAT-GW configuration
+# Some services running on nthe CTDB node may need to originate traffic to
+# remote servers before the node is assigned any IP addresses,
+# This is problematic since before the node has public addresses the node might
+# not be able to route traffic to the public networks.
+# One solution is to have static public addresses assigned with routing
+# in addition to the public address interfaces, thus guaranteeing that
+# a node always can route traffic to the external network.
+# This is the most simple solution but it uses up a large number of 
+# additional ip addresses.
+#
+# A more complex solution is NAT-GW.
+# In this mode we only need one additional ip address for the cluster from
+# the exsternal public network.
+# One of the nodes in the cluster is elected to be hosting this ip address
+# so it can reach the external services. This node is also configured
+# to use NAT MASQUERADING for all traffic from the internal private network
+# to the external network. This node is the NAT-GW node.
+#
+# All other nodes are set up with policy routing so that all traffic with
+# a source address of the private network and a destination outside of
+# the private network are instead routed through the NAT-GW node.
+# 
+# The effect of this is that only when a node does not have a public address
+# or a route to the external network will the node use the private address
+# as the source address and only then will it use the policy routing
+# through the NAT-GW.
+# As long as a node has a public address and can route to the external network
+# the node will always pick the public address as the source address and NAT-GW
+# routing will not be used.
+#NATGW_PUBLIC_IP=10.0.0.227/24
+#NATGW_PUBLIC_IFACE=eth0
+#NATGW_DEFAULT_GATEWAY=10.0.0.1
+#NATGW_PRIVATE_IFACE=eth1
+#NATGW_PRIVATE_NETWORK=10.1.1.0/24
+
+
 # where to log messages
 # the default is /var/log/log.ctdb
 # CTDB_LOGFILE=/var/log/log.ctdb
diff --git a/config/events.d/11.natgw b/config/events.d/11.natgw
new file mode 100644
index 0000000..23fe4ae
--- /dev/null
+++ b/config/events.d/11.natgw
@@ -0,0 +1,79 @@
+#!/bin/sh
+# Script to set up one of the nodes as a NAT gateway for all other nodes.
+# This is used to ensure that all nodes in the cluster can still originate
+# traffic to the external network even if there are no public addresses
+# available.
+#
+
+. $CTDB_BASE/functions
+loadconfig ctdb
+
+[ -z "$NATGW_PUBLIC_INTERFACE" ] && exit 0
+
+cmd="$1"
+shift
+PATH=/usr/bin:/bin:/usr/sbin:/sbin:$PATH
+
+case $cmd in 
+     recovered)
+       MYPNN=`ctdb pnn | cut -d: -f2`
+
+       # Find the first connected node
+       FIRST=`ctdb status -Y | grep ":0:$" | head -1`
+       FIRSTNODE=`echo $FIRST | cut -d: -f2`
+       FIRSTIP=`echo $FIRST | cut -d: -f3`
+
+       # Delete everything that might have been set in a previous iteration
+       # when we were not the NAT-GW
+       ip rule del fwmark 11 table 11 >/dev/null 2>/dev/null
+       iptables -D OUTPUT -t mangle -s $NATGW_PRIVATE_NETWORK -d ! 
$NATGW_PRIVATE_NETWORK -j MARK --set-mark 11 >/dev/null 2>/dev/null
+       iptables -D OUTPUT -t mangle -s $NATGW_PRIVATE_NETWORK -d ! 
$NATGW_PRIVATE_NETWORK -p tcp --sport 22 -j ACCEPT >/dev/null 2>/dev/null
+       ip route del $NATGW_PRIVATE_NETWORK dev $NATGW_PRIVATE_IFACE table 11 
>/dev/null 2>/dev/null
+       ip route del 0.0.0.0/0 dev $NATGW_PRIVATE_IFACE table 11 >/dev/null 
2>/dev/null
+
+       # Delete the masquerading setup from a previous iteration where we
+       # was the NAT-GW
+       iptables -D POSTROUTING -t nat -s $NATGW_PRIVATE_NETWORK -d ! 
$NATGW_PRIVATE_NETWORK -j MASQUERADE >/dev/null 2>/dev/null
+       ip addr del $NATGW_PUBLIC_IP dev $NATGW_PUBLIC_IFACE >/dev/null 
2>/dev/null
+
+       if [ "$FIRSTNODE" == "$MYPNN" ]; then
+               # This is the first node, set it up as the NAT GW
+               echo 1 >/proc/sys/net/ipv4/ip_forward
+               iptables -A POSTROUTING -t nat -s $NATGW_PRIVATE_NETWORK -d ! 
$NATGW_PRIVATE_NETWORK -j MASQUERADE
+               ip addr add $NATGW_PUBLIC_IP dev $NATGW_PUBLIC_IFACE
+               ip route add 0.0.0.0/0 via $NATGW_DEFAULT_GATEWAY >/dev/null 
2>/dev/null
+       else
+               # This is not the NAT-GW
+               # We now need to set up a separate routing table for
+               # all traffic we originate and with a destination that is
+               # outside of the local private network and route these 
+               # packets via the NAT-GW
+
+
+               # Mark all outgoing packets that have the private address
+               # as source address with fwmarker 11
+               # We expect that the only time the the source address will be
+               # selected as the private address would be when there are
+               # no static or public addresses assigned at all to the node.
+               # Othervise the routing would have picked a different address.
+               #
+               # Except for traffic to the ssh daemon, so that it is easier
+               # to test in the lab without disrupting the ssh sessions
+               iptables -A OUTPUT -t mangle -s $NATGW_PRIVATE_NETWORK -d ! 
$NATGW_PRIVATE_NETWORK -p tcp --sport 22 -j ACCEPT
+               iptables -A OUTPUT -t mangle -s $NATGW_PRIVATE_NETWORK -d ! 
$NATGW_PRIVATE_NETWORK -j MARK --set-mark 11
+
+
+               # create a routing table for the natgw traffic and set it
+               # up with both an interface toute for the private network
+               # as well as a default route that goes via the NAT-GW
+               ip route add $NATGW_PRIVATE_NETWORK dev $NATGW_PRIVATE_IFACE 
table 11
+               ip route add 0.0.0.0/0 via $FIRSTIP dev $NATGW_PRIVATE_IFACE 
table 11 >/dev/null 2>/dev/null
+
+               # Create a rule to use routing table 11 for these packets
+               ip rule add fwmark 11 table 11
+       fi
+       ;;
+
+esac
+
+exit 0
diff --git a/doc/ctdbd.1 b/doc/ctdbd.1
index 38ba41a..c332beb 100644
--- a/doc/ctdbd.1
+++ b/doc/ctdbd.1
@@ -1,729 +1,535 @@
 .\"     Title: ctdbd
-.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
-.\" Generator: DocBook XSL Stylesheets v1.74.0 <http://docbook.sf.net/>
-.\"      Date: 10/14/2008
-.\"    Manual: [FIXME: manual]
-.\"    Source: [FIXME: source]
-.\"  Language: English
+.\"    Author: 
+.\" Generator: DocBook XSL Stylesheets v1.73.2 <http://docbook.sf.net/>
+.\"      Date: 03/18/2009
+.\"    Manual: 
+.\"    Source: 
 .\"
-.TH "CTDBD" "1" "10/14/2008" "[FIXME: source]" "[FIXME: manual]"
-.\" -----------------------------------------------------------------
-.\" * (re)Define some macros
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" toupper - uppercase a string (locale-aware)
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.de toupper
-.tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
-\\$*
-.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
-..
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" SH-xref - format a cross-reference to an SH section
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.de SH-xref
-.ie n \{\
-.\}
-.toupper \\$*
-.el \{\
-\\$*
-.\}
-..
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" SH - level-one heading that works better for non-TTY output
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.de1 SH
-.\" put an extra blank line of space above the head in non-TTY output
-.if t \{\
-.sp 1
-.\}
-.sp \\n[PD]u
-.nr an-level 1
-.set-an-margin
-.nr an-prevailing-indent \\n[IN]
-.fi
-.in \\n[an-margin]u
-.ti 0
-.HTML-TAG ".NH \\n[an-level]"
-.it 1 an-trap
-.nr an-no-space-flag 1
-.nr an-break-flag 1
-.\" make the size of the head bigger
-.ps +3
-.ft B
-.ne (2v + 1u)
-.ie n \{\
-.\" if n (TTY output), use uppercase
-.toupper \\$*
-.\}
-.el \{\
-.nr an-break-flag 0
-.\" if not n (not TTY), use normal case (not uppercase)
-\\$1
-.in \\n[an-margin]u
-.ti 0
-.\" if not n (not TTY), put a border/line under subheading
-.sp -.6
-\l'\n(.lu'
-.\}
-..
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" SS - level-two heading that works better for non-TTY output
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.de1 SS
-.sp \\n[PD]u
-.nr an-level 1
-.set-an-margin
-.nr an-prevailing-indent \\n[IN]
-.fi
-.in \\n[IN]u
-.ti \\n[SN]u
-.it 1 an-trap
-.nr an-no-space-flag 1
-.nr an-break-flag 1
-.ps \\n[PS-SS]u
-.\" make the size of the head bigger
-.ps +2
-.ft B
-.ne (2v + 1u)
-.if \\n[.$] \&\\$*
-..
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" BB/BE - put background/screen (filled box) around block of text
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.de BB
-.if t \{\
-.sp -.5
-.br
-.in +2n
-.ll -2n
-.gcolor red
-.di BX
-.\}
-..
-.de EB
-.if t \{\
-.if "\\$2"adjust-for-leading-newline" \{\
-.sp -1
-.\}
-.br
-.di
-.in
-.ll
-.gcolor
-.nr BW \\n(.lu-\\n(.i
-.nr BH \\n(dn+.5v
-.ne \\n(BHu+.5v
-.ie "\\$2"adjust-for-leading-newline" \{\
-\M[\\$1]\h'1n'\v'+.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
-.\}
-.el \{\
-\M[\\$1]\h'1n'\v'-.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
-.\}
-.in 0
-.sp -.5v
-.nf
-.BX
-.in
-.sp .5v
-.fi
-.\}
-..
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" BM/EM - put colored marker in margin next to block of text
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.de BM
-.if t \{\
-.br
-.ll -2n
-.gcolor red
-.di BX
-.\}
-..
-.de EM
-.if t \{\
-.br
-.di
-.ll
-.gcolor
-.nr BH \\n(dn
-.ne \\n(BHu
-\M[\\$1]\D'P -.75n 0 0 \\n(BHu -(\\n[.i]u - \\n(INu - .75n) 0 0 -\\n(BHu'\M[]
-.in 0
-.nf
-.BX
-.in
-.fi
-.\}
-..
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
+.TH "CTDBD" "1" "03/18/2009" "" ""
 .\" disable hyphenation
 .nh
 .\" disable justification (adjust text to left margin only)
 .ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "Name"
-ctdbd \- The CTDB cluster daemon
-.SH "Synopsis"
-.fam C
-.HP \w'\fBctdbd\fR\ 'u
+.SH "NAME"
+ctdbd - The CTDB cluster daemon
+.SH "SYNOPSIS"
+.HP 6
 \fBctdbd\fR
-.fam
-.fam C
-.HP \w'\fBctdbd\fR\ 'u
+.HP 6
 \fBctdbd\fR [\-?\ \-\-help] [\-d\ \-\-debug=<INTEGER>] {\-\-dbdir=<directory>} 
{\-\-dbdir\-persistent=<directory>} [\-\-event\-script\-dir=<directory>] [\-i\ 
\-\-interactive] [\-\-listen=<address>] [\-\-logfile=<filename>] [\-\-lvs] 
{\-\-nlist=<filename>} [\-\-no\-lmaster] [\-\-no\-recmaster] [\-\-nosetsched] 
[\-\-public\-addresses=<filename>] [\-\-public\-interface=<interface>] 
{\-\-reclock=<filename>} [\-\-single\-public\-ip=<address>] 
[\-\-socket=<filename>] [\-\-start\-as\-disabled] [\-\-syslog] [\-\-torture] 
[\-\-transport=<STRING>] [\-\-usage]
-.fam
 .SH "DESCRIPTION"
 .PP
-ctdbd is the main ctdb daemon\&.
+ctdbd is the main ctdb daemon\.
 .PP
-ctdbd provides a clustered version of the TDB database with automatic 
rebuild/recovery of the databases upon nodefailures\&.
+ctdbd provides a clustered version of the TDB database with automatic 
rebuild/recovery of the databases upon nodefailures\.
 .PP
-Combined with a cluster filesystem ctdbd provides a full HA environment for 
services such as clustered Samba and NFS as well as other services\&.
+Combined with a cluster filesystem ctdbd provides a full HA environment for 
services such as clustered Samba and NFS as well as other services\.
 .PP
-ctdbd provides monitoring of all nodes in the cluster and automatically 
reconfigures the cluster and recovers upon node failures\&.
+ctdbd provides monitoring of all nodes in the cluster and automatically 
reconfigures the cluster and recovers upon node failures\.
 .PP
-ctdbd is the main component in clustered Samba that provides a 
high\-availability load\-sharing CIFS server cluster\&.
+ctdbd is the main component in clustered Samba that provides a 
high\-availability load\-sharing CIFS server cluster\.
 .SH "OPTIONS"
 .PP
 \-? \-\-help
 .RS 4
-Print some help text to the screen\&.
+Print some help text to the screen\.
 .RE
 .PP
 \-d \-\-debug=<DEBUGLEVEL>
 .RS 4
-This option sets the debuglevel on the ctdbd daemon which controls what will 
be written to the logfile\&. The default is 0 which will only log important 
events and errors\&. A larger number will provide additional logging\&.
+This option sets the debuglevel on the ctdbd daemon which controls what will 
be written to the logfile\. The default is 0 which will only log important 
events and errors\. A larger number will provide additional logging\.
 .RE
 .PP
 \-\-dbdir=<directory>
 .RS 4
-This is the directory on local storage where ctdbd keeps the local copy of the 
TDB databases\&. This directory is local for each node and should not be stored 
on the shared cluster filesystem\&.
+This is the directory on local storage where ctdbd keeps the local copy of the 
TDB databases\. This directory is local for each node and should not be stored 
on the shared cluster filesystem\.
 .sp
-This directory would usually be /var/ctdb \&.
+This directory would usually be /var/ctdb \.
 .RE
 .PP
 \-\-dbdir\-persistent=<directory>
 .RS 4
-This is the directory on local storage where ctdbd keeps the local copy of the 
persistent TDB databases\&. This directory is local for each node and should 
not be stored on the shared cluster filesystem\&.
+This is the directory on local storage where ctdbd keeps the local copy of the 
persistent TDB databases\. This directory is local for each node and should not 
be stored on the shared cluster filesystem\.
 .sp
-This directory would usually be /etc/ctdb/persistent \&.
+This directory would usually be /etc/ctdb/persistent \.
 .RE
 .PP
 \-\-event\-script\-dir=<directory>
 .RS 4
-This option is used to specify the directory where the CTDB event scripts are 
stored\&.
+This option is used to specify the directory where the CTDB event scripts are 
stored\.
 .sp
-This will normally be /etc/ctdb/events\&.d which is part of the ctdb 
distribution\&.
+This will normally be /etc/ctdb/events\.d which is part of the ctdb 
distribution\.
 .RE
 .PP
 \-i \-\-interactive
 .RS 4
-By default ctdbd will detach itself from the shell and run in the background 
as a daemon\&. This option makes ctdbd to start in interactive mode\&.
+By default ctdbd will detach itself from the shell and run in the background 
as a daemon\. This option makes ctdbd to start in interactive mode\.
 .RE
 .PP
 \-\-listen=<address>
 .RS 4
-This specifies which ip address ctdb will bind to\&. By default ctdbd will 
bind to the first address it finds in the /etc/ctdb/nodes file and which is 
also present on the local system in which case you do not need to provide this 
option\&.
+This specifies which ip address ctdb will bind to\. By default ctdbd will bind 
to the first address it finds in the /etc/ctdb/nodes file and which is also 
present on the local system in which case you do not need to provide this 
option\.
 .sp
-This option is only required when you want to run multiple ctdbd daemons/nodes 
on the same physical host in which case there would be multiple entries in 
/etc/ctdb/nodes what would match a local interface\&.
+This option is only required when you want to run multiple ctdbd daemons/nodes 
on the same physical host in which case there would be multiple entries in 
/etc/ctdb/nodes what would match a local interface\.
 .RE
 .PP
 \-\-logfile=<filename>
 .RS 4
-This is the file where ctdbd will write its log\&. This is usually 
/var/log/log\&.ctdb \&.
+This is the file where ctdbd will write its log\. This is usually 
/var/log/log\.ctdb \.
 .RE
 .PP
 \-\-lvs
 .RS 4
-This option is used to activate the LVS capability on a CTDB node\&. Please 
see the LVS section\&.
+This option is used to activate the LVS capability on a CTDB node\. Please see 
the LVS section\.
 .RE
 .PP
 \-\-nlist=<filename>
 .RS 4
-This file contains a list of the private ip addresses of every node in the 
cluster\&. There is one line/ip address for each node\&. This file must be the 
same for all nodes in the cluster\&.
+This file contains a list of the private ip addresses of every node in the 
cluster\. There is one line/ip address for each node\. This file must be the 
same for all nodes in the cluster\.
 .sp
-This file is usually /etc/ctdb/nodes \&.
+This file is usually /etc/ctdb/nodes \.
 .RE
 .PP
 \-\-no\-lmaster
 .RS 4
-This argument specifies that this node can NOT become an lmaster for records 
in the database\&. This means that it will never show up in the vnnmap\&. This 
feature is primarily used for making a cluster span across a WAN link and use 
CTDB as a WAN\-accelerator\&.
+This argument specifies that this node can NOT become an lmaster for records 
in the database\. This means that it will never show up in the vnnmap\. This 
feature is primarily used for making a cluster span across a WAN link and use 
CTDB as a WAN\-accelerator\.
 .sp
-Please see the "remote cluster nodes" section for more information\&.
+Please see the "remote cluster nodes" section for more information\.
 .RE
 .PP
 \-\-no\-recmaster
 .RS 4
-This argument specifies that this node can NOT become a recmaster for the 
database\&. This feature is primarily used for making a cluster span across a 
WAN link and use CTDB as a WAN\-accelerator\&.
+This argument specifies that this node can NOT become a recmaster for the 
database\. This feature is primarily used for making a cluster span across a 
WAN link and use CTDB as a WAN\-accelerator\.
 .sp
-Please see the "remote cluster nodes" section for more information\&.
+Please see the "remote cluster nodes" section for more information\.
 .RE
 .PP
 \-\-nosetsched
 .RS 4
-This is a ctdbd debugging option\&. this option is only used when debugging 
ctdbd\&.
+This is a ctdbd debugging option\. this option is only used when debugging 
ctdbd\.
 .sp
-Normally ctdb will change its scheduler to run as a real\-time process\&. This 
is the default mode for a normal ctdbd operation to gurarantee that ctdbd 
always gets the cpu cycles that it needs\&.
+Normally ctdb will change its scheduler to run as a real\-time process\. This 
is the default mode for a normal ctdbd operation to gurarantee that ctdbd 
always gets the cpu cycles that it needs\.
 .sp
-This option is used to tell ctdbd to NOT run as a real\-time process and 
instead run ctdbd as a normal userspace process\&. This is useful for debugging 
and when you want to run ctdbd under valgrind or gdb\&. (You dont want to 
attach valgrind or gdb to a real\-time process\&.)
+This option is used to tell ctdbd to NOT run as a real\-time process and 
instead run ctdbd as a normal userspace process\. This is useful for debugging 
and when you want to run ctdbd under valgrind or gdb\. (You dont want to attach 
valgrind or gdb to a real\-time process\.)
 .RE
 .PP
 \-\-public_addresses=<filename>
 .RS 4
-When used with IP takeover this specifies a file containing the public ip 
addresses to use on the cluster\&. This file contains a list of ip addresses 
netmasks and interfaces\&. When ctdb is operational it will distribute these 
public ip addresses evenly across the available nodes\&.
+When used with IP takeover this specifies a file containing the public ip 
addresses to use on the cluster\. This file contains a list of ip addresses 
netmasks and interfaces\. When ctdb is operational it will distribute these 
public ip addresses evenly across the available nodes\.
 .sp
 This is usually the file /etc/ctdb/public_addresses
 .RE
 .PP
 \-\-public\-interface=<interface>
 .RS 4
-This option tells ctdb which interface to attach public\-addresses to and also 
where to attach the single\-public\-ip when used\&.
+This option tells ctdb which interface to attach public\-addresses to and also 
where to attach the single\-public\-ip when used\.
 .sp
-This is only required when using public ip addresses and only when you dont 
specify the interface explicitly in /etc/ctdb/public_addresses or when you are 
using \-\-single\-public\-ip\&.
+This is only required when using public ip addresses and only when you dont 
specify the interface explicitly in /etc/ctdb/public_addresses or when you are 
using \-\-single\-public\-ip\.
 .sp
-If you omit this argument when using public addresses or single public ip, 
ctdb will not be able to send out Gratious ARPs correctly or be able to kill 
tcp connections correctly which will lead to application failures\&.
+If you omit this argument when using public addresses or single public ip, 
ctdb will not be able to send out Gratious ARPs correctly or be able to kill 
tcp connections correctly which will lead to application failures\.
 .RE
 .PP
 \-\-reclock=<filename>
 .RS 4
-This is the name of the lock file stored of the shared cluster filesystem that 
ctdbd uses to arbitrate which node has the role of recovery\-master\&. This 
file must be stored on shared storage\&.
+This is the name of the lock file stored of the shared cluster filesystem that 
ctdbd uses to arbitrate which node has the role of recovery\-master\. This file 
must be stored on shared storage\.
 .RE
 .PP
 \-\-single\-public\-ip=<address>
 .RS 4
-This option is used to activate the "ipmux" or the "lvs" functionality of ctdb 
where the cluster provides a single public ip address for the entire cluster\&. 
When using this option you must also use the \-\-public\-interface option\&.
+This option is used to activate the "ipmux" or the "lvs" functionality of ctdb 
where the cluster provides a single public ip address for the entire cluster\. 
When using this option you must also use the \-\-public\-interface option\.
 .sp
-In this mode, all nodes of the cluster will expose a single ip address from 
all nodes with all incoming traffic to the cluster being passed through the 
current recmaster\&. This functionality is similar to using a load\-balancing 
switch\&.
+In this mode, all nodes of the cluster will expose a single ip address from 
all nodes with all incoming traffic to the cluster being passed through the 
current recmaster\. This functionality is similar to using a load\-balancing 
switch\.
 .sp
-All incoming packets are sent to the recmaster which will multiplex the 
clients across all available nodes and pass the packets on to a different node 
in the cluster to manage the connection based on the clients ip address\&. 
Outgoing packets however are sent directly from the node that was choosen back 
to the client\&. Since all incoming packets are sent through the recmaster this 
will have a throughput and performance impact when used\&. This impact in 
performance primarily affects write\-performance while read\-performance should 
be mainly unaffected\&. Only use this feature if your environment is 
mostly\-read (i\&.e\&. most traffic is from the nodes back to the clients) or 
if it is not important to get maximum write\-performance to the cluster\&.
+All incoming packets are sent to the recmaster which will multiplex the 
clients across all available nodes and pass the packets on to a different node 
in the cluster to manage the connection based on the clients ip address\. 
Outgoing packets however are sent directly from the node that was choosen back 
to the client\. Since all incoming packets are sent through the recmaster this 
will have a throughput and performance impact when used\. This impact in 
performance primarily affects write\-performance while read\-performance should 
be mainly unaffected\. Only use this feature if your environment is 
mostly\-read (i\.e\. most traffic is from the nodes back to the clients) or if 
it is not important to get maximum write\-performance to the cluster\.
 .sp
-This feature is completely controlled from the eventscripts and does not 
require any CTDBD involvement\&. However, the CTDBD daemon does need to know 
that the "single public ip" exists so that the CTDBD daemon will allow clients 
to set up killtcp to work on this ip address\&.
+This feature is completely controlled from the eventscripts and does not 
require any CTDBD involvement\. However, the CTDBD daemon does need to know 
that the "single public ip" exists so that the CTDBD daemon will allow clients 
to set up killtcp to work on this ip address\.
 .sp
-CTDBD only allows clients to use killtcp to kill off (RST) tcp connections 
to/from an ip address that is either a normal public address or to/from the ip 
address specified by \-\-single\-public\-ip\&. No other tcp connections are 
allowed to be specified with killtcp\&.
+CTDBD only allows clients to use killtcp to kill off (RST) tcp connections 
to/from an ip address that is either a normal public address or to/from the ip 
address specified by \-\-single\-public\-ip\. No other tcp connections are 
allowed to be specified with killtcp\.
 .sp
-Please note that ipmux is obsolete\&. Use LVS, not ipmux\&. Please see the LVS 
section in this manpage for instructions on how to configure and use CTDB with 
LVS\&.
+Please note that ipmux is obsolete\. Use LVS, not ipmux\. Please see the LVS 
section in this manpage for instructions on how to configure and use CTDB with 
LVS\.
 .RE
 .PP
 \-\-socket=<filename>
 .RS 4


-- 
CTDB repository

Reply via email to