SlideShare a Scribd company logo
开源 + 自主开发
  -- 淘宝软件基础设施构建实践

       章文嵩(正明)
第七届2012开源中国开源世界高峰论坛
        2012.6.29


                      1
议程




一、淘宝网的简介

二、淘宝软件基础设施

三、事例:图片存储、CDN与DB

四、淘宝开源策略

五、小结



                   2
淘宝网简介

• 淘宝网:网络购物
• 2011年网购交易额约7849亿元,淘宝网占8成;
  淘宝创造的直接就业机会是270.8万
• 网络流量排名(Alexa统计)
 –国际:13 (12~18)
 –国内:3
• 现在每天7000万以上的UV;去年双12大促有1.2
  亿多的UV,CDN实际流量峰值为856Gbps
• 现在每天的25多亿的页面浏览
• 网站上有约800个应用
                               3
议程




一、淘宝网的简介

二、淘宝软件基础设施

三、事例:图片存储、CDN与DB

四、淘宝开源策略

五、小结



                   4
淘宝系统框架示意图




            5
软件基础设施的规划




            6
主要所采用的软件

• CDN:世界上流量最大的、面向图片的CDN系统
 – 基于开源软件LVS+Haproxy+Squid+Bind上开发的CDN系统
 – 现有103节点,双12支持了856Gbps实际流量;约5000台服务器
 – 今年会建设到2400Gbps的承载能力
• TFS:自主开发的分布式对象存储系统
 – 可存储容量6.2P,实际使用4.06P;今年会建设到12P
 – 图片空间每GB每年存储与运维成本从7.2元降到3.4元
• TAIR:淘宝的分布式缓存和K/V存储
 – 集成了开源的Redis和LevelDB存储引擎
 – 提供跨机房容灾的解决方案
• OceanBase:淘宝的分布式数据库系统
 – 支持千亿条记录级别的数据库、支持事务

                                           7
主要所采用的软件(2)

• 海量数据:采用开源的Hadoop平台
 –现在单一集群到2500台服务器的规模
 –系统可存储容量为47.02PB,已使用32.47PB,历史数据为
  压缩存储
 –每天新增原始数据量为50T左右,存储净增量约为36T
 –每天运行的作业数为10万以上,每日处理数据为2.5PB
• 核心数据库:采用开源的MySQL,加上高速的非易失
  存储,以及多层级的系统优化
• 旺旺平台:自主开发;最高在线942w,全年可用
  99.97%,机器数1469台,服务了淘宝和B2B
• 服务器平台:Nginx 部署130个应用,约2000台机器
  ,占有率20%;完成TMD等重要基础模块,Tengine
  项目开源
                                     8
主要模块所采用的软件(3)

• 底层的支撑软件:
 –在OpenJDK基础上开发和维护Taobao JVM
 –在Red Hat基础上维护自己的Linux内核
 –在Sheepdog上实现了KVM的虚拟化弹性计算平台
 –在LVS基础上实现负载均衡解决方案
 –用开源软件实现了高流量的网络镜像项目


• 可以说淘宝网平台建立在开源软件和自主开发的
  基础上。

                               9
议程




一、淘宝网的简介

二、淘宝软件基础设施

三、事例:图片存储、CDN与DB

四、淘宝开源策略

五、小结



                   10
2007年之前的图片存储系统
                 Upload Server          Admin Server        Image Server


                                                                                                     滨江联通备份中心




                                                                                         SnapVault
                                                                                         远程数据冗灾
             SnapMirror                                       SnapMirror




                                                                                                       NearStore R200
                                                                                                       DR: A+B+C+D

SnapShot                     SnapShot           SnapShot                     SnapShot
              FAS980C                                         FAS980C
           A: Online Image                                 C: Online Image
                                                           D: Online Image
           B: Online Image
                                                                                        注:红框中设备是2006年的新增设备,
                                 杭州网通 IDC                                               明年还得在原有的 NetApp 980C/R200
                                                                                                            11
                                                                                        存储上增加 20TB 左右新的硬盘容量。
商用产品无法满足需求

• 系统需求
  淘宝的影响越来越大,数据的安全也更加重要
  数据存储量以每年二倍的速度增长(即原来的三倍)
• 商用存储产品
  对小文件的存储无法优化
  文件数量大,网络存储设备无法支撑
  连接的服务器越来越多,网络连接数已经到达了网络存储设
   备的极限
  扩容成本高,10T的存储容量需要几百万¥
  单点,容灾和安全性无法得到很好的保证

                             12
TFS 1.0

