技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统架构 --> 淘宝图片存储架构

淘宝图片存储架构

浏览:9838次  出处信息

    今天中午花一小时看了下章文嵩博士写的<淘宝海量图片存储与CDN系统>,没有做过大容量的存储系统,也没有做过分布式的应用,只是从学习的角度去思考下未来可能学习的方向和一些点.

    对比公司的图片服务,其实在技术实现上都有共性:

    1:imageserver:

    (1)缓存和图片处理

    具体使用apache和nginx都无所谓,imageserver的负载在于图片的转换,以及部分中间缓存的读取.

    GraphicsMagick可以未来尝试使用,另外为提高imageserver的命中率通过lvs做七层的定位.

    最核心的是使用nginx编写的图片处理和具有缓存功能的模块.

    我们目前使用的是本地文件做缓存,稍微差了点.

    (2)压缩比

    imageserver核心的一个功能是图片处理,对于专业类的图片网站,是比较重视图片质量的.一般对于后缀名和动态gif压缩的时候都需要注意

    (3)L1缓存

    一般imageserver称为L1缓存,注意其的图片索引策略和读取磁盘方式.

    2:TFS

    图片服务最重要的就是后端的存储系统,有这么几个特点:

    (1)容量的无限增长.

    (2)读取量极大,高随机iops和吞吐量.

    (3)后端存储的备份,容灾,迁移策略.在数据量激增的情况下能够比较方便的扩容.

    (4)均衡策略,比如数据具体的存储和读取策略

    类似这样的需求一般可以购买高端的阵列来解决(我们公司就是这样做的),我想tfs的存在主要在于成本的解决.

    其中有二个重要特性:

    (1)元数据的使用:主要是图片meta数据同具体存储位置的定位,一般可以通过memcachedb和mysql来解决.

    元数据的存在能够是存储量大大减少(比如很多用户都会上传同样的图)

    (2)小文件存储的一些特点,经常听到块的概念(比如memcached)

    成本也是tfs存在的主要原因:主要通过普通pc做横向扩展,普通的exts文件系统,raid5做数据冗余

    查看下tfs2的计划:主要还在于锦上添花的功能,比如分配存储,分级存储机制...

    3:CDN

    开始有点疑惑,一直认为这是图片架构的一部分,其实是独立于图片架构的,说到底是前端的Squid.

    仔细看CDN,其实主要解决的是下面几个问题:

    (1)节点的可伸缩性

    (2)调度系统

    (3)灵活性:主要使用一致性hash

    (4)Squid的内存优化策略和淘汰策略优化

    其中比较有特点的是:

    (1)sendfile发送方式和SSD的使用.

    CDN主要的特点:

    (1)命中率

    (2)定制化和快速部署,离用户更近的小节点.

    4:产品层面,技术层面感兴趣的几点:

    (1)明天图片上传数量,平均图片大小,普遍图片策略

    (2)L1,L2和存储设备的iops和带宽,吞吐量.容量大下

    (3)各级缓存的命中率.

    几个概念:

    iops:每秒i/o操作次数

    sas:设备读取接口方式

    rpm:每分钟磁盘转速

    DELL R710

    后记:

    对于大型网站,主要处理的数据,所以一个后端存储系统的重要性不言自明.

建议继续学习:

  1. HFile存储格式    (阅读:14538)
  2. 图片动态局部毛玻璃模糊效果的实现    (阅读:13592)
  3. 我对技术方向的一些反思    (阅读:9874)
  4. 海量小文件存储    (阅读:7558)
  5. 解决IE6从Nginx服务器下载图片不Cache的Bug    (阅读:7099)
  6. HBase技术介绍    (阅读:6760)
  7. When we`re only No.2, we try harder之聊天表情设计小探讨    (阅读:6507)
  8. 精于图片处理的10款jQuery插件    (阅读:6220)
  9. 存储基础知识之——硬盘接口简述    (阅读:6157)
  10. phpThumb:强大的缩微图类    (阅读:5460)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1