centOS下安装tfs基本步骤备份

rpm -i libstdc++-devel-4.4.7-11.el6.x86_64.rpm
rpm -i libstdc++-4.4.7-11.el6.x86_64.rpm
rpm -i gcc-c++-4.4.7-11.el6.x86_64.rpm
rpm -i gcc-4.4.7-11.el6.x86_64.rpm
rpm -i autoconf-2.63-5.1.el6.noarch.rpm
rpm -i automake-1.11.1-4.el6.noarch.rpm
rpm -i libtool-2.2.6-15.5.el6.x86_64.rpm
rpm -i ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
rpm -i readline-6.0-4.el6.x86_64.rpm
rpm -i readline-devel-6.0-4.el6.x86_64.rpm
rpm -i zlib-1.2.3-29.el6.x86_64.rpm
rpm -i zlib-devel-1.2.3-29.el6.x86_64.rpm
rpm -i e2fsprogs-1.41.12-21.el6.x86_64.rpm
rpm -i uuid-1.6.1-10.el6.x86_64.rpm
rpm -i uuid-devel-1.6.1-10.el6.x86_64.rpm

rpm -i libuuid-devel-2.17.2-12.18.el6.x86_64.rpm


TFS使用tb-common-utils软件包,tb-common-utils包含淘宝使用的基础系统库tbsys和网络库tbnet两个组件;安装tb-common-utils前需要设置环境变量TBLIB_ROOT,tbsys和tbnet将会被安装TBLIB_ROOT对应的路径(必须是绝对路径)下,TFS会在这个路径下查找tbsys、tbnet头文件和库。

设置TBLIB_ROOT环境变量
export TBLIB_ROOT=/usr/local/tb/lib

export LD_LIBRARY_PATH=/usr/local/gcc-4.1.2/lib

export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/home/tb-common-utils_18/tbsys/src:/home/tb-common-utils_18/tbnet/src
export echo=echo
在~/.bash_profile文件中加入,export TBLIB_ROOT=/usr/local/tb , 然后执行source ~/.bash_profile
# cd tb-common-utils

#cd tbnet

#./configure

#cd tbsys

#./configure

# sh build.sh

# cd tfs
# sh build.sh init
# ./configure --prefix=/usr/local/tfs --with-release
# make
# make install

报错解决第一步,高版本的gcc4.4.7,tfs一般要用低版本的gcc4.1.2,但是高版本呢的也可以解决报错问题,首先
用# find ./ -name Makefile | xargs sed -i 's/-Werror//'
第二步
# vi ./src/common/session_util.h
第一行添加如下:
 #include <stdint.h>
 第三步
 # vi ./src/name_meta_server/meta_server_service.cpp
1584行修改如下:
char* pos = (char *) strstr(sub_dir, parents_dir);
然后再make make install


一、安装依赖的软件包:
1、automake TFS基于automake工具构建:

yum install automake.noarch

2、libtool automake需要使用libtool:

yum install libtool

3、realine 用于命令行编辑的库:

yum install readline-devel

4、libz-devel 用于数据压缩/解压缩:

yum install zlib-devel

5、uuid-devel 用于生成全局唯一ID:

yum install e2fsprogs-devel
yum install libuuid-devel

6、tcmalloc google的内存管理库(由玩googl被封,那就暂且跳过吧,可选)

二、安装tb-common-utils
TFS使用tb-common-utils软件包,tb-common-utils包含淘宝使用的基础系统库tbsys和网络库tbnet两个组件;安装tb-common-utils前需要设置环境变量TBLIB_ROOT,tbsys和tbnet将会被安装TBLIB_ROOT对应的路径(必须是绝对路径)下,TFS会在这个路径下查找tbsys、tbnet头文件和库。
设置TBLIB_ROOT环境变量:
1、在~/.bash_profile文件中加入,export TBLIB_ROOT=path_to_tbutil , 然后执行source:

~/.bash_profile

vi ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export TBLIB_ROOT=/usr/local/tb-common-utils

# source ~/.bash_profile

2、下载源码:

# svn co -r 18 http://code.taobao.org/svn/tb-common-utils/trunk tb-common-utils

注意: 这里不要checkout最新版本,version18以后的修改导致部分接口不能前向兼容

# cd /usr/local/tb-common-utils/
# sh build.sh

