Date: Tue, 1 Apr 2014 23:03:08 +0000 (UTC) From: Dru Lavigne <dru@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r44414 - head/en_US.ISO8859-1/books/handbook/advanced-networking Message-ID: <201404012303.s31N38BE032102@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dru Date: Tue Apr 1 23:03:08 2014 New Revision: 44414 URL: http://svnweb.freebsd.org/changeset/doc/44414 Log: Editorial review of CARP chapter. Add a few clarifications. Sponsored by: iXsystems Modified: head/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml Modified: head/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml Tue Apr 1 22:55:59 2014 (r44413) +++ head/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml Tue Apr 1 23:03:08 2014 (r44414) @@ -4903,22 +4903,38 @@ route_hostD="192.168.173.4 hatm0 0 102 l <para>The Common Address Redundancy Protocol (<acronym>CARP</acronym>) allows multiple hosts to share the - same <acronym>IP</acronym> address and provide <emphasis>high - availability</emphasis>. One or more hosts can fail, and the - others will take over for the failed system transparently. In - addition to the shared <acronym>IP</acronym> address, hosts also - have a unique <acronym>IP</acronym> address for management and - configuration, as in the example provided here.</para> - - <sect2 xml:id="carp-ha"> - <title>Using <acronym>CARP</acronym> for High - Availability</title> + same <acronym>IP</acronym> address and Virtual Host ID + (<acronym>VHID</acronym>) in order to provide <firstterm>high + availability</firstterm> for one or more services. This means that one or more + hosts can fail, and the + other hosts will transparently take over so that users do not see a service + failure.</para> + + <para>In + addition to the shared <acronym>IP</acronym> address, each host + has its own <acronym>IP</acronym> address for management and + configuration. All of the machines that share an + <acronym>IP</acronym> address have the same + <acronym>VHID</acronym>. The <acronym>VHID</acronym> for each + virtual <acronym>IP</acronym> address must be unique across + the broadcast domain of the network interface.</para> + + <para>High availability using <acronym>CARP</acronym> is built + into &os;, though the steps to configure it vary slightly + depending upon the &os; version. This section provides the same + example configuration for versions before and equal to or after + &os; 10.</para> - <para><acronym>CARP</acronym> is often used to provide - high availability for one or more services. This example + <para>This example configures failover support with three hosts, all with unique <acronym>IP</acronym> addresses, but providing the same web - content. These machines are load balanced with a Round Robin + content. It has two different masters named + <systemitem>hosta.example.org</systemitem> and + <systemitem>hostb.example.org</systemitem>, with + a shared backup named + <systemitem>hostc.example.org</systemitem>.</para> + + <para>These machines are load balanced with a Round Robin <acronym>DNS</acronym> configuration. The master and backup machines are configured identically except for their hostnames and management <acronym>IP</acronym> addresses. These servers @@ -4930,82 +4946,69 @@ route_hostD="192.168.173.4 hatm0 0 102 l interfaces, one for each of the master content server's <acronym>IP</acronym> addresses. When a failure occurs, the backup server will pick up the failed master machine's - <acronym>IP</acronym> address. Users will not see a service - failure at all.</para> - - <para>This example has two different masters named - <systemitem>hosta.example.org</systemitem> and - <systemitem>hostb.example.org</systemitem>, with - a shared backup named - <systemitem>hostc.example.org</systemitem>.</para> - - <para>Each virtual <acronym>IP</acronym> address has a unique - identification number known as a Virtual Host Identification - (<acronym>VHID</acronym>). All of the machines that share an - <acronym>IP</acronym> address have the same - <acronym>VHID</acronym>. The <acronym>VHID</acronym> for each - virtual <acronym>IP</acronym> address must be unique across - the broadcast domain of the network interface.</para> - </sect2> + <acronym>IP</acronym> address.</para> <sect2 xml:id="carp-10x"> <title>Using <acronym>CARP</acronym> on &os; 10 and Later</title> - <para>Enable support for <acronym>CARP</acronym> by loading the + <para>Enable boot-time support for <acronym>CARP</acronym> by adding an entry for the <filename>carp.ko</filename> kernel module in <filename>/boot/loader.conf</filename>:</para> <programlisting>carp_load="YES"</programlisting> - - <para>The <acronym>CARP</acronym> module can also be built into - the &os; kernel as described in + + <para>To load the module now without rebooting:</para> + + <screen>&prompt.root; <userinput>kldload carp</userinput></screen> + + <para>For users who prefer to use a custom kernel, include the + following line in the custom kernel configuration file and + compile the kernel as described in <xref linkend="kernelconfig"/>:</para> <programlisting>device carp</programlisting> - <para>The hostname, management <acronym>IP</acronym> address, - <acronym>CARP</acronym> configuration, and the - <acronym>IP</acronym> address to be shared are all set by + <para>The hostname, management <acronym>IP</acronym> address and subnet mask, + shared <acronym>IP</acronym> address, and <acronym>VHID</acronym> are all set by adding entries to <filename>/etc/rc.conf</filename>. This example is for <systemitem>hosta.example.org</systemitem>:</para> - <programlisting>hostname="hosta.example.org" -ifconfig_em0="inet <systemitem class="ipaddress">192.168.1.3</systemitem> netmask 255.255.255.0" -ifconfig_em0_alias0="vhid 1 pass testpass alias <systemitem class="ipaddress">192.168.1.50</systemitem>/32"</programlisting> - - <para>On <systemitem>hostb.example.org</systemitem>:</para> - - <programlisting>hostname="hostb.example.org" -ifconfig_em0="inet <systemitem class="ipaddress">192.168.1.4</systemitem> netmask 255.255.255.0" -ifconfig_em0_alias0="vhid 2 pass testpass alias <systemitem class="ipaddress">192.168.1.51</systemitem>/32"</programlisting> - - <note> - <para>The passwords specified with &man.ifconfig.8; - <option>pass</option> must be identical. + <programlisting>hostname="<replaceable>hosta.example.org</replaceable>" +ifconfig_<replaceable>em0</replaceable>="inet <replaceable>192.168.1.3</replaceable> netmask <replaceable>255.255.255.0</replaceable>" +ifconfig_<replaceable>em0</replaceable>_alias0="vhid <replaceable>1</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.50</replaceable>/32"</programlisting> + + <para>The next set of entries are for + <systemitem>hostb.example.org</systemitem>. Since it + represents a second master, it uses a different shared + <acronym>IP</acronym> address and + <acronym>VHID</acronym>. However, the passwords specified with + <option>pass</option> must be identical as <acronym>CARP</acronym> will only listen to and accept advertisements from machines with the correct password.</para> - </note> + + <programlisting>hostname="<replaceable>hostb.example.org</replaceable>" +ifconfig_<replaceable>em0</replaceable>="inet <replaceable>192.168.1.4</replaceable> netmask <replaceable>255.255.255.0</replaceable>" +ifconfig_<replaceable>em0</replaceable>_alias0="vhid <replaceable>2</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.51</replaceable>/32"</programlisting> <para>The third machine, - <systemitem>hostc.example.org</systemitem>, is prepared to - handle failover from either of the previous hosts. This + <systemitem>hostc.example.org</systemitem>, is configured to + handle failover from either master. This machine is configured with two <acronym>CARP</acronym> <acronym>VHID</acronym>s, one to handle the virtual - <acronym>IP</acronym> address of each of the master hosts. - <option>advskew</option>, the <acronym>CARP</acronym> - advertising skew, is set to ensure that the backup host - advertises later than the master. <option>advskew</option> + <acronym>IP</acronym> address for each of the master hosts. + The <acronym>CARP</acronym> + advertising skew, <option>advskew</option>, is set to ensure that the backup host + advertises later than the master, since <option>advskew</option> controls the order of precedence when there are multiple - backup servers. Set the configuration in - <filename>/etc/rc.conf</filename>:</para> + backup servers.</para> <programlisting>hostname="hostc.example.org" -ifconfig_em0="inet <systemitem class="ipaddress">192.168.1.5</systemitem> netmask 255.255.255.0" -ifconfig_em0_alias0="vhid 1 advskew 100 pass testpass alias <systemitem class="ipaddress">192.168.1.50</systemitem>/32" -ifconfig_em0_alias1="vhid 2 advskew 100 pass testpass alias <systemitem class="ipaddress">192.168.1.51</systemitem>/32"</programlisting> +ifconfig_<replaceable>em0</replaceable>="inet <replaceable>192.168.1.5</replaceable> netmask <replaceable>255.255.255.0</replaceable>" +ifconfig_<replaceable>em0</replaceable>_alias0="vhid <replaceable>1</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.50</replaceable>/32" +ifconfig_<replaceable>em0</replaceable>_alias1="vhid <replaceable>2</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.51</replaceable>/32"</programlisting> <para>Having two <acronym>CARP</acronym> <acronym>VHID</acronym>s configured means that @@ -5027,8 +5030,8 @@ ifconfig_em0_alias1="vhid 2 advskew 100 <screen>&prompt.root; <userinput>ifconfig em0 vhid 1 state backup</userinput></screen> </note> - <para>At this point, either networking must be restarted or the - machine rebooted, then <acronym>CARP</acronym> is + <para>Once the configuration is complete, either restart networking or reboot + each system. High availability is now enabled.</para> <para><acronym>CARP</acronym> functionality can be controlled @@ -5042,76 +5045,63 @@ ifconfig_em0_alias1="vhid 2 advskew 100 <title>Using <acronym>CARP</acronym> on &os; 9 and Earlier</title> - <para>Enable support for <acronym>CARP</acronym> by loading the + <para>The configuration for these versions of &os; is similar to + the one described in the previous section, except that a + <acronym>CARP</acronym> device must first be created and + referred to in the configuration.</para> + + <para>Enable boot-time support for <acronym>CARP</acronym> by loading the <filename>if_carp.ko</filename> kernel module in <filename>/boot/loader.conf</filename>:</para> <programlisting>if_carp_load="YES"</programlisting> - <para><acronym>CARP</acronym> can also be built into the - &os; kernel as described in + <para>To load the module now without rebooting:</para> + + <screen>&prompt.root; <userinput>kldload carp</userinput></screen> + + <para>For users who prefer to use a custom kernel, include the + following line in the custom kernel configuration file and + compile the kernel as described in <xref linkend="kernelconfig"/>:</para> <programlisting>device carp</programlisting> - <para>The <acronym>CARP</acronym> devices themselves may be - created using &man.ifconfig.8;:</para> + <para>Next, on each host, create a <acronym>CARP</acronym> device:</para> <screen>&prompt.root; <userinput>ifconfig carp0 create</userinput></screen> - <para>Set the hostname, configure the management - <acronym>IP</acronym> address, then configure - <acronym>CARP</acronym> and the <acronym>IP</acronym> address - to be shared by adding the required lines to - <filename>/etc/rc.conf</filename>. Here are example lines for + <para>Set the hostname, management + <acronym>IP</acronym> address, the shared + <acronym>IP</acronym> address, and <acronym>VHID</acronym> + by adding the required lines to + <filename>/etc/rc.conf</filename>. Since a virtual + <acronym>CARP</acronym> device is used instead of an alias, + the actual subnet mask of <literal>/24</literal> is used + instead of <literal>/32</literal>. Here are the entries for <systemitem>hosta.example.org</systemitem>:</para> - <programlisting>hostname="hosta.example.org" -ifconfig_fxp0="inet <systemitem class="ipaddress">192.168.1.3</systemitem> netmask 255.255.255.0" + <programlisting>hostname="<replaceable>hosta.example.org</replaceable>" +ifconfig_<replaceable>fxp0</replaceable>="inet <replaceable>192.168.1.3</replaceable> netmask <replaceable>255.255.255.0</replaceable>" cloned_interfaces="carp0" -ifconfig_carp0="vhid 1 pass testpass <systemitem class="ipaddress">192.168.1.50</systemitem>/24"</programlisting> +ifconfig_carp0="vhid <replaceable>1</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.50/24</replaceable>"</programlisting> <para>On <systemitem>hostb.example.org</systemitem>:</para> - <programlisting>hostname="hostb.example.org" -ifconfig_fxp0="inet <systemitem class="ipaddress">192.168.1.4</systemitem> netmask 255.255.255.0" + <programlisting>hostname="<replaceable>hostb.example.org</replaceable>" +ifconfig_<replaceable>fxp0</replaceable>="inet <replaceable>192.168.1.4</replaceable> netmask <replaceable>255.255.255.0</replaceable>" cloned_interfaces="carp0" -ifconfig_carp0="vhid 2 pass testpass <systemitem class="ipaddress">192.168.1.51</systemitem>/24"</programlisting> - - <note> - <para>The passwords specified with &man.ifconfig.8; - <option>pass</option> must be identical. - <acronym>CARP</acronym> will only listen to and accept - advertisements from machines with the correct password. The - <acronym>VHID</acronym> must also be unique for each virtual - <acronym>IP</acronym> address.</para> - </note> +ifconfig_carp0="vhid <replaceable>2</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.51/24</replaceable>"</programlisting> <para>The third machine, - <systemitem>hostc.example.org</systemitem>, is prepared to - handle failover from either of the previous hosts. This - machine is configured with two <acronym>CARP</acronym> - devices, one to handle each of the virtual - <acronym>IP</acronym> address of each of the master hosts. - Setting the <option>advskew</option> controls the - <acronym>CARP</acronym> advertising skew. The skew ensuring - that the backup hosts advertises later than the master, and - controls the order of precedence when there are multiple - backup servers. Set the configuration in - <filename>/etc/rc.conf</filename>:</para> + <systemitem>hostc.example.org</systemitem>, is configured to + handle failover from either of the master hosts:</para> - <programlisting>hostname="hostc.example.org" -ifconfig_fxp0="inet <systemitem class="ipaddress">192.168.1.5</systemitem> netmask 255.255.255.0" + <programlisting>hostname="<replaceable>hostc.example.org</replaceable>" +ifconfig_<replaceable>fxp0</replaceable>="inet <replaceable>192.168.1.5</replaceable> netmask <replaceable>255.255.255.0</replaceable>" cloned_interfaces="carp0 carp1" -ifconfig_carp0="vhid 1 advskew 100 pass testpass <systemitem class="ipaddress">192.168.1.50</systemitem>/24" -ifconfig_carp1="vhid 2 advskew 100 pass testpass <systemitem class="ipaddress">192.168.1.51</systemitem>/24"</programlisting> - - <para>Having two <acronym>CARP</acronym> devices configured - means that <systemitem>hostc.example.org</systemitem> will - notice if either of the master servers becomes unavailable. - If a master fails to advertise before the backup server, the - backup server will pick up the shared <acronym>IP</acronym> - address until the master becomes available again.</para> +ifconfig_carp0="vhid <replaceable>1</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.50/24</replaceable>" +ifconfig_carp1="vhid <replaceable>2</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.51/24</replaceable>"</programlisting> <note> <para>Preemption is disabled in the GENERIC &os; kernel. @@ -5128,15 +5118,10 @@ ifconfig_carp1="vhid 2 advskew 100 pass interface which corresponds to the correct host.</para> </note> - <para>At this point, either networking must be restarted or the - machine rebooted, then <acronym>CARP</acronym> is + <para>Once the configuration is complete, either restart networking or reboot + each system. High availability is now enabled.</para> - <para><acronym>CARP</acronym> functionality can be controlled - via several &man.sysctl.8; variables documented in the - &man.carp.4; manual pages. Other actions can be triggered - from <acronym>CARP</acronym> events by using - &man.devd.8;.</para> </sect2> </sect1> </chapter>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404012303.s31N38BE032102>