[SCM] CTDB repository - branch master updated - ctdb-1.0.74-3-gb6f7cdd

Ronnie Sahlberg sahlberg at samba.org
Tue Mar 17 23:05:55 GMT 2009


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 <ronniesahlberg at gmail.com>
Date:   Wed Mar 18 10:05:00 2009 +1100

    add documentation for the NAT-GW feature

commit 742283a8f8da7c614ee3a30d48c430e3a3bceeb9
Author: root <root at 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 <root at 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


More information about the samba-cvs mailing list