废话不多说,今天要搭建个高可用文件服务器。
首先我们来规划一下环境:
现在有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 #采用网卡eth0的udp单播来组织心跳,后面跟的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上挂载即可.