checking for C++ compiler default output file name... 
configure: error: in `/usr/local/tb-common-utils/tbnet':
configure: error: C++ compiler cannot create executables
See `config.log' for more details.
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target `install'.  Stop.

这个错误是因为缺少gcc-c++:

yum install gcc-c++

如果一切顺利,tb-common-utils已经安装成功到$TBLIB_ROOT路径下;

三、安装TFS
TFS开源用户大都只使用TFS的基本功能,所以这个版本我们默认只编译TFS的nameserver,dataserver,client和tool,以去除对mysql的依赖,需要使用到rcserver(全局资源管理服务),metaserver(TFS自定义文件名服务)的用户请自行编译安装这两个服务。
下载源码并安装:

# svn co http://code.taobao.org/svn/tfs/branches/dev_for_outer_users tfs
# cd tfs/
# sh build.sh init
+ aclocal
+ libtoolize --force --copy
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
libtoolize: `AC_PROG_RANLIB' is rendered obsolete by `LT_INIT'
+ autoconf --force
+ automake --foreign --copy --add-missing
configure.ac:16: installing `./config.guess'
configure.ac:16: installing `./config.sub'
configure.ac:8: installing `./install-sh'
configure.ac:8: installing `./missing'
src/adminserver/Makefile.am: installing `./depcomp'
# ./configure --prefix=/usr/local/taobaoFS --with-release

checking for tc_cfree in -ltcmalloc... no
configure: error: in `/usr/local/tfs/tfs':
configure: error: tcmalloc link failed (--without-tcmalloc to disable)
See `config.log' for more details.

注意,这里报错了,是因为之前我们没有安装tcmalloc,所以这里要改一下编译条件:

# ./configure --prefix=/usr/local/taobaoFS --with-release --without-tcmalloc
# make
# make install

–prefix 指定tfs安装路径,默认会被安装到~/tfs_bin目录
–with-release 指定按release版本的参数进行编译,如果不指定这个参数,则会按开发版本比较严格的参数编译,包含-Werror参数,所有的警告都会被当错误,在高版本gcc下会导致项目编译不过,很多开源用户反馈的编译问题都跟这个有关,因为gcc高版本对代码的检查越来越严格,淘宝内部使用的gcc版本是gcc-4.1.2。

四、配置文件:
ns.conf:

# cd /usr/local/taobaoFS/conf/
# cat ns.conf | grep -v ^# | grep -v ^$
[public]
log_size=1073741824
log_num = 8 
log_level=info
task_max_queue_size = 10240
port = 8108
work_dir=/usr/local/taobaoFS
dev_name= eth0
thread_count =32 
ip_addr = 192.168.1.63
[nameserver]
safe_mode_time = 360
ip_addr_list = 192.168.1.63|192.168.0.2
group_mask = 255.255.255.255
max_write_timeout = 3
cluster_id = 1 
block_max_use_ratio = 98
block_max_size = 75497472 
max_replication = 2
min_replication = 2
replicate_ratio = 50
max_write_filecount = 64 
use_capacity_ratio = 96
heart_interval = 4
object_dead_max_time = 300
object_clear_max_time = 180 
heart_thread_count = 4 
heart_max_queue_size = 2048
report_block_thread_count = 6
report_block_max_queue_size = 32
report_block_hour_range = 2~4
report_block_time_interval = 1
repl_wait_time = 180
compact_delete_ratio =  10  
compact_max_load = 200
compact_hour_range = 1~10
dump_stat_info_interval = 60000000 
balance_percent = 0.05
add_primary_block_count = 3
task_percent_sec_size = 200 
oplog_sync_max_slots_num = 1024
oplog_sync_thread_num = 1
group_count = 1
group_seq  = 0
discard_newblk_safe_mode_time = 360 
choose_target_server_random_max_num = 128

ds.conf:

# cat ds.conf | grep -v ^# | grep -v ^$
[public]
log_size=1073741824
log_num = 8
log_level=info
task_max_queue_size = 10240
port = 8200 
work_dir=/usr/local/taobaoFS
dev_name= eth0
thread_count = 32 
ip_addr = 192.168.1.64
[dataserver]
ip_addr = 192.168.1.63
ip_addr_list = 192.168.1.63|192.168.0.2 
port = 8108
heart_interval = 2
check_interval = 2
replicate_threadcount = 2
block_max_size = 75497472
dump_visit_stat_interval = 60
backup_type = 1
mount_name = /data/disk
mount_maxsize = 768959044
base_filesystem_type = 1
superblock_reserve = 0
avg_file_size = 15360
mainblock_size = 75497472 
extblock_size = 4194304
block_ratio = 0.5
has
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值