linux heartbeat双机设置

第一方案: 双机热备(算是ha集群的一种)


方案思路:
如图所示。R1和R2是真实存在的服务器。并且都配置双网卡。一个连接公网,一个用于连接心跳线。数据服务器在后端,用于存放R1或者R2的数据。V1是虚拟服务器,做成双机热备后,V1就是一个浮动IP。

具体配置:
R1和R2都是五洲服务器。XEON3.0/1G/73SCSI/CENTOS4.4-KENREL2.6.9
R1: eth0 192.168.0.100(公网) eth1:10.0.0.100(内网)
R2: eth0 192.168.0.200(公网) eth1:10.0.0.200(内网)
数据库服务器: 192.168.0.121(这里我临时使用NFS来作数据共享服务器)
V1: 192.158.0.222 (虚拟浮动ip)

由于我这里面是实验环境,所以大概思路交待清楚。心跳线由于没有交叉线,就用一个交换机代替。

R1和R2都要安装libnet, pkgconfig glib2-devel e2fsprogs
开始配置:
R1需要配置的内外网ip

Vi /etc/sysconfig/network
修改自己的主机名,我这里是R1,记得重起生效。
Vi /etc/hosts
里面添加R1和R2的主机名对应的IP地址。记得重新启动网卡。
R2和共享存储服务器一样的设置。
Ok。接下来安装heartbeat软件(R1和R2安装,共享数据库不用安装了,只要装nfs就好),下载地址

Ult Ramon Key.org - A blog about Linux and computer software
我使用heartbeat-2.1.3.tar.gz。解压安装,过程不在说了。
先以R1为例(我准备R1做主,R2做从):

1
安装后,会存在/usr/local/etc/ha.d这个目录。有些朋友使用rpm包安装,可能ha.d这个目录直接生成在/etc/下了。实在找不到使用find / -name ha.d来寻找。
接下来copy源安装目录下的doc目录里面的三个文件到ha.d目录下
copy /home/tinkoko/heartbeat-2.1.3/doc/ha.cf /usr/local/etc/ha.d/
copy /home/tinkoko/heartbeat-2.1.3/doc/haresources /usr/local/etc/ha.d/
copy /home/tinkoko/heartbeat-2.1.3/doc/authkeys /usr/local/etc/ha.d/

2
然后 vi /usr/local/etc/ha.d/ha.cf
具体要把下面的选项前的注释去掉
logfile /var/log/ha-log
logfacility local0
keepalive 2 每2秒钟 测试机发送一个广播
deadtime 30 30秒内没有反应,立即切换服务
warntime 10
initdead 120
udpport 694
bcast eth1 指明心跳连接的接口号,这个一定要写对了,内网卡
ucast eth1 10.0.0.200 心跳连接的pc的ip,写R2的
auto_failback on 主服务器恢复后是不是自动获得主权限
node R1 两个的主机名(最好用uname -n察看)
node R2
ping www.baidu.com 测试机的ip (要写外部的测试IP)

3
Vi /usr/local/etc/ha.d/haresources(这个很重要,很多时候测试不成功都是这个文件问题)
在里面添加或者修改一句就好了.
R1 IPaddr::192.168.0.222/24/eth0 Filesystem::192.168.0.121:/home/www::/var/www/html/::nfs httpd
这句话意思是 主服务器的主机名 虚拟服务器的浮动ip地址 存储服务器NFS的源到挂载的目的 启动heartbeat顺便还要启动的服务。

4
Vi /usr/local/etc/ha.d/authkeys
修改auth 1
#1 crc
1 sha1 HI! (sha加密方式最好,如果直接使用交叉线连接心跳的话建议用crc)
#3 md5 Hello!
最后要更改文件的权限
chmod 600 /etc/ha.d/authkeys

5
上面就是R1的设置。R2的设置和R1差不多。唯一区别就是R2的ha.cf文件中:
ucast eth1 10.0.0.100 这个需要写R1的。
其余的两个文件内容都一致。

6
接下来就是存储NFS服务器的设置了!先说题外话,存储服务器能用到的很多。例如NAS,RAID5/10,SAN,NFS,磁盘柜等等。建议如果要使用的话可以去选择NAS,而且目前linux有开源的nas软件,freenas,可以在www.freenas.cn下载到。官网不知道怎么了打不开了。这个软件我回头就去测试。Ok,先说NFS。
安装nfs软件。
我想把nfs服务器的/home/www/这个目录挂载到R1和R2的/var/www/html下所以
Vi /etc/exports
添加/home/www/ 192.168.0.*(rw)
然后启动nfs服务,和portmap服务。
然后再R1和R2上面测试是不是可以手动挂载过来。
在R1和 R2上输入:
Mount –t nfs 192.168.0.121:/home/www /var/www/html
然后登陆进去,里面创建文件测试。
注意如果出错,注意关掉防火墙或者允许111端口。注意给/home/www的777权限。如果关于nfs还有什么问题的话,建议去查看
http://www.chinaitlab.com/www/special/linux14.asp#(鸟哥的关于nfs设置,大概看下就知道了)

8
ok。为了测试效果。我在192.168.0.121共享服务器的/home/www/下编辑index.html,里面写:ok this is test page!if you see this!!!!congratulation.
然后别忘记在R1和R2服务器上卸载掉挂载的目录,还有停止httpd服务。我们让heartbeat自动启动带起来。

9
好了,然后准备好一切。在r1和r2上开启heartbeat服务把。别忘记防火墙释放相应端口。
然后我们察看/var/log/ha.log
只要不出错。观察里面的信息变化。顺便ping 192.168.0.222(虚拟ip),只要能通。Ok,就去网站访问192.168.0.222。是不是出现了我们刚才的那句话:ok this is test page!if you see this!!!!congratulation.。要使没有出现,在R1或者R2上用df –h查看是不是目录被挂载过来。在看看是不是httpd服务启动起来。只能是一个httpd服务启动。

ps:有些朋友为了更加安全期间,可以将nas服务器配置成内网卡ip,去测试

你可能感兴趣的:(linux,网络,运维)