`

TFS(Taobao File System)安装方法

 
阅读更多
------------------------------------------------------------------------
      TFS(Taobao File System)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器 集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用 在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TFS提供了良好的读写性能。
------------------------------------------------------------------------
      上面说有太美好了,实际使用起来还是挺周折的。TFS有三个主要大版本:1.x,2.0.x,2.2.x,我先后试用了多个版本,认为2.0.4相对来说比较稳定,其它版本(2.2.8,2.2.10)问题很多。这话是2012年11月说的,如果以后TFS的新版本稳定了另当别论。
------------------------------------------------------------------------
TFS文件系统的安装说明   --   注:本文本操作系统是RedHat5.6

---- 第1步 准备工作----
检查服务器是否能正常DNS解析,目的是正常解析域名,可以进行yum更新。
如果你的服务器DNS解析正常,可跳过此步。
CentOS修改DNS方法:(修改后可即时生效,重启后同样有效)
修改对应网卡的DNS的配置文件
# vi /etc/resolv.conf
修改以下内容
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器

---- 第2步 准备工作----
RedHat5.6使用centos yum源
由于RedHat的yum在线更新是收费的,我们的RedHat没有注册,不能在线更新下载rpm包。
需将RedHat的yum卸载后,重启安装Centos的yum,再配置其他yum源。
如果你的服务器yum可正常工作,可跳过此步。

具体操作请看:
RedHat5.6、6.0使用CentOS yum源


---- 第3步 准备工作----
先更新yum
yum update
到这里yum已可以正常工作。后面都需要使用的yum。


---- 第4步 准备工作----
RedHat5.x和Centos 5.x使用gcc版本是4.1.2
RedHat6.x和Centos 6.x使用gcc版本是4.4.6,对编译的语法检查更严格,编译TFS给报错。
淘宝的tfs官网上要求使用gcc版本是4.1.2。
确认gcc版本
gcc -v
结果:以上所有机器返回结果 :gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)

如果你使用RedHat6.x和Centos 6.x,就要重新安装低版本的gcc,g++。

---- 第6步 升级安装高版本mysql----
TFS要求MySql版本>= 5.1.40,不然编译时报错:checking if MySQL version is >= 5.1.40... no
但我的CentOS 5的yum源中最新只有 5.0.95版本,所有使用这个yum源在线安装最高也只能安装5.0.95,换一个yum来解决问题。

1.安装配置yum源
wget http://centos.ustc.edu.cn/epel/5/x86_64/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/remi-release-5-8.el5.remi.noarch.rpm
rpm -ivh *.rpm

2.向以下3个文件尾部追加一个文本(可以不做)
echo 'priority=1' >> /etc/yum.repos.d/remi.repo
echo 'priority=1' >> /etc/yum.repos.d/epel-testing.repo
echo 'priority=1' >> /etc/yum.repos.d/epel.repo

3.检查mysql 是否有可升级版本。发现有版本可以升级到mysql5.5.11。
yum --enablerepo=remi list mysql

4.检查是否有可升级版本。发现有版本可以升级到mysql5.5.11。
yum --enablerepo=remi list mysql

5.删除操作系统自带的低版本的mysql
yum remove mysql

6.通过新yum源安装高版本的mysql
yum -y --enablerepo=remi install mysql mysql-server mysql.x86_64  mysql-devel.x86_64

---- 第6步 安装支持包----
需要确保安装了automake autoconfig 和 libtool,一般情况下已安装。
auotmake 1.4以上版本需要安装libuuid-devel,zlib-devel,mysql-devel三个开发包

验证automake是否安装rpm -qa |grep automake      结果:已安装
验证autoconfig是否安装 /usr/bin/autoconf -V     结果:已安装

查看以安装的rpm包:rpm -qa|grep 包名
rpm -qa|grep libuuid
rpm -qa|grep zlib-devel
rpm -qa|grep mysql-devel

如果你使用RedHat5.x和Centos 5.x会找不到libuuid-devel包,请看下面。
RedHat5.x和Centos 5.x 安装:  yum install uuidd
RedHat6.x和Centos 6.x 安装:  yum install libuuid-devel

 

安装其它支持包: yum install libtool zlib-devel

升级autoconf (不升级也可以)
[root@locatfs local]# whereis autoconf
[root@locatfs local]# rpm -qf /usr/bin/autoconf
[root@locatfs local]# /usr/bin/autoconf -V
[root@locatfs local]# rpm -e --nodeps autoconf-2.59-12
[root@locatfs local]# wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
[root@locatfs local]# tar zxvf autoconf-latest.tar.gz
[root@locatfs local]# cd autoconf-2.69
[root@locatfs local]# ./configure  --prefix=/usr
[root@locatfs local]# make
[root@locatfs local]# make install
[root@locatfs local]# /usr/bin/autoconf -V   #查看是否安装成功

下面的readline包系统自带了,ncurses包系统默认没有,我也没有安装,你安不安自已定吧。
[root@locatfs local]# yum install readline-devel readline
[root@locatfs local]# yum install ncurses-devel.x86_64  ncurses.x86_64


---- 第7步 安装ext4格式----
安装ext4格式工具
[root@locatfs local]# yum install  e4fsprogs e4fsprogs-devel   

加载ext4模块,让系统支持ext4文件系统
[root@locatfs local]#  modprobe ext4

说明:
1、TSF使用ext3文件系统,可以工作。
2、TSF的数据盘,只使用一个文件夹,可以工作,研究时不能分区格盘时可以这么做。

---- 第8步 安装tb-common-utils----
tb-common-utils是淘宝开发使用的一个公共库
tbsys是对操作系统服务的封装,tbnet则提供了网络框架。 tbnet和tbsys被作为tb-common-utils被开源了,可以访问  http://code.taobao.org/trac/tb-common-utils/wiki

TFS依赖于底层开发包tbnet。tb-common-utils里面含有tbsys和tbnet
首先编译安装tblib(tb-common-utils),这里我安装在和tfs同一个路径。
(http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils)

gtest库是单元测试框架,下面安装安装gtest
自行上网下载gtest, (http://code.google.com/p/googletest/downloads/list)
新建一个下载目录,并进入这个目录。
wget http://googletest.googlecode.com/files/gtest-1.6.0.zip
[root@locatfs local]# unzip gtest-1.6.0.zip
[root@locatfs local]# cd gtest-1.6.0
[root@locatfs local]# ./configure
[root@locatfs local]# make
[root@locatfs local]# cd make/
[root@locatfs local]# make
[root@locatfs local]# ./sample1_unittest

安装tb-common-utils
新建一个下载目录,并进入这个目录。下载源码:
[root@locatfs local]# svn checkout http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils

编译和安装tbnet, tbsys库
指定环境变量 TBLIB_ROOT为需要安装的目录。这个环境变量在后续tfs的编译安装中仍旧会被使用到. 比如要安装到当前用户的lib目录下, 则指定 export TBLIB_ROOT="/home/xxxx/lib"
ps:建议将这行命令直接写入~/.bash_profile,然后执行“. ~/.bash_profile”
修改:
[root@locatfs local]# vi /etc/profile
添加:(计划安装在/usr/local/tb/lib目录)
export TBLIB_ROOT=/usr/local/tb/lib
生效:
[root@locatfs local]# source /etc/profile

进入tb-common-utils文件夹, 执行build.sh进行安装.

[root@locatfs local]# cd tb-common-utils/
[root@locatfs local]# chmod +x *.sh
[root@locatfs local]# ./build.sh
安装完成后,在TBLIB_ROOT表示的目录(/usr/local/tb/lib),应该可以看到include、lib 两个目录。

---- 第8步 编译安装TFS----
编译安装tfs   (安装到 /usr/local/tfs目录)
[root@locatfs local]# svn checkout http://code.taobao.org/svn/tfs/tags/release-2.2.10 tfs-2.2.10  (这个编译成功了)
[root@locatfs local]# svn checkout http://code.taobao.org/svn/tfs/trunk/ tfs (这个编译不成功)

进入 tfs 目录
[root@locatfs local]# cd tfs/
[root@locatfs local]# chmod +x *.sh
[root@locatfs local]# ./build.sh  init
[root@locatfs local]# ./configure --prefix=/usr/local/tfs --without-tcmalloc
[root@locatfs local]# make
[root@locatfs local]# make install

#如果提示找不到/usr/local/tfs/scripts/cs_sync 
# 把tfs下的cs_sync.sh复制成cs_sync 执行:cp -a ./scripts/cs_sync.sh /root/tfs_bin/scripts/cs_sync


如果出错:checking for tc_cfree in -ltcmalloc... no
这是因为后面的tfs版本使用tcmalloc库了
可以在config时加--without-tcmalloc参数,重新编译,或者装tcmalloc库。我试过前者,是可以编译的。
TCMalloc(Thread-Caching Malloc)是google开发的开源工具
与标准的glibc库的malloc相比,TCMalloc在内存的分配上效率和速度要高,可以在很大程度上提高服务器在高并发情况下的性能,降低系统负载。
这个模块可以用来让MySQL在高并发下内存占用更加稳定。
参考 :http://blog.chinaunix.net/space.php?uid=10449864&do=blog&id=2956849



make完后,如果有类似以下信息,表示编译不成功,如果没有报错,说明安装成功
我make成功了,make install也成功了。到这里本文结束了。
make[3]: *** [read_block_prefix] Error 1
make[3]: Leaving directory `/tmp/tfs/src/tools/dataserver'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/tfs/src/tools'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/tfs/src'
make: *** [all-recursive] Error 1


