上一页 1 2 3 4 5 6 7 ··· 26 下一页
摘要: 本地文件系统如ext3,reiserfs等(这里不讨论基于内存的文件系统),它们管理本地的磁盘存储资源、提供文件到存储位置的映射,并抽象出一套文件访问接口供用户使用。但随着互联网企业的高速发展,这些企业对数据存储的要求越来越高,而且模式各异,如淘宝主站的大量商品图片,其特点是文件较小,但数量巨大;而类似于youtube,优酷这样的视频服务网站,其后台存储着大量的视频文件,尺寸大多在数十兆到数吉... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 最近几天在做一个集群间数据迁移的任务,要做的事很简单,就是给定一个任务文件,文件中每一行对应一个source:dest形式的迁移任务(source和dest均为文件名),任务数在千万级别。要做的事情其实很简单,读取每一行,解析出source和dest,并根据给定的集群信息从源集群读取source,并写到目标集群的dest。经历了写程序、执行任务、分析日志、改程序、再执行子任务...等多次折磨之后,... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(225) 评论(0) 推荐(0) 编辑
摘要: TBNET是淘宝的开源异步网络框架,源码见:http://code.taobao.org/p/tb-common-utils/src/trunk/tbnet/ TBNET主要类之间的联系如下,其中框架的使用者需要关注红色部分的类或接口。 关于每个类接口介绍,请参考@淘宝立德 总结的文档:http://vdisk.weibo.com/s/1UzQB/1326963540 ... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(910) 评论(0) 推荐(0) 编辑
摘要: TFS客户端是用户访问TFS的入口,目前TFS已支持C/C++、java、php、python等语言的客户端,本文主要分析C++客户端的实现逻辑。 TfsClient类是提供给tfs客户的原生C++接口类,其依赖TfsClientImpl代理负责具体实现,另外,在TfsClient上又封装了一套C客户端接口。 TfsSession类负责处理与nameserver相关的工作,包括获取block信息,... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(797) 评论(0) 推荐(0) 编辑
摘要: TFS主要用于小文件存储,其将多个小文件存储在大的block中,并为这些小文件建立in-block索引,优化了文件的存储空间和寻址过程。TFS为了保证用户数据的安全性,为每个block在不同的数据服务器(dataserver,ds)上创建多个副本,另外,TFS还支持多集群数据同步。 TFS提供给用户使用的基本接口类似于vfs提供的文件系统,主要包括open、read/write、close、ls... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(452) 评论(0) 推荐(0) 编辑
摘要: TFS数据服务器(DS)通过在物理块的头部存放一个BlockPrefix结构来记录逻辑块与物理块的对应关系,在DS时,会读取每一个已经使用的block,并读取block头部的信息,汇报给NS,NS通过这些信息建立逻辑块到DS的映射关系。最初,TFS使用300G的小盘,按照每个主块64M,每个扩展块2M计算,物理块的总数接近1500个,即使这些块全部使用全部使用了(正常状态下扩展块的利用率不会太高)... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 当你的系统发布时,你需要告诉用户如何去使用,通常你会写一份示例代码放在文档中,让用户能通过这个例子快速知道该如何使用,这个实例代码对用户会有多大影响呢? TFS是淘宝的分布式文件系统,主要用于小对象的存储(如图片、交易快照等),在TFS的开源wiki上,也有一个简单的实例。具体的说,TFS客户端提供了基本的open、read、write、close接口,用户在读写前,需要先根据对应的模式open... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(251) 评论(0) 推荐(0) 编辑
摘要: TFS没有采用目前流行的3副本策略,而是使用集群内配置2个副本,并把数据同步到一个辅集群,辅集群同样配置2个副本;这种方式对于实现异地机房容灾很方便,辅集群的数据同步是由主集群的数据服务器在后台发起的;目前主集群可读写,辅集群只读,双集群同时读写功能已开发完成,但没有在线上使用。 由于数据同步到辅集群是异步操作,当某次读文件的操作落到辅集群上时,可能该文件的同步尚未完成,此时在辅集群上读不到数据... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 集群数据对比功能的添加对TFS DS做了修改,在把DS上到日常测试环境前对其进行了一次回归测试,测试用例都通过,但checkserver检查到有大量block未同步到辅集群,查看dataserver的日志发现同步队列已经阻塞住了,一直重复retry。 主备集群的数据同步是由主集群的DS在后台进行,其将成功的写、删等操作记录在本地日志,并启动后台线程将日志重放到备集群,DS没重放一条日志,如果失败... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 在早期,应用要使用TFS,需要知道TFS名字服务器的地址才能访问TFS,然后调用读写接口存取文件,当应用比较少时,这种方式不会引发什么问题,但目前在淘宝内部,有200多个应用使用TFS做为后端的存储系统,必须要对应用的存储资源进行统一的管理与运维。 TFS做为一个应用存储平台,缺乏统一管理至少存在如下问题: 多集群管理:多集群访问控制、切换、容灾等。 访问控制:应用只要... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(355) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 26 下一页