• 2007年6月
 淘宝自主开发的分布式的文件系统
 TFS(Taobao File System)1.0上线运行
 主要解决海量小文件的分布式存储
 集群规模:200台PC Server(146G*6 SAS 15K Raid5)
 文件数量: 亿级别
 系统部署存储容量: 140 TB
 实际使用存储容量: 50 TB
 单台支持随机IOPS 200+,流量3MBps

                                            13
TFS 1.0的逻辑结构




               14
TFS1.0的特性

•   集群由主备Name Server和多台Data Server构成
•   Data Server运行在挂很多硬盘的Linux主机上
•   以block文件的形式存放数据文件(一般64M一个
    block)
•   文件名内置元数据信息,用户自己保存TFS文件名与
    实际文件的对照关系 – 使得元数据量特别小
    •   如T2auNFXXBaXXXXXXXX_!!140680281.jpg,名字中含有
        逻辑的block_no和object_no等
•   block存多份保证数据安全
•   利用ext3文件系统存放数据文件
•   磁盘raid5做数据冗余
                                                15
TFS 1.3

• 2009年6月
 TFS(Taobao File System)1.3上线运行
• 集群规模(2010.8.22)
   440台PC Server (300G*12 SAS 15K RPM) + 30台PC
    Server (600G*12 SAS 15K RPM)
   文件数量: 百亿级别
   系统部署存储容量: 1800 TB
   当前实际存储容量: 995TB
   单台Data Server支持随机IOPS 900+,流量15MB+
   目前Name Server运行的物理内存是217MB(服务器
    使用千兆网卡)
                                              16
TFS1.3的逻辑结构

       Application/Client                       Mysql Dup Store

                                                    filename   crc,size
                                                    refcount
Data




                    block id, file id/      NameServer                                      NameServer
                    allocate                                              HA heartbeat

                    dataserver id
                    (block id, file id)


                                          heartbeat message               control message
                                                               heartbeat message

                                                DataServer                        DataServer
                                             dsp1       dsp2    dsp3           dsp1      dsp2   dsp3

                                              hda        hda     hda           hda        hda    hda

                                                                                                         17
TFS1.3的特性

• TFS1.3提供了一些重要的功能特性
  所有的元数据全部都内存化
  清理磁盘空洞
  容量和负载的均衡策略
  平滑的扩容
  数据安全性的冗余保证
  几秒内完成Name Server故障自动切换
  容灾策略
  性能大幅提升


                            18
TFS的发展

• TFS在2010年9月开源,希望更多人来使用和改进
• TFS 2.0已经在生产系统中使用
 –支持大文件存储
 –在外围通过MySQL向应用提供目录支持
 –加入资源中心,控制集群级别的权限
• 后续开发
 –优化性能,提高扩展性,降低存储成本
 –分级存储机制(SSD/SATA),动态文件迁移
 –RAID或Erasure Code等

                            19
议程




一、淘宝网的简介

二、淘宝软件基础设施

三、事例:图片存储、CDN与DB

四、淘宝开源策略

五、小结



                   20
淘宝CDN系统的研发

• 主要解决现有的问题
 –商用产品的性能瓶颈、功能欠缺,以及不稳定性
 –整个系统的规模、性能、可用性和可管理性
• 开发完全自主的CDN系统
 –CDN节点的新架构和优化
 –CDN监控平台
 –全局流量调度系统支持基于节点负载状态调度和基于
  链路状态调度
 –CDN实时图片删除
 –CDN访问日志过滤系统
 –配置管理平台
                            21
CDN节点的架构对比-老架构
 client
          VIP1                     VIP2

NetScaler(7LB)             NetScaler(7LB)



 频道1             频道2   频道      …            频道n




squid     squid        squid       …         squid



                                                     22
                       源站
CDN节点的架构对比-新架构
  client
              VIP1                      VIP2
                       心跳
        LVS(L4)                     LVS (L4)


Haproxy(L7)           haproxy(L7)         Haproxy(L7)




                      所有频道统一调度



squid         squid        squid         …          squid




                          源站                                23
CDN节点的架构对比

 对比项  节点        新架构            老架构
流量分布均匀性         ☆☆☆☆☆           ☆☆☆
  可维护性           ☆☆☆            ☆☆☆
  抗攻击能力          ☆☆☆☆           ☆☆☆☆
 自主控制能力         ☆☆☆☆☆           ☆☆☆
   价格           ☆☆☆☆☆           ☆☆☆
  扩展能力          ☆☆☆☆☆            ☆☆
   灵活性          ☆☆☆☆☆            ☆☆

