TFS配置ha及failover测试

在配置完多台dataserver之后,就需要考虑到nameserver的单点故障问题。本文将介绍如何针对tfs的nameserver实现ha,官方推荐采用heartbeat实现,但heartbeat的实现配置同keepalive相比,复杂了许多,因而这里我们采用keepalive来实现namserver的ha和failover。

环境介绍:

NS服务器1  ——>  192.168.1.225

NS服务器2  ——>  192.168.1.226

NS VIP        ——>  192.168.1.229

Data server服务器1 ——>  192.168.1.227

Data server服务器2 ——>  192.168.1.228

Nginx server ——>  192.168.1.12

在开始之前,先关闭tfs的所有的name server和data server

# /usr/local/tfs/scripts/tfs  stop_ns
 nameserver exit SUCCESSFULLY 
 
# /usr/local/tfs/scripts/tfs stop_ds 1-3
 dataserver 1 exit SUCCESSFULLY 
 dataserver 2 exit SUCCESSFULLY 
 dataserver 3 exit SUCCESSFULLY

一:配置tfs name server

225服务器:
# grep -v ‘^#‘ /usr/local/tfs/conf/ns.conf  |grep -v ‘^$‘
[public]
log_size=1073741824
log_num = 16 
log_level=info
task_max_queue_size = 10240
port = 8108
work_dir=/usr/local/tfs
dev_name= eth0
thread_count = 4
ip_addr = 192.168.1.229  //229地址为vip
[nameserver]
safe_mode_time = 300 
ip_addr_list = 192.168.1.225|192.168.1.226
group_mask = 255.255.255.255
block_max_size = 83886080 
max_replication = 2
min_replication = 2 
use_capacity_ratio = 98
block_max_use_ratio = 98
heart_interval = 2
object_dead_max_time = 3600
cluster_id = 1
replicate_ratio_ = 50
max_write_filecount = 16
heart_thread_count = 2 
heart_max_queue_size = 10
repl_max_time = 60
compact_delete_ratio =  15  
compact_max_load = 200
object_dead_max_time = 86400
object_clear_max_time = 300
max_wait_write_lease = 15
lease_expired_time = 3
max_lease_timeout = 3000
cleanup_lease_threshold = 102400
build_plan_interval = 10
run_plan_expire_interval = 120
build_plan_ratio = 25
dump_stat_info_interval = 60000000 
build_plan_default_wait_time = 2 
balance_max_diff_block_num = 5
add_primary_block_count = 3
block_chunk_num = 32
task_percent_sec_size = 200 
task_max_queue_size = 10000
oplog_sync_max_slots_num = 1024
oplog_sync_thread_num = 1
 
# cd /usr/local/
# tar -zcvpf tfs.tgz tfs/
# scp tfs.tgz  192.168.1.226:/usr/local/
 
226服务器:
# cd /usr/local/
# tar -zxvpf tfs.tgz

二:配置ha

225服务器
# cd /usr/local/src/
# wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
# tar -zxvpf keepalived-1.2.13.tar.gz 
# cd keepalived-1.2.13
# ./configure --prefix=/usr/local/keepalived
# make && make install
 
# cat  /usr/local/keepalived/etc/keepalived/keepalived.conf 
global_defs { 
router_id tfs_ns 
}
 
vrrp_script chk_nameserver { 
script "killall -0 nameserver" 
interval 2 
weight 2 
}
 
vrrp_instance VI_1 { 
state MASTER 
interface eth0 
virtual_router_id 23 
priority 101 
advert_int 1 
 
authentication {
auth_type PASS
auth_pass password_123
}
 
virtual_ipaddress { 
192.168.1.229/24 brd 192.168.255.255 dev eth0 label eth0:0
}
 
track_interface { 
eth1
}
  
 
track_script { 
chk_nameserver
}
 
}
 
# cd /usr/local/
# tar -zcvpf keepalived.tgz keepalived/
# scp keepalived.tgz 192.168.1.226:/usr/local/
 
226服务器:
# cd /usr/local/
# tar -zxvpf keepalived.tgz 
# tar -zxvpf tfs.tgz 
# cat /usr/local/keepalived/etc/keepalived/keepalived.conf 
global_defs { 
router_id tfs_ns 
}
 
vrrp_script chk_nameserver { 
script "killall -0 nameserver" 
interval 2 
weight 2 
}
 
vrrp_instance VI_1 { 
state MASTER 
interface eth0 
virtual_router_id 23 
priority 100 
advert_int 1 
 
authentication {
auth_type PASS
auth_pass password_123
}
 
virtual_ipaddress { 
192.168.1.229/24 brd 192.168.255.255 dev eth0 label eth0:0
}
 
track_interface { 
eth1
}
  
 
track_script { 
chk_nameserver
}
 
}

三:修改data server 配置

# grep -2 ‘vip‘ /usr/local/tfs/conf/ds.conf  //两台data server做同样的修改操作
[dataserver]
#nameserver ip addr(vip)
ip_addr = 192.168.1.229

四:启动服务

# /usr/local/tfs/scripts/tfs start_ds 1-3    //227,228服务器上分别执行
# /usr/local/tfs/scripts/tfs start_ns       //225,226服务器上分别执行
# /usr/local/keepalived/sbin/keepalived  -f  /usr/local/keepalived/etc/keepalived/keepalived.conf   //225,226服务器上分别执行
 
225服务器将成为主节点,并注册vip
# ip a

