1 / 32

视频 CDN 系统建设关键要点探讨

视频 CDN 系统建设关键要点探讨. 夏彦刚 乐视网 -CDN 技术专家 2012 年 11 月. 1 、硬件商务 预算 2 、 文件分发系统 3 、智能调度系统 4 、 WEB 服务器. 摘要. 视频 CDN 系统建设关键要点探讨. 案例简述 : 网络视频是如今十分主流的应用,视频播放的流畅度和稳定性尤为重要。 CDN 系统在提升用户体验方面起着十分重要的作用,本案例主要是剖析视频 CDN 系统建设的主要要点: CDN 系统的服务器带宽采购、文件分发、调度系统、 WEB 服务器等内容 b) 设计目标 :

Download Presentation

视频 CDN 系统建设关键要点探讨

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 视频CDN系统建设关键要点探讨 夏彦刚 乐视网-CDN技术专家2012年11月

  2. 1、硬件商务预算 2、文件分发系统3、智能调度系统4、WEB服务器 摘要

  3. 视频CDN系统建设关键要点探讨 • 案例简述: 网络视频是如今十分主流的应用,视频播放的流畅度和稳定性尤为重要。CDN系统在提升用户体验方面起着十分重要的作用,本案例主要是剖析视频CDN系统建设的主要要点:CDN系统的服务器带宽采购、文件分发、调度系统、WEB服务器等内容 b)设计目标: 自建一套稳定高可用、效果出色、易于管理和维护的视频CDN系统,提升用户的视频播放体验,提升公司的行业知名度和竞争力 • 自建CDN的优点: 免受市场价格波动的困扰,有利于成本降低,且可控性较高

  4. 行业分析

  5. 怎么做到的 主讲内容: (1)商务预算 (2)文件分发 (3)调度系统 (4)WEB服务器

  6. 1.1 商务预算之带宽 系统容量:满足100万人同时在线播放视频 • 带宽需求 A.标清:350kbps*100,0000=350Gbps B.高清:800kbps*100,0000=800Gbps • 实际带宽 A.未来业务发展可能会需要更多带宽 B.需要20%—30%冗余带宽备用,应对突发流量

  7. 1.2 商务预算之服务器 • 服务器数量 A.100,0000/100=10000 100台*并发连接10000 B.100,0000/1000=1000 1000台*并发连接1000 • 服务器性能分析 A方案:硬件要求过高,成本过高 B方案:普通服务器可支持,单机1000连接,1G带宽

  8. 1.3 商务预算之IDC部署 QQ用户实时在线分布图http://im.qq.com/online/index.shtml 部署原则: 1.用户分布密度 2.公司区域战略

  9. 2 文件分发系统要点 • 分发模式比较:push/pull • CDN节点分类 • 分层分发策略 • 分发网络模型构建 • 下载速度提升方案 • 文件一致性保障 • 分发状态记录

  10. 2.1 分发模式比较 我们的策略:PUSH+PULL,两种方式相结合,PUSH为主PULL为辅

  11. 2.2 CDN节点分类 (1)中心节点 • 存储节点,磁盘空间足够,方便扩容 • 分发的中心节点,最终源节点 • 服务区域中心节点未命中的请求 (2)区域中心节点 • 非全量文件,主要的分发源 • 服务边缘节点未命中的请求 • 具有较强的抗压能力,支持高并发访问 • 带宽充足,有SSD磁盘更好(高IO能力) (3)边缘节点 • 就近部署,离用户最近;服务80%以上用户 • 磁盘空间有限,仅存储热点内容 (4)第三方备用节点 • 网宿、蓝汛、快网、帝联……

  12. 2.3 分层分发策略(按节点) 按层次生成分发任务: 取源节点选择: • 根据各个IDC机房之间的网络选择 • 依据smokeping数据构建分发网络

  13. 2.3 分层分发策略(按热度)

  14. 2.4 分发网络模型构建(smokeping) smokeping特点: • Opensource(http://oss.oetiker.ch/smokeping/) • 多种探测方式,包括fping、echoping、dig、curl等 • 易用可扩展的插件 • master/slave的工作方式 • 有特色的alert设置

  15. 2.4 分发网络模型构建(smokeping)

  16. 2.5 下载速度提升方案 • 多协议下载,如:UDP/http(s)/ftp/BitTorrent/Metalink • 多源分片下载,如:P2P/P2SP • 下载工具推荐:wget/curl/aria2

  17. 2.6 文件一致性保障 注意事项: • 必须进行完整性校验,如size/MD5校验 • 文件要及时回写磁盘,防止机器断电文件损坏 • 定时进行对帐,校验文件的完整性,防止后期文件被篡改 • CDN节点过多,文件份数较多,修改文件容易导致不一致,建议重命名文件 • 记录已分发过的文件信息

  18. 2.7 文件状态记录 记录目的: (1)文件分发系统:需要知道哪些节点/服务器存在文件,从而决定文件如何在CDN节点之间复制;磁盘满时删除哪些文件 (2)CDN调度系统:可依据此信息进行“精准调度”,如只调度用户到存在文件的节点 记录方式: (1)实时上报:文件下载完成后/删除前上报状态 (2)全量上报:扫描所有磁盘文件上报到中心系统 (3)内存数据库:如memcache/membase/Redis

  19. 3 智能调度系统 GSLB定义: 全局负载均衡系统(Global Server of Load Balance),将用户的请求重新引导到离用户最近的节点,即内容路由系统 系统要点: • 服务器数据采集 • IP库收集与完善 • 访问节点列表生成 • 节点压力平衡方案 • 业务层QOS保障 • 防盗链方案 • 服务部署方案

  20. 3.1 服务器数据采集 (1)存活状态信息 A.中心主动探测:如中心请求服务器的80端口,探测是否响应 B.服务器主动上报:通过UDP方式上报心跳 (2)压力数据 A.带宽(本机/交换机) B.连接数 C.磁盘IO D.其他:Load/CPU等 (3)服务监控数据 A.开源软件:cacti/nagios/zabbix B.监控告警

  21. 3.2 IP库收集与完善 (1)自建IP库管理系统 A.IP导入:多格式支持,单IP导入,批量导入 B.IP管理:IP冲突解决方案,IP库日常变更维护 C.IP输出:多格式支持,如xml,接口,mysql表 (2)推荐IP库 • IP138:http://www.ip138.com/ • GeoIP:http://www.maxmind.com • QQ纯真IP库 • 腾讯IP地址查询接口http://fw.qq.com/ipaddress • 新浪IP地址查询接口http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js • 搜狐IP地址查询接口http://pv.sohu.com/cityjson • 谷歌IP地址查询接口http://j.maxmind.com/app/geoip.js • 淘宝IP地址查询接口http://ip.taobao.com/service/getIpInfo.php?ip=ip地址字串 • 乐视IP地址查询接口 http://g3.letv.cn/recommend?format=2

  22. 3.3 访问节点列表生成 • “线性规划”算法 解决问题:如何分配资源,使全局质量最优;开源项目glpk • 问题模型: 城市A B C 分别有用户 500 300 100 人 服务CDN节点 L M N 为他们提供服务 三个服务商的容量为 200 300 400 服务节点为三地提供服务的质量分别为 A L 90 M 80 N 70 B L 80 M 70 N 90 C L 70 M 80 N 90 求解:城市分别向各地分流多少人,才能使得服务质量最好 • 条件: A.资源:节点的容量能力:物理带宽/连接数 B.用户:每个地区的用户量,根据历史数据预判 C.质量表:每个地区的用户到每个节点的质量数据(历史)

  23. 3.3 访问节点列表生成 用户访问节点列表生成,内容路由表示例:

  24. 3.4 节点压力平衡方案 (1)节点之间压力平衡 A.节点分级调度B.节点容量放大 (2)节点内部压力平衡 • 超热点文件:轮询调度,平衡压力(要求所有服务器均分发文件) • 其他文件:hash算法,节省磁盘空间。两种算法并存才合理

  25. 3.5 业务层QOS保障 (1)业务分级 • 免费与付费 • 终端类型:手机/盒子/TV/PC • 产品:广告/直播/站外 • 码率:高清/标清 • 频道 (2)用户分级 • 国内用户/国外用户 • 北上广深/重点用户 • 直辖市/省会城市用户 • 其他地区用户

  26. 3.6 防盗链方案 (1)基于网站来源 根据Referer/User-Agent/Host头信息,设置黑白名单 缺陷:此类信息经常变化、增加,会导致误杀用户 (2)基于Cookie的防盗链 缺陷:部分浏览器不支持cookie写入操作,安全限制不允许操作 (3)基于URL和时间MD5变化 原理:将URL里面的关键字段MD5加密,同时加上URL过期时间限制。访问服务器时进行验证。可防止URL过期后使用,URL篡改等盗链 URL示例: http://gslb.letv.com/video.mp4?videoid=1487447 &time=1351565894&md5key=977722fec1785025c04a3d39de509604 Md5key=MD5(user-agent,filename,videoid,time,privatekey)

  27. 3.7 服务部署方案 GSLB是全局调度,需要解决单点故障。通过DNS+LVS实现:

  28. 4 Web服务器 • 三大WEB服务器对比分析(apache ,lighttpd,nginx) • http://bbs.phpchina.com/thread-204559-1-1.html • http://www.linuxany.com/archives/1368.html • 需要的功能 • 视频文件下载 • 视频拖放功能 • 心跳数据上报 • MISS消息转发 • 防盗链模块 • 其他功能:如直播,实时封装ts流

  29. And CDN系统:提供文件的分布式存储/访问,本身是一个大的分布式应用 (1)CDN节点:边缘节点分布在全国各地,已是分布式架构系统 (2)调度系统:全局负载均衡系统,是中心系统--考虑分布式

  30. 案例ROI分析 相关性(Relevance): 视频播放的流畅度直接影响用户体验,通过CDN系统加速,将大部分视频文件(90%以上)提前放在离用户最近的IDC机房,解决大量数据在公网上的传输,从而提升用户体验;此系统与用户体验相关性极高 原创性(Originality): CDN系统于1998年出现,是比较成熟的应用;国内大型的视频网站均有自建的CDN系统。商用系统如网宿、蓝汛等都十分成熟。虽然各家系统的实现原理基本相同,但是实现方案、细节并不透明;因此本系统里面部分内容具有原创性 震撼性(Impact): 著名的12306.cn网站如果没有CDN加速,将无法正常运行。因此CDN系统的重要性大家有目共睹

  31. 案例启示 CDN系统是成熟的分布式应用,分布式即去中心化的思想。 现在较为流行的“云”概念,即广义上的分布式思想体现。

More Related