废话不多说,今天要搭建个高可用文件服务器。

   首先我们来规划一下环境:

   现在有2台服务器,修改他们的hostname,分别是node1,和node2,这里我们定义node1为主节点,分别分配两个相同大小的磁盘做drbd,drbd的做法我前面已经写过了,请参考:http://xiaolangit.blog.51cto.com/3343422/1198066,这里我就不再做过多说明了。

   两个机器对外的VIP地址是192.168.1.8,也就是对外提供服务的地址。(其实就是在服务上绑定个eth0:0虚拟地址)

   ntp同步分别在两台服务器上敲如下命令:

   ntpdate ntp.api.bz

   修改两台服务器/etc/hosts内容如下:

   192.168.1.50 node1

   192.168.1.51 node2

   其他的selinux,iptables.如果不会用的就关掉吧.配置如下:

   机器名        eth0          eth1(心跳线)       vipip

   node1       192.168.1.50     10.1.1.1         192.168.1.8

   node2       192.168.1.51     10.1.1.2         192.168.1.8

1.drbd配置好之后,我们分别在node1,node2创建目录:

[root@node1~]# mkdir /nfs_file
[root@node2~]# mkdir /nfs_file

2.修改nfs配置文件(node1和node2同):

vim /etc/exports
/nfs_file     192.168.1.0/255.255.255.0(rw,sync,no_root_squash)
service nfs restart

3.启动node1,node2上的drbd,并设置开机自启动。

service drbd start
chkconfig drbd on

4.下面开始配置heartbeat,需要的软件包如下,使用yum在node1,node2上安装:

cluster-glue-1.0.5-6.el6.x86_64

cluster-glue-libs-1.0.5-6.el6.x86_64

heartbeat-3.0.4-1.el6.x86_64

heartbeat-libs-3.0.4-1.el6.x86_64

perl-TimeDate-1.16-11.1.el6.noarch

resource-agents-3.9.2-21.el6.x86_6

[root@node1~]#yum install * -y
[root@node2~]#yum install * -y

5.拷贝配置文件到/etc/ha.d/下

cp /usr/share/doc/heartbeat-3.0.4/ha.cf /etc/ha.d/ha.cf
cp /usr/share/doc/heartbeat-3.0.4/authkeys /etc/ha.d/authkeys
cp /usr/share/doc/heartbeat-3.0.4/haresources /etc/ha.d/haresources

6.配置node1,node2上的文件,这里建议配置好node1后直接scp复制到node2上。

/etc/ha.d/ha.cf配置如下(把#号打开即可):

logfile /var/log/ha-log   #指名heartbeat的日志存放位置。

logfacility local0

keepalive 2               #指定心跳间隔时间为2秒(即每两秒钟在eth1上发送一次广播)。

deadtime 30               #指定备用节点在30秒内没有收到主节点的心跳信号后,则立即接管主节点的服务资源。

ucast eth1 10.1.1.2       #采用网卡eth0udp单播来组织心跳,后面跟的IP地址应为双机对方的IP地址

auto_failback off         #用来定义当主节点恢复后,是否将服务自动切回,heartbeat的两台主机分别为主节点和备份节点。主节  点  在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给备份节点并由备份节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代备份节点,如果该选项设置为off,那么当主节点恢复后,将变为备份节点,而原来的备份节点成为主节点。

node     node1             #指定节点

node     node2

ping 192.168.1.1          #指定ping 地址一般为网关

7.配置集群资源文件:

到最后一行打开注释:

vim /etc/ha.d/haresources
node1 IPaddr::192.168.1.8/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/nfs_file::ext4
scp /etc/ha.d/haresources node2:/etc/ha.d/

8.编辑验证文件

vim /etc/ha.d/authkeys
auth1
1src
scp /etc/ha.d/authkeys node2:/etc/ha.d/

9.重启即可

[root@node1~]# service heartbeat start
[root@node2~]# service heartbeat start

10.最后验证是否成功:

只需要重启node1,在node2上查看df -h node1上挂载的nfs_file有没转移到node2上挂载即可.