•流量分布均匀性:所有的频道统一调度到128台squid,而不是将squid按频
道分组,可提高命中率2%以上
•扩展能力:在一个VIP上新架构可以扩展到近100G的流量(当然要用万兆
网卡)
•灵活性:一致性Hash调度方法使得增加和删除服务器非常方便,只有
1/(n+1)的对象需要迁移
Squid改进和优化
• 在COSS存储系统基础上实现了TCOSS,FIFO加上按一
  定比例保留热点对象,支持1T大小的文件
• Squid内存优化,一台Squid服务器若有一千万对象,
  大约节省1250M内存,更多的内存可以用作memory
  cache
• 用sendfile来发送缓存在硬盘上的对象,加上page
  cache,充分利用操作系统的特性
• 针对SSD硬盘,可以采用DIRECT_IO方式访问,将内存
  省给SAS/SATA硬盘做page cache
• IO优化到平均一个请求需要做约0.9个IO操作
• 在Squid服务器上使用SSD+SAS+SATA混合存储,实现
  了类似GDSF算法,图片随着热点变化而迁移


                                25
热点迁移的数据对比(1)

• 简单按对象大小划分:小的进SSD,中的放SAS,大的
  存SATA
• SSD + 4 * SAS + SATA上的访问负载如下:
 [root@cache161 ~]# iostat -x -k 60 | egrep -v -e “sd.[1-9]”
 …
 avg-cpu: %user %nice %system %iowait %steal %idle
        3.15 0.00 5.63 11.35 0.00 79.87

 Device:     rrqm/s    wrqm/s r/s w/s rkB/s        wkB/s avgrq-sz avgqu-sz await svctm %util
 sda         15.40     1.17 50.66 2.63 2673.22    124.85 105.01     0.55 10.39 6.27 33.41
 sdb          0.07    0.03 447.29 1.02 4359.01     191.90 20.30      0.32 0.71 0.27 12.13
 sdc         5.73     1.53 114.93 8.42 1264.86    100.58 22.14      1.05 8.48 3.56 43.94
 sdd          5.57    2.07 121.83 9.57 1319.45     104.12 21.67      1.19 9.02 3.63 47.72
 sde          5.53    1.45 111.45 8.52 1246.53     101.92 22.48      0.95 7.88 3.42 41.06
 sdf         5.45     2.02 118.93 8.00 1281.92    106.25 21.87      1.19 9.37 3.74 47.44



 其中:黑色为SATA,绿色为SSD,红色为SAS
 4块SAS硬盘上的访问量和超过SSD硬盘上的访问量
                                                                                           26
热点迁移的数据对比(2)

• 按对象访问热点进行迁移:最热的进SSD,中等热度
  的放SAS,轻热度的存SATA
• SSD + 4 * SAS + SATA上的访问负载如下:
 [root@cache161 ~]# iostat -x -k 60 | egrep -v -e “sd.[1-9]”
 …
 avg-cpu: %user %nice %system %iowait %steal %idle
        3.15 0.00 5.63 11.35 0.00 79.87

 Device:      rrqm/s    wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
 sda          5.08     1.65 18.55 2.52 1210.07 119.00 126.18  0.14 6.50 5.46 11.51
 sdb          1.68     0.05 610.53 1.75 6962.29 413.47 24.09   0.28 0.46 0.23 14.25
 sdc          0.22     0.03 28.87 0.97 1172.93 189.13 91.31  0.16 5.28 4.40 13.13
 sdd          0.23     0.02 29.70 0.77 1133.47 122.53 82.45   0.15 4.99 4.39 13.37
 sde          0.18     0.03 28.23 1.03 1078.73 206.27 87.81  0.15 5.00 4.24 12.40
 sdf          0.10     0.02 28.42 0.55 1090.27 115.00 83.22  0.15 5.04 4.44 12.86


 其中:黑色为SATA,绿色为SSD,红色为SAS
 SSD硬盘上的访问量是4块SAS硬盘上访问量之和的5倍以上,SAS和SATA
 的硬盘利用率低了很多
                                                                                     27
淘宝CDN系统

• CDN服务的图片规模
 –约1000T容量的原图 + 1000T容量的缩略图
 –约1100亿左右的图片数,平均图片大小约为18K
• CDN部署规模
 –103个节点,每个节点目前处理能力在10G或以上
 –CDN部署的总处理能力已到1000G以上
 –目前承载淘宝流量高峰时856G,含集团子公司的流量
• CDN功能
 –支持图片、视频和静态数据;支持动态页面加速
 –L1-Cache字节命中率为96~98%,L2-Cache的为70~80%
  ,大大改善用户的访问体验,节约回源带宽
 –针对教育网的CDN部署优化:BGP解决LDNS乱设问题
                                      28
