320 likes | 597 Views
视频 CDN 系统建设关键要点探讨. 夏彦刚 乐视网 -CDN 技术专家 2012 年 11 月. 1 、硬件商务 预算 2 、 文件分发系统 3 、智能调度系统 4 、 WEB 服务器. 摘要. 视频 CDN 系统建设关键要点探讨. 案例简述 : 网络视频是如今十分主流的应用,视频播放的流畅度和稳定性尤为重要。 CDN 系统在提升用户体验方面起着十分重要的作用,本案例主要是剖析视频 CDN 系统建设的主要要点: CDN 系统的服务器带宽采购、文件分发、调度系统、 WEB 服务器等内容 b) 设计目标 :
E N D
视频CDN系统建设关键要点探讨 夏彦刚 乐视网-CDN技术专家2012年11月
1、硬件商务预算 2、文件分发系统3、智能调度系统4、WEB服务器 摘要
视频CDN系统建设关键要点探讨 • 案例简述: 网络视频是如今十分主流的应用,视频播放的流畅度和稳定性尤为重要。CDN系统在提升用户体验方面起着十分重要的作用,本案例主要是剖析视频CDN系统建设的主要要点:CDN系统的服务器带宽采购、文件分发、调度系统、WEB服务器等内容 b)设计目标: 自建一套稳定高可用、效果出色、易于管理和维护的视频CDN系统,提升用户的视频播放体验,提升公司的行业知名度和竞争力 • 自建CDN的优点: 免受市场价格波动的困扰,有利于成本降低,且可控性较高
怎么做到的 主讲内容: (1)商务预算 (2)文件分发 (3)调度系统 (4)WEB服务器
1.1 商务预算之带宽 系统容量:满足100万人同时在线播放视频 • 带宽需求 A.标清:350kbps*100,0000=350Gbps B.高清:800kbps*100,0000=800Gbps • 实际带宽 A.未来业务发展可能会需要更多带宽 B.需要20%—30%冗余带宽备用,应对突发流量
1.2 商务预算之服务器 • 服务器数量 A.100,0000/100=10000 100台*并发连接10000 B.100,0000/1000=1000 1000台*并发连接1000 • 服务器性能分析 A方案:硬件要求过高,成本过高 B方案:普通服务器可支持,单机1000连接,1G带宽
1.3 商务预算之IDC部署 QQ用户实时在线分布图http://im.qq.com/online/index.shtml 部署原则: 1.用户分布密度 2.公司区域战略
2 文件分发系统要点 • 分发模式比较:push/pull • CDN节点分类 • 分层分发策略 • 分发网络模型构建 • 下载速度提升方案 • 文件一致性保障 • 分发状态记录
2.1 分发模式比较 我们的策略:PUSH+PULL,两种方式相结合,PUSH为主PULL为辅
2.2 CDN节点分类 (1)中心节点 • 存储节点,磁盘空间足够,方便扩容 • 分发的中心节点,最终源节点 • 服务区域中心节点未命中的请求 (2)区域中心节点 • 非全量文件,主要的分发源 • 服务边缘节点未命中的请求 • 具有较强的抗压能力,支持高并发访问 • 带宽充足,有SSD磁盘更好(高IO能力) (3)边缘节点 • 就近部署,离用户最近;服务80%以上用户 • 磁盘空间有限,仅存储热点内容 (4)第三方备用节点 • 网宿、蓝汛、快网、帝联……
2.3 分层分发策略(按节点) 按层次生成分发任务: 取源节点选择: • 根据各个IDC机房之间的网络选择 • 依据smokeping数据构建分发网络
2.4 分发网络模型构建(smokeping) smokeping特点: • Opensource(http://oss.oetiker.ch/smokeping/) • 多种探测方式,包括fping、echoping、dig、curl等 • 易用可扩展的插件 • master/slave的工作方式 • 有特色的alert设置
2.5 下载速度提升方案 • 多协议下载,如:UDP/http(s)/ftp/BitTorrent/Metalink • 多源分片下载,如:P2P/P2SP • 下载工具推荐:wget/curl/aria2
2.6 文件一致性保障 注意事项: • 必须进行完整性校验,如size/MD5校验 • 文件要及时回写磁盘,防止机器断电文件损坏 • 定时进行对帐,校验文件的完整性,防止后期文件被篡改 • CDN节点过多,文件份数较多,修改文件容易导致不一致,建议重命名文件 • 记录已分发过的文件信息
2.7 文件状态记录 记录目的: (1)文件分发系统:需要知道哪些节点/服务器存在文件,从而决定文件如何在CDN节点之间复制;磁盘满时删除哪些文件 (2)CDN调度系统:可依据此信息进行“精准调度”,如只调度用户到存在文件的节点 记录方式: (1)实时上报:文件下载完成后/删除前上报状态 (2)全量上报:扫描所有磁盘文件上报到中心系统 (3)内存数据库:如memcache/membase/Redis
3 智能调度系统 GSLB定义: 全局负载均衡系统(Global Server of Load Balance),将用户的请求重新引导到离用户最近的节点,即内容路由系统 系统要点: • 服务器数据采集 • IP库收集与完善 • 访问节点列表生成 • 节点压力平衡方案 • 业务层QOS保障 • 防盗链方案 • 服务部署方案
3.1 服务器数据采集 (1)存活状态信息 A.中心主动探测:如中心请求服务器的80端口,探测是否响应 B.服务器主动上报:通过UDP方式上报心跳 (2)压力数据 A.带宽(本机/交换机) B.连接数 C.磁盘IO D.其他:Load/CPU等 (3)服务监控数据 A.开源软件:cacti/nagios/zabbix B.监控告警
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
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.质量表:每个地区的用户到每个节点的质量数据(历史)
3.3 访问节点列表生成 用户访问节点列表生成,内容路由表示例:
3.4 节点压力平衡方案 (1)节点之间压力平衡 A.节点分级调度B.节点容量放大 (2)节点内部压力平衡 • 超热点文件:轮询调度,平衡压力(要求所有服务器均分发文件) • 其他文件:hash算法,节省磁盘空间。两种算法并存才合理
3.5 业务层QOS保障 (1)业务分级 • 免费与付费 • 终端类型:手机/盒子/TV/PC • 产品:广告/直播/站外 • 码率:高清/标清 • 频道 (2)用户分级 • 国内用户/国外用户 • 北上广深/重点用户 • 直辖市/省会城市用户 • 其他地区用户
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)
3.7 服务部署方案 GSLB是全局调度,需要解决单点故障。通过DNS+LVS实现:
4 Web服务器 • 三大WEB服务器对比分析(apache ,lighttpd,nginx) • http://bbs.phpchina.com/thread-204559-1-1.html • http://www.linuxany.com/archives/1368.html • 需要的功能 • 视频文件下载 • 视频拖放功能 • 心跳数据上报 • MISS消息转发 • 防盗链模块 • 其他功能:如直播,实时封装ts流
And CDN系统:提供文件的分布式存储/访问,本身是一个大的分布式应用 (1)CDN节点:边缘节点分布在全国各地,已是分布式架构系统 (2)调度系统:全局负载均衡系统,是中心系统--考虑分布式
案例ROI分析 相关性(Relevance): 视频播放的流畅度直接影响用户体验,通过CDN系统加速,将大部分视频文件(90%以上)提前放在离用户最近的IDC机房,解决大量数据在公网上的传输,从而提升用户体验;此系统与用户体验相关性极高 原创性(Originality): CDN系统于1998年出现,是比较成熟的应用;国内大型的视频网站均有自建的CDN系统。商用系统如网宿、蓝汛等都十分成熟。虽然各家系统的实现原理基本相同,但是实现方案、细节并不透明;因此本系统里面部分内容具有原创性 震撼性(Impact): 著名的12306.cn网站如果没有CDN加速,将无法正常运行。因此CDN系统的重要性大家有目共睹
案例启示 CDN系统是成熟的分布式应用,分布式即去中心化的思想。 现在较为流行的“云”概念,即广义上的分布式思想体现。