在CentOS上配置高可用性集群(Heartbeat)
本指南介绍如何在CentOS上设置心跳线的两个节点,高可用性HTTP群集。 两个节点都使用Apache Web服务器来服务相同的内容。
预配置要求
- 将hostname
node01
分配给IP地址为172.16.4.80
到eth0的主节点。 - 将主机名
node02
分配给IP地址为172.16.4.81的
从节点。
注意:在node01上
uname -n
必须返回node01
。
在node02上
uname -n
必须返回node02
。
172.16.4.82
是将用于我们的Apache网络服务器的虚拟IP地址(即Apache将监听该地址)。
组态
1.下载并安装心跳包。 在我们的例子中,我们使用的是CentOS,所以我们将用yum安装心跳线:
yum install heartbeat
或下载这些软件包:
heartbeat-2.08
heartbeat-pils-2.08
heartbeat-stonith-2.08
现在我们必须在我们的两个节点集群上配置心跳。 我们将处理三个文件。 这些是:
authkeys
ha.cf
haresources
现在转到我们的配置。 但还有一件事要做,也就是将这些文件复制到/etc/ha.d
目录。 在我们的例子中,我们复制这些文件,如下所示:
cp /usr/share/doc/heartbeat-2.1.2/authkeys /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.2/ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.2/haresources /etc/ha.d/
现在让我们开始配置心跳。 首先我们将处理authkeys
文件,我们将使用身份验证方法2(sha1)。 为此,我们将在authkeys
文件中进行如下更改。
vi /etc/ha.d/authkeys
然后添加以下行:
auth 2 2 sha1 test-ha
更改authkeys
文件的权限
:
chmod 600 /etc/ha.d/authkeys
移动到我们的第二个文件( ha.cf
),这是最重要的。 所以用vi
编辑ha.cf
文件:
vi /etc/ha.d/ha.cf
在ha.cf
文件中添加以下行:
logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 30 initdead 120 bcast eth0 udpport 694 auto_failback on node node01 node node02
注意: node01
和node02
是由...生成的输出
uname -n
6.我们配置的最后一个工作是编辑haresources
文件。 此文件包含有关我们要高度启用的资源的信息。 在我们的例子中,我们希望网络服务器( httpd
)高度可用:
vi /etc/ha.d/haresources
添加以下行:
node01 172.16.4.82 httpd
7.将/etc/ha.d/
目录从node01
复制到node02
:
scp -r /etc/ha.d/ root@node02:/etc/
8.我们希望httpd高度启用,让我们开始配置httpd:
vi /etc/httpd/conf/httpd.conf
在httpd.conf中
添加这一行:
Listen 172.16.4.82:80
9.将/etc/httpd/conf/httpd.conf
文件复制到node02中
:
scp /etc/httpd/conf/httpd.conf root@node02:/etc/httpd/conf/
10.在两个节点( node01
和node02
)上创建文件index.html
:
在node01上
:
echo "node01 apache test server" > /var/www/html/index.html
在node02上
:
echo "node02 apache test server" > /var/www/html/index.html
11.现在在主节点01和从节点02上启动心跳:
/etc/init.d/heartbeat start
12.打开网络浏览器并输入URL:
http://172.16.4.82
它将显示node01 apache测试服务器
。
现在在node01
上停止listenbeat守护进程:
/etc/init.d/heartbeat stop
在您的浏览器中输入URL http://172.16.4.82
并按回车键。
它将显示node02 apache测试服务器
。
14.我们不需要创建一个虚拟网络接口并为其分配一个IP地址( 172.16.4.82
)。 心跳将为您做这个,并启动服务( httpd
)本身。 所以不要担心这个。
不要使用172.16.4.80
和172.16.4.81
的IP地址进行服务。 这些地址由心跳用于node01
和node02
之间的通信。 当他们中的任何一个将被用于服务/资源时,它会扰乱听众的声音,并且不会奏效。 小心点!!!