# tail -f /var/log/messages

226服务器将成为备份节点
# tail -f /var/log/messages

五:读写测试

# /usr/local/tfs/bin/ssm -s 192.168.1.229:8108 -i show machine

# /usr/local/tfs/bin/tfstool -s 192.168.1.229:8108
TFS> put /var/log/messages

Nginx配置文件要稍作修改,指向VIP
# grep ‘8108‘ /usr/local/nginx/conf/nginx.conf
        server 192.168.1.229:8108;
# service nginx restart
 
http://192.168.1.12:7500/v1/tfs/T1bRxTByJT1RCvBVdK

六:failover测试

225上手动关闭name server服务
# sh /usr/local/tfs/scripts/tfs  stop_ns
 nameserver exit SUCCESSFULLY 
# tail -f /var/log/messages

观察226服务器的日志,自动提升为master
# tail -f /var/log/messages

重新上传,读取测试
# /usr/local/tfs/bin/tfstool -s 192.168.1.229:8108
TFS> put /etc/group

http://192.168.1.12:7500/v1/tfs/T1TRxTByZT1RCvBVdK

重新启动225上的name server服务,观察225,226的日志输出
# sh /usr/local/tfs/scripts/tfs  start_ns
# tail -f /var/log/messages

# tail -f /var/log/messages

时间: 2024-11-09 00:33:48

TFS配置ha及failover测试的相关文章

F5负载均衡器配置HA

一.配置A和B上面的IP 1.Main>>Network>>Self IPs 在里面配置internal.External.Sync等信息 lb1.silence.com上的信息,其中在配置IP的时候,一定要将Port Lockdown设置为 allow all或者allow default,不然通信可以会有问题. 配置INternal口 配置External口 配置Sync口 2.lb2.silence.com上面的网络配置 二.配置HA 选择Main>>Device

利用QJM实现HDFS自动主从切换(HA Automatic Failover)源码详析

最近研究了下NameNode HA Automatic Failover方面的东西,当Active NN因为异常或其他原因不能正常提供服务时,处于Standby状态的NN就可以自动切换为Active状态,从而到达真正的高可用 NN HA Automatic Failover架构图 为了实现自动切换,需要依赖ZooKeeper和ZKFC组件,ZooKeeper主要用来记录NN的相关状态信息,zkfc组件以单独的JVM进程的形式运行在NN所在的节点上.下面首先分析下NN的启动流程,NN对象在实例化过

Mahout学习之Mahout简介、安装、配置、入门程序测试

一.Mahout简介 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个Mahout) 步入正文啦: Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的

API接口开发 配置、实现、测试

Yii2 基于RESTful架构的 advanced版API接口开发 配置.实现.测试 环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_rewrite.so 将其前面的#去掉,如果没有找到则添加进去. 找到一下代码 <Directory "C:/phpStudy/Apache/cgi-bin"> AllowOverride

Maven配置插件跳过测试代码的编译和运行

Maven配置插件跳过测试代码的编译和运行: <!-- 编译插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</targe

双apache + php + nfs + mariadb 配置 以discuz做测试

实验目标: 1,两台前端apache和php都挂载nfs文件系统中的php程序. 2,mysql 为单独一台服务器,为php页面程序提供数据库存储 3,静态页面文件都放在nfs服务器上 4,需要dns轮循为两台前端服务器分配访问请求 缺点: 压力都在文件存储服务器上 优点:不用考虑两台web服务器静态页面一致性的问题. 操作大体步骤: 1,两台web服务器:挂载nfs.编译安装apache,添加支持fcgi协议的模块,把php请求都代理到php服务器,站点根目录为挂载的文件.根据实际情况调整进程

Hibernate项目里配置环境时,jar包配置不当会对测试结果产生影响。

问题情况: 如下图所示,该图中,显示了一堆错误的jar包.这是导致了Junit4测试通过了,数据库却没反应的原因. 原因: 之所以出现这种情况,eclipse其实已经告诉了我们原因.如下图所示,这些jar包的入口消失了.换句话说就是项目无法使用这些jar包. 解决方法:把这些JAR包全部删掉,因为项目里已经有了所有的jar包.上面这些纯属多余,而且由于它们的存在,导致真正有用的JAR包不能本使用. 结果:新的数据录入了数据库. http://www.bycoder.cn/t/hibernate/

Wordpress3.9开启多站点配置配置nginx进行局域网测试.

因为需要帮staff迁移一些数据, 所以想到了使用wordpress的多站点. 这个功能在wordpress3.0后就有了. 软件系统等信息:  OS: linux debian wheezy php:5.4.4-14 mysql:5.5.37 server:nginx1.2.1 /apache 2.2.2 首先下载wordpress3.9, 安装的时候, 需要注意一下 我的www目录是/home/www, 所在把wordpress的路径是 /home/www/wordpress 我的nginx

ANT的配置与安装与测试

要用lingpipe,官方推荐使用ANT,于是学了一下,配置比较简单,但是也总结一下,网上大部分都是错的. 下载 官网:http://ant.apache.org/ 将下载到的压缩包解压到安装目录即可. 我的是 apache-ant-1.9.4. 配置 Ant的配置非常简单,只需要将ant的安装目录添加到系统还击变量中即可. 计算机--属性--高级系统设置--环境变量,在系统变量中新建ANT_HOME,输入ANT的安装目录,比如:E:\apache-ant-1.9.4\bin 在path目录中,