CDN系统的发展

• CDN系统的研发与运维
 –持续提高节点性能(应用软件、操作系统等)
 –优化GTM全局调度系统
 –节点间应用级路由
 –持续提高CDN系统可运维性,完善CDN内容管理系统
• CDN系统的建设
 –随着系统规模不断增大,正在建设中型和大型节点
 –定制化和快速部署



                           29
议程




一、淘宝网的简介

二、淘宝软件基础设施

三、事例:淘宝核心数据库

四、淘宝开源策略

五、小结



               30
商业解决方案

• IOE= IBM + Oracle + EMC
• 优点:
  –稳定,功能非常强大
  –支持完善,方便运维
• 缺点:
  –License贵,软硬件成本高
  –集中式架构,不利扩展
  –软件黑盒子



                            31
MySQL发展

• 2008年开始周边的数据库使用MySQL
• 2010年 组建数据库开发团队
 –结合高速的非易失存储设备,多层优化MySQL
 –实现分库分表的TDDL中间件成熟
 –核心业务开始迁移到MySQL
• 2011年 核心数据库迁移到基于MySQL解决方案
 –商品库:MySQL 16*2
 –交易库:MySQL 16*2,IOE成本是2千万,现在成本是
  近400万,TPS从9000提升到12.8万

                               32
经验

• 商用软件不能满足大规模系统的需求
• 采用开源软件与自主开发相结合,有更好的可控
  性,更高的可扩展性
• 规模效应,研发投入都是值得的
• 在软件和硬件多个层次
  优化,优化是长期持续
  的过程
• 先平台后业务 vs 先业务
  后平台,后者更顺
 –发挥边际效应,提高资源
  利用率                     33
议程




一、淘宝网的简介

二、淘宝软件基础设施

三、事例:图片存储、CDN与DB

四、淘宝开源策略

五、小结



                   34
淘宝开源策略

• 淘宝系统中使用大量的开源软件,并在开源软件
  的基础上进行改进和定制,并把工作成果回馈给
  上流的开源社区
 –淘宝维护了自己的Linux内核树并不断地向Linux社区贡
  献patch,目前淘宝在对Linux内核贡献补丁数的公司
  排名为115
 –签署OCA,向Oracle回馈了JVM的补丁和MySQL的
  补丁
 –向Apache回馈hadoop、hbase和Traffic Server的
  补丁
 –向Nginx回馈补丁,并开源了基于Nginx的Tengine服
  务器等
                                      35
内核贡献公司排名




           36
淘宝开源策略

• 淘宝建设了淘蝌蚪开源平台,开源多年开发主力
  的基础软件
 –2010.6开源了分布式缓存和K/V系统TAIR
 –2010.9开源了分布式存储系统TFS
 –2011.8开源了海量数据库OceanBase
 –分布式数据库中间件 TDDL
 –异构数据源数据交换工具 DataX
 –性能分析工具 TProfiler
 –手机自动化测试框架Athrun
 –分布式任务调度引擎TBSchedule等等。
                             37
淘宝开源平台




         38
定制的低功耗服务器
                 •   每个热插拔模块2个nodes
                 •   每个NODES 3块硬盘
                 •   支持 24 x 2.5” SATA/SSD
                 •   选择2U 8 nodes 的原因:
                     – SuperServer: 2U 8 nodes 支持热插拔设
                       计。
   (背面)              – 降低功耗(2U 8nodes 共享4个系统FAN)
                     – 成本更低(8nodes共享1个机箱,1u
                       4nodes 共享1个机箱)
                     – 2U TWIN机箱和所使用的主板是成熟产品
                 • 单服务器配置:
                     – Intel® Atom™ D525 with 2 cores
                     – Intel® ICH9R Chipset
一个板卡集成两个服务器系统        – 4GB memory DDR23 800MHZ SO-
                       DIMM w/o ECC
                     – LAN: Intel 82574L 2*1GB
                     – HDD:
                         •   1* SSD 80G ,
                         •   2* 2.5” SATA 500GB
 (正面,24个可插拔硬盘)
低功耗服务器开源

• 开源网站 http://www.greencompute.org/




                                      40
GreenCompute开源项目

• 目标是推动互联网整体硬件基础设施(包括服务
  器、网络设备、IDC机房、机架和电源等)的节
  能环保;
• 组织方式是采用多方合作的机制吸纳业内同行共
  同参与该项目,
• 运转方式是根据不同的设施类型分成不同的子项
  目,分别有特定的参与方负责推动在该方向上“
  绿色”设备的定制化、产品化和规模化;
