tair介绍:
tair.taobao.org
http://code.taobao.org/p/tair/wiki/index/
tair安装介绍:
http://code.taobao.org/p/tair/wiki/deploy/
一、安装
rpm包安装(不推荐用):
wget http://code.taobao.org/p/tair/file/27/tair-2.3-46.el5.x86_64.rpm
rpm -ivh tair-2.3-46.el5.x86_64.rpm
rpm -ql tair-2.3-46.el5
源码安装:
1】、查看是否含编译环境: automake --version (一般已安装,如果报错,请执行:yum -y install automake autoconf libtool)
2】、编译淘宝底层公共库tbsys和tbnet:
获取包:
svn checkout http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils --底层库tbsys,tbnet
底层公共库建议安装到: /usr/local/tb目录,即定义:export TBLIB_ROOT="/usr/local/tb"
并写入环境配置文件:echo 'export TBLIB_ROOT="/usr/local/tb"' >> /etc/profile
cd tb-common-utils/
chmod 750 build.sh
./build.sh
3】、查看是否含boost-devel库,执行:rpm -q boost-devel (一般已安装,如果报错,请执行:yum install boost-devel)
4】、编译安装tair:
获取包:
cd ../
svn checkout http://code.taobao.org/svn/tair/trunk/ tai
获取指定版本(如,获取525版本):svn checkout -r 525 http://code.taobao.org/svn/tair/trunk/ tai
查看包版本:svn info tai
cd ./tai
./bootstrap.sh
./configure --prefix=/usr/local/tai
make && make install
二、配置tai
配置configserver.conf
cd /usr/local/tair/etc
cp configserver.conf.default configserver.conf
vi configserver.conf
修改:
config_server=103.29.134.164:5198
config_server=103.29.134.163:5198
data_dir=/var/tair_cfsdata
dev_name=bond0 --做了双网卡绑定,网卡名改为:bond0,有些是需要改为eth0/1/2/3的。
生成目录:
mkdir /var/tair_cfsdata
配置group.conf
cp group.conf.default group.conf
vi group.conf
由于只有3台ds,根据实际情况修改如下:
[group_1]
_data_move=1
......
_min_data_server_count=2
_accept_strategy=1 --表示自动进行group.conf的同步分析
......
_copy_count=2
......
# data center A
_server_list=103.29.134.164:5191
_server_list=103.29.134.163:5191
_server_list=103.29.134.162:5191
注释掉data center B。
#quota info
_areaCapacity_list=0,32212254720;
注:设置每个应用的内存限额,主要用于mdb;同时,因为fdb使用mdb作为内部的缓存, 这个值的大小也决定了缓存的效率.
0代表逻辑area为0,每个area对应一个应用程序逻辑,比如微博的msg存储在0,如果多个应用需存储到tair,则可启用1、2、3...n等;32212254720这个值是这个逻辑area占用的总物理内存空间容量,共30G。在这个例子里,因为只有1个area,包含2份数据,3个ds,则,每个ds被划出的物理空间容量为:30G/3=10G;单个ds实际数据量为120G/(3*2)=5G;area总数据量为30G/2=15G。
配置dataserver.conf:
cp dataserver.conf.default dataserver.conf
vi dataserver.conf
修改:
config_server=103.29.134.164:5198
config_server=103.29.134.163:5198
......
storage_engine=mdb或fdb --mdb是内存型k/v库,fdb是持久化k/v库;(tair一般就设置为这两种存储引擎之一,不用kdb)
......
slab_mem_size=10240 --当使用mdb存储引擎时有效,设置每个dataserver可用的内存,默认1G,每台实际的物理内存可能不一样,确保所有ds累加后>=_areaCapacity_list值。这个例子有3个DS,这个值设置为10G。
......
dev_name=bond0 --做了双网卡绑定,网卡名改为:bond0,有些是需要改为eth0/1/2/3的。
......
data_dir=/var/tair_fdb --当使用fdb时有效,设置ds数据的存储路径,存储路径需要安排在一个容量比较大的分区。
生成目录:
mkdir /var/tair_fdb
运行前修改共享内存,dataserver上:
cd /usr/local/tai
vi set_shm.sh
size=36G --根据实际物理内存修改,一般物理内存/2,如:72G内存改为:36G;也可以适当调大;
chmod 750 set_shm.sh
./set_shm.sh
执行后,需要修改共享内存,则:
vi /etc/fstab
修改tmpfs对应的:size=36G
然后,mount -o remount /dev/shm
启动服务:顺序--先在dataserver(三台)启动DS(dataserver),然后是CS(configserver)两台。
chmod 750 /usr/local/tair/tair.sh
/usr/local/tair/tair.sh start_ds
/usr/local/tair/tair.sh start_cs
备注:默认group.conf配置下,当ds后启动或维护时重新接入cs时,需要手工在两个cs上touch group.conf;假如在group.conf设置_accept_strategy=1就没这个问题。
验证是否启动成功:
/usr/local/tair/sbin/tairclient -c 61.135.210.69:5198 -g group_1 -v
测试:
/usr/local/tair/sbin/tairclient -c 103.29.134.164:5198 -g group_1
FAQ:
dataserver里设置为kdb方式的话,DS启动有错误如下:
问题:[2011-11-29 21:06:25] ERROR main (tair_server.cpp:595) [47674159171392] profiler disabled by default, threshold has been set to 10000
暂时没找到解决方法。
另一个问题:http://code.taobao.org/p/tair/issue/513/
通常跟dataserver.conf或group.conf配置文件有关系,如dataserver.conf里devname(网卡)设置错误。
-------------------------------------------------------------------------------
附录:网上参考,tair 的服务器搭建配置
http://hi.baidu.com/tibelf/blog/item/04b6250394a6a1653912bb01.html
tair 是淘宝的一个开源分布式内存数据库,读写性能都很好,基本配置整理如下:
(1)服务器需要配置
/opt/csr/tair/etc/group.conf
/opt/csr/tair/etc/configserver.conf
在configserver.conf文件中注意设置group.conf 的路径
(2)数据服务器需要配置:
/opt/csr/tair/etc/dataserver.conf
(3)设置每个数据库的内存
_areaCapacity_list=0, 85899345920;
_areaCapacity_list=1, 85899345920;
_areaCapacity_list=2, 85899345920;
_areaCapacity_list=3, 85899345920;
_areaCapacity_list=4, 85899345920;
注意:这个地方需要设置每个area的空间大小,是一个集群上的tair数据空间的大小。
(4)设置每台机器可用的内存
slab_mem_size=14336
注意每台机器的内存可能是不一样的。
(5)设置数据服务器的网卡
dev_name=eth0
(6)启动顺序先启动数据服务器,再启动配置服务器
sudo /opt/csr/tair/sbin/tair_server -f /opt/csr/tair/etc/dataserver.conf
sudo /opt/csr/tair/sbin/tair_cfg_svr -f /opt/csr/tair/etc/configserver.conf
验证是否启动成功:
cd /opt/csr/tair/sbin/tairclient;
sudo /opt/csr/tair/sbin/tairclient -c xxxx:port -g group_1 -v