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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2010系统架构师大会Taobao海量图片存储与CDN系统章文嵩(正明)淘宝核心系统部2010.8.271议程2一、系统全貌二、Taobao图片存储系统--TFS三、ImageServer与Cache四、CDN系统五、低功耗服务器平台六、经验图片存储与CDN系统全貌3GlobalLoadBalancingL1-CacheL2-CacheApplicationStorageCacheClusterCacheClusterCacheClusterCacheClusterCacheClusterImageServerClusterImageServerClusterTFSClusterCacheClusterCacheClusterTFSCluster~40T~80T~200Servers995TUsed/1800TDeployed议程4一、系统全貌二、Taobao图片存储系统--TFS三、ImageServer与Cache四、CDN系统五、低功耗服务器平台六、经验2007年之前的图片存储系统5FAS980CSnapShotSnapShot杭州网通IDCUploadServer滨江联通备份中心NearStoreR200DR:A+B+C+DSnapVault远程数据冗灾ImageServerC:OnlineImageD:OnlineImageSnapMirrorFAS980CSnapShotSnapShotA:OnlineImageB:OnlineImageSnapMirror注:红框中设备是2006年的新增设备,明年还得在原有的NetApp980C/R200存储上增加20TB左右新的硬盘容量。AdminServer商用产品无法满足需求•系统需求淘宝的影响越来越大,数据的安全也更加重要数据存储量以每年二倍的速度增长(即原来的三倍)•商用存储产品对小文件的存储无法优化文件数量大,网络存储设备无法支撑连接的服务器越来越多,网络连接数已经到达了网络存储设备的极限扩容成本高,10T的存储容量需要几百万¥单点,容灾和安全性无法得到很好的保证6TFS1.0•2007年6月淘宝自主开发的分布式的文件系统TFS(TaobaoFileSystem)1.0上线运行主要解决海量小文件的分布式存储集群规模:200台PCServer(146G*6SAS15KRaid5)文件数量:亿级别系统部署存储容量:140TB实际使用存储容量:50TB单台支持随机IOPS200+,流量3MBps7TFS1.0的逻辑结构8TFS1.0的特性•集群由一对NameServer和多台DataServer构成•每个DataServer运行在一台普通的Linux主机上•以block文件的形式存放数据文件(一般64M一个block)•block存多份保证数据安全•利用ext3文件系统存放数据文件•磁盘raid5做数据冗余•文件名内置元数据信息,用户自己保存TFS文件名与实际文件的对照关系–使得元数据量特别小9TFS1.3•2009年6月TFS(TaobaoFileSystem)1.3上线运行•集群规模(2010.8.22)440台PCServer(300G*12SAS15KRPM)+30台PCServer(600G*12SAS15KRPM)文件数量:百亿级别系统部署存储容量:1800TB当前实际存储容量:995TB单台DataServer支持随机IOPS900+,流量15MB+目前NameServer运行的物理内存是217MB(服务器使用千兆网卡)10TFS1.3的逻辑结构11Application/ClientNameServerblockid,fileid/allocateDatacontrolmessageheartbeatmessagecrc,sizefilenamerefcountdataserverid(blockid,fileid)hdaDataServerdsp1hdahdadsp2dsp3hdaDataServerdsp1dsp2dsp3hdahdaMysqlDupStoreNameServerheartbeatmessageHAheartbeatTFS1.3的特性•TFS1.3提供了一些重要的功能特性所有的元数据全部都内存化清理磁盘空洞容量和负载的均衡策略平滑的扩容数据安全性的冗余保证几秒内完成NameServer故障自动切换容灾策略性能大幅提升12TFS的发展•TFS2.0正在开发中–大小文件的共存,大文件的分片存储–分级存储机制(SSD/SAS/SATA)的建立,针对访问特性的文件迁移…………•TFS将在9月开源,希望更多人来使用和改进TFS13议程14一、系统全貌二、Taobao图片存储系统--TFS三、ImageServer与Cache四、CDN系统五、低功耗服务器平台六、经验图片处理与缓存•现状–有200多台服务器ImageServer,在Apache上实现的,从TFS取原图生产相应的缩略图•改进目的–图片访问的热点一定存在,在ImageServer实现Cache,提高响应速度,也减轻对后端TFS的压力•ImageServer上处理方式–若请求图片在Cache中,直接发送–没命中,若本地有原图,则根据原图做处理并缓存–没命中,从TFS读取原图并添加到缓存,处理并缓存系统实现•将图片处理与缓存编写成基于Nginx的模块–Nginx是目前性能最高的HTTP服务器(用户空间)–代码清晰–模块化非常好•使用GraphicsMagick进行图片处理–比ImageMagick性能更好•面向小对象的缓存文件系统•前端有LVS+Haproxy将原图和其所有缩略图请求都调度到同一台ImageServer图片处理•从TFS存储中读取文件•将文件根据需要的尺寸进行缩放–灵活,应用可以制定一些尺寸规则决定–动态计算的成本大概是存储缩略图的十分之一•可根据需要将缩略图按一定质量压缩保存(75%~94%)和锐化处理,通过配置文件设定–权衡图片的效果与CDN传输的带宽–低损压缩降低缩略图的体积(30~70%)本地缓存对象文件系统•文件定位–内存hash做索引–最多一次读盘•写盘方式–Append方式写–淘汰策略FIFO,主要考虑降低硬盘的写操作,没有必要进一步提高Cache命中率,因为ImageServer和TFS在同一个数据中心议程19一、系统全貌二、Taobao图片存储系统--TFS三、ImageServer与Cache四、CDN系统五、低功耗服务器平台六、经验淘宝CDN系统•CDN服务的图片规模–约250T容量的原图+250T容量的缩略图–约286亿左右的图片数,平均图片大小是17.45K–8K以下图片占图片数总量的61%,占存储容量的11%•CDN部署规模–22个节点,部署在网民相当密集的中心城市(7月初)–每个节点目前处理能力在10G或以上–CDN部署的总处理能力已到220G以上–目前承载淘宝流量高峰时119G,含一些集团子公司的流量20淘宝CDN系统的研发•主要解决现有的问题–商用产品的性能瓶颈、功能欠缺,以及不稳定性–整个系统的规模、性能、可用性和可管理性•开发完全自主的CDN系统–CDN节点的新架构和优化–CDN监控平台–全局流量调度系统支持基于节点负载状态调度和基于链路状态调度–CDN实时图片删除–CDN访问日志过滤系统–配置管理平台21CDN节点的架构对比-老架构22NetScaler(7LB)squid源站squidsquid…squidNetScaler(7LB)client频道频道1频道2…频道nVIP1VIP2CDN节点的架构对比-新架构23LVS(L4)Haproxy(L7)squid源站squidsquid…squidhaproxy(L7)Haproxy(L7)LVS(L4)client所有频道统一调度VIP1VIP2心跳CDN节点的架构对比对比项\节点新架构老架构流量分布均匀性☆☆☆☆☆☆☆☆可维护性☆☆☆☆☆☆抗攻击能力☆☆☆☆☆☆☆☆自主控制能力☆☆☆☆☆☆☆☆价格☆☆☆☆☆☆☆☆扩展能力☆☆☆☆☆☆☆灵活性☆☆☆☆☆☆☆•流量分布均匀性:所有的频道统一调度到128台squid,而不是将squid按频道分组,可提高命中率2%以上•扩展能力:在一个VIP上新架构可以扩展到近100G的流量(当然要用万兆网卡)•灵活性:一致性Hash调度方法使得增加和删除服务器非常方便,只有1/(n+1)的对象需要迁移Squid改进和优化•在COSS存储系统基础上实现了TCOSS,FIFO加上按一定比例保留热点对象,支持1T大小的文件•Squid内存优化,一台Squid服务器若有一千万对象,大约节省1250M内存,更多的内存可以用作memorycache•用sendfile来发送缓存在硬盘上的对象,加上pagecache,充分利用操作系统的特性•针对SSD硬盘,可以采用DIRECT_IO方式访问,将内存省给SAS/SATA硬盘做pagecache•在Squid服务器上使用SSD+SAS+SATA混合存储,实现了类似GDSF算法,图片随着热点变化而迁移25热点迁移的数据对比(1)•简单按对象大小划分:小的进SSD,中的放SAS,大的存SATA•SSD+4*SAS+SATA上的访问负载如下:26[root@cache161~]#iostat-x-k60|egrep-v-e“sd.[1-9]”…avg-cpu:%user%nice%system%iowait%steal%idle3.150.005.6311.350.0079.87Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrq-szavgqu-szawaitsvctm%utilsda15.401.1750.662.632673.22124.85105.010.5510.396.2733.41sdb0.070.03447.291.024359.01191.9020.300.320.710.2712.13sdc5.731.53114.938.421264.86100.5822.141.058.483.5643.94sdd5.572.07121.839.571319.45104.1221.671.199.023.6347.72sde5.531.45111.458.521246.53101.9222.480.957.883.4241.06sdf5.452.02118.938.001281.92106.2521.871.199.373.7447.44其中:黑色为SATA,绿色为SSD,红色为SAS4块SAS硬盘上的访问量和超过SSD硬盘上的访问量热点迁移的数据对比(2)•按对象访问热点进行迁移:最热的进SSD,中等热度的放SAS,轻热度的存SATA•SSD+4*SAS+SATA上的访问负载如下:27[root@cache161~]#iostat-x-k60|egrep-v-e“sd.[1-9]”…avg-cpu:%user%nice%system%iowait%steal%idle3.150.005.6311.350.0079.87Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrq-szavgqu-szawaitsvctm%utilsda5.081.6518.552.521210.07119.00126.180.146.505.4611.51sdb1.680.05610.531.756962.29413.4724.090.280.460.2314.25sdc0.220.0328.870.971172.93189.1391.310.165.284.4013.13sdd0.230.0229.700.771133.47122.5382.450.154.994.3913.37sde0.180.0328.231.031078.73206.2787.810.155.004.2412.40sdf0.100.0228.420.55

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功