-----------------------------------------------------------------------
官网 
http://code.taobao.org/p/tfs/wiki/index/

淘宝TFS文件系统配置 
http://1008305.blog.51cto.com/998305/768258

淘宝TFS分布式文件系统亲测 
http://gdcsy.blog.163.com/blog/static/12734360920125624859906/

TFS Nginx模块实现
http://wenku.baidu.com/view/0d3007d4240c844769eaee58.html

nginx-tfs-module
http://code.google.com/p/nginx-tfs-module/

TFS Restful 接口测试总结分享
http://100continue.iteye.com/blog/1456390

redhat 6.3下编译淘宝tfs
http://my.oschina.net/beiyou/blog/76129

淘宝核心系统团队博客
http://rdc.taobao.com/blog/cs/?tag=tfs

淘宝网Nginx定制开发实践指南
http://wenku.baidu.com/view/010a212ecfc789eb172dc80a.html

淘宝海量图片系统
http://wenku.baidu.com/view/cc597ef8941ea76e58fa04a5.html
分享到:
评论
3 楼 wentongpan19 2015-06-23  
同问  最后一步报错怎么解决
2 楼 ft4729710 2015-04-14  
最后一步报错怎么解决?
make[3]: *** [install-pkgdata_dataDATA] Error 1
make[3]: Leaving directory `/usr/local/tfs/scripts/ha'
make[2]: *** [install-am] Error 2
make[2]: Leaving directory `/usr/local/tfs/scripts/ha'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/usr/local/tfs/scripts'
make: *** [install-recursive] Error 1
1 楼 leon1509 2013-06-03  
哥们淘宝内部人?都用上2.X了。

