[关闭]
@zhanjindong 2014-03-21T11:07:09.000000Z 字数 1452 阅读 4041

Linux-HA实战(2)— TFS Nameserver HA之虚拟IP

对TFS的Nameserver做机器级别的HA通过虚拟IP机制就可以了,只需要一个Heartbeat就可以搞定,下面简单说下步骤。

操作系统CentOS 6.4 x86_64

Heartbeat:

  1. [root@jdzhan1 ha.d]# rpm -q heartbeat
  2. heartbeat-3.0.4-2.el6.x86_64

Step0: 安装Heartbeat
yum安装和源码安装都可以,参看上一篇博客。


Step1:Heartbeat配置虚拟IP

1.修改Heartbeat的ha.cf

主要配置:

  1. # 不采用2.x style的CRM,即Pacemaker
  2. crm off

2.主备节点都如下修改haresources

  1. # vi /etc/ha.d/haresources

添加如下内容:

  1. # jdzhan1为节点名,IPaddr为Heartbeat自带的一个脚本,192.168.129.100/24为需要设置的虚拟IP
  2. jdzhan1 IPaddr::192.168.100/24/eth0:0/

注意:主备节点的haresources要完全一样。

3.启动Heartbeat

  1. # service heartbeat start

没问题的话这时候192.168.129.100就能ping通了,虚拟IP已经设置好了,输入ifconfig查看下:
此处输入图片的描述


Step2:设置ns.conf和ds.conf
Nameserver的配置文件主要修改:

  1. #listen port 端口
  2. port = 8100
  3. #work directoy tfs的安装路径
  4. work_dir=/home/tfs
  5. #device name 绑定的网卡一般是ifconfig显示的第一个
  6. dev_name= eth0
  7. #ip addr(vip) 虚拟IP
  8. ip_addr = 192.168.129.100
  9. [nameserver]
  10. # 主备nameserver的IP
  11. ip_addr_list = 192.168.129.129|192.168.129.130
  12. group_mask = 255.255.255.255

Dataserver的配置文件主要修改:

  1. [nameserver]
  2. #ip addr(vip) 虚拟IP
  3. ip_addr = 192.168.129.100
  4. # 主备nameserver的IP
  5. ip_addr_list = 192.168.129.129|192.168.129.130
  6. group_mask = 255.255.255.255

Step3:启动tfs

  1. # ./scripts/tfs start_ns
  2. # ./scripts/tfs start_ds 1-2

Step4:测试

关闭一台Nameserver所在的机器。通过查看日志可以发现Heartbeat已经发现另一个节点挂掉了。

  1. # tail –f /var/log/messages

此处输入图片的描述

ifconfig下,虚拟IP已经切换过来了:

此处输入图片的描述

这时一个Nameserver节点宕机,整个集群仍然可用。

按照上面的配置只能实现节点级别的HA,当虚拟IP所在节点上的Nameserver进程直接挂掉了,并不能实现故障转移,另外当宕掉的机器重启后也不能重启Nameserver进程。

需要实现资源级别的HA,则需要用到CRM(Cluster Resource Manager),最有名的就是Pacemaker。

基于Pacemaker做资源级别的Nameserver HA可以参考官方文档或者这篇博客。配置起来比较复杂,主要是对Pacemaker的cib.xml配置。

Markdown格式阅读

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注