杰士安视频服务器的服务策略

9850
发表时间:2018-08-23 10:51

VOD系统有两种方法为用户提供服务,服务器“推”模式和客户机“拉”模式,从而在客户机和服务器之间能够请求和发送视频数据。

(1)服务器“推”模式

大多数的VOD系统采用这种做法,建立起一个交互后,视频服务器以受控制的速率发送数据给客户,客户接受并且缓存到来的数据以供播放。一旦视频会话开始,视频服务器持续发送数据给客户直到客户发送请求来停止。

(2)客户机“拉”模式

request-response模式下,客户周期性地发送一个请求给某个服务器,请求传送一段特定的视频数据,服务器收到请求后,从存储器中检索数据并把它发送给客户,此时数据流是由客户驱动的。“推”模式下,需要服务器间的时钟同步,只要服务器的时钟是同步的,就可以应用基于轮转的调度算法;相反,“拉”模式下,由于系统中的服务器是自治的,服务器间不需要时钟同步。当客户的请求超过服务器的容量时,可以有两种解决方案。

第一种解决方案是把系统的存储容量加倍,把数据复制到另外几个服务器上以提高系统的性能,这种做法增大了系统的存储容量的需要,使服务提供端的成本上升,维护困难加大。

第二种解决方案是把完整的视频分成多个独立视频服务器上的一组阵列,把它们分别存储到不同的服务器中,不必复制视频数据就可以不断扩大vOD系统的服务规模,这称为并行VOD系统。

在并行视频服务器中,视频数据在多个服务器中分割,所以服务器均匀承担来自客户端的视频请求。这样,增加了系统容量,并且通过数据冗余(如增加校验码)可以提高可靠性。目前VOD系统有如下两种分割法。

(1)时间分割。一个视频流可以被认为由一系列的视频帧构成,把视频流分为许多帧单(等长时间的帧),然后存储到多个服务器上称为时间分割。

(2)空间分割。时间分割把视频流分为许多相同时间长度的帧,空间分割是把视频流分。为相同长度的字节构成的帧。由于每个分割单元都是相同大小的,空间分割简化了存储和缓存区的管理。

在时间分割中,所有服务器中视频帧被检索的频率是相同的,但是视频帧的字节大小却不一定是相同的,在运用了帧内和帧间编码方式的MPEG1和MPEG2视频流上尤其明显。所以每一个服务器上视频数据的检索量就取决于它所存储的帧的类型。比如:MPEG1中有I、P、B帧,平均数据量为D>P>B。一个存储I帧的服务器必然要比存储P帧的服器要发送更多的数据,承担更重的负载。

虽然分割这种做法没有带来额外的存储空间的需要,但是它也有负载平衡( load balancing)的问题:比如一些受大众欢迎的视频片断必然会被多次检索,造成了一些服务器某段时间的不堪重负,而另外一些服务器却被闲置。

在服务器响应客户的请求时,可以运用以下几种不同的调度算法。

(1)轮转调度

轮转调度( Round Robin Scheduling)不考虑服务器的连接数和响应时间,它将所有的服务器都看作是相同的,以轮转的形式将连接分发到不同的服务器上。

(2)加权轮转调度

加权轮转调度( Weighted Round Robin Scheduling)根据每个机器的处理能力的不同给每个机器分配一个对应的权重,然后根据权重的大小以轮转的方式将请求分发到各台机器这种调度算法的耗费比其他的动态调度算法小,但是当负载变化很频繁时,它会导致负载失衡,而且那些长请求会发到同一个服务器上。

(3)最少连接调度

最少连接调度( Least Connection Scheduling)将用户请求发送到连接数最少的机器上

最少连接调度是一种动态调度方法,如果集群中各台服务器的处理能力相近,则当负载的变化很大时也不会导致负载失衡,因为它不会把长请求发送到同一台机器上。但是当处理器的处理能力差异较大时,最少连接调度就不能很好地发挥效能了。

(4)加权最小连接调度

加权最小连接调度( Weighted Least Connection Scheduling)根据服务器的性能不同而给它们分配一个相应的权重,权重越大,获得一个连接的机会就越大。


website qrcode
关注我们: