优酷网视频存储架构

article/2025/8/6 21:05:45

视频分享网站总会面对这样两个问题:视频资源能否吸引网民以及视频浏览是否顺畅?中国互联网协会互联网数据中心发布的《2008上半年视频网站数据》显 示,2008年上半年,优酷网月度总访问时长突破1.1亿小时,通过与全行业的浏览时长比对,优酷网占据的时长份额已超过50%。Gomez中国网站用户 体验排行榜显示,2008 年7月1日到2008年7月31日,优酷网的平均响应时间是2.78秒。

1.1亿小时与2.78秒,正是这两个长短对比鲜明的数据,充分体现出优酷网“快者为王”的经营理念。近日,记者独家采访了优酷网CTO姚键,试图从技术 方面揭密优酷网的快字诀。

一切为了性能

“2007年,优酷网的用户访问量提升了25倍。”姚键说起这个增长仍显激动,“硬件设备同样有相应的增加。”据记者了解,目前优酷网有近千万个视频资 源,以每段视频20MB来计算,大约占据200TB的存储空间。优酷网采用服务器直连式存储(DAS)架构,即一台服务器只连接一台存储阵列。姚键透露, 优酷网目前有数千台服务器。

优酷网的服务器主要来自戴尔,还有一部分来自惠普。优酷网引进的戴尔服务器主要以 PowerEdge 1950与PowerEdge 860为主,存储阵列以戴尔MD1000为主。如上图所示,优酷网将PowerEdge 1950作为Web服务器和流媒体服务器,分别服务于页面系统与视频系统。另外,还有一些服务器作为转码服务器,将用户上传的视频进行解码和再编码,最后 做成统一的FLV格式。在存储层面,优酷网主要利用戴尔MD1000+ PowerEdge 860的组合,两者以DAS的方式相连,作为一个存储单元。

在回答记者提出的为何没使用网络存储,如SAN等架构时,姚键表示:“用户访问量持续成倍增长,对系统的性能、成本和可扩展性都造成了很大压力。采用 DAS存储可以更好地满足对性能的需要。如果采用SAN存储,不仅成本增加会十分明显,而且在系统变得日益庞大时,性能也会出现瓶颈。”

“为了提高用户的访问速度,我们想了很多办法。”姚键表示,“我们甚至都不用RAID。不采用RAID技术,可以节省很大的存储空间,同时减少成本,而且 能够提供更好的I/O性能。”据悉,目前优酷网的存储系统利用率都在90%以上。不用 RAID是否会给视频数据的安全带来不良后果?姚键表示:“由于优酷网采用了自建的内容分发网络(CDN)技术,所有视频在不同的城市都有副本,所以不用 担心数据的安全性。即使某地的一段视频发生了损坏,用户也可由实时的调度系统引导至其他CDN站点进行视频浏览。在优酷网的内容分发网络中,局部失效不影 响整体访问,实际上比存储网络的安全性更高。”

更大范围内的分级存储

自建的调度系统是优酷网实现快速访问体验的核心。优酷网将所有的服务器和存储设备分布在全国20多个CDN站点中,方便当地用户就近访问,以获得更快的视 频体验。

不像其他应用可提前计划,互联网访问具有很大的不可预知性,很难预测什么视频在哪段时间的访问会突然增加。因此,实时有效的调度系统就显得非常关键。在网 民访问优酷网的视频时,调度系统会根据该视频原本发布所在的位置、用户IP地址等信息安排网民就近访问,并会参考该站点的设备是否出现损坏、该地区是否是 访问热点等因素,以便使用户的浏览速度达到最快。正是有了高效的调度系统,优酷网才可以将 90%以上的带宽都提供给用户,而其他CDN系统提供给用户的带宽通常只有70%~80%。

“优酷网所有的视频在一周之内会被用户访问一遍。”姚键说,“因此,优酷网的数据区分在线、离线的意义不大,更不用像其他行业那样要把部分历史数据进行归 档处理。”事实上,优酷网对视频信息也会区别对待,只是区分的标准在于访问热度。访问频率高的视频会根据访问用户地址在各CDN站点间重新分布,并且会存 放在SAS硬盘上,而冷门视频则会存放在速率稍慢的SATA硬盘上。

用户连线

优酷网CTO姚键

技术是互联网的生命。由于设备急速增加,我们非常在意系统的成本、性能与可扩展性。我们没有使用最先进、最贵的系统,就像Google使用自己的文件系统 一样,不在乎贵不贵,而在乎是否合理运用。每台服务器或存储系统配多少块硬盘,文件块的大小为多少,我们都会做详细测试,以实现更佳的性能配置。

大小: 115.19 K
尺寸: 500 x 258
浏览: 74 次
点击打开新窗口浏览全图

 

快速崛起的视频网站

根据知名调研机构AC尼尔森公司的数据:优酷网日视频播放量(VV)在2007年12月就突破1亿,每 日独立访问用户数量(UV)超过1200万。最新的数据是优酷网的VV已经达到1.5亿,UV超过2500万。“在一定的周期内,硬件平台的性能必将会发 挥到极限,但此时用户的需求仍持续性地高速增长,这就需要最新技术和最新产品要跟得上甚至超过我们的步伐。我们每年都会经历几次‘向硬件要性能’的阶 段。” 优酷网采购经理赵辉先表示。

