一種存儲資源的管理和分配方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種存儲資源的管理和分配方法,包括:數(shù)據(jù)管理節(jié)點DataNode接收IP編碼器的分配存儲空間請求;所述DataNode按照第一策略為所述IP編碼器選擇存儲資源,并根據(jù)第二策略為所述IP編碼器分配所選存儲資源中的存儲空間片(slice),以供所述IP編碼器根據(jù)所選存儲資源的iSCSI掛載信息,通過iSCSI掛載存儲資源,根據(jù)所分配的存儲空間slice的起始地址、空間大小進行iSCSI數(shù)據(jù)寫入。本發(fā)明同時還公開了一種存儲資源的管理和分配系統(tǒng)。
【專利說明】一種存儲資源的管理和分配方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)的媒體流iSCSI塊直存【技術(shù)領(lǐng)域】,尤其涉及一種存儲資源的管理和分配方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著高清在監(jiān)控業(yè)務(wù)系統(tǒng)中的應(yīng)用,對監(jiān)控錄像存儲的可靠性、性能等要求越來越高。而前端互聯(lián)網(wǎng)協(xié)議(IP,Internet Protocol)編碼器到IP存儲局域網(wǎng)(IPSAN,IPStorage Area Network)的端到端的媒體流塊直存技術(shù)就是一種較好的錄像存儲方案。如圖1所示,為相關(guān)技術(shù)中IP編碼器到IPSAN的端到端的媒體流塊直存示意圖,在存儲方式上,媒體流塊直存的數(shù)據(jù)管理方式拋棄了媒體服務(wù)器;在IP網(wǎng)絡(luò)的基礎(chǔ)上,在編碼器中集成了iSCSI模塊,使得編碼器可以基于iSCSI協(xié)議端到端的將錄像數(shù)據(jù)寫入IPSAN存儲設(shè)備中。當(dāng)監(jiān)控點的圖像需要進行集中存儲時,前端IP編碼器與IPSAN存儲設(shè)備建立iSCSI連接,將IPSAN存儲設(shè)備的存儲資源通過iSCSI協(xié)議掛載到IP編碼器本地,然后對存儲視頻流進行iSCSI協(xié)議封裝,直接采用數(shù)據(jù)塊的方式將媒體數(shù)據(jù)寫入IPSAN存儲設(shè)備中。
[0003]而在媒體流數(shù)據(jù)塊直存技術(shù)的基礎(chǔ)上,對存儲空間的分配管理成為了一個關(guān)鍵問題,攝像機錄像存儲空間需要滿足用戶指定的錄像留存期的需求,同時可以支持靈活擴容,另外需要提聞空間利用率,避免存儲空間浪費。
[0004]相關(guān)技術(shù)中,監(jiān)控iSCSI塊存儲的空間分配機制,是基于邏輯卷管理(LVM,LogicVolume Manage)的存儲虛擬化技術(shù),即在屏蔽底層物理存儲實體的情況下,為每個攝像機單獨分配一段邏輯存儲空間,該邏輯存儲空間稱為存儲資源。塊存儲資源管理的分層結(jié)構(gòu)如圖2所示,所謂存儲資源,是通過iSCSI Target (標簽)的邏輯單元號(LUN, Logic UnitNumber)與LVM層的邏輯卷進行綁定,從而為iSCSI存儲業(yè)務(wù)提供的一段邏輯地址空間。而LVM層是由物理卷(PV)、卷組(VG)和邏輯卷(LV)等不同實體組成。物理卷是與物理陣列或物理磁盤相對應(yīng)的實體,卷組是所有加入本卷組的物理卷的集合;而邏輯卷則是在卷組上分配的一塊邏輯地址空間,在iSCSI存儲應(yīng)用中,與iSCSI Target的LUN進行綁定。
[0005]通過上述方案,可以為上層存儲業(yè)務(wù)提供一種虛擬化的存儲空間管理機制,實現(xiàn)了對底層實際的物理磁盤陣列的屏蔽。LVM層目前只支持邏輯卷的分配、刪除、擴容,不支持單個邏輯卷的容量縮減,同時邏輯卷本身不提供小粒度、可分配管理的存儲單元,因此邏輯卷本質(zhì)上是一種空間獨享的技術(shù)。在監(jiān)控iSCSI塊直存業(yè)務(wù)中為攝像機分配存儲資源,對于LVM層,實際是在物理卷組成的卷組空間上分配一塊邏輯卷,并將邏輯卷與為攝像機iSCSI直存所創(chuàng)建的[Target,LUN]進行綁定。這樣,在前端IP編碼器的iSCSIInitiator (iSCSI發(fā)起)端與IPSAN存儲設(shè)備上的[Target,LUN]建立ISCSI連接后,可以將IPSAN存儲設(shè)備上分配的邏輯卷映射為前端本地的一個邏輯盤,以自定義的塊數(shù)據(jù)格式寫入數(shù)據(jù)到邏輯盤,從而實現(xiàn)將媒體流數(shù)據(jù)通過iSCSI協(xié)議直存到存儲設(shè)備中。
[0006]目前的iSCSI塊存儲的空間分配機制,是一種將單個存儲資源空間一次性分配給單個攝像機、并由該攝像機獨享寫入該空間的機制。對于告警聯(lián)動類存儲、或者存儲碼率動態(tài)變化的存儲業(yè)務(wù),由于無法提前預(yù)估出攝像機存儲空間的大小,因此不適合采用這種預(yù)先為單個攝像機分配固定存儲空間的機制。在很多情況下,一些老的監(jiān)控局點會新購置一些存儲設(shè)備、或者在原有存儲設(shè)備上增加磁盤,但是該方案無法支持對已有攝像機存儲資源在系統(tǒng)新增存儲設(shè)備、磁盤時的自動擴容,在系統(tǒng)升級改造上存在較多不便。
【發(fā)明內(nèi)容】
[0007]為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明實施例提供一種存儲資源的管理和分配方法和系統(tǒng)。
[0008]本發(fā)明實施例提供了一種存儲資源的管理和分配方法,該方法包括:
[0009]數(shù)據(jù)管理節(jié)點DataNode接收IP編碼器的分配存儲空間請求;
[0010]所述DataNode按照第一策略為所述IP編碼器選擇存儲資源,并根據(jù)第二策略為所述IP編碼器分配所選存儲資源中的存儲空間片Slice,以供所述IP編碼器根據(jù)所選存儲資源的iSCSI掛載信息,通過iSCSI掛載存儲資源,根據(jù)所分配的存儲空間slice的起始地址、空間大小進行iSCSI數(shù)據(jù)寫入。
[0011]其中,所述第一策略包括:
[0012]如果當(dāng)前正在分配slice的存儲資源上仍有空閑狀態(tài)的slice,則繼續(xù)選擇當(dāng)前存儲資源;且,
[0013]如果當(dāng)前正在分配slice的存儲資源的占用slice達到所述存儲資源總slice的第一預(yù)設(shè)比例以上,則選擇下一剩余存儲空間最大的存儲資源。
[0014]其中,該方法進一步包括:所述DataNode對存儲資源以slice為單位進行切分,并通過空閑slice隊列和占用slice隊列對存儲資源中的slice進行管理;
[0015]所述第二策略包括:在所述IP編碼器請求的存儲資源中選擇空閑slice隊列中的slice分配給所述IP編碼器,且在應(yīng)答成功后,將本次分配的slice更新為占用狀態(tài)并調(diào)度到占用隊列中。
[0016]其中,該方法進一步包括:在收到所述IP編碼器發(fā)送的分配新Slice的請求時,所述DataNode根據(jù)所述IP編碼器分配新slice的請求,判斷所述原slice所屬的存儲資源中slice的占用率是否達到第三預(yù)設(shè)比例,如果未達到第三預(yù)設(shè)比例,則繼續(xù)為所述IP編碼器分配相同存儲資源中的空閑slice,如果達到第三預(yù)設(shè)比例,則為所述IP編碼器選擇所述DataNode的其他存儲資源;
[0017]如果所述DataNode的所有存儲資源的slice占用率都達到所述第三預(yù)設(shè)比例,貝丨J刪除所述DataNode中的老化數(shù)據(jù)并將所刪數(shù)據(jù)對應(yīng)的slice掛回到空閑slice隊列,為所述IP編碼器選擇剩余slice空間最大的存儲資源,并分配所選存儲資源的空閑slice給所述IP編碼器;
[0018]其中,所述分配新slice的請求,是由所述IP編碼器在所分配slice的空間被寫入比例達到第二預(yù)設(shè)比例時,向所述DataNode發(fā)送的。
[0019]其中,該方法進一步包括:
[0020]在所述IP編碼器向DataNode發(fā)送分配存儲空間請求之前,所述IP編碼器向Master管理節(jié)點請求分配DataNode ;
[0021]所述Master管理節(jié)點根據(jù)第三策略為所述IP編碼器分配所述DataNode。[0022]其中,所述第三策略包括:
[0023]根據(jù)各DataNode的剩余存儲空間、剩余輸入輸出IO處理能力,并基于負載均衡、網(wǎng)絡(luò)直連因素,為所述IP編碼器分配DataNode。
[0024]其中,所述Master管理節(jié)點包括主Master管理節(jié)點和輔Master管理節(jié)點,該方法進一步包括:
[0025]所述輔Master管理節(jié)點用于對所述主Master管理節(jié)點進行冗余保護,在所述主Master管理節(jié)點故障時,所述輔Master管理節(jié)點切換為主Master管理節(jié)點。
[0026]其中,該方法進一步包括:所述Master管理節(jié)點在所述DataNode故障或斷網(wǎng)時,為所述故障或斷網(wǎng)的DataNode所對應(yīng)的IP編碼器分配新的可用DataNode。
[0027]本發(fā)明實施例還提供了一種存儲資源的管理和分配系統(tǒng),該系統(tǒng)包括:IP編碼器和數(shù)據(jù)管理節(jié)點DataNode,其中,
[0028]所述IP編碼器用于,向所述DataNode發(fā)送分配存儲空間請求;
[0029]所述DataNode用于,按照第一策略為所述IP編碼器選擇存儲資源,并根據(jù)第二策略為所述IP編碼器分配所選存儲資源中的存儲空間片Slice ;
[0030]所述IP編碼器還用于,根據(jù)所選存儲資源的iSCSI掛載信息,通過iSCSI掛載存儲資源,根據(jù)所分配的存儲空間Slice的起始地址、空間大小進行iSCSI數(shù)據(jù)寫入。
[0031 ] 其中,所述DataNode進一步用于,按照以下第一策略為所述IP編碼器選擇存儲資源:
[0032]如果當(dāng)前正在分配slice的存儲資源上仍有空閑狀態(tài)的slice,則繼續(xù)選擇當(dāng)前存儲資源;且,
[0033]如果當(dāng)前正在分配slice的存儲資源的占用slice達到所述存儲資源總slice的第一預(yù)設(shè)比例以上,則選擇下一剩余存儲空間最大的存儲資源。
[0034]其中,所述DataNode進一步用于,對存儲資源以slice為單位進行切分,并通過空閑slice隊列和占用slice隊列對存儲資源中的slice進行管理;
[0035]所述DataNode根據(jù)以下第二策略分配slice:在所述IP編碼器請求的存儲資源中選擇空閑slice隊列中的slice分配給所述IP編碼器,且在應(yīng)答成功后,將本次分配的slice更新為占用狀態(tài)并調(diào)度到占用隊列中。
[0036]其中,所述IP編碼器進一步用于,在所分配slice的空間被寫入比例達到第二預(yù)設(shè)比例時,向所述DataNode請求分配新的slice ;
[0037]所述DataNode進一步用于,根據(jù)所述IP編碼器分配新slice的請求,判斷所述原slice所屬的存儲資源中slice的占用率是否達到第三預(yù)設(shè)比例,如果未達到第三預(yù)設(shè)比例,則繼續(xù)為所述IP編碼器分配相同存儲資源中的空閑slice,如果達到第三預(yù)設(shè)比例,則為所述IP編碼器選擇所述DataNode的其他存儲資源;
[0038]如果所述DataNode的所有存儲資源的slice占用率都達到所述第三預(yù)設(shè)比例,貝丨J刪除所述DataNode中的老化數(shù)據(jù)并將所刪數(shù)據(jù)對應(yīng)的slice掛回到空閑slice隊列,為所述IP編碼器選擇剩余slice空間最大的存儲資源,并分配所選存儲資源的空閑slice給所述IP編碼器。
[0039]其中,該系統(tǒng)還包括:Master管理節(jié)點;
[0040]所述IP編碼器進一步用于,在向所述DataNode發(fā)送分配存儲空間請求之前,向所述Master管理節(jié)點請求分配DataNode ;
[0041]所述Master管理節(jié)點用于,在收到所述IP編碼器分配DataNode的請求后,根據(jù)第三策略為所述IP編碼器分配所述DataNode。
[0042]其中,所述Master管理節(jié)點進一步用于,根據(jù)以下第三策略為IP編碼器分配DataNode:
[0043]根據(jù)各DataNode的剩余存儲空間、剩余輸入輸出IO處理能力,并基于負載均衡、網(wǎng)絡(luò)直連因素,為所述IP編碼器分配DataNode。
[0044]其中,所述Master管理節(jié)點包括主Master管理節(jié)點和輔Master管理節(jié)點;
[0045]所述輔Master管理節(jié)點用于對所述主Master管理節(jié)點進行冗余保護,在所述主Master管理節(jié)點故障時,所述輔Master管理節(jié)點切換為主Master管理節(jié)點。
[0046]其中,所述Master管理節(jié)點進一步用于,在所述DataNode故障或斷網(wǎng)時,為所述故障或斷網(wǎng)的DataNode所對應(yīng)的IP編碼器分配新的可用DataNode。
[0047]本發(fā)明實施例所提供的一種存儲資源的管理和分配方法和系統(tǒng),在保持媒體流iSCSI直存的高性能優(yōu)勢的前提下,實現(xiàn)了存儲空間的單元切分與彈性動態(tài)分配機制,滿足告警聯(lián)動存儲、變碼率存儲等無法預(yù)估攝像機存儲空間的場景需求,達到最大程度提高存儲空間利用率的效果;還滿足了已有攝像機存儲空間在系統(tǒng)增加新設(shè)備、新磁盤后的自動擴容需求;支持攝像機存儲空間在存儲設(shè)備集群任意一到多臺設(shè)備上的分配;基于分布式存儲集群機制,實現(xiàn)了對Master管理節(jié)點、任意DataNode的故障容錯機制,最大程度上保障了 IP編碼器的錄像存儲不中斷,提高了錄像存儲業(yè)務(wù)的可靠性。
【專利附圖】
【附圖說明】
[0048]圖1為相關(guān)技術(shù)中IP編碼器到IPSAN的端到端的媒體流塊直存示意圖;
[0049]圖2為相關(guān)技術(shù)中塊存儲資源管理的分層結(jié)構(gòu)示意圖;
[0050]圖3為本發(fā)明實施例的一種存儲資源的管理和分配方法的流程圖;
[0051]圖4為本發(fā)明實施例的一種存儲資源的管理和分配系統(tǒng)的結(jié)構(gòu)示意圖;
[0052]圖5為本發(fā)明實施例的一種硬件組網(wǎng)示意圖;
[0053]圖6為本發(fā)明實施例的另一種存儲資源的管理和分配方法的流程圖。
【具體實施方式】
[0054]下面結(jié)合附圖和具體實施例對本發(fā)明的技術(shù)方案進一步詳細闡述。
[0055]本發(fā)明實施例提供的一種存儲資源的管理和分配方法,如圖3所示,主要包括:
[0056]步驟301,數(shù)據(jù)管理節(jié)點DataNode接收IP編碼器的分配存儲空間請求。
[0057]本發(fā)明實施例的DataNode部署于IPSAN存儲設(shè)備中,用于管理其所屬IPSAN存儲設(shè)備的存儲資源,DataNode對其所屬IPSAN存儲設(shè)備的存儲資源以片(slice)為單位進行切分,并通過空閑slice隊列和占用slice隊列對存儲資源中的slice進行管理,未被分配的slice為空閑狀態(tài)并加入到空閑隊列中,已被分配的slice為占用狀態(tài)并調(diào)度到占用隊列中。
[0058]IP編碼器可以包括具有編碼功能且將編碼后數(shù)據(jù)封裝成IP數(shù)據(jù)包的編碼器,還可以包括帶有攝像功能,并將拍攝后的圖像數(shù)據(jù)編碼并封裝成IP數(shù)據(jù)包的網(wǎng)絡(luò)攝像機IPC。
[0059]IP編碼器需要存儲空間進行iSCSI數(shù)據(jù)寫入時,向DataNode發(fā)送分配存儲空間請求。
[0060]步驟302,DataNode按照第一策略為IP編碼器選擇存儲資源,并根據(jù)第二策略為IP編碼器分配所選存儲資源中的存儲空間Slice,以供IP編碼器根據(jù)所選存儲資源的iSCSI掛載信息,通過iSCSI掛載存儲資源,根據(jù)所分配的存儲空間slice的起始地址、空間大小進行iSCSI數(shù)據(jù)寫入。
[0061]DataNode根據(jù)IP編碼器的請求,為所述IP編碼器選擇存儲資源,并在所選存儲資源中分配存儲空間slice ;IP編碼器根據(jù)所選存儲資源的iSCSI掛載信息,通過iSCSI掛載存儲資源,根據(jù)所分配的存儲空間slice的起始地址、空間大小進行iSCSI數(shù)據(jù)寫入。
[0062]其中,所述第一策略包括:
[0063]如果當(dāng)前正在分配slice的存儲資源上仍有空閑狀態(tài)的slice,則繼續(xù)選擇當(dāng)前存儲資源;且,
[0064]如果當(dāng)前正在分配slice的存儲資源的占用slice達到所述存儲資源總slice的第一預(yù)設(shè)比例以上,則選擇下一剩余存儲空間最大的存儲資源。
[0065]也就是說,優(yōu)先選擇當(dāng)前分配slice所在的存儲資源。其中,第一預(yù)設(shè)比例可以根據(jù)實際需要進行設(shè)定,例如可以設(shè)定為90%。
[0066]所述第二策略包括:在所述IP編碼器請求的存儲資源中選擇空閑slice隊列中的slice分配給所述IP編碼器,且在應(yīng)答成功后,將本次分配的slice更新為占用狀態(tài)并調(diào)度到占用隊列中。
[0067]本發(fā)明實施例中,IP編碼器在所分配slice的空間被寫入比例(即在分配給IP編碼器的slice空間中已經(jīng)寫入數(shù)據(jù)的slice空間所占的比例)達到第二預(yù)設(shè)比例時,可以向DataNode請求分配新的slice,同時IP編碼器在原slice中繼續(xù)數(shù)據(jù)寫入;其中,所述第二預(yù)設(shè)比例可以根據(jù)實際需要進行設(shè)定,例如可以設(shè)定為90% ;
[0068]在收到所述IP編碼器發(fā)送的分配新slice的請求時,DataNode判斷所述原slice所屬的存儲資源中slice的占用率(即所述存儲資源中已經(jīng)寫入數(shù)據(jù)的slice空間占所述存儲資源總slice空間的比例)是否達到第三預(yù)設(shè)比例,如果未達到第三預(yù)設(shè)比例,則繼續(xù)為所述IP編碼器分配相同存儲資源中的空閑slice,如果達到第三預(yù)設(shè)比例,則為所述IP編碼器選擇所述DataNode的其他存儲資源;其中,所述第三預(yù)設(shè)比例可以根據(jù)實際需要進行設(shè)定(可以與第二預(yù)設(shè)比例相同,也可以不同),例如可以設(shè)定為90% ;
[0069]如果所述DataNode的所有存儲資源的slice占用率都達到所述第三預(yù)設(shè)比例,貝丨J刪除所述DataNode中的老化數(shù)據(jù)(如存儲時間最長的數(shù)據(jù)、或者重要性不高的數(shù)據(jù)等)并將所刪數(shù)據(jù)對應(yīng)的slice掛回到空閑slice隊列,為所述IP編碼器選擇剩余slice空間最大的存儲資源,并分配所選存儲資源的空閑slice給所述IP編碼器。
[0070]本發(fā)明實施例中,在所述IP編碼器向DataNode發(fā)送分配存儲空間請求之前,所述IP編碼器向Master管理節(jié)點請求分配DataNode ;
[0071]所述Master管理節(jié)點根據(jù)第三策略為所述IP編碼器分配所述DataNode ;
[0072]其中,Master管理節(jié)點用于統(tǒng)一管理和分配DataNode。
[0073]第三策略包括:根據(jù)各DataNode的剩余存儲空間、剩余輸入輸出(10)處理能力,并基于負載均衡、網(wǎng)絡(luò)直連(即盡量向IP編碼器分配同一子網(wǎng)地址的存儲資源)因素,為所述IP編碼器分配DataNode。其中,各DataNode的剩余存儲空間、剩余IO處理能力可以由各DataNode分別上報給Master管理節(jié)點。
[0074]通過以上本發(fā)明的方法實施例,在保持媒體流iSCSI直存的高性能優(yōu)勢的前提下,支持攝像機存儲空間在存儲設(shè)備集群任意一到多臺設(shè)備上的分配;實現(xiàn)了存儲空間的單元切分與彈性動態(tài)分配機制,滿足告警聯(lián)動存儲、變碼率存儲等無法預(yù)估攝像機存儲空間的場景需求,達到最大程度提高存儲空間利用率的效果。
[0075]優(yōu)選的,所述Master管理節(jié)點可以包括主Master管理節(jié)點和輔Master管理節(jié)點,本發(fā)明實施例的方法進一步包括:
[0076]所述輔Master管理節(jié)點用于對所述主Master管理節(jié)點進行冗余保護,在所述主Master管理節(jié)點故障時,所述輔Master管理節(jié)點切換為主Master管理節(jié)點。
[0077]通過主輔Master管理節(jié)點的冗余保護,保障了 Master管理節(jié)點不受故障影響從而提供正常服務(wù)。
[0078]優(yōu)選的,本發(fā)明實施例的方法進一步包括:所述Master管理節(jié)點在所述DataNode故障或斷網(wǎng)時,為所述故障或斷網(wǎng)的DataNode所對應(yīng)的IP編碼器分配新的可用DataNode。
[0079]具體的,所述Master管理節(jié)點對各DataNode進行主動探測,以判斷各DataNode是否工作正常,將探測失敗的DataNode設(shè)為下線狀態(tài),將探測成功、但與IP編碼器的通訊失敗計數(shù)達到預(yù)設(shè)閾值的DataNode設(shè)為失效狀態(tài),并向系統(tǒng)管理員觸發(fā)告警,進行人工干預(yù),將探測成功、且與IP編碼器的通訊失敗計數(shù)未達到預(yù)設(shè)閾值的DataNode設(shè)為在線狀態(tài);
[0080]相應(yīng)的,所述Master管理節(jié)點是從在線狀態(tài)的DataNode選擇所述新的可用DataNode。
[0081]本發(fā)明實施例還提供了一種存儲資源的管理和分配系統(tǒng),如圖4所示,主要包括:DataNodelO和IP編碼器20,其中,
[0082]IP編碼器20用于,向DataNodelO發(fā)送分配存儲空間請求;
[0083]DataNodelO用于,按照第一策略為所述IP編碼器20選擇存儲資源,并根據(jù)第二策略為所述IP編碼器20分配所選存儲資源中的存儲空間slice ;
[0084]IP編碼器20還用于,根據(jù)所選存儲資源的iSCSI掛載信息,通過iSCSI掛載存儲資源,根據(jù)所分配的存儲空間slice的起始地址、空間大小進行iSCSI數(shù)據(jù)寫入。
[0085]優(yōu)選的,DataNodelO進一步用于,按照以下第一策略為所述IP編碼器20選擇存儲資源:
[0086]如果當(dāng)前正在分配slice的存儲資源上仍有空閑狀態(tài)的slice,則繼續(xù)選擇當(dāng)前存儲資源;且,
[0087]如果當(dāng)前正在分配slice的存儲資源的占用slice達到所述存儲資源總slice的第一預(yù)設(shè)比例以上,則選擇下一剩余存儲空間最大的存儲資源。
[0088]優(yōu)選的,DataNodelO進一步用于,對存儲資源以slice為單位進行切分,并通過空閑slice隊列和占用slice隊列對存儲資源中的slice進行管理;
[0089]DataNodelO根據(jù)以下第二策略分配slice:在所述IP編碼器20請求的存儲資源中選擇空閑slice隊列中的slice分配給所述IP編碼器20,且在應(yīng)答成功后,將本次分配的slice更新為占用狀態(tài)并調(diào)度到占用隊列中。
[0090]優(yōu)選的,IP編碼器20進一步用于,在所分配slice的空間被寫入比例達到第二預(yù)設(shè)比例時,向所述DataNodelO請求分配新的slice ;
[0091]所述DataNodelO進一步用于,根據(jù)所述IP編碼器20分配新slice的請求,判斷所述原slice所屬的存儲資源中slice的占用率是否達到第三預(yù)設(shè)比例,如果未達到第三預(yù)設(shè)比例,則繼續(xù)為所述IP編碼器20分配相同存儲資源中的空閑slice,如果達到第三預(yù)設(shè)比例,則為所述IP編碼器20選擇所述DataNodelO的其他存儲資源;
[0092]如果所述DataNodelO的所有存儲資源的slice占用率都達到所述第三預(yù)設(shè)比例,則刪除所述DataNodelO中的老化數(shù)據(jù)并將所刪數(shù)據(jù)對應(yīng)的slice掛回到空閑slice隊列,為所述IP編碼器20選擇剩余slice空間最大的存儲資源,并分配所選存儲資源的空閑slice給所述IP編碼器20。
[0093]優(yōu)選的,該系統(tǒng)還包括:Master管理節(jié)點30,
[0094]IP編碼器20進一步用于,在向DataNodelO發(fā)送分配存儲空間請求之前,向所述Master管理節(jié)點30請求分配DataNodelO ;
[0095]所述Master管理節(jié)點30用于,在收到所述IP編碼器20分配DataNode的請求后,根據(jù)第三策略為所述IP編碼器20分配所述DataNode 10。
[0096]優(yōu)選的,Master管理節(jié)點30進一步用于,根據(jù)以下第三策略為IP編碼器20分配DataNodelO:
[0097]根據(jù)各DataNodelO的剩余存儲空間、剩余IO處理能力,并基于負載均衡、網(wǎng)絡(luò)直連因素,為所述IP編碼器20分配DataNodelO。
[0098]優(yōu)選的,Master管理節(jié)點30包括主Master管理節(jié)點和輔Master管理節(jié)點;
[0099]所述輔Master管理節(jié)點用于對所述主Master管理節(jié)點進行冗余保護,在所述主Master管理節(jié)點故障時,所述輔Master管理節(jié)點切換為主Master管理節(jié)點。
[0100]優(yōu)選的,Master管理節(jié)點30進一步用于,在所述DataNodelO故障或斷網(wǎng)時,為所述故障或斷網(wǎng)的DataNodelO所對應(yīng)的IP編碼器20分配新的可用DataNode。
[0101]具體的,所述Master管理節(jié)點30對各DataNodelO進行主動探測,以判斷各DataNode是否工作正常,將探測失敗的DataNode設(shè)為下線狀態(tài),將探測成功、但與IP編碼器的通訊失敗計數(shù)達到預(yù)設(shè)閾值的DataNode設(shè)為失效狀態(tài),并向系統(tǒng)管理員觸發(fā)告警,進行人工干預(yù),將探測成功、且與IP編碼器的通訊失敗計數(shù)未達到預(yù)設(shè)閾值的DataNode設(shè)為在線狀態(tài);
[0102]相應(yīng)的,所述Master管理節(jié)點30是從在線狀態(tài)的DataNode選擇所述新的可用DataNode。
[0103]下面再結(jié)合圖4介紹一種包括數(shù)據(jù)管理節(jié)點DataNodelO、主(Master)管理節(jié)點30和IP編碼器20的存儲資源的管理和分配系統(tǒng),其中,
[0104]DataNodelO,用于管理其所屬IPSAN存儲設(shè)備的存儲資源,通過發(fā)送注冊、?;钕ⅲ騇aster管理節(jié)點30上報DataNodelO所屬IPSAN存儲設(shè)備的剩余存儲空間、剩余輸入輸出(10)處理能力;
[0105]Master管理節(jié)點30,用于通過接收DataNodelO的注冊、?;钕?,獲取并管理各IPSAN存儲設(shè)備的剩余存儲空間、剩余10處理能力;還用于在接收到來自IP編碼器20的請求分配DataNode報文后,根據(jù)其管理的各IPSAN存儲設(shè)備的剩余存儲空間、剩余IO處理能力,為IP編碼器20選擇DataNode ;
[0106]IP編碼器20,用于向Master管理節(jié)點30請求分配DataNode,并獲取Master管理節(jié)點30為IP編碼器20分配的DataNode的信息;還用于根據(jù)Master管理節(jié)點30分配的DataNode的信息,向相應(yīng)的DataNodelO請求分配存儲資源;
[0107]DataNodelO還用于,收到來自IP編碼器20的分配存儲資源的請求后,為IP編碼器20進行存儲資源的選擇,并將所選存儲資源的信息發(fā)送給IP編碼器20。
[0108]優(yōu)選的,DataNodelO進一步用于,對其所屬IPSAN存儲設(shè)備的存儲資源以片(slice)為單位進行切分,并記錄所有slice的所屬存儲資源標識、起始地址、空間大小、狀態(tài),所述狀態(tài)包括空閑狀態(tài)和占用狀態(tài);對每個存儲資源的所有slice用空閑隊列和占用隊列進行管理,未被分配的slice為空閑狀態(tài)并加入到空閑隊列中,已被分配的slice為占用狀態(tài)并調(diào)度到占用隊列中。
[0109]優(yōu)選的,DataNodelO進一步用于,當(dāng)其所屬IPSAN存儲設(shè)備配置了一個或多個存儲資源時,按照以下原則為IP編碼器20進行存儲資源的選擇:
[0110]如果當(dāng)前正在分配slice的存儲資源上,仍有空閑狀態(tài)的slice,則繼續(xù)選擇當(dāng)前存儲資源;且,
[0111]如果當(dāng)前正在分配slice的存儲資源的占用slice達到所述存儲資源總slice的第一預(yù)設(shè)比例(如90%)以上,則選擇下一剩余空間最大的存儲資源。
[0112]優(yōu)選的,DataNodelO所選存儲資源的信息包括:所選存儲資源的唯一標識和iSCSI掛載信息;
[0113]IP編碼器20進一步用于,在收到DataNode IO所選存儲資源的信息之后,執(zhí)行相應(yīng)存儲資源的iSCSI掛載,并在掛載成功后,在IP編碼器20本地生成邏輯盤符,并向DataNodelO請求在所選存儲資源中分配存儲空間。
[0114]優(yōu)選的,DataNodelO進一步用于,在收到IP編碼器20分配存儲空間的請求后,根據(jù)所述請求中攜帶的存儲資源標識,在對應(yīng)存儲資源的空閑slice隊列中分配slice,并將所分配slice所屬資源標識、所分配slice的起始地址、空間大小應(yīng)答給IP編碼器20 ;在應(yīng)答成功之后,將本次分配的slice更新為占用狀態(tài)并調(diào)度到占用隊列中。
[0115]優(yōu)選的,IP編碼器20進一步用于,在收到DataNodelO分配slice的應(yīng)答后,根據(jù)所述應(yīng)答中的資源標識獲取對應(yīng)的本地盤符,并按照分配slice的起始地址、空間大小,對流媒體塊進行iSCSI直存寫入為IP編碼器20分配的存儲空間。
[0116]優(yōu)選的,上述實施例中的Master管理節(jié)點30可以部署于數(shù)據(jù)管理(DM,DataManagement)服務(wù)器中,DataNodelO可以部署于IPSAN存儲設(shè)備中,且所述系統(tǒng)中的多臺IPSAN存儲設(shè)備組成存儲設(shè)備集群。
[0117]如圖5所示,圖5為本發(fā)明實施例的一種硬件組網(wǎng)示意圖,在所述組網(wǎng)方案中,主要包括以下設(shè)備:
[0118]IP編碼器,其中部署Client模塊,支持對IP編碼器各攝像機通道錄像的iSCSI塊存儲。在本方案中,在IP編碼器上部署Client模塊,用于本方案的存儲設(shè)備、存儲空間的動態(tài)分配機制;Client模塊用以實現(xiàn)上述圖4所示系統(tǒng)中提及的IP編碼器20的功能。
[0119]DM服務(wù)器,其中部署Master管理節(jié)點,即Master管理節(jié)點部署在DM等管理服務(wù)器上。一方面,通過接收IPSAN存儲設(shè)備的注冊、保活消息,獲取管理本系統(tǒng)所有IPSAN存儲設(shè)備的剩余存儲空間、剩余IO處理能力、IP地址、在線狀態(tài)等信息;另一方面,在IP編碼器的錄像iSCSI存儲流程中,基于負載均衡、網(wǎng)絡(luò)直連等因素,給IP編碼器分配存儲錄像的IPSAN設(shè)備。
[0120]另外,為提高Master管理節(jié)點服務(wù)的可靠性,支持如下高可用性機制:
[0121]在設(shè)備級,Master管理節(jié)點支持雙機熱備機制,實現(xiàn)主備冗余保護;在主用Master管理節(jié)點巖機之后,備用Master管理節(jié)點能夠在短時間內(nèi)切換為主用節(jié)點,向外部提供服務(wù);
[0122]在網(wǎng)絡(luò)鏈路上,支持網(wǎng)絡(luò)鏈路冗余機制;在主鏈路故障斷開的情況下,可以通過備用鏈路,實現(xiàn)Master管理節(jié)點與外部設(shè)備之間的可靠網(wǎng)絡(luò)連接。
[0123]IPSAN存儲設(shè)備,其中部署DataNode。在本發(fā)明實施例的方案中,多臺IPSAN存儲設(shè)備組成了存儲設(shè)備集群;同時,在本發(fā)明實施例的IPSAN存儲設(shè)備上,部署DataNode。
[0124]一方面,DataNode通過向Master管理節(jié)點進行注冊、?;?,上報DataNode所屬IPSAN存儲設(shè)備的剩余存儲空間、剩余IO處理能力、IP地址、在線狀態(tài)等信息,支持Master管理節(jié)點對存儲設(shè)備集群的統(tǒng)一調(diào)度管理;
[0125]同時,DataNode支持對其所屬IPSAN存儲設(shè)備上所有存儲資源,以slice為單位進行存儲單元切分、分配、管理。
[0126]slice管理方式如下:
[0127]在IPSAN存儲設(shè)備創(chuàng)建任一存儲資源后,DataNode自動按照一定空間單元粒度(比如256M字節(jié)),將存儲資源空間切分為若干個slice。DataNode記錄本設(shè)備所有slice的所屬存儲資源標識、起始地址、空間大小、狀態(tài)(空閑或者占用)等信息;
[0128]對每一個存儲資源的所有slice, DataNode使用空閑隊列、占用隊列等兩個隊列來進行管理。新創(chuàng)建存儲資源的所有slice,首先掛入空閑隊列中;在收到IP編碼器的存儲空間申請請求后,DataNode從指定存儲資源的空閑slice隊列中分配slice給IP編碼器,用于新錄像的存儲;在分配slice成功之后,DataNode修改已分配的slice狀態(tài)為占用狀態(tài),并將已分配的slice從空閑隊列調(diào)度到占用隊列。
[0129]由本發(fā)明實施例的上述存儲資源的管理和分配系統(tǒng)實現(xiàn)的一種存儲資源的管理和分配方法,包括:
[0130]DataNode管理其所屬IPSAN存儲設(shè)備的存儲資源,通過發(fā)送注冊、保活消息,向Master管理節(jié)點上報DataNode所屬IPSAN存儲設(shè)備的剩余存儲空間、剩余10處理能力;
[0131]Master管理節(jié)點通過接收DataNode的注冊、保活消息,獲取并管理各IPSAN存儲設(shè)備的剩余存儲空間、剩余10處理能力;并在接收到來自IP編碼器的請求分配IPSAN存儲設(shè)備的報文后,根據(jù)其管理的各IPSAN存儲設(shè)備的剩余存儲空間、剩余10處理能力,為IP編碼器選擇IPSAN存儲設(shè)備;
[0132]IP編碼器根據(jù)Master管理節(jié)點分配的IPSAN存儲設(shè)備的信息,向相應(yīng)的DataNode請求分配存儲資源;
[0133]DataNode收到來自IP編碼器的分配存儲資源的請求后,為IP編碼器進行存儲資源的選擇,并將所選存儲資源的信息發(fā)送給IP編碼器。
[0134]優(yōu)選的,該方法進一步包括:[0135]DataNode對其所屬IPSAN存儲設(shè)備的存儲資源以slice為單位進行切分,并記錄所有slice的所屬存儲資源標識、起始地址、空間大小、狀態(tài),所述狀態(tài)包括空閑狀態(tài)和占用狀態(tài);對每個存儲資源的所有slice用空閑隊列和占用隊列進行管理,未被分配的slice為空閑狀態(tài)并加入到空閑隊列中,已被分配的slice為占用狀態(tài)并調(diào)度到占用隊列中。
[0136]優(yōu)選的,該方法進一步包括:當(dāng)DataNode所屬的IPSAN存儲設(shè)備配置了多個存儲資源時,按照以下原則為IP編碼器進行存儲資源的選擇:
[0137]如果當(dāng)前正在分配slice的存儲資源上,仍有空閑狀態(tài)的slice,則繼續(xù)選擇當(dāng)前存儲資源;且,
[0138]如果當(dāng)前正在分配slice的存儲資源的占用slice達到存儲資源總slice的第一預(yù)設(shè)比例(如90%)以上,則選擇下一剩余空間最大的存儲資源。
[0139]優(yōu)選的,DataNode所選存儲資源的信息包括:所選存儲資源的唯一標識和iSCSI掛載信息;
[0140]該方法進一步包括:IP編碼器在收到DataNode所選存儲資源的信息之后,執(zhí)行相應(yīng)存儲資源的iSCSI掛載,并在掛載成功后,在IP編碼器本地生成邏輯盤符,并向DataNode請求在所選存儲資源中分配存儲空間。
[0141]優(yōu)選的,該方法進一步包括:
[0142]DataNode在收到IP編碼器分配存儲空間的請求后,根據(jù)請求中攜帶的存儲資源標識,在對應(yīng)存儲資源的空閑slice隊列中分配slice,并將所分配slice所屬資源標識、所分配slice的起始地址、空間大小應(yīng)答給IP編碼器;在應(yīng)答成功之后,將本次分配的slice更新為占用狀態(tài)并調(diào)度到占用隊列中。
[0143]優(yōu)選的,該方法進一步包括:
[0144]IP編碼器在收到DataNode分配slice的應(yīng)答后,根據(jù)應(yīng)答中的資源標識獲取對應(yīng)的本地盤符,并按照分配slice的起始地址、空間大小,對流媒體塊進行iSCSI直存寫入為IP編碼器分配的存儲空間。
[0145]結(jié)合圖5所示的設(shè)備組網(wǎng)圖,一種更為具體的存儲資源的管理和分配方法實施例如圖6所示,該方法主要包括:
[0146]步驟601, IP編碼器在開始存儲錄像之前,通過其client模塊向Master管理節(jié)點發(fā)送請求分配DataNode的報文。
[0147]步驟602,Master管理節(jié)點收到IP編碼器的請求報文后,基于各DataNode在存儲空間、存儲輸入輸出(10, Input Output)能力的負載情況,選擇合適的DataNode,并將所選DataNode的IP地址、通訊端口等信息,返回給IP編碼器。
[0148]作為一種優(yōu)選的實施方式,Master管理節(jié)點在選擇DataNode時,還可同時考慮網(wǎng)絡(luò)因素,盡量向同一 IP編碼器分配同一子網(wǎng)地址的IPSAN存儲設(shè)備。
[0149]步驟603,IP編碼器的client模塊收到應(yīng)答之后,在本地文件中記錄所分配的DataNode信息(包括DataNode的IP地址、通訊端口等),然后向所分配的DataNode發(fā)送請求分配存儲資源的報文。
[0150]步驟604,DataNode收到請求分配存儲資源的報文之后,如果本存儲設(shè)備配置了多個存儲資源,則按照以下原則進行存儲資源的選擇:
[0151]如果當(dāng)前正在分配slice的存儲資源上,仍有空閑狀態(tài)的slice,則繼續(xù)選擇當(dāng)前存儲資源;且,
[0152]如果當(dāng)前正在分配slice的存儲資源的占用slice達到所述存儲資源總slice的第一預(yù)設(shè)比例(如90%)以上,則選擇下一剩余空間最大的存儲資源。
[0153]DataNode完成存儲資源選擇之后,將所選擇的存儲資源的唯一標識、存儲資源的iSCSI掛載信息(包括存儲資源綁定的Target、LUN、具有資源寫權(quán)限的initiator等信息)通過應(yīng)答報文返回給IP編碼器。
[0154]步驟605,IP編碼器收到所分配的存儲資源信息(存儲資源的唯一標識、iSCSI掛載信息)之后,對存儲資源執(zhí)行iSCSI掛載,并在掛載成功后,在IP編碼器本地生成邏輯盤符,如sda。
[0155]步驟606,如果當(dāng)前日期是第一次寫入錄像,則IP編碼器向DataNode請求創(chuàng)建日期目錄。
[0156]步驟607,DataNode創(chuàng)建對應(yīng)的日期目錄,并向IP編碼器返回創(chuàng)建目錄成功應(yīng)答。
[0157]步驟608, IP編碼器向DataNode請求在存儲資源中分配存儲空間,請求報文中攜帶存儲資源的唯一標識。
[0158]步驟609,DataNode收到IP編碼器的存儲空間分配請求之后,通過存儲資源的唯一標識,在對應(yīng)存儲資源的空閑slice隊列中分配slice,并將該slice所屬資源唯一標識、slice的起始地址、空間大小等信息應(yīng)答給IP編碼器;
[0159]在應(yīng)答成功之后,DataNode將本次分配的slice狀態(tài)更新為占用狀態(tài),并將相應(yīng)slice掛入占用隊列。
[0160]步驟610,IP編碼器收到DataNode的slice分配應(yīng)答消息之后,通過存儲資源唯一標識獲取該資源所對應(yīng)的本地盤符,按照分配的slice的起始地址、空間大小,以自定義的塊數(shù)據(jù)格式進行iSCSI錄像直存寫入該邏輯盤。數(shù)據(jù)將通過iSCSI傳輸通道,最終寫入IPSAN存儲設(shè)備的存儲資源空間。
[0161]步驟611,在所分配slice的空間被寫入到第二預(yù)設(shè)比例(如90% )時,IP編碼器向DataNode請求分配slice,請求報文中攜帶該slice所屬存儲資源的唯一標識;同時,IP編碼器在原slice中繼續(xù)新錄像的存儲。
[0162]步驟612, DataNode在收到攜帶存儲資源標識的slice分配請求報文之后,首先執(zhí)行存儲資源的選擇流程:
[0163]按照該存儲資源(請求報文中攜帶的資源標識所對應(yīng)的存儲資源)的slice占用是否達到90%進行判斷:
[0164]如果占有率小于90%,則繼續(xù)分配該存儲資源中的空閑slice ;否則,選擇本IPSAN存儲設(shè)備的其他存儲資源;
[0165]如果本設(shè)備的所有存儲資源的slice占用率都達到90%,則啟動滿覆蓋策略,即刪除一部分最老錄像所在slice的內(nèi)容,將其掛回空閑slice隊列,然后選擇剩余空間最大的存儲資源,并分配該資源的空閑slice。
[0166]在完成存儲資源選擇及空閑slice分配之后,DataNode向IP編碼器進行應(yīng)答:
[0167]如果是在同一存儲資源中分配新的slice,則DataNode返回新分配的slice的起始地址、空間大小、slice所屬存儲資源標識等信息等給IP編碼器;
[0168]如果是在新的存儲資源中分配slice給IP編碼器,則在應(yīng)答上述slice信息的同時,DataNode將存儲資源的iSCSI掛載信息(包括存儲資源綁定的Target、LUN、具有資源寫權(quán)限的initiator等信息)也一起返回給IP編碼器。
[0169]IP編碼器如果收到新的存儲資源的iSCSI掛載信息,則對存儲資源執(zhí)行本地iSCSI掛載,生成本地邏輯盤符。
[0170]步驟613, IP編碼器在本地緩存中記錄下一 slice的起始地址、空間大小、slice所屬存儲資源標識等信息,繼續(xù)在當(dāng)前slice中進行錄像存儲。
[0171]步驟614, IP編碼器在當(dāng)前slice的全部空間寫滿之后,將該slice的錄像開始時間、錄像結(jié)束時間、攝像機標識等信息通知到Master管理節(jié)點。
[0172]步驟615, Master管理節(jié)點將slice的錄像開始時間、錄像結(jié)束時間、攝像機標識等信息記錄到數(shù)據(jù)庫中,從而支持VM服務(wù)器通過數(shù)據(jù)庫實現(xiàn)對錄像的快速檢索。
[0173]步驟616,IP編碼器從本地緩存中取得下一 slice信息、及其存儲資源標識,取得該存儲資源對應(yīng)的本地邏輯盤符,在下一 slice中繼續(xù)新錄像存儲。
[0174]還需要說明的是,本發(fā)明實施例中的DataNode宕機或者斷網(wǎng),造成IP編碼器的錄像存儲、或者信令交互失敗時,IP編碼器可即時向Master管理節(jié)點請求分配DataNode,同時攜帶通訊失敗的DataNode標識;Master管理節(jié)點將分配新的DataNode給IP編碼器,保證IP編碼器的錄像存儲不中斷。
[0175]此時,Master管理節(jié)點觸發(fā)到DataNode的主動探測機制,判斷DataNode是否正常工作。同時,累計DataNode與不同IP編碼器的通訊失敗計數(shù);
[0176]當(dāng)DataNode探測失敗時,Master管理節(jié)點將其置為下線狀態(tài),不再向IP編碼器分配該DataNode。后續(xù)只有DataNode重新向Master管理節(jié)點注冊成功,Master管理節(jié)點才會修改相應(yīng)的DataNode狀態(tài)為在線,并重新向IP編碼器分配該DataNode ;
[0177]當(dāng)DataNode探測成功、但是與不同IP編碼器的通訊失敗計數(shù)達到一定閾值時(比如=DataNode與Master管理節(jié)點之間的網(wǎng)絡(luò)通訊正常,但是與IP編碼器的網(wǎng)絡(luò)斷開),Master管理節(jié)點將其置為失效狀態(tài),不再向IP編碼器分配該DataNode,并向系統(tǒng)管理員觸發(fā)設(shè)備與IP編碼器的通訊失敗告警。這種情況下,只有管理員人工干預(yù)之后,通過管理界面將DataNode更新為在線狀態(tài),Master管理節(jié)點才會向IP編碼器重新分配該DataNode。
[0178]另外,在本發(fā)明實施例中增加IPSAN存儲設(shè)備、或者IPSAN存儲設(shè)備增加硬盤等情況下,只需要對新的IPSAN存儲設(shè)備、新的硬盤空間創(chuàng)建新的存儲資源,并加入DataNode的slice分配管理。由于新的存儲資源空間是對所有攝像機共享使用,因此在無任何開銷的情況下,自動支持了對所有攝像機的存儲空間擴容。
[0179]綜上所述,本發(fā)明實施例提出的Master與DataNode兩級管理、空間彈性分配的分布式iSCSI塊直存集群方案,支持攝像機存儲空間在存儲設(shè)備集群中任意一到多臺設(shè)備上的分配。同時,本發(fā)明實施例實現(xiàn)了 iSCSI存儲空間的slice單元切分管理、動態(tài)彈性分配機制,滿足告警聯(lián)動存儲、變碼率存儲等無法預(yù)估攝像機存儲空間的場景需求,達到最大程度上提高存儲空間利用率的效果。
[0180]在Master管理節(jié)點故障時,系統(tǒng)自動切換為單存儲設(shè)備節(jié)點存儲模式,保障IP編碼器的錄像存儲不停止。同時,通過DataNode對slice錄像信息的本地緩存機制,保障slice錄像信息不丟失。
[0181]在任意IPSAN存儲設(shè)備故障時,通過Master管理節(jié)點即時向IP編碼器分配新的存儲設(shè)備,保障IP編碼器的錄像存儲不停止。同時,實現(xiàn)對DataNode不同故障的錯誤恢復(fù)處理。
[0182]在本發(fā)明所提供的幾個實施例中,應(yīng)該理解到,所揭露的方法、裝置和電子設(shè)備,可以通過其它的方式實現(xiàn)。以上所描述的設(shè)備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,如:多個單元或組件可以結(jié)合,或可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機械的或其它形式的。
[0183]上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個地方,也可以分布到多個網(wǎng)絡(luò)單元上;可以根據(jù)實際的需要選擇其中的部分或全部單元來實現(xiàn)本實施例方案的目的。
[0184]另外,在本發(fā)明各實施例中的各功能單元可以全部集成在一個處理單元中,也可以是各單元分別單獨作為一個單元,也可以兩個或兩個以上單元集成在一個單元中;上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
[0185]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:移動存儲設(shè)備、只讀存儲器(ROM, Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0186]或者,本發(fā)明實施例上述集成的單元如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明實施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分。而前述的存儲介質(zhì)包括:移動存儲設(shè)備、ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0187]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。
【權(quán)利要求】
1.一種存儲資源的管理和分配方法,其特征在于,該方法包括: 數(shù)據(jù)管理節(jié)點DataNode接收IP編碼器的分配存儲空間請求; 所述DataNode按照第一策略為所述IP編碼器選擇存儲資源,并根據(jù)第二策略為所述IP編碼器分配所選存儲資源中的存儲空間片slice,以供所述IP編碼器根據(jù)所選存儲資源的iSCSI掛載信息,通過iSCSI掛載存儲資源,根據(jù)所分配的存儲空間slice的起始地址、空間大小進行iSCSI數(shù)據(jù)寫入。
2.根據(jù)權(quán)利要求1所述存儲資源的管理和分配方法,其特征在于,所述第一策略包括: 如果當(dāng)前正在分配slice的存儲資源上仍有空閑狀態(tài)的slice,則繼續(xù)選擇當(dāng)前存儲資源;且, 如果當(dāng)前正在分配slice的存儲資源的占用slice達到所述存儲資源總slice的第一預(yù)設(shè)比例以上,則選擇下一剩余存儲空間最大的存儲資源。
3.根據(jù)權(quán)利要求1所述存儲資源的管理和分配方法,其特征在于,該方法進一步包括:所述DataNode對存儲資源以slice為單位進行切分,并通過空閑slice隊列和占用slice隊列對存儲資源中的slice進行管理; 所述第二策略包括:在所述IP編碼器請求的存儲資源中選擇空閑slice隊列中的slice分配給所 述IP編碼器,且在應(yīng)答成功后,將本次分配的slice更新為占用狀態(tài)并調(diào)度到占用隊列中。
4.根據(jù)權(quán)利要求1所述存儲資源的管理和分配方法,其特征在于,該方法進一步包括:在收到所述IP編碼器發(fā)送的分配新slice的請求時,所述DataNode根據(jù)所述IP編碼器分配新slice的請求,判斷所述原slice所屬的存儲資源中slice的占用率是否達到第三預(yù)設(shè)比例,如果未達到第三預(yù)設(shè)比例,則繼續(xù)為所述IP編碼器分配相同存儲資源中的空閑slice,如果達到第三預(yù)設(shè)比例,則為所述IP編碼器選擇所述DataNode的其他存儲資源; 如果所述DataNode的所有存儲資源的slice占用率都達到所述第三預(yù)設(shè)比例,則刪除所述DataNode中的老化數(shù)據(jù)并將所刪數(shù)據(jù)對應(yīng)的slice掛回到空閑slice隊列,為所述IP編碼器選擇剩余slice空間最大的存儲資源,并分配所選存儲資源的空閑slice給所述IP編碼器; 其中,所述分配新slice的請求,是由所述IP編碼器在所分配slice的空間被寫入比例達到第二預(yù)設(shè)比例時,向所述DataNode發(fā)送的。
5.根據(jù)權(quán)利要求1至4任一項所述存儲資源的管理和分配方法,其特征在于,該方法進一步包括: 在所述IP編碼器向DataNode發(fā)送分配存儲空間請求之前,所述IP編碼器向Master管理節(jié)點請求分配DataNode ; 所述Master管理節(jié)點根據(jù)第三策略為所述IP編碼器分配所述DataNode。
6.根據(jù)權(quán)利要求5所述存儲資源的管理和分配方法,其特征在于,所述第三策略包括: 根據(jù)各DataNode的剩余存儲空間、剩余輸入輸出IO處理能力,并基于負載均衡、網(wǎng)絡(luò)直連因素,為所述IP編碼器分配DataNode。
7.根據(jù)權(quán)利要求5所述存儲資源的管理和分配方法,其特征在于,所述Master管理節(jié)點包括主Master管理節(jié)點和輔Master管理節(jié)點,該方法進一步包括: 所述輔Master管理節(jié)點用于對所述主Master管理節(jié)點進行冗余保護,在所述主Master管理節(jié)點故障時,所述輔Master管理節(jié)點切換為主Master管理節(jié)點。
8.根據(jù)權(quán)利要求5所述存儲資源的管理和分配方法,其特征在于,該方法進一步包括:所述Master管理節(jié)點在所述DataNode故障或斷網(wǎng)時,為所述故障或斷網(wǎng)的DataNode所對應(yīng)的IP編碼器分配新的可用DataNode。
9.一種存儲資源的管理和分配系統(tǒng),其特征在于,該系統(tǒng)包括:IP編碼器和數(shù)據(jù)管理節(jié)點DataNode,其中, 所述IP編碼器用于,向所述DataNode發(fā)送分配存儲空間請求; 所述DataNode用于,按照第一策略為所述IP編碼器選擇存儲資源,并根據(jù)第二策略為所述IP編碼器分配所選存儲資源中的存儲空間片slice ; 所述IP編碼器還用于,根據(jù)所選存儲資源的iSCSI掛載信息,通過iSCSI掛載存儲資源,根據(jù)所分配的存儲空間slice的起始地址、空間大小進行iSCSI數(shù)據(jù)寫入。
10.根據(jù)權(quán)利要求9所述存儲資源的管理和分配系統(tǒng),其特征在于,所述DataNode進一步用于,按照以下第一策略為所述IP編碼器選擇存儲資源: 如果當(dāng)前正在分配slice的存儲資源上仍有空閑狀態(tài)的slice,則繼續(xù)選擇當(dāng)前存儲資源;且, 如果當(dāng)前正在分配slice的存儲資源的占用slice達到所述存儲資源總slice的第一預(yù)設(shè)比例以上,則選擇下一剩余存儲空間最大的存儲資源。
11.根據(jù)權(quán)利要求9所述存儲資源的管理和分配系統(tǒng),其特征在于,所述DataNode進一步用于,對存儲資源以slice為單位進行切分,并通過空閑slice隊列和占用slice隊列對存儲資源中的slice進行管理; 所述DataNode根據(jù)以下第二策略分配slice:在所述IP編碼器請求的存儲資源中選擇空閑slice隊列中的slice分配給所述IP編碼器,且在應(yīng)答成功后,將本次分配的slice更新為占用狀態(tài)并調(diào)度到占用隊列中。
12.根據(jù)權(quán)利要求9所述存儲資源的管理和分配系統(tǒng),其特征在于,所述IP編碼器進一步用于,在所分配slice的空間被寫入比例達到第二預(yù)設(shè)比例時,向所述DataNode請求分配新的slice ; 所述DataNode進一步用于,根據(jù)所述IP編碼器分配新slice的請求,判斷所述原slice所屬的存儲資源中slice的占用率是否達到第三預(yù)設(shè)比例,如果未達到第三預(yù)設(shè)比例,則繼續(xù)為所述IP編碼器分配相同存儲資源中的空閑slice,如果達到第三預(yù)設(shè)比例,則為所述IP編碼器選擇所述DataNode的其他存儲資源; 如果所述DataNode的所有存儲資源的slice占用率都達到所述第三預(yù)設(shè)比例,則刪除所述DataNode中的老化數(shù)據(jù)并將所刪數(shù)據(jù)對應(yīng)的slice掛回到空閑slice隊列,為所述IP編碼器選擇剩余slice空間最大的存儲資源,并分配所選存儲資源的空閑slice給所述IP編碼器。
13.根據(jù)權(quán)利要求9至12任一項所述存儲資源的管理和分配系統(tǒng),其特征在于,該系統(tǒng)還包括:Master管理節(jié)點; 所述IP編碼器進一步用于,在向所述DataNode發(fā)送分配存儲空間請求之前,向所述Master管理節(jié)點請求分配DataNode ; 所述Master管理節(jié)點用于,在收到所述IP編碼器分配DataNode的請求后,根據(jù)第三策略為所述IP編碼器分配所述DataNode。
14.根據(jù)權(quán)利要求13所述存儲資源的管理和分配系統(tǒng),其特征在于,所述Master管理節(jié)點進一步用于,根據(jù)以下第三策略為IP編碼器分配DataNode: 根據(jù)各DataNode的剩余存儲空間、剩余輸入輸出IO處理能力,并基于負載均衡、網(wǎng)絡(luò)直連因素,為所述IP編碼器分配DataNode。
15.根據(jù)權(quán)利要求13所述存儲資源的管理和分配系統(tǒng),其特征在于,所述Master管理節(jié)點包括主Master管理節(jié)點和輔Master管理節(jié)點; 所述輔Master管理節(jié)點用于對所述主Master管理節(jié)點進行冗余保護,在所述主Master管理節(jié)點故障時,所述輔Master管理節(jié)點切換為主Master管理節(jié)點。
16.根據(jù)權(quán)利要求13所述存儲資源的管理和分配系統(tǒng),其特征在于,所述Master管理節(jié)點進一步用于,在所述DataNode故障或斷網(wǎng)時,為所述故障或斷網(wǎng)的DataNode所對應(yīng)的IP編碼器分配新的可用 DataNode。
【文檔編號】H04L29/06GK104023058SQ201410245074
【公開日】2014年9月3日 申請日期:2014年6月3日 優(yōu)先權(quán)日:2014年6月3日
【發(fā)明者】成浩 申請人:浙江宇視科技有限公司