云存储在C2C网站的实际应用—详解TFS

标签: 存储技术 | 发表时间:2011-07-26 10:20 | 作者:a@b.com (elvisjiang) Caleb
出处:http://www.click2earth.com/

分布式文件系统在电子交易网站中会有广泛的用途,例如淘宝网,现在的交易额已经超过了600亿/每天,这是一个什么概念,香港一天的消费品市场也就600亿,也就是说一个淘宝已经超过香港了,而要达到这么大的交易量,交易的商业是上百亿件的,这样对商品图片的访问量就会很大。日常照片分享往往集中在几个有限的亲朋好友之间,访问量不会特别高,而淘宝网商铺中的商品照片,尤其是热门商品,图片的访问流量其实是非常大的。而且对于卖家来说,图片远胜于文字描述,因此卖家也格外看重图片的显示质量、上传时间、访问速度等等问题。根据淘宝网的流量分析,整个淘宝网流量中,图片的访问流量会占到90%以上,而主站的网页则占到不到10%。

淘宝网电子商城首页截图,淘宝网的后端系统上保存着286亿多个图片文件,淘宝网整体流量中,图片的访问流量要占到90%以上。且这些图片平均大小为17.45KB,小于8K的图片占整体图片数量61%,整体系统容量的11%

与此同时,这些图片的存储与读取还有一些头疼的要求:例如,这些图片要求根据不同的应用位置,生成不同大小规格的缩略图。考虑到多种不同的应用场景以及改版的可能性,一张原图有可能需要生成20多个不同尺寸规格的缩略图。

淘宝整体图片存储系统容量1800TB(1.8PB),已经占用空间990TB(约1PB)。保存的图片文件数量达到286亿多个,这些图片文件包括根据原图生成的缩略图。平均图片大小是17.45K;8K以下图片占图片数总量的61%,占存储容量的11%。

  这就给淘宝网的系统带来了一个巨大的挑战,众所周知,对于大多数系统来说,最头疼的就是大规模的小文件存储与读取,因为磁头需要频繁的寻道和换道,因此在读取上容易带来较长的延时。在大量高并发访问量的情况下,简直就是系统的噩梦。

淘宝网成立于2003年,在整个系统的构建和规划上也做过相当多的尝试和探索。

下图是淘宝网2007年之前的图片存储系统。淘宝网之前一直采用的商用存储系统,应用NetApp公司的文件存储系统。随着淘宝网的图片文件数量以每年2倍(即原来3倍)的速度增长,淘宝网后端NetApp公司的存储系统也从低端到高端不断迁移,直至2006年,即时是NetApp公司最高端的产品也不能满足淘宝网存储的要求。


淘宝网2007年以前的图片存储系统架构图,由于淘宝网图片速度已每年2倍的速度增长,商用系统已经完全不能满足其存储需求,目前淘宝网采用自主研发的TFS集群文件系统来解决海量小图片的读取和访问问题

原有系统的不足: 首先是商用的存储系统没有对小文件存储和读取的环境进行有针对性的优化;其次,文件数量大,网络存储设备无法支撑;另外,整个系统所连接的服务器也越来越多,网络连接数已经到达了网络存储设备的极限。此外,商用存储系统扩容成本高,10T的存储容量需要几百万¥,而且存在单点故障,容灾和安全性无法得到很好的保证。

1.商用软件很难满足大规模系统的应用需求,无论存储还是CDN还是负载均衡,因为在厂商实验室端,很难实现如此大的数据规模测试。

2.研发过程中,将开源和自主开发相结合,会有更好的可控性,系统出问题了,完全可以从底层解决问题,系统扩展性也更高。


自主研发和采用商用系统的经济效益对比

3.在一定规模效应基础上,研发的投入都是值得的。上图是一个自主研发和购买商用系统的投入产出比对比,实际上,在上图的交叉点左边,购买商用系统都是更加实际和经济性更好的选择,只有在规模超过交叉点的情况下,自主研发才能收到较好的经济效果,实际上,规模化达到如此程度的公司其实并不多,不过淘宝网已经远远超过了交叉点。

4.自主研发的系统可在软件和硬件多个层次不断的优化。

 

  1. 架构分析

 

TFS 1.0版本的集群文件系统

从2006年开始,淘宝网决定自己开发一套针对海量小文件存储难题的文件系统,用于解决自身图片存储的难题。到2007年6月,TFS(淘宝文件系统,Taobao File System)正式上线运营。在生产环境中应用的集群规模达到了200台PC Server(146G*6 SAS 15K Raid5),文件数量达到上亿级别;系统部署存储容量: 140 TB;实际使用存储容量: 50 TB;单台支持随机IOPS 200+,流量3MBps。


淘宝集群文件系统TFS 1.0第一版的逻辑架构,TFS最大的特点就是将一部分元数据隐藏到图片的保存文件名上,大大简化了元数据,消除了管理节点对整体系统性能的制约,这一理念和目前业界流行的"对象存储"较为类似。

