Centos搭建 TFS Nameserver HA

背景

tfs要求用gcc 4.1.2编译,两种方案1
是用centos5(自带gcc 4.1.2),  2
使用centos6
把gcc降到4.1.2。我使用的是第一个方法成功运行tfs,当做HA的时候问题来了,官方要求是用heartbeat
3.x,centos5是2.x。开始选择在centos5下编译heartbeat
3成功,但还需要编译pacemaker,编译的时候遇到些问题,可能是版本匹配,依赖不全等,就算编译通过考虑后续还需要编译XXX岂不浪费时间,毕竟centos5已经很老了。

于是决定把centos5编译的tfs放到centos6里成功运行,在centos6里搭建HA。

这种方式存在问题是在centos6的tfs部分运维命令不好用,无法加载xxx依赖库。解决方法是使用centos5中的运维命令即可。(从长远看还是把centos6
gcc降到4.1.2,有空再说吧)

好了言归正传。

系统环境

nameserver1  master 192.168.6.129eth0

nameserver2  slave 192.168.6.128 eth0

vip192.168.6.100
(vip eth0:0)

(开启方貌似不用手动执行 ifconfig eth0:0 192.168.6.100 netmask 255.255.255.0 up)

系统都是vmware安装的centos6.6.。

首先安装包

yuminstall heartbeat