“我们重视新技术,例如对SSD(固态硬盘)就很渴望。我们非常看重SSD的I/O能力,其随即读写速 度非常高,这是现有所有硬盘都达不到的。我们渴望这种新的硬盘能迅速应用到新的服务器中。” 赵辉说。

目前优酷网采用的是基于Flash的视频点播技术,这与P2P直播/点播有所不同,前者所有流量都来自 服务器。因此优酷网相比其他网站,更需要大量存储和流媒体服务器。
 
基于此,优酷网对硬件设备供应商的要求主要有以下几点:

第一, 供货期短。硬件设备的供货是否及时,对发展迅猛的互联网企业而言生死攸关。用赵辉先生的话说,“我们要求供应商能迅速供货,而不是坐等。在互联网行业,等 待往往就意味着死亡。”供货期尽可能地短,成为其选择供货商的首要因素。

第二, 产品线完备。一方面,互联网行业是对新技术有着强烈需要的行业,渴望最新的技术能迅速应用到成熟的硬件产品中;另一方面,“适合的就是最好的”,考虑到成 本等因素,优酷网还需要一些虽然不是“最好的”,却是最“适合的”产品,这就要求硬件设备供应商的产品线齐全,用赵先生的话说就是,“我们要的设备,供应 商都要有。”

第三, 由于运营成本高,性价比也是优酷网需要考虑的重点。最后,由于优酷网的服务器分布在全国各地,远程管理与7X24小时现场服务等优质的技术支持与服务也是 优酷网必需的。

服务器应用

目前,优酷网主要采用dell PowerEdge 1950、PowerEdge 860,存储阵列以dell MD1000为主。这些设备的主要配置如下:

PE1950采用英特尔至强5310处理器,4G内存,两块300G SAS硬盘。PE860采用英特尔至强3060处理器,4G内存,一块80G SATA硬盘。MD1000存储阵列则装载有15块750G SATA硬盘。

在体系结构上,优酷网采用分布式的结构,服务器和存储设备分布在全国各地,用户就近访问,获得最快的视 频体验。

优酷网将PE1950作为Web服务器和流媒体服务器,分别服务于页面系统与视频系统。页面系统用以展 示用户信息、积分、留言及视频的截图、排名、展示等,该系统所用的服务器数量只占20%左右,80%的服务器都是用于视频系统的流媒体服务器,它们通过负 载均衡的方式为用户提供流媒体服务。

优酷网视频系统的加速机制较复杂,简单而言,它通过多种方式保证分布在全国各地的用户进行就近访问—— 用户点击视频请求后,优酷网将根据用户所处地区位置,将离用户最近、服务状况最好的视频服务器地址传送给用户,从而保证用户可以得到快速的视频体验。另 外,还有一些服务器作为转码服务器——由于用户上传的视频格式很不统一,大小也不一样,就需要转码服务器首先进行解码,解码后再编码,最后做成flash 文件,即统一的Flv格式。转码服务器在做完这些工作后,进行分发,存储,最后再通过流媒体服务器将视频传送给用户。

在存储层方面,与服务器层面的“就近访问”相对应,优酷网的存储则是采用“分布式存储”,即利用 “MD1000+PE860”的组合,将视频数据都存储在服务器所处的全国各大城市。MD1000与PE860以DAS(直连存储)的方式相连,作为一个 存储单元,每个存储单元之间各自为阵,不存在关联——一台PE860服务器只连接一台MD1000存储器。


http://chatgpt.dhexx.cn/article/YEXxl97f.shtml

相关文章

Java实现简单在线播放器——支持优酷和土豆

今天本来是打算继续写“Java新浪微博客户端开发”的,也实现了“系统托盘”,“点击查看大图”的功能,写到一半,想起上篇博文中有CSDN有一网友提及客户端中播放微博的视频的功能,自己之前完成的客户端也没实现这功能&…

优酷弹幕穿人「渲染技术」揭秘

弹幕穿人功能,能使用户在弹幕刷屏的情况下,又不错过人物画面。因此,弹幕穿人功能一经推出就受到了广大用户的喜爱。 就技术方案而言,弹幕穿人方案可以分为以下两大类:“云端离线人体分割端侧渲染”和“端侧实时人体分割…

学习笔记:RTC时钟

学习笔记:RTC时钟 1.什么是RTC (1) RTC是个独立的定时器。RTC拥有一个连续计数的计数器。 (2)注意:RTC模块和时钟配置系统(RCC_BDCR寄存器)工作在后备区域,系统断电或者复位不会影响RTC的设置和事件&…

STM32-RTC实时时钟