图为淘宝集群文件系统TFS 1.0第一版的逻辑架构:集群由一对Name Server和多台Data Server构成,Name Server的两台服务器互为双机,就是集群文件系统中管理节点的概念。

• 每个Data Server运行在一台普通的Linux主机上

• 以block文件的形式存放数据文件(一般64M一个block)

• block存多份保证数据安全

• 利用ext3文件系统存放数据文件

• 磁盘raid5做数据冗余

• 文件名内置元数据信息,用户自己保存TFS文件名与实际文件的对照关系–使得元数据量特别小。

淘宝TFS文件系统在核心设计上最大的取巧的地方就在,传统的集群系统里面元数据只有1份,通常由管理节点来管理,因而很容易成为瓶颈。而对于淘宝网的用户来说,图片文件究竟用什么名字来保存实际上用户并不关心,因此TFS在设计规划上考虑在图片的保存文件名上暗藏了一些元数据信息,例如图片的大小、时间、访问频次等等信息,包括所在的逻辑块号。而在元数据上,实际上保存的信息很少,因此元数据结构非常简单。仅仅只需要一个fileID,能够准确定位文件在什么地方。

由于大量的文件信息都隐藏在文件名中,整个系统完全抛弃了传统的目录树结构,因为目录树开销最大。拿掉后,整个集群的高可扩展性极大提高。实际上,这一设计理念和目前业界的"对象存储"较为类似,淘宝网TFS文件系统已经更新到1.3版本,在生产系统的性能已经得到验证,且不断得到了完善和优化,淘宝网目前在对象存储领域的研究已经走在前列。

TFS 1.3版本的集群文件系统

到2009年6月,TFS 1.3版本上线,集群规模大大扩展,部署到淘宝的图片生产系统上,整个系统已经从原有200台PC服务器扩增至440台PC Server(300G*12 SAS 15K RPM) + 30台PC Server (600G*12 SAS 15K RPM)。支持文件数量也扩容至百亿级别;系统部署存储容量:1800TB(1.8PB);当前实际存储容量:995TB;单台Data Server支持随机IOPS 900+,流量15MB+;目前Name Server运行的物理内存是217MB(服务器使用千兆网卡)。


TFS 1.3版本逻辑结构图

图为TFS1.3版本的逻辑结构图,在TFS1.3版本中,淘宝网的软件工作组重点改善了心跳和同步的性能,最新版本的心跳和同步在几秒钟之内就可完成切换,同时进行了一些新的优化:包括元数据存内存上,清理磁盘空间,性能上也做了优化,包括:

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

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

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

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

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

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

完全平滑扩容。

在后面"图片服务器部署与缓存"一页中详细介绍了淘宝网整个图片处理系统的拓扑图。我们可以看到:TFS在淘宝的部署环境中前端有两层缓冲,到达TFS系统的请求非常离散,所以TFS内部是没有任何数据的内存缓冲的,包括传统文件系统的内存缓冲也不存在。

TFS主要的性能参数不是IO吞吐量,而是单台PCServer提供随机读写IOPS。由于大家硬件型号不同,当然也是因为一些技术保密的原因,淘宝网很难给出一个参考值来说明性能。但基本上可以达到单块磁盘随机IOPS理论最大值的60%左右,整机的输出随盘数增加而线性增加。

开发中的TFS2.0与开源TFS

TFS 2.0已经在开发过程中,主要解决的问题是大文件存储的难题。TFS最早开发的时候针对小文件频繁并发读取的难题而开发,设计的块大小是64MB,意味着每个文件小于64MB,这对于一般的图片存储来说完全足够用了,但对于大文件存储还有一些瓶颈。

TFS 2.0将重点针对大文件跨越块的存储进行优化。此外,还包括SSD、SAS硬盘不同硬盘特性的应用优化。根据淘宝网的资料数据,SSD的存储成本大约是20¥每GB左右,SAS硬盘的存储成本约在 5-6¥每GB,SATA盘的每GB成本不到1¥。随着对应用性能的要求提升,应用SSD是未来的趋势,针对不同硬盘的存取特性进行优化是十分必要的。

相关 [云存储 c2c 网站] 推荐:

云存储在C2C网站的实际应用—详解TFS

- Caleb - 云存储技术博客:光头老蒋(云存储技术,虚拟化,IP存储, 数据库容灾等)
分布式文件系统在电子交易网站中会有广泛的用途,例如淘宝网,现在的交易额已经超过了600亿/每天,这是一个什么概念,香港一天的消费品市场也就600亿,也就是说一个淘宝已经超过香港了,而要达到这么大的交易量,交易的商业是上百亿件的,这样对商品图片的访问量就会很大. 日常照片分享往往集中在几个有限的亲朋好友之间,访问量不会特别高,而淘宝网商铺中的商品照片,尤其是热门商品,图片的访问流量其实是非常大的.

用云存储和CDN轻松搞定网站图片