还需要安装pacemaker这里需注意不要用yum安装,因为安装的pacemaker是1.1.12版本,pacemaker在1.1.8版本之后把crm分离出去了,所以下载了pacemaker-1.1.7版本编译安装(http://down1.chinaunix.net/distfiles/pacemaker-1.1.7.tar.gz)

编译前先安装依赖

yum install perl-TimeDate OpenIPMI-libs lm_sensors libxslt libibverbs librdmacm pkgconfig libtool intltool gettext-devel glib2-devel python-devel libxml2-devel pam-devel ncurses-devel pygtk2  libtool-ltdl libqb clusterlib libtool-ltdl-devel swig gnutls-devel resource-agents clusterlib cluster-glue-libs-devel heartbeat-devel

(注意使用了epel源。)

#tar –vxf pacemaker-1.1.7.tar.gz

#cd ClusterLabs-pacemaker-b5b0a7b

#./ autogen.sh

#./ configure

#make && make install

以上两台主机都要装。

配置namesever

两台主机的namesever的ns.conf

[public]

#vip

ip_addr = 192.168.6.100

#监听端口

port =8108

[nameserver]

ip_addr_list = 192.168.6.129|192.168.6.128

上面几项在两台主机写法一样,其他项都不变,只关注这些就行。

配置hearbeat

假设两台主机名称为

192.168.6.129 test1

192.168.6.128 test2

(test1,test2修改成你的主机名,在test1上直接执行ping test2
能通表示正确,修改主机名参照http://blog.csdn.net/l241002209/article/details/42269435)

然后在test1上执行

#cd $TBLIB_ROOT/scripts/ha/

#vi ha.cf

debugfile /var/log/ha-debug

debug 1

keepalive 2

warntime 5

deadtime 10

initdead 30

auto_failback off

autojoin none

ucast eth0 192.168.6.128   <--注意这里是对端的地址

udpport 694

node tes1

node test2

compression bz2

logfile /var/log/ha-log

logfacility     local0

crm respawn

(修改完成保存退出:wq)

#./deploy

#./nsdep

然后在test2上执行

#cd $TBLIB_ROOT/scripts/ha/

#vi ha.cf

debugfile /var/log/ha-debug

debug 1

keepalive 2

warntime 5

deadtime 10

initdead 30

auto_failback off

autojoin none

ucast eth0 192.168.6.129   <--注意这里是对端的地址

udpport 694

node tes1

node test2

compression bz2

logfile /var/log/ha-log

logfacility     local0

crm respawn

(修改完成保存退出:wq)

#./deploy

#./nsdep

两台主机的authkeys必须统一

在test1执行

#sudo scp /etc/ha.d/authkeys  [email protected]:/etc/ha.d/

(root用户不加sudo,下面不在赘述)

配置crm

在test1,test2分别执行

#sudo vi /etc/passwd

找到hacluster:x:498:498:heartbeat user:/var/lib/heartbeat/cores/hacluster: /sbin/nologin(基本上在最后一行)

把最后的/sbin/nologin
改成/bin/bash

(修改完成保存退出:wq)

#sudo passwd hacluster

密码自己设,输入两遍。

#su hacluster

输密码

#crm_attribute --type crm_config--attr-name symmetric-cluster --attr-value true

#crm_attribute --type crm_config--attr-name stonith-enabled --attr-value false

#crm_attribute --type rsc_defaults --nameresource-stickiness --update 100

(注意如果提示连不上什么的错误,请先启动heartbeat, #sudo service heartbeat start)

# exit

#vi ns.xml

…………

<instance_attributesid="ip-alias-instance_attributes">

<nvpair id="ip-alias-instance_attributes-ip"name="ip" value="192.168.6.100"/>

<nvpair id="ip-alias-instance_attributes-nic"name="nic" value="eth0:0"/>

</instance_attributes>

<operations>

…………..

<primitive class="ocf"id="tfs-name-server" provider="heartbeat"type="NameServer">

<instance_attributesid="tfs-name-server-instance_attributes">

<nvpair id="tfs-name-server-instance_attributes-basedir"name="basedir" value="这里写tfs的安装路径"/>

<nvpair id="tfs-name-server-instance_attributes-nsip"name="nsip" value="192.168.6.129"/>
(注意tes1写192.168.6.129,test2写192.168.6.128,其他标红的地方也要根据主机实际情况写。作者其他都是相同的)

<nvpair id="tfs-name-server-instance_attributes-nsport"name="nsport" value="8108"/>

<nvpair id="tfs-name-server-instance_attributes-user"name="user" value="启动tfs的用户名"/>

</instance_attributes>

………………

(修改完成保存退出:wq)

#sudo cp ns.xml /var/lib/heartbeat/crm/

#sudo chown hacluster:haclient/var/lib/heartbeat/crm/ns.xml

#su hacluster

#cibadmin --replace --obj_type=resources--xml-file /var/lib/heartbeat/crm/ns.xml

#exit

#sudo service heartbeat start   (注意之前启动过了就是restart)

验证HA

启动后需等待片刻或

# sudo tail -f /var/log/ha-log (实时查看,不想看了ctrl+c)

在test1,test2分别执行netstat –lntp

会发现只有一台主机有nameserver进程

在有此进程的主机上执行(换成你的进程号)

#sudo kill 49148

然后去另一台主机上执行(可能需要等几秒)

#netstat –lntp

会发现nameserver启动了。

说明当有一台主机的nameserver暴走,HA的另一台主机会启动nameserver来保证tfs正常运作。

时间: 2024-10-27 12:21:42

Centos搭建 TFS Nameserver HA的相关文章

TFS NameServer的高可用性(HA)

在集群中,部署主辅NameServer,即Master和Slave.当主NameServer(Master)出现故障时,例如,NameServer Master所在的物理服务器宕机,利用vip切换至辅NameServer(Slave)以继续对外提供服务.除了NameServer所在的服务器硬件宕机,当NameServer服务异常时,VIP也需要自动切换至Slave. 自动切换机制采用HeartBeat + Pacemaker的方式. 以下部署步骤的操作系统环境为: CentOS release

在CentOS搭建Git服务器 转

在CentOS搭建Git服务器 来自 :http://www.jianshu.com/p/69ea5ded3ede 前言 我们可以GitHub发布一些开源代码的公共仓库,但对于私密仓库就需要收费了.公司内部通常会搭建自己的Git服务器,我也通过在自己的服务器上搭建练习一下. 开始前先说一下服务器信息,这里是阿里云的CentOS 6.5 64位操作系统. 一 确认服务器是否安装Git [[email protected] git]# rpm -qa gitgit-1.7.1-3.el6_4.1.x

Linux CentOS搭建JDK+Mysql+Tomcat+Nginx负载均衡环境 &nbsp; &nbsp; &nbsp;

本文使用了Tomcat+Nginx环境,主要起到负载均衡的作用,使用Tomcat处理jsp后台程序,使用Nginx处理静态页面. 准备工作(下载软件版本,请自行百度下载) 安装包放至:/usr/local/src 安装地址:/usr/local/软件名 1.apache-tomcat-6.0.48 2.mysql-5.5.54 3.nginx-1.6.3 4.cmake-2.8.8 5.pcre-8.40 6.jdk-8u11-linux-x64 7.openssl-1.1.0d(https使用

centos搭建samba服务器

centos搭建samba服务器 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分

centos 搭建 git 服务端和客户端

centos 搭建git需要设置远程服务端和客户端.远程代码存放在服务端,多个客户端可以共享和维护服务端代码. 一.服务端主机 1.创建ssh,大部分默认已经安装,有ssh就跳过 yum install openssh-server -y 2. 安装git yum -y install git-core 3.1 创建git用户 useradd git 3.2 设置密码 passwd git 4. git用户登录 su git 5. 初始化服务器端仓库 cd /home/gitgit init -

CentOS搭建FTP

Centos搭建FTP,yum 傻瓜式搭建,犹如喝水那么简单,按照这方法还不能搭建出来,证明你不是这块料. 1,         安装:vsftpd,可以通过光盘或网络安装 光盘安装:挂载ios镜像,mount /dev/cdrom /mnt 进入cd /mnt目录,找到vsftpd安装包即可 在线安装:yum install vsftpd –y 完成后就可以使用ftp 默认安装路径是在/var/ftp/pub. 2,         拷贝光盘镜像 首先把光盘的ios中Packages目录里面的

Linux(CentOS)搭建SVN服务器全攻略

虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装#yum install subversion 1)创建svn用户#groupadd svn#useradd -g sky user//是将user加入到sky組內切换用户#su svn以后代码库的创建维护等,都用这个帐户来操作. 2)创建版本库编辑.bash_profile 加上如下配置SVN_HOME=

CentOS搭建LAMP环境

最近准备安装roundcube,需要先搭建一个 LAMP 运行环境,从网上搜索了一下,有不少资料.自己也按部就班安装了一遍,把过程整理了下来.     LAMP 是Linux, Apache, MySQL, PHP 的首字母缩写,也就是在一台 CentOS5.3 服务器上安装带有PHP5 和 Mysql 支持 Apache 的网站服务器.         1. 假设你已经有一台安装了 Linux 系统的服务器,系统可以使 CentOS5.3 ,也可以是 Ubuntu 9.04 .这次是用 Cen

centos搭建samba服务

环境: CentOS release 6.8 (Final) Microsoft Windows XP [版本 5.1.2600] 一.windows为服务器端,Centos为客户机挂载samba服务 1.共享samba文件夹 2.本地测试共享是否开启 3.Centos安装客户端所需的软件 yum list | grep samba | wc -l #查看yum源有关samba关键字的安装包数量 yum install samba-client samba-common samba-winbin