Tair 搭建

Tair 是阿里巴巴开源的,可提供快速访问的内存(MDB引擎)/持久化(LDB引擎)存储服务,基于高性能、高可用的分布式集群架构,满足读写性能要求高及容量可弹性伸缩的业务需求。

近期需要研究一下该中间件,搭建了一下单机环境,整体流程如下。

搭建所需服务器环境:

  • Centos6 环境的Linux服务器
  • tbsys & tbnet
  • git & svn
  • yum
  • tair master

第一步: 前期环境准备

yum install boost  
yum install boost-devel  
yum install boost-doc
yum install automake 
yun install autoconfig 
yun install libtool
yum install zlib-devel
yum install gcc gcc++ 
yum install gcc gcc-c++ gcc-g77 
yum install openssl-devel libcurl-devel
yum install subversion
yum install git

第二步: 安装 tbsys & tbnet
由于tair的实现用到了底层库 tbsys 和 tbnet,因此在安装tair之前需要先安装依赖库 tbsys 和 tbnet。

网上教程是从淘宝的SVN中checkout代码,但我无法成功下载SVN代码,所以转而从git下载。

svn checkout http://code.taobao.org/svn/tb-common-utils/trunk/tb-common-utils  // 无效
git clone https://github.com/raywill/tb-common-utils  // 可下载

设置环境变量 TBLIB_ROOT
取得源代码后, 先指定环境变量 TBLIB_ROOT 为需要安装的目录. 这个环境变量在后续 tair 的编译安装中仍旧会被使用到.

vi /etc/profile
export TBLIB_ROOT=your path

# 使修改的环境变量生效
source /etc/profile

设置 头文件路径
因为tbnet和tbsys在两个不同的目录,但它们的源码文件里头文件的互相引用却没有加绝对或相对路径,将两个目录的源码加入到C++环境变量中即可。

vi /etc/profile
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/home/tair/tair/tb-common-utils/tbsys/src:/home/tair/tair/tb-common-utils/tbnet/src
export CPLUS_INCLUDE_PATH

# 使修改的环境变量生效
source /etc/profile

其中 tbsys 和 tbnet 的地址是上面下载代码的地址,请根据实际情况配置

之后进行安装,进入源代码目录,执行 build.sh 进行安装。

第三步: 下载tair代码,并编译

# 从git下载代码
git clone https://github.com/alibaba/tair.git

# 编译依赖
./bootstrap.sh

# 检测和生成 Makefile (默认安装位置是 ~/tair_bin, 修改使用 --prefix=目标目录)
./configure

# 编译和安装到目标目录
make
make install

注意: 在官方文档中,使用的是 make -j && make install,但我试验过,这样安装会报错,分开则没问题。
此外,在执行 ./bootstrap.sh ./configure 中如果有error异常,请把第一步中所有yum install 都执行一遍。
make 完成后,会在home目录下有一个 tair_bin的目录生成,则表示安装完成。

第四步:Tair 最小化配置方法

下面以MDB引擎为例配置一个最小化的Tair集群(1 * ConfigServer + 1 * DataServer)
MDB 引擎默认使用共享内存,所以需要查看并设置系统的tmpfs的大小:

# 这里根据实际机器内存情况配置,必须大于Tair使用内存的配置
cat /etc/fstab | grep /dev/shm

上述命令如果没有结果,则需要设置 /dev/shm

vi /etc/fstab
添加下面一行到 fstab文件中
tmpfs      /dev/shm      tmpfs   rw,size=1G      0 0
执行 mount -o remount /dev/shm

如果执行下面的命令出现如下结果,表示修改完成

df -h | grep /dev/shm
tmpfs           1.0G     0  1.0G    0% /dev/shm

tair 的包中有一个 set_shm.sh, 按照官方文档的说法,也是可以设置的,但我试过,没有成功。

修改 如下三份配置文件

cp etc/configserver.conf.default etc/configserver.conf
cp etc/group.conf.default etc/group.conf
cp etc/dataserver.conf.default etc/dataserver.conf

修改里面的内容

configserver.conf

[public]
config_server=ip:5198
group.conf

[group_test]

 # data center A

_server_list=ip:5191

dataserver.conf

 [public]
config_server=ip:5198

 [tairserver]
mdb_inst_shift=0
process_thread_num=4
io_thread_num=4
slab_mem_size=512

注意在CentOS 7下,安装目录下的 tair.sh 启动脚本有一行代码需要修改, diff如下

--- a/tair.sh
+++ b/tair.sh
@@ -52,7 +52,7 @@ check_shm_size()
   if [ $engine == "mdb" ]
   then
     safety_free_size=500;
-    tmpfs_size=`df -m |grep tmpfs | awk '{print $2}'`
+    tmpfs_size=`df -m |grep /dev/shm | awk '{print $2}'`
     let "safety_size = $tmpfs_size - $safety_free_size"
     slab_mem_size=`grep slab_mem_size $1 | grep -v "#" | awk -F '[ =]' '{print $NF}'`

执行如下命令,开始启动

./tair.sh start_ds // 启动数据节点
./tair.sh start_cs // 启动config节点

注意,我用默认的 tair.sh 启动时,会出现 数据节点无法启动,conifg节点启动的情况
在将 tair.sh 中的相对路径改为绝对路径,在清空core.****, /dump, /data, /logs, /dev/shm 之后,再运行上面的命令,就可以正常启动。

连接tair

./sbin/tairclient -c ip -g group_test

效果如下图所示:
在这里插入图片描述

至此,一个基于单服务器的单配置节点,单数据节点的Tair服务就完成了。

在此感谢 Tair官方文档以及 shewn 的博客的指导

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值