- - 技术改变世界 创新驱动中国 - 《程序员》官网
“无图无真相,有视频更好”. 一般来说,网络用户都喜欢图片和视频,而不喜欢读干巴巴的文字. 这看似单纯的意愿,却让网站的开发者和维护人员叫苦不迭——图片、视频等内容占用了一个网站的很多存储、带宽资源. 是时候把图片、视频迁移到云存储,来释放被压得喘不过气的服务器和带宽了. 下面以一个网站的图片存储为例,来逐步了解如何使用开放存储服务(Open Storage Service,简称OSS).

幸会:很 SoLoMo ,不 C2C

- 小白 - 爱范儿 · Beats of Bits
4 月份的一天,我去参加 36 氪组织的一个移动互联网聚会,到了车库咖啡,面对 200 多号人不知什么来路的潮男潮女,傻掉了. 大家聚在一起介绍自己的产品,交换名片. 然后,吓出一身冷汗:以为那个面像忠厚的大叔是红杉资本投资人,结果竟然是竞争对手的 CTO. 专业的活动组织者, NTalks 创始人蒋静似乎也被这个问题困扰了很久.

盛大围猎C2C叫阵淘宝

- Linker Lin - GeekPark 捕风捉影
当业界还在为新一轮互联网泡沫是否到来进行争论,陈天桥带领的盛大选择在此时奋不顾身,杀入电商战团. 盛大宣布进入电子商务领域,矛头直指淘宝. 原盛大金酷游戏CEO葛斌斌宣布淡出游戏,涉足电子商务,出任品聚网CEO,与淘宝展开直接竞争. 据葛斌斌透露,品聚网首轮投资约为2亿元,在首轮投资中,投资人包括葛斌斌本人及盛大.

对于国内C2C现状的一些想法

- - 天涯海阁|Web2.0Share
首先说一下这里说的C2C不是指电子商务领域那个C2C(Consumer-to-consumer),而是Copy to China 的缩写,在国内互联网领域貌似大家对于这种C2C已经见怪不怪了,所以也想说说自己的一些想法. 先看看目前国内有哪些热门的C2C吧:. 类Pinterest,这个应该算是今年国内最火的了吧,应该几十个有了,当然其实国内很多人对于Pinterest理解也不太同,有人认为瀑布流就是Pinterest;) 个人理解Pinterest有两点很重要的创新:一是对于图片展示方式的创新;二是不仅让用户UGC,而且通过一种简单容易理解的方式用户在UGC的同时来组织信息,使得内容由于这种组织变得很有深度.

五大云存储服务对比

- zongyao - Solidot
51开源社区 写道 "云存储和音乐服务最近已成为一个热门话题,而苹果的iCloud则让云存储服务进入全面战争状态. 种类繁多的云存储服务让人眼花缭乱,下面就从空间、支持文件类型、易用性、支持设备、音乐服务、离线支持、可用性等七大方面对五大云存储服务进行详细介绍. 这五大云存储服务是苹果iCloud,Google,亚马逊Cloud Drive,Windows Live SkyDrive和Dropbox.

iPhone云存储类应用盘点

- j - 月光博客
  云存储是近两年迅速崛起的一种全新的存储模式,它既拥有传统硬盘超大容量的优点,又能避免每天携带U盘的麻烦,甚至还依赖自身的互联网优势,开创了自动同步、多平台共享等一大批特色功能.   云存储时代到来,让很多人越来越多的开始使用网络硬盘保存自己的工作、生活文档,并在任何地点都能轻松找到、使用这些文档.

移动电子商务:轻量级C2C交易应用Taap.it 2个月内产生交易额240万美元

- peigen - 36氪
还觉得移动电子商务时代没有到来. 先看看我们先前报导的移动交易应用Zaarly. 现在一款名叫Taap.it的轻量级移动C2C交易应用也浮出了水面,2个月不到该应用上产生的交易额已经达到令人惊讶的240万美元. Taap.it允许你几乎实时的销售各种东西,无论其是旧自行车,还是前女友的宠物兔等. 而且上架销售的方式也非常简单:注册账户,给要出售的物品拍照,输入简单的描述和标价,上传.

瞄准C2C交易安全问题:支付宝正式启动担保交易开放计划

- sososa - 36氪
假设你想在网上出售闲置的二手笔记本,但是担心买家不给钱怎么办. 最好买家能提前付款;另一方面,买家还有可能担心付完款你不发货. 除了一手交钱一手交货之外,最好的办法就是找一个交易担保了. 支付宝旗下的产品交易担保可以为买卖双方提供交易担保,流程如下:. 卖家发起交易,买家付款后支付宝帮买家保管货款,等买家收获确认后支付宝再把货款转给卖家.

创业公司新趋势:C2C在线直接劳务交易市场的4个案例(“卖人”成为可能)

- 洋白菜 - 36氪
随着一批创业公司如TaskRabbit,MyGuidie,Skillshare和Pal Locale等的兴起,互联网行业又呈现出了一个十分明显的趋势,那就是形成一个个C2C在线私人劳务市场(或者你可以更为直白的称之为跑腿或提供其他劳务). 首先我们一起梳理一下这几家典型的创业公司. TaskRabbit——一般性临时工在线交易市场.