TFS 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
TFS 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 GPLv2
开发语言 C/C++ 查看源码 »
操作系统 Linux
软件类型 开源软件
所属分类 服务器软件存储系统
开发厂商 阿里巴巴
地区 国产
提 交 者 欧德高
适用人群 未知
收录时间 2010-09-29

软件简介

TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据。

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

文章首先概括了TFS的特点:最近,淘宝核心系统团队工程师楚材(李震)在其官方博客上撰文(《TFS简介》,以下简称文章)简要介绍了TFS系统的基本情况,引起了社区的关注。

  • 完全扁平化的数据组织结构,抛弃了传统文件系统的目录结构。

  • 在块设备基础上建立自有的文件系统,减少EXT3等文件系统数据碎片带来的性能损耗。

  • 单进程管理单块磁盘的方式,摒除RAID5机制。

  • 带有HA机制的中央控制节点,在安全稳定和性能复杂度之间取得平衡。

  • 尽量缩减元数据大小,将元数据全部加载入内存,提升访问速度。

  • 跨机架和IDC的负载均衡和冗余安全策略。

  • 完全平滑扩容。

当前,TFS在淘宝的应用规模达到“数百台PCServer,PB级数据量,百亿数据级别”,对于其性能参数,楚材透漏:

TFS在淘宝的部署环境中前端有两层缓冲,到达TFS系统的请求非常离散,所以TFS内部是没有任何数据的内存缓冲的,包括传统文件系统的内存缓冲也不存在......基本上我们可以达到单块磁盘随机IOPS(即I/O per second)理论最大值的60%左右,整机的输出随盘数增加而线性增加。

TFS的逻辑架构图1如下所示:

图1. TFS逻辑架构图(来源:淘宝核心系统团队博客)

楚材结合架构图做了进一步说明:

  1. TFS尚未对最终用户提供传统文件系统API,需要通过TFSClient进行接口访问,现有JAVA、JNI、C、PHP的客户端

  2. TFS的NameServer作为中心控制节点,监控所有数据节点的运行状况,负责读写调度的负载均衡,同时管理一级元数据用来帮助客户端定位需要访问的数据节点

  3. TFS的DataServer作为数据节点,负责数据实际发生的负载均衡和数据冗余,同时管理二级元数据帮助客户端获取真实的业务数据。

展开阅读全文

代码

评论 (4)

加载中
2013/08/06 07:58
回复
举报
TFS居然不是#team+foundation+server#!!这也存在抢注??
2013/08/06 08:05
回复
举报
G.
@王小明123 tfs 有1周年没有更新了 #TFS#
2016/06/26 16:53
回复
举报
阿里: #AliSQL#(阿里云/双十一)+#OceanBase#(支付宝)+#TFS#(TaobaoFS) 百度: #Tera#(数据存储)+#BFS-Baidu#(BaiduFS)
2016/10/25 23:54
回复
举报
更多评论
暂无内容
发表了博客
2018/08/09 17:12

TFS命令行

tfs命令工具: https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/9s5ae285(v%3dvs.100) tf status /user:* /workspace:* /server:http://devops/DefaultCollection/ 查看:该开发人员的操作(2个参数【/server:】【/workspace】),这里的“用户名”指的是,服务器上登陆TFS的账户 ...

0
0
发表了博客
2019/09/05 13:47

TFS 忽略 文件

原文链接:http://ju.outofmemory.cn/entry/258689 让TFS忽略packages文件夹的更改 很多时候我们需要使用 Nuget 进行包管理,这时在我们的解决方案文件夹下便会产生一个名为 package 的文件夹 由于 Nuget 包经常要更新,TFS 会自动把这些包放到 正在挂起的更改 处,这对于强迫症十分不友好 于是,这里提供两种方法让 VS...

0
0
发表了博客
2018/08/24 15:47

tfs权限设置

需求,管理员用户可以看到tfs里面的所有项目,现在需要给某个开发人员设置权限,只让其看到其中某一个项目。 一、tfs服务器设置 1、在服务器管理器中的【本地用户和组】中添加一个新用户,并在“组”将新用户添加到“Users”组中,如下图: 2、打开【Team Foundation Server管理控制台】 在【团队项目集合】选择“组成员...

0
0
发表于DevOps专区
2013/11/07 21:58

TFS的原理及应用

大概两个月没有写博客了,这两个月被拉入到一个新的项目里,每天身背3个项目超级苦逼啊。 最近的一个项目由于原先的nas服务停了,所以没有办法,只能迁移到TFS上。这本来是一个内部的分享的。TFS本身也是开源了,所以就拿出来分享一下吧。 这里大部分内容出自TFS的开源网站及内部的wiki,下面是TFS的项目 TFS开源项目:h...

27
296
发表了博客
2019/09/09 10:24

TFS变更地址

本文链接:https://blog.csdn.net/qq_31117007/article/details/78044381 1: 今天公司服务器换了IP地址,然后发现tfs的服务器删除不了,也添加不了。最后参考了其他vs版本提供的方法,找到了解决的方法。 一共需要修改两个地方: 1.找到项目的sln文件,使用其他文本编辑器打开,修改里面原先的IP地址为服务器新IP地址,...

0
0
发表了博客
2015/04/08 22:04

ADT with Git To TFS

## 给Eclipse安装Git插件 ## [Installing the Team Foundation Server Plug-in for Eclipse][1] [eclipse(ADT)中使用git][2] ------------------------------------------- ## 在Eclipse中使用TFS插件## [Installing the Team Foundation Server Plug-in for Eclipse][3] [Work from the Git command prompt][4] [Team F...

0
0
发表了博客
2013/08/27 10:50

eclipse安装tfs

