本發明涉及通信領域,具體涉及一種負載均衡方法及相關裝置、系統。
背景技術:
近幾年,隨著用戶量和數據量的爆發性增長,分布式架構越來越成為眾多信息技術(英文全稱:Information Technology,縮寫:IT)企業平臺的基礎架構。通過堆疊大規模的、廉價的計算服務器、存儲服務器,構建低成本的、可靠的大型平臺,比如分布式計算平臺、分布式存儲系統等等。在這些大型平臺中,集群是其中最核心的技術之一。
集群是一種分布式協作技術,通過將大規模的節點組成協同工作的團隊,快速地、可靠地完成規模龐大的目標任務。而由于基于團隊化運作,集群必須考慮故障節點上的任務遷移以及節點之間的負載均衡,以此確保集群團隊長時間可靠地工作。而故障遷移和負載均衡技術中,最核心的是其中的調度算法,比如:故障遷移算法、負載均衡算法,算法將決定集群團隊中各個節點之間的壓力平衡,不會因為個別節點的故障或者過載,導致整個集群的故障或者長時間過載運行。
細分到安防監控領域,為了滿足平安城市和大型園區的大規模組網需求,會將很多的網絡視頻錄像機(英文全稱:Network Video Recorder,縮寫:NVR)進行堆疊,進行統一的管理和維護。而隨著用戶對視頻錄像的可靠性提出更高的要求時,會在堆疊的基礎上進一步組建共同協作的集群,形成可靠的大容量的視頻監控云。
目前,在視頻監控領域,整體分為前端和后端,如圖1a所示:前端為因特網協議攝像機(英文全稱:Internet Protocol Camera,縮寫:IPC),用于采集實時圖像,并將視頻流傳輸到后端的NVR進行轉發和存儲。后端為NVR,用于集中接入和控制多個IPC,獲取IPC的視頻流轉發、分發給監控平臺的多個用戶。同時,NVR自帶大容量存儲或者外加大型磁陣,可將視頻錄像存儲在監控平臺中,供后續回放、下載、備份使用。
可以看出,所有的IPC都會接入到NVR中,并且將自身采集的碼流傳輸到 NVR中進行錄像存儲,這就要求NVR本身有較強的接入能力和足夠的存儲空間。特別是存儲空間,隨著高清化、4K化、智能化,NVR占用的存儲空間越來越多,單個NVR已經無法滿足大規模的攝像機的碼流存儲,這就衍生了堆疊的組網方式,如圖2所示,堆疊組網將所有的NVR進行集中管理,并提供統一的業務入口,解決了在大型平安城市項目中,業務統一訪問、設備統一管理等難題。此外,堆疊組網還提供橫向擴展、動態伸縮的能力,當IPC數量增加時,可添加新的NVR用于接入新的IPC,而當IPC數量收縮時,用戶可減少現有的NVR,降低運營成本。
但是,由于各個NVR之間的計算能力、存儲空間也不盡相同,堆疊組網下無法根據所有NVR的既有能力進行負載平衡。
技術實現要素:
本發明實施例提供了一種負載均衡方法及相關裝置、系統,用于解決現有技術中負載不均衡的問題,實現視頻監控系統中各個設備間的負載均衡,避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源的問題。
本發明第一方面提供一種負載均衡方法,所述負載均衡方法應用于視頻監控系統,所述視頻監控系統包括多個設備,包括:
當所述視頻監控系統中的第一設備檢測到所述第一設備和所述視頻監控系統中的第二設備的負載不均衡時,所述第一設備獲取所述第一設備和所述第二設備的第一狀態信息;
當所述第一設備和所述第二設備的第一狀態信息都不大于預設閾值時,所述第一設備獲取所述第一設備和所述第二設備的第二狀態信息;
所述第一設備根據所述第一設備和所述第二設備的第二狀態信息分別計算出所述第一設備和所述第二設備的空間占比;
所述第一設備根據所述第一設備和所述第二設備的空間占比確定均衡策略;
所述第一設備根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。
可見,第一設備利用第一設備和第二設備的空間占比確定均衡策略,根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。可見,在本發明中無需根據設備的負載能力進行手動規劃,而是第一設備自動根據當前第一設備和第二設備的空間占比確定均衡策略,使得每個設備的負載均衡,大量節省成本,避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源,從而最大限度滿足用戶需求。
在本發明中,空間占比用于表示預期占用的存儲空間與總存儲空間的比率,例如:第一設備預期占用的存儲空間是通過接入其他設備而確定,則第一設備的空間占比表示為在第一設備上預期接入的其他設備所占用的存儲空間與第一設備的總存儲空間的比率,當然,在實際應用中,當第一設備預期沒有接入其他設備,第一設備預期自身存儲資源占用了第一設備的存儲空間,則第一設備的空間占比表示為第一設備預期自身存儲資源所占用的存儲空間與第一設備的總存儲空間的比率。
在一些可選的實現方式中,所述第一設備根據所述第一設備和所述第二設備的第二狀態信息分別計算出所述第一設備和所述第二設備的空間占比包括:
所述第一設備根據在所述第一設備上接入的IPC的Cn,Br和Sd計算出所述第一設備的空間占比;
所述第一設備根據在所述第二設備上分別接入的IPC的Cn,Br和Sd計算出所述第二設備的空間占比。
可見,將接入的IPC的通道數(英文全稱:Channel number,縮寫:Cn),碼率(英文全稱:Bit rate,縮寫:Br)和留存期(英文全稱:Storage Day,縮寫:Sd)作為第一狀態信息的參考因素從而計算出相應的空間占比。由于負載均衡的目的是使得每個設備的空間占比趨于一致,例如負載能力強的設備承載較重的負載,負載能力弱的設備承載較輕的負載,使得每個設備在有限的能力范圍內承載相應的負載,總之,每個設備的空間占比趨于一致,即:沒有超負荷的設備。考慮到第一設備和第二設備接入IPC后,IPC會傳輸碼流至第一設備和第二設備從而形成錄像,供用戶回放和下載,由于錄像會占用第一設備和第二設備的存儲空間,而影響錄像的主要因素為通道數,碼率和 留存期,其中,在本發明的技術領域中,錄像是核心需求,錄像的核心參數包括錄像的碼率、錄像的時長。其他的參數如幀率、分辨率等都會反映到碼率的變化上。碼率與錄像時長則反映了IPC對第一設備和第二設備的存儲空間的占用。如果是多通道設備,還需要考慮每個通道對存儲空間的占用。這三個核心要素最終形成了每個IPC所占用的存儲空間。由于第一設備和第二設備的存儲空間有限,所以在本發明中,就需要考慮平衡第一設備和第二設備的存儲空間占用,盡量滿足不同的IPC對存儲空間的需求。
在一些可選的實現方式中,所述第一設備根據所述第一設備和所述第二設備的空間占比確定均衡策略包括:
所述第一設備根據所述第一設備和所述第二設備所在的區域位置確定第一區域和第二區域;
所述第一設備將第一區域所在的設備的空間占比進行大小值排序;
所述第一設備根據所述第一區域所在的設備的空間占比進行大小值排序的結果確定第一目標設備和第二目標設備;
所述第一設備將第一目標設備中接入的至少一個目標IPC預調度到所述第二目標設備中;
當所述第一目標設備的空間占比與所述第二目標設備的空間占比的絕對差變小時,所述第一設備將所述第一目標設備中接入的至少一個目標IPC預調度到所述第二目標設備中確定為所述均衡策略;
當所述第一目標設備的空間占比與所述第二目標設備的空間占比的絕對差沒有變小時,所述第一設備將第二區域所在的設備的空間占比進行大小值排序確定第三目標設備;
所述第一設備將所述第一目標設備中接入的至少一個目標IPC預調度到所述第三目標設備中,以使得所述第一目標設備的空間占比與所述第三目標設備的空間占比的絕對差變小;
所述第一設備將第一目標設備中接入的至少一個目標IPC預調度到所述第三目標設備中確定為所述均衡策略。
可見,先根據第一區域所在的設備的空間占比進行大小值排序,確定第一目標設備和第二目標設備,例如:第一目標設備為空間占比最大的設備, 第二設備為空間占比最小的設備時,將空間占比最大的設備中的至少一個目標IPC預調度到空間占比最小的設備中。其中,至少一個目標IPC用于表示在所述空間占比最大的設備中接入的預占用的存儲空間相對較小或者較大的設備,例如:空間占比最大的設備中接入多個IPC,根據該多個IPC的預占用的存儲空間的大小值進行排序確定存儲空間相對較小的IPC為目標IPC。在實際應用中,初次預調度時,空間占比最大的設備將一個存儲空間相對較小的IPC預調度到空間占比最小的設備中,或者,空間占比最大的設備將多個存儲空間相對較小的IPC預調度到空間占比最小的設備中,或者,空間占比最大的設備將一個存儲空間相對較大的IPC預調度到空間占比最小的設備中,具體可根據實際應用而定,此處不做限定。
本發明第二方面提供一種負載均衡裝置,所述負載均衡裝置應用于視頻監控系統,所述視頻監控系統包括多個設備,包括:
檢測模塊,用于檢測所述視頻監控系統中的第一設備和所述視頻監控系統中的第二設備的負載是否均衡;
獲取模塊,用于當所述檢測模塊檢測到所述第一設備和第二設備的負載不均衡時,獲取所述第一設備和所述第二設備的第一狀態信息;
所述獲取模塊,還用于當所述第一設備和所述第二設備的第一狀態信息對應的值都不大于預設閾值時,獲取所述第一設備和所述第二設備的第二狀態信息;
計算模塊,用于根據所述獲取模塊獲取的所述第一設備和所述第二設備的第二狀態信息分別計算出所述第一設備和所述第二設備的空間占比;
確定模塊,用于根據所述計算模塊計算出的所述第一設備和所述第二設備的空間占比確定均衡策略;
調度模塊,用于根據所述確定模塊確定的所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。
可見,確定模塊利用第一設備和第二設備的空間占比確定均衡策略,調度模塊根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。可見,在本發明中無需根據設備的負載能力進行手動規劃,而是自動根據當前第一設備和第二設備的空間占比確定均衡策略,使得各個設備 間的負載均衡,大量節省成本,避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源,從而最大限度滿足用戶需求。
本發明第三方面提供一種負載均衡裝置,所述負載均衡裝置應用于視頻監控系統,所述視頻監控系統包括多個設備,所述負載均衡裝置包括:存儲器,處理器,發射器與接收器;
其中,所述發射器與所述接收器連接,所述存儲器與所述處理器連接,所述處理器與所述發射器連接,所述處理器與所述接收器連接;
通過調用所述存儲器中存儲的操作指令,所述處理器用于當檢測到所述視頻監控系統中的第一設備和所述視頻監控系統中的第二設備的負載不均衡時,獲取所述第一設備和所述第二設備的第一狀態信息;
所述處理器還用于當所述第一設備和所述第二設備的第一狀態信息對應的值都不大于預設閾值時,獲取所述第一設備和所述第二設備的第二狀態信息;
所述處理器還用于所述第一設備和所述第二設備的第二狀態信息分別計算出所述第一設備和所述第二設備的空間占比;
所述處理器還用于根據所述第一設備和所述第二設備的空間占比確定均衡策略;
所述處理器還用于根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。
所述第一狀態信息包括:
內存占有率、中央處理器CPU占有率以及輸入輸出I/O占有率中的至少一個。
可見,處理器利用第一設備和第二設備的空間占比確定均衡策略,根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。可見,在本發明中無需根據設備的負載能力進行手動規劃,而是處理器自動根據當前第一設備和第二設備的空間占比確定均衡策略,使得各個設備間的負載均衡,大量節省成本,避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源,從而最大限度滿足用戶需求。
本發明第四方面提供一種視頻監控系統,所述視頻監控系統包括第一設備和第二設備,其中,所述第二設備有多個;
所述第一設備,用于當檢測到所述第一設備和所述第二設備的負載不均衡時,獲取所述第一設備和所述第二設備的第一狀態信息;
所述第一設備,還用于當所述第一設備和所述第二設備的第一狀態信息對應的值都不大于預設閾值時,獲取所述第一設備和所述第二設備的第二狀態信息;
所述第一設備,還用于根據所述第一設備和所述第二設備的第二狀態信息分別計算出所述第一設備和所述第二設備的空間占比;
所述第一設備,還用于根據所述第一設備和所述第二設備的空間占比確定均衡策略;
所述第一設備,還用于根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。
可見,視頻監控系統中的第一設備利用第一設備和視頻監控系統中的第二設備的空間占比確定均衡策略,根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。可見,在本發明中無需根據設備的負載能力進行手動規劃,而是視頻監控系統中的第一設備自動根據當前第一設備和第二設備的空間占比確定均衡策略,使得各個設備間的負載均衡,大量節省成本,避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源,從而最大限度滿足用戶需求。
附圖說明
圖1a為現有技術中NVR與IPC連接的一個結構示意圖;
圖1b為本發明實施例中視頻監控系統的一個結構示意圖;
圖1c為本發明實施例中設備的一個結構示意圖;
圖1d為本發明實施例中設備間互聯的一個實施例示意圖;
圖2為本發明實施例中負載均衡方法的一個實施例示意圖;
圖3a為本發明實施例中負載均衡應用場景的一個實施例示意圖;
圖3b為本發明實施例中負載均衡應用場景的另一個實施例示意圖;
圖3c為本發明實施例中負載均衡應用場景的另一個實施例示意圖;
圖4為本發明實施例中負載均衡裝置的另一個結構示意圖;
圖5為本發明實施例中負載均衡裝置的又一個結構示意圖;
圖6為本發明實施例中視頻監控系統的另一個結構示意圖。
具體實施方式
本發明實施例提供了一種負載均衡方法及相關裝置、系統,用于解決現有技術中負載不均衡的問題,實現視頻監控系統中各個設備間的負載均衡,避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源的問題。
首先,介紹本發明的技術方案應用的視頻監控系統,如圖1b所示,所述視頻監控系統包括多個設備,例如:第一設備和第二設備,其中,第一設備上和第二設備上都接入IPC(例如:IPC),第一設備作為管理設備,第二設備作為被管理設備,第二設備有多個,在實際應用中,可選擇任意一個設備作為管理設備。其中,第一設備和第二設備都為NVR,通過多個NVR組建成一個協同工作的大平臺,整個視頻監控系統內部自行運作,管理設備NVR將視頻監控系統中所有NVR的計算資源和存儲資源統一管理,形成龐大的計算資源池和存儲資源池,以滿足大型平安城市項目的需求。
為了組建集群,在每個NVR上引入集群管理單元(英文全稱:Cluster Management Unit,縮寫:CMU)和狀態上報單元(英文全稱:Status Reporter,縮寫:SR),其中,CMU完成集群內部所有設備的互聯和集群管理,SR完成集群內所有設備的狀態信息采集和上報,如圖1c所示,每個NVR都包括CMU和SR以及其他業務軟件,例如:視頻監控業務軟件等。
在實際應用中,如圖1d所示,集群中的所有NVR通過各自的CMU互聯形成集群通訊網絡,同時管理設備CMU Master還承擔集群管理的功能,包括狀態緩存、調度計算、調度執行等等,是集群的核心支撐單元。集群中的每個NVR中的SR定時采集自身狀態數據并通過各自的CMU上報給CMU Master,作為調度計算的基礎數據,如圖1d所示,NVR D為集群中的管理設備Master,NVR A,NVR B和NVR C作為集群中的被管理設備Slave,所有的Slave都會定期上報自身狀態信息給Master,Master將所有集群成員的狀態信息緩存在 節點狀態表中,以此獲知整個視頻監控系統的整體狀態,并作為調度算法的基礎數據。
結合上述圖1a至圖1d所示,請參閱圖2,為本發明實施例中負載均衡方法的一個流程圖,所述負載均衡方法應用于圖1b所示的視頻監控系統,所述視頻監控系統包括多個設備,該實施例包括:
步驟201、當所述視頻監控系統第一設備檢測到所述第一設備和所述視頻監控系統的第二設備的負載不均衡時,所述第一設備獲取所述第一設備和所述第二設備的第一狀態信息,其中,所述第二設備有多個。
首先,第一設備作為管理者獲取第一設備和第二設備的負載,當判斷第一設備和第二設備的負載不均衡時,獲取第一設備和第二設備的狀態信息,其中,第一設備提前設置一個空間占比差閾值,如果第一設備和第二設備的空間占比差大于該空間占比差閾值時,則確定第一設備和第二設備的負載不均衡,或者第一設備提前設置一個空間占比閾值,當第一設備和第二設備的空間占比都大于該空間占比閾值時,則確定第一設備和第二設備的負載不均衡。
在實際應用中,第二設備作為被管理設備通過第二設備自身的SR采集到第二設備自身的狀態信息,并通過第二設備自身的CMU上報給第一設備的CMU,當然,第一設備也通過第一設備自身的SR采集到的第一設備自身的狀態信息,并上報給第一設備自身的CMU。
在一些可選的實施例中,第一狀態信息包括內存占有率、中央處理器(英文全稱:Central Processing Unit,縮寫:CPU)占有率以及輸入輸出(英文全稱:I nput/Output,縮寫:I/O)占有率中的至少一個,當然,第一狀態信息還可以包括其他與設備的存儲空間相關的信息,比如:圖形處理器(英文全稱:Graphics Processing Unit,縮寫:GPU)使用率等,此處不做具體限定。
步驟202、當所述第一設備和所述第二設備的第一狀態信息對應的值都不大于預設閾值時,所述第一設備獲取所述第一設備和所述第二設備的第二狀態信息。
在一些可選的實施例中,第一設備和第二設備的內存占有率,CPU占有率, I/O占有率中的任意一個值大于或者等于預設閾值時,對應的設備將會被過濾掉,然后再進行存儲空間占比為核心的調度。例如:某個第二設備的CPU占有率大于80%,在負載均衡過程中,不能接受新的任務,或者某個第二設備的內存占有率大于80%,在負載均衡過程中,不能接受新的任務。
在發明實施例中,預設閾值為整個視頻監控系統預先設置好的閾值,具體可根據整個視頻監控系統中每個設備的狀態參數進行設置,當第一設備和所述第二設備的第一狀態信息對應的值都不大于預設閾值時,所述第一設備獲取所述第一設備和所述第二設備的第二狀態信息。
在一些可選的實施例中,所述第一設備獲取所述第一設備的第二狀態信息,其中,所述第一設備的第二狀態信息包括在所述第一設備上接入的IPC的通道數Cn,碼率Br以及留存期Sd中的至少一個;
所述第一設備獲取所述第二設備的第二狀態信息,其中,所述第二設備的第二狀態信息包括在所述第二設備上接入的IPC的Cn,Br以及Sd中的至少一個。
當然,在實際應用中第二狀態信息除了上述幾種信息外,還可以包括帶寬等,此處不做具體限定。
需要說明的是,作為影響第一設備或者第二設備的存儲空間的主要參考因素,在優選的實現方式中,第二狀態信息包括接入的IPC的Cn,Br以及Sd。
在實際應用中,IPC可以為IPC,用于采集實時圖像,并將視頻流傳輸到NVR進行轉發和存儲。
步驟203、第一設備根據所述第一設備和所述第二設備的第二狀態信息分別計算出所述第一設備和所述第二設備的空間占比。
在一些可選的實施例中,當第二狀態信息包括IPC的Cn,Br和Sd時,則所述第一設備根據在所述第一設備上接入的IPC的Cn,Br和Sd計算出所述第一設備的空間占比;
所述第一設備根據在所述第二設備上接入的IPC的Cn,Br和Sd計算出所述第二設備的空間占比。
在實際應用中,具體的計算過程包括:所述第一設備和所述第二設備的 的空間占比分別都表示為Rt,其中,其中,Da為所述第一設備的總存儲空間,Di為所述第一設備上接入的IPC的預期的存儲空間,n表示所述第一設備上接入的IPC的總個數;或者Da為所述第二設備的總存儲空間,Di為所述第二設備上接入的IPC的預期的存儲空間,n表示所述第二設備上接入的IPC的總個數,其中,i=1,…,n,n為正整數,j表示通道數編號。
例如:第一設備上接入3個IPC(當然,在實際應用中第一設備上可能接入更多的IPC,該舉例只是為了參考說明),其中,3個IPC的預期的存儲空間分別為D1,D2和D3,Da為第一設備的總存儲空間,則第一設備的空間占比Rt=(D1+D2+D3)/Da,其中,例如:第一設備上接入的其中一個IPC的通道數Cn的總個數為2時,則D1=Br1*Sd1+Br2*Sd2。在實際應用中,第二設備的空間占比的計算與第一設備的空間占比的計算相似,具體可參閱第一設備的空間占比的計算,此處不再贅述。
當然,在實際應用中,第二狀態信息發生改變時,對應的計算方法相似,具體可參閱根據第二狀態信息包括IPC的Cn,Br和Sd時關于第一設備的空間占比的計算,此處不再贅述。
當然,在實際應用中,第一設備或者第二設備上接入的單個IPC的Br和Sd都一致時,對應的IPC的預期的存儲空間的計算方法也相應簡單,例如:第一設備上接入1個IPC的Br和Sd都一致,則IPC的D1=Br*Sd*3,可見,當第一設備或者第二設備上接入的IPC的Cn,Br和Sd都一致時,整個計算方法變得簡單。
步驟204、第一設備根據所述第一設備和所述第二設備的空間占比確定均衡策略。
在本發明實施例中,所述第一設備根據所述第一設備和所述第二設備的空間占比確定均衡策略包括:
所述第一設備根據所述第一設備和所述第二設備所在的區域位置確定第一區域和第二區域;
所述第一設備將第一區域所在的設備的空間占比進行大小值排序;
所述第一設備根據所述第一區域所在的設備的空間占比進行大小值排序的結果確定第一目標設備和第二目標設備;
所述第一設備將第一目標設備中接入的至少一個目標IPC預調度到所述 第二目標設備中;
當所述第一目標設備的空間占比與所述第二目標設備的空間占比的絕對差變小時,所述第一設備將所述第一目標設備中接入的至少一個目標IPC預調度到所述第二目標設備中確定為所述均衡策略;
當所述第一目標設備的空間占比與所述第二目標設備的空間占比的絕對差沒有變小時,所述第一設備將第二區域所在的設備的空間占比進行大小值排序確定第三目標設備;
所述第一設備將所述第一目標設備中接入的至少一個目標IPC預調度到所述第三目標設備中,以使得所述第一目標設備的空間占比與所述第三目標設備的空間占比的絕對差變小;
所述第一設備將第一目標設備中接入的至少一個目標IPC預調度到所述第三目標設備中確定為所述均衡策略。
在實際應用中,假設有一個第一設備,有N個第二設備,N為大于1的整數,首先將第一設備和N個第二設備所在的區域位置進行劃分,確定第一區域和第二區域,一般而言,將距離較近的多個設備劃分為一個區域,為了后續調度時實現距離調度和可靠調度,即:調度時偏向于將IPC調度到最相近的第一設備上或者第二設備上,或者調度時偏向于將IPC調度到網絡質量較好的第一設備上或者第二設備上,從而保證了IPC與第一設備或者第二設備間的業務質量。
進一步,將第一區域上所在的設備的空間占比進行大小值排序,在實際應用中,還可以首先將第二區域所在的設備的空間占比進行大小值排序,或者同時將第二區域所在的設備的空間占比進行大小值排序,具體可根據實際情況而定,此處不做限定。
例如:將第一區域上的4個設備的空間占比進行大小值排序,空間占比從大到小對應的設備分別為:設備2>設備3>設備1>設備4,那么確定第一目標設備為設備2,第二目標設備為設備4,在實際應用中,第一目標設備和第二目標設備分別為空間占比最大的設備和空間占比最小的設備。當然在實際應用中,如果存在多個最大空間占比的設備,則任意選擇其中的一個作為第一目標設備。或者如果存在多個最小空間占比的設備,則任意選擇其中的一 個作為第二目標設備,此處不做限定。
進一步,將設備2中的至少一個目標IPC預調度到設備4中,判斷設備2和設備4的空間占比的絕對差是否變小。在實際應用中,目標IPC一般是存儲空間較小的IPC,例如:將設備2上接入的存儲空間最小的IPC預調度到設備4中,比較設備2和設備4的空間占比的絕對差是否變小。例如:設備2初始的空間占比的值為m,設備4初始的空間占比的值為n,那么初始的空間占比的絕對差為|m-n|,當設備2將設備2上接入的存儲空間最小的IPC預調度到設備4中,設備2和設備4的空間占比發生了改變,例如:預調度后設備2的空間占比為M,預調度后設備4的空間占比為N,那么預調度后的空間占比的絕對差為|M-N|,判斷|M-N|是否小于|m-n|,如果是,認為預調度成功,并將設備2上接入的存儲空間最小的IPC預調度到設備4中作為均衡策略,通過這次預調度后,設備2和設備4的空間占比發生改變,繼續將預調度后的第一區域上的4個設備的空間占比進行大小值排序,進一步按照上述方法確定后續的均衡策略,最終使得每個設備的空間占比趨于一致。
需要說明的是,每次預調度成功后,并沒有立刻執行均衡策略,而是將每次預調度成功的均衡策略存儲在調度決策表中,只有將所有的均衡策略完畢后,才批量實施均衡策略,保證了每個均衡策略都是根據內存中的狀態數據進行確定的,使得每個設備的負載趨于平衡。
當然,如果|M-N|沒有小于|m-n|時,在一種可選的方式中,將設備2從平衡列表中刪除,然后將剩余的設備按照上述方法繼續進行空間占比的排序以及后續的預調度,在另一種可選的方式中,假設將設備2中的至少一個目標IPC預調度到設備4中,設備2和設備4的空間占比的絕對差沒有變小時,將第二區域所在的設備的空間占比進行大小值排序,假設第二區域上存在3個第二設備,分別為設備5,設備6和設備7,其中,空間占比從大到小對應的設備分別為:設備6>設備7>設備5,則將空間占比最小的設備5作為第三目標設備。
進一步,將設備2上接入的存儲空間最小的IPC預調度到設備5中,判斷比較設備2和設備5的空間占比的絕對差是否變小,如果是,將設備2上接入的存儲空間最小的IPC預調度到設備5確定為均衡策略,如果不是,將 該設備2從平衡列表中刪除,對剩余的設備進行上述方法確定均衡策略,直到整個平衡列表中只剩余一個設備或者沒有剩余的設備,即完成了所有設備的預調度,進一步根據調度決策表批量執行均衡策略。
步驟205、第一設備根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。
可見,通過每個設備的空間占比確定均衡策略,并根據該均衡策略進行調度,使得第一設備和第二設備的負載均衡,實現視頻監控系統中各個設備的負載均衡,避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源的問題。
在實際應用中,如圖3a所示,需要添加IPC時,管理設備Master中的CMU根據各個Slave成員設備中的CMU上報的狀態信息,并存儲在節點狀態表中,通過負載調度算法計算出用于接入該IPC的目標NVR,然后將IPC添加到目標NVR中,最終實現IPC在各個設備間的平衡分配。
如圖3b所示,集群運行過程時,管理設備Master中的CMU會收集各個Slave成員設備中的CMU上報的狀態信息,判斷過載和空載的設備成員,通過負載調度算法計算出IPC在集群內的均衡策略案,最終實現設備成員間的平衡分配。
在實際應用中,如圖3c所示,即:通過實施均衡策略后,每個設備的空間占比從初始的不一致趨于一致,使得每個設備的負載均衡,從而避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源的問題。
結合圖2所示的方法實施例,進一步參閱圖4,為本發明實施例中負載均衡裝置400的一個結構示意圖,所述負載均衡裝置400應用于視頻監控系統,所述視頻監控系統包括多個設備,所述負載均衡裝置400包括:檢測模塊401,獲取模塊402,計算模塊403,確定模塊4304以及調度模塊405。
檢測模塊401,用于檢測所述視頻監控系統中的第一設備和所述視頻監控系統中的第二設備的負載是否均衡;
獲取模塊402,用于當所述檢測模塊401檢測到所述第一設備和第二設備的負載不均衡時,獲取所述第一設備和所述第二設備的第一狀態信息;
所述獲取模塊402,還用于當所述第一設備和所述第二設備的第一狀態信息對應的值都不大于預設閾值時,獲取所述第一設備和所述第二設備的第二狀態信息;
計算模塊403,用于根據所述獲取模塊402獲取的所述第一設備和所述第二設備的第二狀態信息分別計算出所述第一設備和所述第二設備的空間占比;
確定模塊404,用于根據所述計算模塊403計算出的所述第一設備和所述第二設備的空間占比確定均衡策略;
調度模塊405,用于根據所述確定模塊404確定的所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。
在一些可選的實施例中,所述獲取模塊402,具體用于獲取所述第一設備的第二狀態信息,其中,所述第一設備的第二狀態信息包括在所述第一設備上接入的IPC的通道數Cn,碼率Br以及留存期Sd中的至少一個。
所述獲取模塊402,具體用于獲取所述第二設備的第二狀態信息,其中,所述第二設備的第二狀態信息包括在所述第二設備上接入的IPC的Cn,Br以及Sd中的至少一個。
在一些可選的實施例中,所述計算模塊403,具體用于根據在所述第一設備上接入的IPC的Cn,Br和Sd計算出所述第一設備的空間占比;
所述計算模塊403,具體用于根據在所述第二設備上接入的IPC的Cn,Br和Sd計算出所述第二設備的空間占比。
在一些可選的實施例中,所述第一設備和所述第二設備的的空間占比分別都表示為Rt,其中,其中,Da為所述第一設備的總存儲空間,Di為所述第一設備上接入的IPC的預期的存儲空間,n表示所述第一設備上接入的IPC的總個數;或者Da為所述第二設備的總存儲空間,Di為所述第二設備上接入的IPC的預期的存儲空間,n表示所述第二設備上接入的IPC的總個數,其中,i=1,…,n,n為正整數,j表示通道數編號。
在一些可選的實施例中,所述確定模塊404,具體用于根據所述第一設備和所述第二設備所在的區域位置確定第一區域和第二區域,將第一區域所在的設備的空間占比進行大小值排序,根據所述第一區域所在的設備的空間占比進行大小值排序的結果確定第一目標設備和第二目標設備,將第一目標設 備中接入的至少一個目標IPC預調度到所述第二目標設備中,當所述第一目標設備的空間占比與所述第二目標設備的空間占比的絕對差變小時,將所述第一目標設備中接入的至少一個目標IPC預調度到所述第二目標設備中確定為所述均衡策略,當所述第一目標設備的空間占比與所述第二目標設備的空間占比的絕對差沒有變小時,將第二區域所在的設備的空間占比進行大小值排序確定第三目標設備,將所述第一目標設備中接入的至少一個目標IPC預調度到所述第三目標設備中,以使得所述第一目標設備的空間占比與所述第三目標設備的空間占比的絕對差變小,將第一目標設備中接入的至少一個目標IPC預調度到所述第三目標設備中確定為所述均衡策略。
在一些可選的實施例中,所述第一狀態信息包括:
內存占有率、中央處理器CPU占有率以及輸入輸出I/O占有率中的至少一個。
圖4所示的實施例從功能模塊的角度介紹了負載均衡裝置的具體結構,請參閱圖5,從硬件角度介紹一下負載均衡裝置500,所述負載均衡裝置500應用于視頻監控系統,所述視頻監控系統包括多個設備,所述負載均衡裝置500包括:存儲器501,處理器502,發射器503與接收器504通過總線505連接;其中,所述存儲器501與所述處理器502通過總線505連接,所述處理器502與所述發射器503通過總線505連接,所述處理器502與所述接收器504通過總線505連接;
通過調用所述存儲器501中存儲的操作指令,所述處理器502用于當檢測到所述視頻監控系統中的第一設備和所述視頻監控系統中的第二設備的負載不均衡時,獲取所述第一設備和所述第二設備的第一狀態信息,其中,所述第二設備有多個;
在一些可選的實施例中,所述第一狀態信息包括:
內存占有率、中央處理器CPU占有率以及輸入輸出IO占有率中的至少一個。
所述處理器502還用于當所述第一設備和所述第二設備的第一狀態信息對應的值都不大于預設閾值時,獲取所述第一設備和所述第二設備的第二狀態信息;
所述處理器502還用于所述第一設備和所述第二設備的第二狀態信息分別計算出所述第一設備和所述第二設備的空間占比;
所述處理器502還用于根據所述第一設備和所述第二設備的空間占比確定均衡策略;
所述處理器502還用于根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。
確定模塊利用第一設備和第二設備的空間占比確定均衡策略,調度模塊根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。可見,在本發明中無需根據設備的負載能力進行手動規劃,而是自動根據當前第一設備和第二設備的空間占比確定均衡策略,使得每個設備的負載均衡,大量節省成本,避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源,從而最大限度滿足用戶需求。
在一些可選的實施例中,所述處理器502具體用于獲取所述第一設備的第二狀態信息,其中,所述第一設備的第二狀態信息包括在所述第一設備上接入的IPC的通道數Cn,碼率Br以及留存期Sd中的至少一個;
獲取所述第二設備的第二狀態信息,其中,所述第二設備的第二狀態信息包括在所述第二設備上接入的IPC的Cn,Br以及Sd中的至少一個。
在一些可選的實施例中,所述處理器502具體用于根據在所述第一設備上接入的IPC的Cn,Br和Sd計算出所述第一設備的空間占比;
根據在所述第二設備上接入的IPC的Cn,Br和Sd計算出所述第二設備的空間占比。
在一些可選的實施例中,所述第一設備和所述第二設備的的空間占比分別都表示為Rt,其中,其中,Da為所述第一設備的總存儲空間,Di為所述第一設備上接入的IPC的預期的存儲空間,n表示所述第一設備上接入的IPC的總個數;或者Da為所述第二設備的總存儲空間,Di為所述第二設備上接入的IPC的預期的存儲空間,n表示所述第二設備上接入的IPC的總個數,其中,i=1,…,n,n為正整數,j表示通道數編號。
在一些可選的實施例中,所述處理器502具體用于根據所述第一設備和所述第二設備所在的區域位置確定第一區域和第二區域,將第一區域所在的設備的空間占比進行大小值排序,根據所述第一區域所在的設備的空間占比 進行大小值排序的結果確定第一目標設備和第二目標設備,將第一目標設備中接入的至少一個目標IPC預調度到所述第二目標設備中,當所述第一目標設備的空間占比與所述第二目標設備的空間占比的絕對差變小時,將所述第一目標設備中接入的至少一個目標IPC預調度到所述第二目標設備中確定為所述均衡策略,當所述第一目標設備的空間占比與所述第二目標設備的空間占比的絕對差沒有變小時,所述第一設備將第二區域所在的設備的空間占比進行大小值排序確定第三目標設備,將所述第一目標設備中接入的至少一個目標IPC預調度到所述第三目標設備中,以使得所述第一目標設備的空間占比與所述第三目標設備的空間占比的絕對差變小,將第一目標設備中接入的至少一個目標IPC預調度到所述第三目標設備中確定為所述均衡策略。
可見,處理器利用第一設備和第二設備的空間占比確定均衡策略,根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。可見,在本發明中無需根據設備的負載能力進行手動規劃,而是處理器自動根據當前第一設備和第二設備的空間占比確定均衡策略,使得每個設備的負載均衡,大量節省成本,避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源,從而最大限度滿足用戶需求。
請參閱圖6,提供一種視頻監控系統600,所述視頻監控系統包括第一設備601和第二設備602。
所述第一設備601,用于當檢測到所述第一設備601和所述第二設備602的負載不均衡時,獲取所述第一設備601和所述第二設備602的第一狀態信息,其中,所述第二設備602有多個(例如:第二設備1,第二設備2,…第二設備N,其中,N為大于1的整數);
所述第一設備601,還用于當所述第一設備601和所述第二設備602的第一狀態信息對應的值都不大于預設閾值時,獲取所述第一設備601和所述第二設備602的第二狀態信息;
所述第一設備601,還用于根據所述第一設備601和所述第二設備602的第二狀態信息分別計算出所述第一設備601和所述第二設備602的空間占比;
所述第一設備601,還用于根據所述第一設備601和所述第二設備的空間占比確定均衡策略;
所述第一設備601,還用于根據所述均衡策略進行調度,以使得所述第一設備601和所述第二設備602的負載均衡。
在一些可選的實施例中,
所述第一設備601,具體用于獲取所述第一設備601的第二狀態信息,其中,所述第一設備601的第二狀態信息包括在所述第一設備601上接入的因特網協議攝像機IPC的通道數Cn,碼率Br以及留存期Sd中的至少一個;
所述第一設備601,具體用于獲取所述第二設備602的第二狀態信息,其中,所述第二設備的第二狀態信息包括在所述第二設備上接入的IPC的Cn,Br以及Sd中的至少一個。
在另一些可選的實施例中,
所述第一設備601,具體用于根據在所述第一設備601上接入的IPC的Cn,Br和Sd計算出所述第一設備的空間占比;
所述第一設備601,具體用于根據在所述第二設備602上接入的IPC的Cn,Br和Sd計算出所述第二設備的空間占比。
在另一些可選的實施例中,
所述第一設備601,具體用于根據所述第一設備601和所述第二設備602所在的區域位置確定第一區域和第二區域,將第一區域所在的設備的空間占比進行大小值排序,根據所述第一區域所在的設備的空間占比進行大小值排序的結果確定第一目標設備和第二目標設備,將第一目標設備中接入的至少一個目標IPC預調度到所述第二目標設備中,當所述第一目標設備的空間占比與所述第二目標設備的空間占比的絕對差變小時,將所述第一目標設備中接入的至少一個目標IPC預調度到所述第二目標設備中確定為所述均衡策略,當所述第一目標設備的空間占比與所述第二目標設備的空間占比的絕對差沒有變小時,將第二區域所在的設備的空間占比進行大小值排序確定第三目標設備;將所述第一目標設備中接入的至少一個目標IPC預調度到所述第三目標設備中,以使得所述第一目標設備的空間占比與所述第三目標設備的空間占比的絕對差變小,將第一目標設備中接入的至少一個目標IPC預調度到所述第三目標設備中確定為所述均衡策略。
可見,視頻監控系統中的第一設備601利用第一設備601和視頻監控系 統中的第二設備602的空間占比確定均衡策略,根據所述均衡策略進行調度,以使得所述第一設備和所述第二設備的負載均衡。可見,在本發明中無需根據設備的負載能力進行手動規劃,而是視頻監控系統中的第一設備自動根據當前第一設備和第二設備的空間占比確定均衡策略,使得各個設備間的負載均衡,大量節省成本,避免設備由于負載過重而導致的生命周期短或者由于負載過輕而導致的浪費存儲空間資源,從而最大限度滿足用戶需求。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機, 服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。