服务器正在执行此文件的一致性,TFS开源用户常见问题(FAQ)

TFS(Taobao File System)是一个面向互联网服务的分布式文件系统,支持海量小文件存储。它由nameserver、dataserver和client组成,不支持POSIX接口,提供API进行读写操作。TFS最大规模可达7PB+存储容量,400+台机器,1000亿+文件。系统通过主备NS实现HA,支持异地容灾,并提供文件去重和一致性语义。文章还介绍了TFS的运维工具、压力测试方法以及集群扩容和监控策略。
摘要由CSDN通过智能技术生成

作者:zyd_com@126.com

博客:ydzhang.blog.chinaunix.net | blog.yunnotes.net

微博:

TFS(Taobao File System)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,TFS由nameserver(NS)、dataserver(DS)、client三个部分组成,详细设计原理参考

uid-20196318-id-4135923.html

TFS适用场景

TFS提供海量文件的可靠存储,尤其适合海量小文件的存储;TFS没有传统文件系统的目录树结构,所有文件处于一个扁平化的名字空间;TFS不支持posix接口,必须通过TFS提供的客户端API(read/write/delete)来读、写、删文件。

TFS最大集群规模

经过实践的最大规模:单集群7PB+存储容量、400+台机器、1000亿+文件(2014年2月数据);理论上最大集群规模受限于NS的内存大小、网络处理能力。

TFS对大文件的支持

TFS最初开发是针对小文件存储,但TFS也提供了大文件的存取接口,支持大文件没有在服务端做任何特殊改动,而是通过在客户端把大文件划分成多个“小文件分片”来存储,TFS大文件最大为140G,主要受限于分片元信息的大小。

TFS对自定义文件名的支持

默认情况下(只部署NS和DS),往TFS存储一个文件后,TFS的客户端会返回一个T开头的文件名,通过该文件名就能从TFS里读到存储的文件。同时TFS支持用户自定义文件名,但需要部署和rootserver,metaserver依赖mysql来存储“用户自定义文件名”到“TFS文件名”的映射关系,rootserver用来管理多个metaserver。

自定义文件名提供create_dir、create_file、ls_dir、write_file、read_file、delete_file等接口。

TFS对文件去重的支持

默认情况下,TFS存储两个内容相同的文件,会得到两个不同的文件名(对应server端的两份数据)。

TFS客户端提供了文件去重存储接口,TFS的去重依赖于(阿里的一个key/value存储系统),在tair里存储(文件md5、size) ==>(TFS文件名)的映射关系。如果使用去重存储接口,客户端首先会根据文件的md5和大小等信息到tair查询一下,看有没有存储过相同内容的文件,如果有直接返回对应的TFS文件;如果tair中没有对应的映射关系,就插入一条新的映射记录,用于去重。

TFS NS单点问题

NS是TFS集群的中心管理节点,TFS通过主备HA的方式来解决单点问题。正常情况下,所有的操作由主NS完成,当主NS服务挂掉时,服务会立即切换到备机。为了保证备机立即能接管服务,TFS做了如下工作:

所有的DS启动后会向主、备NS汇报block信息、并保持心跳

主NS上的block操作会以日志形式记录下来,并后台重放日志将操作同步到备NS

TFS是否支持异地容灾

TFS支持主备集群的模式,在两个机房分别搭建集群,可将其中一个作为主集群,将另一个配置为备集群,所有写入主集群的文件都会同步到备集群。

TFS的一致性语义

新写文件,TFS分配一个文件名,保证该文件的多个副本数据完全一致

更新已存在的文件,不保证文件多个副本一致性(更新不建议使用)

TFS性能如何

不同的工具、不同的测试方法、不同的测试环境得出来的结果都不一样,理论分析下最差情况.

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值