对TFS的Nameserver做机器级别的HA通过虚拟IP机制就可以了,只需要一个`Heartbeat`就可以搞定,下面简单说下步骤。
**操作系统**:`CentOS 6.4 x86_64`
**Heartbeat**:
```
[root@jdzhan1 ha.d]# rpm -q heartbeat
heartbeat-3.0.4-2.el6.x86_64
```
-----
**Step0**: 安装Heartbeat
yum安装和源码安装都可以,参看[上一篇][1]博客。
---
**Step1**:Heartbeat配置虚拟IP
1.修改Heartbeat的`ha.cf`
主要配置:
```
# 不采用2.x style的CRM,即Pacemaker
crm off
```
2.主备节点都如下修改`haresources`
```
# vi /etc/ha.d/haresources
```
添加如下内容:
```
# jdzhan1为节点名,IPaddr为Heartbeat自带的一个脚本,192.168.129.100/24为需要设置的虚拟IP
jdzhan1 IPaddr::192.168.100/24/eth0:0/
```
***注意**:主备节点的`haresources`要完全一样。*
3.启动Heartbeat
```
# service heartbeat start
```
没问题的话这时候192.168.129.100就能ping通了,虚拟IP已经设置好了,输入ifconfig查看下:
![此处输入图片的描述][2]
---
**Step2**:设置ns.conf和ds.conf
`Nameserver`的配置文件主要修改:
```
#listen port 端口
port = 8100
#work directoy tfs的安装路径
work_dir=/home/tfs
#device name 绑定的网卡一般是ifconfig显示的第一个
dev_name= eth0
#ip addr(vip) 虚拟IP
ip_addr = 192.168.129.100
[nameserver]
# 主备nameserver的IP
ip_addr_list = 192.168.129.129|192.168.129.130
group_mask = 255.255.255.255
```
`Dataserver`的配置文件主要修改:
```
[nameserver]
#ip addr(vip) 虚拟IP
ip_addr = 192.168.129.100
# 主备nameserver的IP
ip_addr_list = 192.168.129.129|192.168.129.130
group_mask = 255.255.255.255
```
---
**Step3**:启动`tfs`
```
# ./scripts/tfs start_ns
# ./scripts/tfs start_ds 1-2
```
---
**Step4**:测试
关闭一台`Nameserver`所在的机器。通过查看日志可以发现Heartbeat已经发现另一个节点挂掉了。
```
# tail –f /var/log/messages
```
![此处输入图片的描述][3]
ifconfig下,虚拟IP已经切换过来了:
![此处输入图片的描述][4]
这时一个`Nameserver`节点宕机,整个集群仍然可用。
按照上面的配置只能实现节点级别的HA,当虚拟IP所在节点上的Nameserver进程直接挂掉了,并不能实现故障转移,另外当宕掉的机器重启后也不能重启Nameserver进程。
需要实现资源级别的HA,则需要用到CRM(Cluster Resource Manager),最有名的就是Pacemaker。
基于Pacemaker做资源级别的Nameserver HA可以参考官方文档或者[这篇博客][5]。配置起来比较复杂,主要是对Pacemaker的cib.xml配置。
[Markdown格式阅读][6]
[1]: http://zhanjindong.info/2014/03/10/linux-ha-heartbeat/
[2]: http://zhanjindong.info/wp-content/uploads/2014/03/11.png
[3]: http://zhanjindong.info/wp-content/uploads/2014/03/21.png
[4]: http://zhanjindong.info/wp-content/uploads/2014/03/31.png
[5]: http://blog.yunnotes.net/index.php/tfs_nameserver_haconfig/
[6]: https://www.zybuluo.com/zhanjindong/note/6522
对TFS的Nameserver做机器级别的HA通过虚拟IP机制就可以了,只需要一个Heartbeat
就可以搞定,下面简单说下步骤。
操作系统:CentOS 6.4 x86_64
Heartbeat:
[root@jdzhan1 ha.d]# rpm -q heartbeat
heartbeat-3.0.4-2.el6.x86_64
Step0: 安装Heartbeat yum安装和源码安装都可以,参看上一篇博客。
Step1:Heartbeat配置虚拟IP
1.修改Heartbeat的ha.cf
主要配置:
# 不采用2.x style的CRM,即Pacemaker
crm off
2.主备节点都如下修改haresources
# vi /etc/ha.d/haresources
添加如下内容:
# jdzhan1为节点名,IPaddr为Heartbeat自带的一个脚本,192.168.129.100/24为需要设置的虚拟IP
jdzhan1 IPaddr::192.168.100/24/eth0:0/
注意:主备节点的haresources
要完全一样。
3.启动Heartbeat
# service heartbeat start
没问题的话这时候192.168.129.100就能ping通了,虚拟IP已经设置好了,输入ifconfig查看下:
Step2:设置ns.conf和ds.conf
Nameserver
的配置文件主要修改:
#listen port 端口
port = 8100
#work directoy tfs的安装路径
work_dir=/home/tfs
#device name 绑定的网卡一般是ifconfig显示的第一个
dev_name= eth0
#ip addr(vip) 虚拟IP
ip_addr = 192.168.129.100
[nameserver]
# 主备nameserver的IP
ip_addr_list = 192.168.129.129|192.168.129.130
group_mask = 255.255.255.255
Dataserver
的配置文件主要修改:
[nameserver]
#ip addr(vip) 虚拟IP
ip_addr = 192.168.129.100
# 主备nameserver的IP
ip_addr_list = 192.168.129.129|192.168.129.130
group_mask = 255.255.255.255
Step3:启动tfs
# ./scripts/tfs start_ns
# ./scripts/tfs start_ds 1-2
Step4:测试
关闭一台Nameserver
所在的机器。通过查看日志可以发现Heartbeat已经发现另一个节点挂掉了。
# 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格式阅读
Linux-HA实战(2)— TFS Nameserver HA之虚拟IP,古老的榕树,5-wow.com