相关推荐

    TFS(Taobao File System)功能说明以及使用

    ### TFS(Taobao File System)功能说明及使用详解 #### 一、TFS概览 **TFS(Taobao File System)**是一款专为淘宝网设计的分布式文件系统,其核心目标是处理大规模的非结构化数据。该系统通过在普通的Linux...

    淘宝分布式文件服务器taobao file system tfs配置文件

    淘宝分布式文件服务器taobao file system tfs配置文件 为线上正在使用的生产配置 具体配置项可视自己服务微调,配置项含义参考tfs.taobao.org的文档说明.有无备份集群不影响TFS的运行,若没有,则去掉备份集群的配置

    Taobao File System

    TFS(Taobao !FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供...

    tfs 安装文档

    TFS(Taobao File System)是一种分布式文件系统,由淘宝开发,用于解决大规模数据存储问题。本文档提供了在 RedHat 和 Centos 操作系统下安装 TFS 的步骤和注意事项。 1. 安装 GCC 在安装 TFS 之前,需要安装 GCC...

    TFS安装部署

    **TFS(Taobao File System)** 是由阿里巴巴集团旗下的淘宝公司开发的分布式文件系统,专为处理海量的非结构化数据设计。TFS的主要目标是提供高可扩展性、高可用性和高性能的存储解决方案,尤其适合存储大量小于1MB...

    tfs-client-java

    1. **分布式文件系统**:TFS(Taobao File System)是一种大规模、高性能的分布式文件系统,旨在解决大数据量存储和处理的问题。它通过将数据分散存储在多台服务器上,实现了高可用性和高吞吐量,是大数据处理的重要...

    tfs夹包下载

    在IT行业中,"tfs夹包下载"这个标题暗示了我们正在讨论的是淘宝(Taobao)内部使用的一个特定的文件系统或服务,名为"TFS",全称为"Taobao File System"。TFS是由阿里巴巴集团开发的一个分布式文件系统,旨在处理大...

    VS2010使用TFS2010的图文教程.rar

    TFS,Taobao File System,淘宝内部使用的分布式文件系统,主要针对海量小文件的随机读写访问性能做了特殊优化,承载着淘宝主站所有图片、商品描述等数据的存储。 本文和大家讲下如何在VS2010里面创建项目并添加到...

    阿里巴巴开源的分布式文件系统 TFS.zip

    淘宝在这一领域做了有效的探索和实践,Taobao File System(TFS)作为淘宝内部使用的分布式文件系统,针对海量小文件的随机读写访问性能做了特殊优化,承载着淘宝主站所有图片、商品描述等数据存储。 文章首先概括了...

    TFS JavaAPI源码(附带JUinit测试用例)

    TFS(Taobao File System)是阿里巴巴集团开发的一款分布式文件系统,主要用于存储大量的小文件。它为海量数据的存储和访问提供高并发、高可用的解决方案。TFS Java API 是淘宝官方提供的用于与TFS进行交互的Java...

    淘宝TFS架构演进

    淘宝的Taobao File System(TFS)是阿里巴巴集团内部广泛使用的分布式文件系统。随着业务的增长和技术的发展,TFS也在不断地进行架构演进,以满足更高的性能、可靠性和扩展性的需求。 #### 二、TFS架构关键组件 ...

    淘宝分布式文件储存引擎——TFS

    淘宝的分布式文件存储引擎,简称TFS(Taobao File System),是阿里巴巴集团为解决大规模电商网站数据存储问题而设计的一款高性能、高可用的文件系统。它主要服务于淘宝内部的大量在线业务,如商品图片、用户数据等...

    TFS淘宝分布式核心存储引擎

    其中,TFS(Taobao File System)是淘宝自主研发的一款分布式文件系统,它在处理海量数据存储与访问上发挥了关键作用。本文将深入解析TFS的核心概念、设计原理以及应用实践,为读者提供一个全面了解淘宝分布式核心...

    tfs-1.3 淘宝内部使用的分布式文件系统 代码

    TFS,全称为Taobao File System,是淘宝公司内部广泛采用的一种分布式文件系统。它的设计初衷是为了高效处理海量的小文件,尤其是那些在电子商务环境中常见的图片、商品描述等数据。TFS在随机读写访问性能上进行了...

    taobao 10年

    #### TFS (Taobao File System) TFS是阿里巴巴自研的分布式文件系统,主要用于存储和管理大量的非结构化数据,如图片、视频等。通过TFS,淘宝能够高效地管理和提供丰富的多媒体内容,提升用户体验。 #### Tair ...

    CentOS7.2.1511 gcc4.8.5 通过编译的 tfs2.2.16

    http://code.taobao.org/p/tfs/wiki/get/ http://my.oschina.net/beiyou/blog/76129?fromerr=bGluCWDI tfs版本:2.2.16 centos:7.2.1511 gcc:4.8.5 # docker run -i -t centos /bin/bash [root@2f60c4bcddfa /]# ...

    基于TFS的分布式文件存储平台研究与实现.pdf

    本文介绍了一种基于TFS(Taobao File System,淘宝文件系统)的分布式文件存储平台的研究与实现。TFS是由淘宝公司为了应对自身业务中海量小文件存储需求而开发的一种高效的文件存储框架。TFS具有高效性、容错性和高...

    TFS笔记(淘宝分布式存储引擎

    TFS(Taobao File System)是阿里巴巴集团针对海量非结构化数据存储需求研发的一种分布式存储系统。随着淘宝平台的快速发展,截至2016年,平台上的卖家数量已经超过900万,商品数量达到数十亿级别。面对如此庞大的...

    Taobao海量图片存储与CDN系统-v2-系统架构师

    为了解决这一问题,淘宝团队自主研发了一套分布式文件系统——TFS(Taobao File System)1.0。 - **上线时间**:2007年6月 - **主要目的**:解决海量小文件的分布式存储问题。 - **技术特点**: - 集群规模:初始...

    分布式文件系统在全国公安交管互联网服务平台的研究与应用.pdf

    在对分布式文件系统进行选型研究时,除了FastDFS之外,还有Hadoop HDFS(Hadoop Distributed File System)和淘宝的TFS(Taobao File System)。这些系统均基于GoogleFS的设计原理,并对开源实现进行了改进。在选择...

Global site tag (gtag.js) - Google Analytics