• 成果将以开源的方式发布到项目网站上供业内的
  人士参考。
                           41
议程




一、淘宝网的简介

二、淘宝软件基础设施

三、事例:图片存储、CDN与DB

四、淘宝开源策略

五、小结



                   42
小结

• 淘宝是开源系统的受益者,并积极参与开源生态
  系统的建设,促进开源生态系统的发展,积累更
  好的口碑,凝聚人才,迎接未来更大的技术挑战
  。
• 淘宝公司希望以更开放的方式与业界一起进行技
  术创新




                          43
讨论

• Q&A
• 谢谢!




             44

More Related Content

PDF
Taobao图片存储与cdn系统到服务
PDF
低功耗服务器定制与绿色计算
PDF
稳定、高效、低碳 -淘宝软件基础设施构建实践
PDF
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
PDF
Taobao海量图片存储与cdn系统 v2-系统架构师
PDF
淘宝图片存储与Cdn系统
PDF
淘宝软件基础设施构建实践
PPTX
Memcached vs redis
Taobao图片存储与cdn系统到服务
低功耗服务器定制与绿色计算
稳定、高效、低碳 -淘宝软件基础设施构建实践
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师
淘宝图片存储与Cdn系统
淘宝软件基础设施构建实践
Memcached vs redis

What's hot (14)

PDF
使用LVS集群架设高可扩展的网络服务
PDF
Taobao数据库这5年
PPTX
淘宝双11双12案例分享
PDF
利用统一存储获得无与伦比的速度,简化系统,并节省更多
PPT
淘宝网架构变迁和挑战(Oracle架构师日)
PPTX
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
PDF
淘宝软件基础设施构建实践
PDF
MySQL5.6&5.7 Cluster 7.3 Review
PPT
淘宝Java中间件之路 it168
PPT
Java@taobao
PDF
Linux二十周年 -致辞
PDF
MySQL 高可用方案及成功案例
PDF
美团点评技术沙龙010-点评RDS系统介绍
PPTX
Couchbase introduction - Chinese
使用LVS集群架设高可扩展的网络服务
Taobao数据库这5年
淘宝双11双12案例分享
利用统一存储获得无与伦比的速度,简化系统,并节省更多
淘宝网架构变迁和挑战(Oracle架构师日)
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
淘宝软件基础设施构建实践
MySQL5.6&5.7 Cluster 7.3 Review
淘宝Java中间件之路 it168
Java@taobao
Linux二十周年 -致辞
MySQL 高可用方案及成功案例
美团点评技术沙龙010-点评RDS系统介绍
Couchbase introduction - Chinese
Ad

Similar to 开源+自主开发 - 淘宝软件基础设施构建实践 (20)

PDF
淘宝对象存储与Cdn系统到服务
PDF
Taobao海量图片存储与cdn系统
PDF
Taobao 海量图片存储与CDN系统02
PDF
Taobao海量图片存储与cdn系统
PDF
Taobao海量图片存储与cdn系统
PDF
Taobao base
PDF
淘宝软件基础设施构建实践
PDF
低功耗服务器定制与绿色计算——章文嵩(淘宝)
PDF
杜嵩 Arch summit2012 dusong@freewheel
PDF
美丽说的架构发展与变迁 New
PDF
20110625.【打造高效能的cdn系统】.易统
PDF
胡涛:Cdn支撑平台构建实践分享
PDF
阿里巴巴 林钰 网站存储经验谈
PDF
阿里巴巴 林钰 网站存储经验谈
PDF
张松国 腾讯微博架构介绍08
PDF
Linux运维趋势 第15期 虚拟化管理软件选型
PPT
关于Swsoft公司
PPT
大规模网站架构
PDF
Dreaming Infrastructure
PDF
企业应用与互联网的融合
淘宝对象存储与Cdn系统到服务
Taobao海量图片存储与cdn系统
Taobao 海量图片存储与CDN系统02
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
Taobao base
淘宝软件基础设施构建实践
低功耗服务器定制与绿色计算——章文嵩(淘宝)
杜嵩 Arch summit2012 dusong@freewheel
美丽说的架构发展与变迁 New
20110625.【打造高效能的cdn系统】.易统
胡涛:Cdn支撑平台构建实践分享
阿里巴巴 林钰 网站存储经验谈
阿里巴巴 林钰 网站存储经验谈
张松国 腾讯微博架构介绍08
Linux运维趋势 第15期 虚拟化管理软件选型
关于Swsoft公司
大规模网站架构
Dreaming Infrastructure
企业应用与互联网的融合
Ad

开源+自主开发 - 淘宝软件基础设施构建实践