CN109151038A - 一种绿色视频监控系统服务器集群系统及其实现方法 - Google Patents
一种绿色视频监控系统服务器集群系统及其实现方法 Download PDFInfo
- Publication number
- CN109151038A CN109151038A CN201811028914.3A CN201811028914A CN109151038A CN 109151038 A CN109151038 A CN 109151038A CN 201811028914 A CN201811028914 A CN 201811028914A CN 109151038 A CN109151038 A CN 109151038A
- Authority
- CN
- China
- Prior art keywords
- node
- group
- cluster
- task
- media
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Abstract
一种视频监控系统媒体服务器集群系统,包括设备端、信令控制服务器、媒体服务器和客户端,所述信令控制服务器用于向客户端、设备实体提供注册登记、路由选择、逻辑控制,还负责管理整个媒体服务器集群,并调度媒体分发服务器集群节点的工作,通过WOL技术对媒体分发服务器进行电源管理;所述媒体服务器用于负责媒体数据的接收、复制、分发工作,以及通过层次分析法收集并向信令控制服务器反馈自身的负载信息,配合信令控制服务器完成电源管理。以及提供一种视频监控系统媒体服务器集群系统的实现方法。本发明在保证系统稳定的前提下,大大降低系统能耗。
Description
技术领域
本发明涉及网络视频监控领域,尤其是一种绿色视频监控系统服务器集群系统及其实现方法。
背景技术
随着当今社会对安全需求的不断增长,视频监控系统作为安防行业的重要组成部分,在公安、交通、电力、金融等各个领域都发挥着极其重要的作用。近年来,由于公安部视频监控联网标准的颁布和实施,监控系统的联网规模不断扩大,视频质量显著提高,系统需要传输和存储的媒体数据容量急剧增长。随着监控系统规模的扩大,系统能耗也越来越成为一个不容忽视的问题。
发明内容
为了解决现有视频监控系统存在的能效问题,本发明引入绿色服务器集群技术,对系统架构进行重新设计,提出了一种绿色视频监控系统媒体服务器集系统。本发明通过集群节点之间的协同工作和集群电源管理,可以实现视频监控系统媒体分发和媒体存储过程的负载集中,在低负载情况下,关闭部分节点,在保证系统稳定的前提下,大大降低系统能耗。
本发明解决其技术问题所采用的技术方案是:
一种视频监控系统媒体服务器集群系统,所述媒体服务器集群系统包括设备端、信令控制服务器、媒体服务器和客户端,所述信令控制服务器用于向客户端、设备实体提供注册登记、路由选择、逻辑控制,还负责管理整个媒体服务器集群,并调度媒体分发服务器集群节点的工作,通过WOL技术对媒体分发服务器进行电源管理;所述媒体服务器用于负责媒体数据的接收、复制、分发工作,以及通过层次分析法收集并向信令控制服务器反馈自身的负载信息,配合信令控制服务器完成电源管理。
进一步,所述信令控制服务器包括信令处理模块、集群管理模块、决策模块、会话管理模块和电源管理模块。
更进一步,所述媒体服务器包括信令处理模块、媒体分发模块和电源管理模块。
一种视频监控系统媒体服务器集群系统的实现方法,包括以下步骤:
1)集群管理
信令控制服务器的信令处理模块、集群管理模块,与媒体服务器中信令处理模块、负载收集模块相互之间的接口调用和SIP通信,负责媒体服务器注册/注销,媒体服务器集群状态查询,媒体服务器电源管理,任务分发和迁移工作;
2)协同工作
每一路SIP设备媒体流由一组服务节点来接收,这组服务节点数量至少为1;
各节点协同调度权重如下式,式中的Li代表各节点负载情况,wi即为节点i负责任务的概率
相应的多节点协同策略下的集群负载迁移流程中,迁移时若发现请求休眠节点某任务是组内数据流转任务,则优先迁移该流转任务对应SIP设备的其他任务,最后迁移组内流转任务;
3)媒体调度决策
所述信令控制服务器在收到SIP客户端发送的实时视频请求或者以第三方呼叫控制形式请求SIP设备媒体数据流时,使用基于动态反馈和协同工作的负载集中策略,在媒体分发服务器集群中选择合适的服务节点进行媒体分发的任务并对集群进行电源控制。
进一步,所述步骤3)中,调度决策模块任务接入的步骤如下:
3.1)当有监控请求到达时,信令控制服务器首先查看服务节点状态表,获取各个服务节点的状态及负载情况;
3.2)信令控制服务器查询会话状态,判断请求目标设备是否已存在对应节点组,若存在则转到下一步;若不存在,则转到步骤3.6);
3.3)控制服务器判断当前SIP设备对应服务节点组中是否存在处于正常工作状态的服务节点,若存在,则转到下一步;若不存在,则转到步骤3.5);
3.4)按照组内节点调度权重选择服务节点处理任务;
3.5)判断集群中是否存在处于正常工作状态的服务节点,若存在,则依照协同节点调度权重,挑选正常工作节点接入节点组的末端,原节点组末端节点将SIP设备媒体流传输到新入组节点,新入组节点处理任务;若不存在,随机启动待机节点,将新启动节点接入节点组的末端,原节点组末端节点将SIP设备媒体流传输到新入组节点,新入组节点处理任务,转到步骤3.9);
3.6)判断当前集群是否存在正常工作节点。若存在,则按照节点负载情况计算权重,选择相应节点处理请求,并转到步骤3.8);若不存在则转到下一步。
3.7)判断当前集群是否存在待机节点,若存在,则随机选择待机节点启动,请求由新启动节点处理并转到下一步;若不存在则说明系统整体满载,无法处理请求,拒绝服务;
3.8)判断当前集群是否存在休眠节点;若存在,则随机选择休眠节点开机,转到下一步;若不存在则直接转到下一步;
3.9)相关服务节点向控制服务器通告节点最新状态;
3.10)信令控制服务器更新服务节点状态表。
再进一步,所述步骤2)中,当集群负载下降且有节点负载低于阈值时,触发节点任务迁移流程,节点任务迁移的步骤如下:
2.1)控制器查看请求休眠节点任务情况,判断节点是否有任务正在处理,若没有,则说明迁移完成,关闭请求休眠节点,转到步骤2.9);有则转到下一步;
2.2)选取请求休眠节点持续时间最长任务,判断该任务是否属于组内流转任务,若属于,则转到下一步;否则转到步骤2.6);
2.3)判断请求休眠节点是否存在对应流普通任务,若存在则随机选取对应流普通任务并转到下一步;否则转到步骤2.5);
2.4)查看对应节点组状态,判断对应节点组是否有正常工作节点,若存在则计算组内各节点协同调度权重,选择节点接收迁移任务,向控制器通告状态并转到步骤2.3);否则转到步骤2.8);
2.5)判断任务媒体流是否来自SIP设备,若来自SIP设备,请求休眠节点通过控制器将流转任务目标网络位置通告给SIP设备;若来自组内节点,请求休眠节点通过控制器将流转任务目标网络位置通告给前位节点。完成之后停止该组内流转任务并转到步骤2.7);
2.6)判断集群是否有正常工作节点,若存在则计算各节点任务接入权重,选择适当节点接收迁移任务,请求节点停止相应任务线程,并转到下一步;否则转到步骤2.8);
2.7)相关服务节点向控制器通告自身状态并转到步骤2.1);
2.8)集群无法迁移当前任务,拒绝请求休眠节点的休眠请求并为对应节点设定定时器,在一定时间内不再次发起休眠请求并转到下一步;
2.9)各服务节点向控制器通告自身状态,负载迁移流程结束。
所述实现方法还包括以下步骤;
4)存储调度决策
提出一种副本集中的副本放置策略来优化普通HDFS系统,通过在集群中设定覆盖节点群,让数据写入时,数据块至少有一个的副本必须存储在覆盖节点群的节点上,覆盖节点群包含足够多的节点以确保数据的即时可用性,就算所有非覆盖节点群节点都被挂起,系统任然可以正常运行;
覆盖节点群建立的目的是使大量节点可以正常地从集群中移除(即关闭)而不影响数据的可用性或者中断集群的正常操作。一方面,它应该只占集群总结点的一小部分,否则无法起到明显的节能作用;另一方面,它不能太小,否则会限制集群整体的存储容量,甚至成为I/O瓶颈。因此,为了平衡这两方面的要求,覆盖节点群的最佳尺寸应该占整个集群10%至30%。
进一步,所述步骤4)中,存储调度决策包含副本集中放置、节点休眠和节点恢复流程。
所述副本集中放置流程包括以下步骤:
4.1)当有新数据块需要存放时,先判断系统覆盖节点群的负载是否到达上限,若已到达上限进入下一步;否则进入步骤4.3)进行数据复制和副本分配;
4.2)判断当前集群是否有节点处于挂起状态,若不存在,则说明系统整体已无法存放新数据,返回错误信息,请求失败;否则提高覆盖节点群数量等级并按照比例以机架为单位唤醒相应数量的休眠节点,然后以机架为单位从各个费覆盖节点群节点中选出部分节点补足机架所需覆盖节点群;
4.3)在数据产生节点放置一份副本,然后判断数据产生节点是否属于覆盖节点群,若属于,则选择当前机架的非覆盖节点群节点存放一份副本并选择其他机架的非覆盖节点群节点存放一份副本;否则选择其他机架的覆盖节点群节点存放一份副本并在同一机架的非覆盖节点群节点存放一份副本。
优选的,节点休眠流程如下:当集群整体负载下降,系统降低覆盖节点群数量等级,进而相应减少非覆盖节点群数量,挂起部分节点;覆盖节点群数量等级降低时,剔除多余的覆盖节点群节点,但是需要将剔除节点数据迁移到同机架剩余覆盖节点群节点上;非覆盖节点群节点挂起前不需要进行数据迁移,缺失的副本将由HDFS的副本补足机制自动恢复。
节点恢复流程如下:当集群整体负载提升,覆盖节点群数量等级提高,需要将挂起节点恢复到正常模式,恢复的节点需要以机架为单位按比例选择,节点恢复后,HDFS会将冗余的副本删除,因此需要修正HDFS默认的过剩处理策略。
本发明的有益效果主要表现在:
(1)相较于使用负载均衡的集群架构,本发明在负载强度不稳定的情况下起到明显的能耗降低效果。
(2)相较于普通HDFS系统,本发明在存储数据量相对低于系统极限存储量的情况下起到明显的能耗降低效果。
(3)相较于现有视频监控系统架构,本发明在不牺牲系统性能的情况下,大大降低系统整体能耗。
附图说明
图1是绿色视频监控系统模块框架示意图。
图2是集群管理流程系统模块交互示意图。
图3是多节点协同工作示意图。
图4是集群任务调度系统模块交互示意图。
图5是调度决策任务接入流程示意图。
图6是节点任务迁移流程流程示意图。
图7是副本集中放置流程示意图。
图8是存储节点休眠流程示意图。
图9是存储节点恢复流程示意图。
图10是node_select()函数流程图。
图11是node_sleep()函数流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
参照图1~图10,一种视频监控系统媒体服务器集群系统,所述媒体服务器集群系统包括设备端、信令控制服务器、媒体服务器和客户端,所述信令控制服务器用于向客户端、设备实体提供注册登记、路由选择、逻辑控制,还负责管理整个媒体服务器集群,并调度媒体分发服务器集群节点的工作,通过WOL技术对媒体分发服务器进行电源管理;所述媒体服务器用于负责媒体数据的接收、复制、分发工作,以及通过层次分析法收集并向信令控制服务器反馈自身的负载信息,配合信令控制服务器完成电源管理。
进一步,所述信令控制服务器包括信令处理模块、集群管理模块、决策模块、会话管理模块和电源管理模块。
更进一步,所述媒体服务器包括信令处理模块、媒体分发模块和电源管理模块。
一种视频监控系统媒体服务器集群系统的实现方法,包括以下步骤:
1)集群管理。
信令控制服务器的信令处理模块、集群管理模块,与媒体服务器中信令处理模块、负载收集模块相互之间的接口调用和SIP通信,负责媒体服务器注册/注销,媒体服务器集群状态查询,媒体服务器电源管理,任务分发和迁移工作;
2)协同工作
每一路SIP设备媒体流由一组服务节点来接收,这组服务节点数量至少为1;
各节点协同调度权重如下式,式中的Li代表各节点负载情况,wi即为节点i负责任务的概率
相应的多节点协同策略下的集群负载迁移流程中,迁移时若发现请求休眠节点某任务是组内数据流转任务,则优先迁移该流转任务对应SIP设备的其他任务,最后迁移组内流转任务;
3)媒体调度决策
所述信令控制服务器在收到SIP客户端发送的实时视频请求或者以第三方呼叫控制形式请求SIP设备媒体数据流时,使用基于动态反馈和协同工作的负载集中策略,在媒体分发服务器集群中选择合适的服务节点进行媒体分发的任务并对集群进行电源控制。
进一步,所述步骤3)中,调度决策模块任务接入的步骤如下:
3.1)当有监控请求到达时,信令控制服务器首先查看服务节点状态表,获取各个服务节点的状态及负载情况;
3.2)信令控制服务器查询会话状态,判断请求目标设备是否已存在对应节点组,若存在则转到下一步;若不存在,则转到步骤3.6);
3.3)控制服务器判断当前SIP设备对应服务节点组中是否存在处于正常工作状态的服务节点,若存在,则转到下一步;若不存在,则转到步骤3.5);
3.4)按照组内节点调度权重选择服务节点处理任务;
3.5)判断集群中是否存在处于正常工作状态的服务节点,若存在,则依照协同节点调度权重,挑选正常工作节点接入节点组的末端,原节点组末端节点将SIP设备媒体流传输到新入组节点,新入组节点处理任务;若不存在,随机启动待机节点,将新启动节点接入节点组的末端,原节点组末端节点将SIP设备媒体流传输到新入组节点,新入组节点处理任务,转到步骤3.9);
3.6)判断当前集群是否存在正常工作节点。若存在,则按照节点负载情况计算权重,选择相应节点处理请求,并转到步骤3.8);若不存在则转到下一步。
3.7)判断当前集群是否存在待机节点,若存在,则随机选择待机节点启动,请求由新启动节点处理并转到下一步;若不存在则说明系统整体满载,无法处理请求,拒绝服务;
3.8)判断当前集群是否存在休眠节点;若存在,则随机选择休眠节点开机,转到下一步;若不存在则直接转到下一步;
3.9)相关服务节点向控制服务器通告节点最新状态;
3.10)信令控制服务器更新服务节点状态表。
再进一步,所述步骤2)中,当集群负载下降且有节点负载低于阈值时,触发节点任务迁移流程,节点任务迁移的步骤如下:
2.1)控制器查看请求休眠节点任务情况,判断节点是否有任务正在处理,若没有,则说明迁移完成,关闭请求休眠节点,转到步骤2.9);有则转到下一步;
2.2)选取请求休眠节点持续时间最长任务,判断该任务是否属于组内流转任务,若属于,则转到下一步;否则转到步骤2.6);
2.3)判断请求休眠节点是否存在对应流普通任务,若存在则随机选取对应流普通任务并转到下一步;否则转到步骤2.5);
2.4)查看对应节点组状态,判断对应节点组是否有正常工作节点,若存在则计算组内各节点协同调度权重,选择节点接收迁移任务,向控制器通告状态并转到步骤2.3);否则转到步骤2.8);
2.5)判断任务媒体流是否来自SIP设备,若来自SIP设备,请求休眠节点通过控制器将流转任务目标网络位置通告给SIP设备;若来自组内节点,请求休眠节点通过控制器将流转任务目标网络位置通告给前位节点。完成之后停止该组内流转任务并转到步骤2.7);
2.6)判断集群是否有正常工作节点,若存在则计算各节点任务接入权重,选择适当节点接收迁移任务,请求节点停止相应任务线程,并转到下一步;否则转到步骤2.8);
2.7)相关服务节点向控制器通告自身状态并转到步骤2.1);
2.8)集群无法迁移当前任务,拒绝请求休眠节点的休眠请求并为对应节点设定定时器,在一定时间内不再次发起休眠请求并转到下一步;
2.9)各服务节点向控制器通告自身状态,负载迁移流程结束。
所述实现方法还包括以下步骤;
4)存储调度决策
提出一种副本集中的副本放置策略来优化普通HDFS系统,通过在集群中设定覆盖节点群,让数据写入时,数据块至少有一个的副本必须存储在覆盖节点群的节点上,覆盖节点群包含足够多的节点以确保数据的即时可用性,就算所有非覆盖节点群节点都被挂起,系统任然可以正常运行;
覆盖节点群建立的目的是使大量节点可以正常地从集群中移除(即关闭)而不影响数据的可用性或者中断集群的正常操作。一方面,它应该只占集群总结点的一小部分,否则无法起到明显的节能作用;另一方面,它不能太小,否则会限制集群整体的存储容量,甚至成为I/O瓶颈。因此,为了平衡这两方面的要求,覆盖节点群的最佳尺寸应该占整个集群10%至30%。
进一步,所述步骤4)中,存储调度决策包含副本集中放置、节点休眠和节点恢复流程。
所述副本集中放置流程包括以下步骤:
4.1)当有新数据块需要存放时,先判断系统覆盖节点群的负载是否到达上限,若已到达上限进入下一步;否则进入步骤4.3)进行数据复制和副本分配;
4.2)判断当前集群是否有节点处于挂起状态,若不存在,则说明系统整体已无法存放新数据,返回错误信息,请求失败;否则提高覆盖节点群数量等级并按照比例以机架为单位唤醒相应数量的休眠节点,然后以机架为单位从各个费覆盖节点群节点中选出部分节点补足机架所需覆盖节点群;
4.3)在数据产生节点放置一份副本,然后判断数据产生节点是否属于覆盖节点群,若属于,则选择当前机架的非覆盖节点群节点存放一份副本并选择其他机架的非覆盖节点群节点存放一份副本;否则选择其他机架的覆盖节点群节点存放一份副本并在同一机架的非覆盖节点群节点存放一份副本。
优选的,节点休眠流程如下:当集群整体负载下降,系统降低覆盖节点群数量等级,进而相应减少非覆盖节点群数量,挂起部分节点;覆盖节点群数量等级降低时,剔除多余的覆盖节点群节点,但是需要将剔除节点数据迁移到同机架剩余覆盖节点群节点上;非覆盖节点群节点挂起前不需要进行数据迁移,缺失的副本将由HDFS的副本补足机制自动恢复。
节点恢复流程如下:当集群整体负载提升,覆盖节点群数量等级提高,需要将挂起节点恢复到正常模式,恢复的节点需要以机架为单位按比例选择,节点恢复后,HDFS会将冗余的副本删除,因此需要修正HDFS默认的过剩处理策略。
本实施例中信令控制服务器主要由python实现,配合mysql和redis存储数据。媒体服务器集群由C++语言编写,实现了SIP协议架构中用户代理的功能,绿色数据存储集群基于HDFS来搭建,在修改部分HDFS系统基本算法的实现之后,将普通HDFS系统改进为绿色HDFS系统。
信令控制服务器的实现方式如下:
信令交互模块主要利用Twisted框架中的twisted.protocols.sip模块文件来实现有关SIP协议的功能,该模块具有基本的接收发送SIP消息以及解析构造SIP消息等功能。通过对这些类和函数的继承和调用,我们可以轻松搭建基于SIP协议的信令交互模块。
信令控制服务器的信令处理模块主要使用以下几个类:
(1)Proxy类。Proxy类继承自Base类,主要负责Sip协议相关的请求发送,请求处理,响应发送和相应处理等功能。
(2)Request类。Request类继承自Message类,主要负责SIP请求消息消息头和消息体的构造。
(3)Response类。Response类继承自Message类,主要负责SIP响应消息消息头和消息体的构造。
信令控制模块主要信令功能函数如下:
(1)handle_REGISTER_request():用于处理客户端和监控设备的登录请求,并负责客户端和监控设备的会话保持,分别调用会话管理模块的AddDeviceMap()和AddUserMap()将会话信息保存在本地。
(2)handle_OPTIONS_response():用于处理流媒体服务集群节点的负载更新请求,并将其最新负载存储到本地。
(3)handle_INVITE_request():用于处理客户端发送的视频监控请求,它会调用任务调度模块的node_select()函数选择合适的服务节点处理监控请求。
(4)handle_INVITE_response():接收监控请求完成的结果,若成功,它会调用会话管理模块的AddConnection(),将当前监控连接信息保存在本地。
(5)handle_SLEEP_request():用于处理服务节点发送的休眠请求,它会调用调度决策模块的node_sleep()函数进行节点休眠。
调度决策模块主要包含三个功能函数:node_select(),node_sleep()和mission_migration()。
(1)node_select():node_select()函数是用python参考发明内容中的任务接入算法实现的。首先函数调取流媒体服务集群状态表,判断是否需要调用电源控制模块的raise_node()函数唤醒节点。而后计算各节点调度权重,产生随机数选择合适的服务节点,并将结果返回信令交互模块;若没有合适节点则返回错误信息。函数实现流程如图10所示。
(2)node_sleep():node_sleep()函数是用python参考发明内容中的负载迁移算法实现的。函数循环调用mission_migration()函数,若循环成功结束,则调用电源控制模块的turnoff_node()函数,关闭节点,否则返回拒绝消息到信令交互模块。函数实现流程如图11所示。
(3)mission_migration():mission_migration()函数负责单个任务的迁移,使用python参考发明内容中的单任务迁移流程实现。
电源控制模块通过SSH技术和WOL技术实现。主要有三个功能函数:raise_node(),turnoff_node(),turnon_node()。
其中turnoff_node()和raise_node()使用SSH脚本远程登录目标服务节点执行相应的关机命令和进行启动命令即可实现。
客户端和监控设备的详细信息使用redis来进行存储并实现如下接口:
(1)AddDeviceMap(),AddUserMap()用于在新用户和新设备注册进监控系统时的会话信息存储,主要由hmset(name,mapping)实现。
(2)UpdateDeviceMap(),UpdateUserMap()用于用户和设备会话信息变更时的更新,主要由hset(name,key,value)实现。
(3)GetDeviceMap(),GetUserMap()用于用户和设备会话信息的查询,主要由hgetall(name)实现。
(4)DeleteDeviceMap(),DeleteUserMap()用于用户和设备退出系统时删除对应会话,主要由hdel(name,key)实现。
媒体流连接的存储使用mysql来实现,使用MySQL-python包提供的增删改查等接口可较为容易的实现媒体流连接会话的管理。
媒体服务器的实现方式如下:
使用PJSUA开源库来实现媒体服务器上的SIP交互相关功能。通过调用PJSUA的API我们实现了以下主要功能函数:
(1)on_invite_message():用于处理控制器的任务请求,调用媒体流转模块,产生新任务线程,准备接收并转发媒体流,并将视频文件存入数据存储集群。
(2)on_invite_response():将启动好的任务线程相关参数返回给控制服务器,完成任务的处理。
(3)send_option_message():调用负载采集模块函数load_collection()函数获取相关负载信息并按照发明内容中的负载计算函数计算负载评价并将数据发送给控制服务器。
(4)send_sleep_message():调用load_collection()函数发现负载低于某阈值时,向控制服务器发送休眠请求。
媒体流传模块在被信令交互模块的调用后,开启任务线程,任务线程将使用socket开启端口监听,在接收到媒体发送方发送的数据包时,一方面及时的将数据包向媒体接收方转发,另一方面开辟一小块缓存,将数据包排序存放,供媒体解码模块解码存储。
负载采集模块主要功能由load_collection()函数实现。load_collection()函数调用Top工具的接口实现节点内存和CPU负载的采集。网卡使用情况我们调用nload工具的接口来采集。
媒体服务器在收到数据包时会将数据在缓存中存放供媒体解码模块读取,媒体解码模块需要对收到的RTP包进行排序并取出其中的数据进行H264解码,最终得到MP4文件并通过存储接口模块,传输到绿色数据存储集群中存放。
本实施例使用ffmpeg库来实现RTP的拆包以及H264解码。首先我们将缓存中堆积并排序好的RTP包,收到RTP包后按照监控设备添加包头的配置去掉RTP包头,在视频帧分片前加上00 00 00 01,使用ffmpeg提供的avcodec_decode_video2来将分片组成视频帧,当返回值为0时表示前面的分片已经组成一帧完整的视频帧,可以送给解码函数进行解码了。当avcodec_decode_video2返回0时,将m_avpkt送给解码函数,同时再次调用avcodec_decode_video2函数,将当前分片的buf送进去。
ffmpeg库提供了标准函数对H264编码的数据进行解码,因此我们可以很容易的得到H.264文件。若监控设备支持音频采集,那么我们用同样的方法可以获得对应的G.711音频文件。
由于H.264文件与G.711文件无法直接合并,因此,我们调用ffmpeg组件将G.711文件转换为pcm格式,并进行同步合并,最终得到MP4文件交由存储模块进行存储。
存储接口模块提供了一系列针对HDFS系统接口的封装来实现视频文件的存储。我们主要使用libhdfs库来实现供媒体服务器使用的几个主要的功能,libhdfs库主要提供了下列接口:
(1)hdfsConnect():创建与HDFS连接。
(2)hdfsDisconnect():关闭与HDFS连接。
(3)hdfsOpenFile():用于打开HDFS系统中的某个文件。
(4)hdfsCloseFile():用于关闭HDFS系统中的某个文件。
(5)hdfsWrite():用于写入HDFS。
(6)hdfsRead():用于读取HDFS文件。
我们针对流媒体监控系统存储数据的特点对其接口进行再一次封装:
(1)start_store():媒体流存储任务开始接口。在函数中首先使用libhdfs标准接口hdfsConnect()连接绿色分布式文件系统,然后使用hdfsOpenFile()接口以“设备名+存储开始时间”为监控视频文件名新建文件。
(2)hdfs_write():流媒体数据写入接口。在函数中,使用libhdfs标准接口hdfsWrite()将缓存中的数据依次写入start_store()接口创建好的媒体文件中。
(3)stop_store():用于结束指定媒体流的存储业务。在函数中,首先将系统当前时间作为存储结束时间,修改媒体文件名称。然后,使用libhdfs提供的接口hdfsCloseFile()和hdfsDisconnect()断开与HDFS的连接,从而结束本次存储业务。
绿色存储集群的实现方式如下:
本实施例使用分布式文件系统HDFS来搭建媒体存储服务器集群,完成绿色分布式流媒体监控系统中媒体数据的分布式存储。
本实施例重写了HDFS的两个关键类BlockManager和BlockPlacementPolicyDefault来实现发明内容中的副本集中放置算法和副本过剩处理算法。
(1)副本集中放置实现
BlockPlacementPolicy接口中的chooseTarget方法确定了HDFS系统的副本放置策略,因此我们重写BlockPlacementPolicyDefault类中chooseTarget方法,在调用时考虑到coverNodes覆盖节点群的相应限制以实现发明内容中的相关算法。在循环调用chooseTarget方法选择节点前,对当前已选节点和coverNodes集合相比较,若覆盖节点群已存在相应数据块,则将覆盖节点群节点排除在选择范围之外,否则先在覆盖节点群中选择节点存储数据块。关键代码如下所示。
(2)副本过剩处理实现
BlockPlacementPolicy接口中的chooseReplicasToDelete方法主要用于多余副本的删除,因此我们重写BlockPlacementPolicyDefault中的pickupReplicaSet方法,将删除目标节点的范围框定在coverNodes之外以实现发明内容中的相关算法。相关代码如下所示。
绿色存储集群除了需要向外提供数据存储方面的接口,还需要提供接口对集群状态进行调整与控制。系统的查询接口getHDFSStatus()从HDFS集群获取集群整体负载状态供信令控制服务器对集群进行状态评估,另外针对绿色存储集群的覆盖节点群数量等级控制,绿色存储集群提供raiseCoverSubsetLevel()和reduceCoverSubsetLevel()两个外部接口供信令处理模块调取。
raiseCoverSubsetLevel()和reduceCoverSubsetLevel()两个接口分别用来提高和降低覆盖节点群数量等级,接口内部由selectNodeIntoSubSet()和deleteNodeFromSubSet()两个函数实现。根据HDFS提供的节点机架映射关系rackMap,在当前覆盖节点群数量与目标有差距时,以机架为单位挑选节点加入或者移出覆盖节点群集合coverNodes。
到此完成整个绿色监控集群系统的实现。
Claims (10)
1.一种视频监控系统媒体服务器集群系统,其特征在于:所述媒体服务器集群系统包括设备端、信令控制服务器、媒体服务器和客户端,所述信令控制服务器用于向客户端、设备实体提供注册登记、路由选择、逻辑控制,还负责管理整个媒体服务器集群,并调度媒体分发服务器集群节点的工作,通过WOL技术对媒体分发服务器进行电源管理;所述媒体服务器用于负责媒体数据的接收、复制、分发工作,以及通过层次分析法收集并向信令控制服务器反馈自身的负载信息,配合信令控制服务器完成电源管理。
2.如权利要求1所述的一种视频监控系统媒体服务器集群系统,其特征在于:所述信令控制服务器包括信令处理模块、集群管理模块、决策模块、会话管理模块和电源管理模块。
3.如权利要求1或2所述的一种视频监控系统媒体服务器集群系统,其特征在于:所述媒体服务器包括信令处理模块、媒体分发模块和电源管理模块。
4.一种如权利要求1所述的视频监控系统媒体服务器集群系统的实现方法,其特征在于,所述实现方法包括以下步骤:
1)集群管理
信令控制服务器的信令处理模块、集群管理模块,与媒体服务器中信令处理模块、负载收集模块相互之间的接口调用和SIP通信,负责媒体服务器注册/注销,媒体服务器集群状态查询,媒体服务器电源管理,任务分发和迁移工作;
2)协同工作
每一路SIP设备媒体流由一组服务节点来接收,这组服务节点数量至少为1;
各节点协同调度权重如下式,式中的Li代表各节点负载情况,wi即为节点i负责任务的概率
相应的多节点协同策略下的集群负载迁移流程中,迁移时若发现请求休眠节点某任务是组内数据流转任务,则优先迁移该流转任务对应SIP设备的其他任务,最后迁移组内流转任务;
3)媒体调度决策
所述信令控制服务器在收到SIP客户端发送的实时视频请求或者以第三方呼叫控制形式请求SIP设备媒体数据流时,使用基于动态反馈和协同工作的负载集中策略,在媒体分发服务器集群中选择合适的服务节点进行媒体分发的任务并对集群进行电源控制。
5.如权利要求4所述的视频监控系统媒体服务器集群系统的实现方法,其特征在于,所述步骤3)中,调度决策模块任务接入的步骤如下:
3.1)当有监控请求到达时,信令控制服务器首先查看服务节点状态表,获取各个服务节点的状态及负载情况;
3.2)信令控制服务器查询会话状态,判断请求目标设备是否已存在对应节点组,若存在则转到下一步;若不存在,则转到步骤3.6);
3.3)控制服务器判断当前SIP设备对应服务节点组中是否存在处于正常工作状态的服务节点,若存在,则转到下一步;若不存在,则转到步骤3.5);
3.4)按照组内节点调度权重选择服务节点处理任务;
3.5)判断集群中是否存在处于正常工作状态的服务节点,若存在,则依照协同节点调度权重,挑选正常工作节点接入节点组的末端,原节点组末端节点将SIP设备媒体流传输到新入组节点,新入组节点处理任务;若不存在,随机启动待机节点,将新启动节点接入节点组的末端,原节点组末端节点将SIP设备媒体流传输到新入组节点,新入组节点处理任务,转到步骤3.9);
3.6)判断当前集群是否存在正常工作节点。若存在,则按照节点负载情况计算权重,选择相应节点处理请求,并转到步骤3.8);若不存在则转到下一步。
3.7)判断当前集群是否存在待机节点,若存在,则随机选择待机节点启动,请求由新启动节点处理并转到下一步;若不存在则说明系统整体满载,无法处理请求,拒绝服务;
3.8)判断当前集群是否存在休眠节点;若存在,则随机选择休眠节点开机,转到下一步;若不存在则直接转到下一步;
3.9)相关服务节点向控制服务器通告节点最新状态;
3.10)信令控制服务器更新服务节点状态表。
6.如权利要求4或5所述的视频监控系统媒体服务器集群系统的实现方法,其特征在于,所述步骤2)中,当集群负载下降且有节点负载低于阈值时,触发节点任务迁移流程,节点任务迁移的步骤如下:
2.1)控制器查看请求休眠节点任务情况,判断节点是否有任务正在处理,若没有,则说明迁移完成,关闭请求休眠节点,转到步骤2.9);有则转到下一步;
2.2)选取请求休眠节点持续时间最长任务,判断该任务是否属于组内流转任务,若属于,则转到下一步;否则转到步骤2.6);
2.3)判断请求休眠节点是否存在对应流普通任务,若存在则随机选取对应流普通任务并转到下一步;否则转到步骤2.5);
2.4)查看对应节点组状态,判断对应节点组是否有正常工作节点,若存在则计算组内各节点协同调度权重,选择节点接收迁移任务,向控制器通告状态并转到步骤2.3);否则转到步骤2.8);
2.5)判断任务媒体流是否来自SIP设备,若来自SIP设备,请求休眠节点通过控制器将流转任务目标网络位置通告给SIP设备;若来自组内节点,请求休眠节点通过控制器将流转任务目标网络位置通告给前位节点。完成之后停止该组内流转任务并转到步骤2.7);
2.6)判断集群是否有正常工作节点,若存在则计算各节点任务接入权重,选择适当节点接收迁移任务,请求节点停止相应任务线程,并转到下一步;否则转到步骤2.8);
2.7)相关服务节点向控制器通告自身状态并转到步骤2.1);
2.8)集群无法迁移当前任务,拒绝请求休眠节点的休眠请求并为对应节点设定定时器,在一定时间内不再次发起休眠请求并转到下一步;
2.9)各服务节点向控制器通告自身状态,负载迁移流程结束。
7.如权利要求4或5所述的视频监控系统媒体服务器集群系统的实现方法,其特征在于,所述实现方法还包括以下步骤;
4)存储调度决策
提出一种副本集中的副本放置策略来优化普通HDFS系统,通过在集群中设定覆盖节点群,让数据写入时,数据块至少有一个的副本必须存储在覆盖节点群的节点上,覆盖节点群包含足够多的节点以确保数据的即时可用性,就算所有非覆盖节点群节点都被挂起,系统任然可以正常运行;
所述存储调度决策包含副本集中放置、节点休眠和节点恢复流程。
8.如权利要求7所述的视频监控系统媒体服务器集群系统的实现方法,其特征在于,所述步骤4)中,所述副本集中放置流程包括以下步骤:
4.1)当有新数据块需要存放时,先判断系统覆盖节点群的负载是否到达上限,若已到达上限进入下一步;否则进入步骤4.3)进行数据复制和副本分配;
4.2)判断当前集群是否有节点处于挂起状态,若不存在,则说明系统整体已无法存放新数据,返回错误信息,请求失败;否则提高覆盖节点群数量等级并按照比例以机架为单位唤醒相应数量的休眠节点,然后以机架为单位从各个费覆盖节点群节点中选出部分节点补足机架所需覆盖节点群;
4.3)在数据产生节点放置一份副本,然后判断数据产生节点是否属于覆盖节点群,若属于,则选择当前机架的非覆盖节点群节点存放一份副本并选择其他机架的非覆盖节点群节点存放一份副本;否则选择其他机架的覆盖节点群节点存放一份副本并在同一机架的非覆盖节点群节点存放一份副本。
9.如权利要求7所述的视频监控系统媒体服务器集群系统的实现方法,其特征在于,所述步骤4)中,节点休眠流程如下:当集群整体负载下降,系统降低覆盖节点群数量等级,进而相应减少非覆盖节点群数量,挂起部分节点;覆盖节点群数量等级降低时,剔除多余的覆盖节点群节点,但是需要将剔除节点数据迁移到同机架剩余覆盖节点群节点上;非覆盖节点群节点挂起前不需要进行数据迁移,缺失的副本将由HDFS的副本补足机制自动恢复。
10.如权利要求7所述的视频监控系统媒体服务器集群系统的实现方法,其特征在于,所述步骤4)中,节点恢复流程如下:当集群整体负载提升,覆盖节点群数量等级提高,需要将挂起节点恢复到正常模式,恢复的节点需要以机架为单位按比例选择,节点恢复后,HDFS会将冗余的副本删除,因此需要修正HDFS默认的过剩处理策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811028914.3A CN109151038A (zh) | 2018-09-05 | 2018-09-05 | 一种绿色视频监控系统服务器集群系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811028914.3A CN109151038A (zh) | 2018-09-05 | 2018-09-05 | 一种绿色视频监控系统服务器集群系统及其实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109151038A true CN109151038A (zh) | 2019-01-04 |
Family
ID=64826985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811028914.3A Pending CN109151038A (zh) | 2018-09-05 | 2018-09-05 | 一种绿色视频监控系统服务器集群系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109151038A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242755A (zh) * | 2022-07-07 | 2022-10-25 | 齐鲁工业大学 | 一种基于sip信令服务器集群的性能监测及负载均衡方法 |
CN116233079B (zh) * | 2022-12-02 | 2024-03-12 | 北京富通亚讯网络信息技术有限公司 | 一种无中心终端自组视频会议的控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008039763A2 (en) * | 2006-09-27 | 2008-04-03 | Trafficland, Inc. | System and method for multi-camera live video feed over a network |
CN103428102A (zh) * | 2013-08-06 | 2013-12-04 | 北京智谷睿拓技术服务有限公司 | 在分布式网络中实现动态负载平衡的方法和系统 |
CN103701889A (zh) * | 2013-12-20 | 2014-04-02 | 国云科技股份有限公司 | 一种基于云计算的数据中心节能方法 |
CN103856512A (zh) * | 2012-11-30 | 2014-06-11 | 华为技术有限公司 | 云计算的管理服务器、工作和闲置主机以及资源调度方法 |
US20180081698A1 (en) * | 2016-09-22 | 2018-03-22 | Electronics And Telecommunications Research Institute | Network management apparatus and method for remotely controlling state of it device |
-
2018
- 2018-09-05 CN CN201811028914.3A patent/CN109151038A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008039763A2 (en) * | 2006-09-27 | 2008-04-03 | Trafficland, Inc. | System and method for multi-camera live video feed over a network |
CN103856512A (zh) * | 2012-11-30 | 2014-06-11 | 华为技术有限公司 | 云计算的管理服务器、工作和闲置主机以及资源调度方法 |
CN103428102A (zh) * | 2013-08-06 | 2013-12-04 | 北京智谷睿拓技术服务有限公司 | 在分布式网络中实现动态负载平衡的方法和系统 |
CN103701889A (zh) * | 2013-12-20 | 2014-04-02 | 国云科技股份有限公司 | 一种基于云计算的数据中心节能方法 |
US20180081698A1 (en) * | 2016-09-22 | 2018-03-22 | Electronics And Telecommunications Research Institute | Network management apparatus and method for remotely controlling state of it device |
Non-Patent Citations (3)
Title |
---|
孟利民,潘进学: "视频监控系统中负载均衡算法的设计", 《浙江工业大学学报》 * |
廖彬,于炯张陶,杨兴耀: "基于分布式文件系统HDFS的节能算法", 《计算机学报》 * |
潘进学: "视频监控系统媒体服务器集群架构的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242755A (zh) * | 2022-07-07 | 2022-10-25 | 齐鲁工业大学 | 一种基于sip信令服务器集群的性能监测及负载均衡方法 |
CN115242755B (zh) * | 2022-07-07 | 2023-10-03 | 齐鲁工业大学 | 一种基于sip信令服务器集群的性能监测及负载均衡方法 |
CN116233079B (zh) * | 2022-12-02 | 2024-03-12 | 北京富通亚讯网络信息技术有限公司 | 一种无中心终端自组视频会议的控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108199897B (zh) | 一种支持缓存管理的opc ua多服务器聚合方法 | |
CN102891877B (zh) | 实现终端应用的在线处理系统及方法 | |
WO2018130162A1 (zh) | 一种管控云计算终端和云服务器运作的方法和装置 | |
CN1306413C (zh) | 用于对数据处理设备与数据服务进行全无线同步的系统和方法 | |
CN104092746B (zh) | 一种运维审计系统及用在其系统中的网络负载均衡方法 | |
CN107122262A (zh) | 基于agent的数据库智能备份系统 | |
CN105827697A (zh) | 用户离线检测方法和用户离线检测系统 | |
CN109151038A (zh) | 一种绿色视频监控系统服务器集群系统及其实现方法 | |
CN110351532B (zh) | 视频大数据云平台云存储服务方法 | |
CN101415107A (zh) | 一种可靠的多级媒体存储方法 | |
CN103916936B (zh) | 实现数据长连接的方法、系统及移动终端、服务器 | |
CN110113406B (zh) | 基于分布式的计算服务集群系统 | |
CN114070758B (zh) | 一种基于sdn网络的流表优化方法及装置 | |
CN106790678A (zh) | 一种保证重要数据优先传输消费的传输系统及方法 | |
CN101753584B (zh) | VxWorks系统下提高智能变电站快速报文处理速度的方法 | |
CN108924007A (zh) | 通信运营信息的大数据采集及存储系统和方法 | |
CN107454171A (zh) | 消息服务系统及其实现方法 | |
GB2414891A (en) | A communication system where the transmission rate is controlled so a specific processing load is not exceeded | |
JP3908589B2 (ja) | 通信システム、コネクション管理サーバ装置及びプログラム | |
CN110519346A (zh) | 一种数据切换的方法、终端、服务器及计算机可读存储介质 | |
CN110035295A (zh) | 分布式的视频直播系统 | |
CN110365895A (zh) | 摄像装置调节方法、系统、可读存储介质和设备 | |
CN107086948B (zh) | 一种在sdwn下提升虚拟化网络性能的数据处理方法 | |
CN106571943A (zh) | 分布式架构集群扩容方法及装置 | |
CN115242717A (zh) | 一种基于端侧计算的中心化存储系统及控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190104 |
|
RJ01 | Rejection of invention patent application after publication |