RTC实时时钟 RTC(Real Time Clock)是个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期。 RTC模块和时钟配置系统(RCC_BDCR寄…

STM32的RTC时钟的获取

STM32的RTC时钟的获取 硬件 1.STM32F103RCT6最小系统板(mini) 2.下载器(我这里使用的ST-linkV2) 3.纽扣电池 软件 1.keil5 (MDK) 2.STM32CuBe MX(因为比较方便嘛,其实也可以拖库&…

STM32 RTC时钟掉电日期不更新 STM32 HAL库RTC时钟配置

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 STM32 RTC时钟掉电日期不更新 & STM32 HAL库RTC时钟配置 一、STM32CubeMX RTC配置二、RTC初始化三、RTC日期掉电不更新(F1...这里暂时只考虑F103,其他系列未测…

STM32CubeMX | 基于STM32使用HAL库驱动RTC时钟及闹钟功能

STM32CubeMX | 基于STM32使用HAL库驱动RTC时钟及闹钟功能 目录 STM32CubeMX | 基于STM32使用HAL库驱动RTC时钟及闹钟功能(一)工程配置(二)代码编写(三)运行效果 本章实现效果: RTC时钟获取周期…

STM32G4之RTC实时时钟

文章目录 前言一、RTC介绍二、STM32CubeMX配置三、部分源码总结 前言 一、RTC介绍 STM32 的 RTC 外设(Real Time Clock) ,实质是一个掉电后还继续运行的定时器。STM32G4 的 RTC,是一个独立的 BCD 定时器/计数器。 RTC 提供一个日历…

什么是RCT实时时钟?(STM32中RTC时钟源)

什么是RCT(Real Time Clock,实时时钟)? 一、RTC时钟简介 RTC(Real Time Clock,实时时钟)是指安装在电子设备或实现其功能的IC(集成电路)上的时钟,一般会是集成电路&am…

STM32:RTC实时时钟原理

RTC (Real Time Clock):实时时钟 RTC是个独立的BCD定时器/计数器。RTC 提供一个日历时钟,两个可编程闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志。RTC还包含用于管理低功耗模式的自动唤醒单元。 两个32位寄存器包含二进码十进制格式…

STM32物联网项目-RTC时钟

RTC时钟 RTC简介 实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系…

十九、RTC实时时钟

一、.RTC实时时钟工作框图 RTC 由两个主要部分组成,第一部分(APB1 接口)用来和 APB1 总线相连。此单元还包含一组 16 位寄存器,可通过 APB1 总线对其进行读写操作。APB1 接口由 APB1 总线时钟驱动,用来与 APB1 总线连接。 RTC_PRL设置100&a…

STM32 RTC时钟读取时间

文章目录 一、RTC简介1.1 RTC1.2 RTC特征1.3 RTC原理框图1.4 RTC工作流程1.5 RTC时钟选择1.6 RTC复位过程1.7 RTC中断 二、CubeMX配置2.1 RCC配置2.2 SYS配置2.3 RTC配置2.4 串口配置2.5 时钟配置2.6 生成项目代码 三、代码编写3.1 重写printf3.2 RTC_HAL库函数/*设置系统时间*…

STM32 RTC实时时钟

我用的是STM32库函数:两个知识点: 一、RTC时钟框图分析(重要) 二、时间是怎样显示出来的(简析) 一、RTC时钟框图分析(重要) 先熟悉一下几个知识点: …

STM32之RTC时钟,闹钟,日历

RTC时钟的一些功能介绍 RTC时钟即实时时钟,它提供了用于管理所有低功耗模式的自动唤醒单元,还提供了具有可编程闹钟中断功能的日历时钟/日历。 并且可以自动将月份的天数补偿为 28、29(闰年)、30 和 31 天。并且还可以进行夏令时…

深入学习RTC时钟库 DS1302

❤️博主介绍❤️ 😬 作者:单片机菜鸟哥 👉火爆博客:ESP8266 Arduino教程 零基础从入门到熟悉Arduino平台下开发ESP8266,同时会涉及网络编程知识。专栏文章累计超过60篇,分为基础篇、网络篇、应用篇、高级篇…

深入学习 RTC时钟库 DS3231

❤️博主介绍❤️ 😬 作者:单片机菜鸟哥 👉火爆博客:ESP8266 Arduino教程 零基础从入门到熟悉Arduino平台下开发ESP8266,同时会涉及网络编程知识。专栏文章累计超过60篇,分为基础篇、网络篇、应用篇、高级篇…

rtc时钟

一、设计效果 配置RTC时钟,初始化为2000年1月1日00:00:00;通过RTC时钟秒中断串口每秒打印一次当前时刻,并切换一次流水灯状态;配置闹铃为10:00:05,在闹铃中断中每秒切换一次蜂鸣器状态闹铃,直到按KEY1关闭…

RTC时钟实现实时日历

文章目录 1、RTC时钟简介1.2、初识RTC1.2、相关寄存器 2、创建项目23、完善代码4、总结 1、RTC时钟简介 1.2、初识RTC 1、简介: RTC—real time clock,实时时钟,主要包含日历、闹钟和自动唤醒这三部分的功能,其中的日历功能我们使…

STM32之RTC时钟

前言 了解实时时钟RTC的原理。STM32芯片自带RTC,因此不须像其他MCU需外接RTC模块。请编程实现STM32的日历读取、设置和输出。要求: 1)读取RTC初始时间,验证是否为 1970年1月1日零分零秒; 2)将RTC时间调整为…