先决条件 首先,确保您的计算机满足下列列表中的所有要求。 然后,从此网站安装 Eclipse 的支持版本:Eclipse.org home。 硬件要求 1 GHz 或更快的处理器 1 GB RAM 或更大 1 GB 的可用硬盘空间 如果原始的下载包从硬盘移除,此磁盘空间的部分在安装后将释放。 操作系统要求 Service Pack 2、Windows Vista 或 Windows 7 ...

0
0
发表了博客
2018/06/26 14:54

TFS命令行操作

前言 本文主要介绍如何通过TFS(Team Foundation Server)命令行强制解锁(UnDo)项目成员对项目文件的占用。 正文 在多人同时开发项目的时候,如果遇到项目组成员独占签出文件后未及时签入然后又请假离开或者离职,亦或者电脑坏掉的情况,这个时候我们就需要强制解锁被占用的文件。 在解锁前我们需要先查询源码服务器上...

0
0
发表了博客
2015/01/14 12:35

张友东:TFS架构演进

张友东:TFS架构演进 TFS(Taobao File System)是淘宝的分布式文件系统,主要用于海量文件存储,在阿里内部广泛应用。本次演讲主要介绍TFS的架构的演进过程,并分享TFS运维相关经验。 详细解读 和小伙伴们一起来吐槽

0
0
发表了博客
2013/02/20 18:24

VS2010 之TFS入门指南

教程:VS2010 之TFS入门指南 [原文发表地址] Tutorial: Getting Started with TFS in VS2010 [原文发表时间] Wednesday, October 21, 2009 1:00 PM 本月初,我们发布了TFS新基础配置。该配置为建立支持源码管理,工作项和生成(builds)的TFS版本提供了便利。 这是一个好机会将你在VSS(Visual Source Safe)上的资源迁移到...

1
6
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2017/09/12 14:14

TFS下载文件已损坏

同事电脑重装系统之后 TFS 签出文件 修改后,其余人再获取最新版本的时候就会提示他修改过的那几个文件已损坏 无法下载,网上查了下 说是系统的问题,然后再次重装一次就没有出现这种问题,但是修改的那几个文件都无法获取最新版本了 提示已损坏。怎么解决。有没有大佬支个招

1
0
发表了问答
2016/12/13 16:22

怎么将原来数据库的内容同步到TfS系统

jre8,mysql和mongodb

1
0
发表了问答
2011/08/10 22:57

Taobao分布式文件系统TFS简析

文章转自:http://blog.csdn.net/liuben/article/details/5946583 Taobao自主研发分布式文件系统TFS(Taobao File System)的消息早有耳闻,最初来自网络上的一篇报道(或称软文)-“深度揭秘淘宝自主研发的文件系统TFS”。因为个人研究兴趣和工作内容相关的缘故,对TFS产生了很大的兴趣,很是期待和关注。TFS前面一直传说...

4
10
发表了问答
2013/09/18 08:08

图片等小文件服务的选择

@红薯 你好,想跟你请教个问题:现在我们的网站需要分布式文件存储,主要用来存储大量图片、小文件等,选择什么存储服务比较好?FastDFS、TFS,你们用的是什么服务,业界主流一般用什么服务?(自己百度、google了,没找到答案),求教,十分感谢!

11
3
发表了问答
2015/05/23 07:47

淘宝TFS RESTful API 调用

<?php echo " PHP_SAPI    : " , PHP_SAPI , "PHP_VERSION : " , phpversion() , "ZEND_VERSION: " , zend_version() , "PHP_OS      : " , PHP_OS , " - " , php_uname() , "INI actual  : " , realpath(get_cfg_var("cfg_file_path")) , "More .INIs  : " , (function_exists('php_ini_scanned_files') ? str_r...

1
2
发表了问答
2013/10/25 09:50

TFS RCSERVER安装问题

如图,RCSERVER安装时报错,undefined reference to 'mysql_query',折腾好久了,重装环境,安装MySQL-client-5.1.72-1.glibc23.x86_64.rpm MySQL-debuginfo-5.1.72-1.glibc23.x86_64.rpm MySQL-devel-5.1.72-1.glibc23.x86_64.rpm MySQL-embedded-5.1.72-1.glibc23.x86_64.rpm MySQL-server-5.1.72-1.glibc23.x86_64.rp...

1
0
发表了问答
2013/01/25 11:00

谁能指导下分布式文件系统的选型,存储小文件用的,图片、word、pdf之类的文档

谁能指导下分布式文件系统的选型,存储小文件用的,图片、word、pdf之类的文档。总体规模在 千万级个文件。 公司后端用的 java 架构的基于 centos系统, 目前针对文件存储的方式是,单独列出文件目录,用于存储文件,前端用nginx做反向代理直接访问。 这样以后可以将文件单独迁移到文件服务器上,采用NFS挂载到web serve...

8
7
发表了问答
2013/03/08 19:17

淘宝的TFS T_T

太无语了 搞了个阿里云 装的是 CentOS 6.2 64位系统 挺新的 为了装了TFS gcc 得4.1.2 太新了还不行 然后就开始 各种内裤都得降版本 搞死我了 麻烦淘宝的大大们 花点时间升级下

1
0
发表了问答
2012/11/14 18:42

淘宝技术发展(Java时代:创造技术-TFS)

接上一篇:淘宝技术发展(Java时代:坚若磐石) 在讲淘宝文件系统TFS之前,先回顾一下上面几个版本。1.0版的PHP系统运行了将近一年的时间(2003.05-2004.01);后来数据库变成 Oracle之后(2004.01-2004.05,叫1.1版本吧),不到半年就把开发语言转换为Java系统了(2004.02-2005.03,叫 2.0版本);进行分库、加入缓存、...

22
138
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
4 评论
199 收藏
分享
返回顶部
顶部