您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 章文嵩: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)hdaDataServerdsp1hdahdadsp2dsp3hdaDataServerdsp1dsp2dsp3hdahdaMysqlDupStoreNameServerheartbeatmessageHAheartbeatTFS1.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
本文标题:章文嵩:Taobao海量图片存储与CDN系统-v2-系统架构师
链接地址:https://www.777doc.com/doc-6372717 .html