一種云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云存儲技術(shù)領(lǐng)域,尤其涉及一種云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法和系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有的云存儲產(chǎn)品大多采用C印h技術(shù),Ceph是一個PB級分布式文件系統(tǒng),通過相應(yīng)接口支持對象存儲(Object Storage),塊存儲(Block Storage)和文件存儲(FileStorage)三種存儲服務(wù)。既是統(tǒng)一存儲系統(tǒng)也是分布式存儲系統(tǒng),具有高擴展,高可靠,高性能的特點。由于其開源性,目前Gph已作為統(tǒng)一存儲的解決方案,被廣泛應(yīng)用于私有云、公有云和生產(chǎn)環(huán)境中。
[0003]在實際應(yīng)用當中,Ceph存儲集群內(nèi)除了安裝Gph提供的相應(yīng)存儲服務(wù)外,常常還會部署安裝許多其他服務(wù),如HTTP (Hypertext transfer protocol,超文本傳送協(xié)議)和數(shù)據(jù)庫服務(wù),所有的服務(wù)組成一個完整的云存儲產(chǎn)品。因而,集群節(jié)點內(nèi)服務(wù)的可用性直接決定了整個云存儲產(chǎn)品的可用性,故實現(xiàn)對集群節(jié)點內(nèi)所有相關(guān)服務(wù)的運行狀態(tài)及可用性的實時監(jiān)控是云存儲產(chǎn)品必不可少的一項重要功能。
[0004]現(xiàn)有的監(jiān)控方法一般為針對特定服務(wù)制定相應(yīng)的監(jiān)控策略,通過服務(wù)器端輪詢查看所有服務(wù)運行狀態(tài)(即服務(wù)進程是否運行),然而,現(xiàn)有的監(jiān)控方法并未對相關(guān)服務(wù)的可用性進行監(jiān)控。大量的實踐證明,即使服務(wù)進程正在運行不一定就能保證該服務(wù)可用,以存儲服務(wù)為例,存儲服務(wù)的進程還在運行,卻可能會出現(xiàn)無法寫入數(shù)據(jù)的情況。同時,在采用單一監(jiān)視器情況下,單一監(jiān)視器的損壞將導(dǎo)致整個系統(tǒng)監(jiān)控功能的失效,為了防止上述單點故障的發(fā)生,現(xiàn)有的監(jiān)控方法采用多監(jiān)視器并行運行的策略,一般預(yù)先選出三個以上的監(jiān)視器,其中一個作為主監(jiān)視器,其他監(jiān)視器作為從監(jiān)視器。當主監(jiān)視器發(fā)生故障時,使用從監(jiān)視器替代主監(jiān)視器;然而該方案在正常工作時,從監(jiān)視器處于閑置狀態(tài),造成系統(tǒng)資源的浪費。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法和系統(tǒng),在對服務(wù)運行狀態(tài)進行監(jiān)控的同時,對集群節(jié)點的服務(wù)可用性進行監(jiān)控,提高云存儲產(chǎn)品的整體監(jiān)控性能。
[0006]一方面,本發(fā)明實施例提供了一種云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法,每個集群節(jié)點均部署有服務(wù)狀態(tài)采集器;所述方法包括:
[0007]所述服務(wù)狀態(tài)采集器采集所在集群節(jié)點內(nèi)的服務(wù)狀態(tài)信息,并將所述服務(wù)狀態(tài)信息處理成統(tǒng)一格式后,上報給服務(wù)監(jiān)控處理器;所述服務(wù)狀態(tài)信息包括服務(wù)運行狀態(tài)信息和服務(wù)可用性狀態(tài)信息;
[0008]所述服務(wù)監(jiān)控處理器收集所有服務(wù)狀態(tài)采集器上報的服務(wù)狀態(tài)信息,對所述服務(wù)狀態(tài)信息進行數(shù)據(jù)封裝,形成監(jiān)控信息,并通過相應(yīng)的API接口將所述監(jiān)控信息對外發(fā)布。
[0009]優(yōu)選地,所述方法還包括:
[0010]若所述服務(wù)監(jiān)控處理器成功接收所述服務(wù)狀態(tài)信息,則所述服務(wù)監(jiān)控處理器向所述服務(wù)狀態(tài)采集器返回確認信息;
[0011]若所述服務(wù)狀態(tài)采集器未收到所述服務(wù)監(jiān)控處理器返回的確認信息,則向集群內(nèi)其他服務(wù)狀態(tài)采集器發(fā)出上報失敗的廣播信息;并且,當發(fā)出所述廣播信息的服務(wù)狀態(tài)采集器的數(shù)量超過指定值時,則判定當前服務(wù)監(jiān)控處理器出現(xiàn)故障。
[0012]優(yōu)選地,所述方法還包括:
[0013]若當前服務(wù)監(jiān)控處理器發(fā)生故障時,利用Paxos算法,在所有集群節(jié)點中決策產(chǎn)生新的服務(wù)監(jiān)控處理器,以替換發(fā)生故障的當前服務(wù)監(jiān)控處理器。
[0014]優(yōu)選地,所述替換發(fā)生故障的當前服務(wù)監(jiān)控處理器具體包括:
[0015]將所述新的服務(wù)監(jiān)控處理器的地址信息發(fā)送給所述服務(wù)狀態(tài)采集器;
[0016]所述服務(wù)狀態(tài)采集器根據(jù)所述地址信息,將采集到的所述服務(wù)狀態(tài)信息上報給所述新的服務(wù)監(jiān)控處理器。
[0017]優(yōu)選地,所述方法還包括:
[0018]通過故障處理單元對發(fā)生故障的服務(wù)監(jiān)控處理器進行修復(fù)或故障告警。
[0019]優(yōu)選地,所述方法還包括:
[0020]所述服務(wù)監(jiān)控處理器通過所述API接口,將所述監(jiān)控信息發(fā)送至上層云存儲管理子系統(tǒng),以對所述監(jiān)控信息進行實時動態(tài)展示。
[0021]另一方面,本發(fā)明實施例提供了一種云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控系統(tǒng),包括底層云存儲服務(wù)子系統(tǒng);
[0022]所述底層云存儲服務(wù)子系統(tǒng)包括服務(wù)監(jiān)控處理器、集群節(jié)點;
[0023]每個集群節(jié)點均部署有服務(wù)狀態(tài)采集器;
[0024]所述服務(wù)狀態(tài)采集器,用于采集所在集群節(jié)點內(nèi)的服務(wù)狀態(tài)信息,并將所述服務(wù)狀態(tài)信息處理成統(tǒng)一格式后,上報給服務(wù)監(jiān)控處理器;所述服務(wù)狀態(tài)信息包括服務(wù)運行信息和服務(wù)可用性信息;
[0025]所述服務(wù)監(jiān)控處理器,用于收集所有服務(wù)狀態(tài)采集器上報的服務(wù)狀態(tài)信息,對所述服務(wù)狀態(tài)信息進行數(shù)據(jù)封裝,形成監(jiān)控信息,并通過相應(yīng)的API接口將所述監(jiān)控信息對外發(fā)布。
[0026]優(yōu)選地,所述底層云存儲服務(wù)子系統(tǒng)還包括選舉單元;
[0027]所述選舉單元,用于在當前服務(wù)監(jiān)控處理器發(fā)生故障時,利用Paxos算法,在所有集群節(jié)點中決策產(chǎn)生新的服務(wù)監(jiān)控處理器,以替換發(fā)生故障的當前服務(wù)監(jiān)控處理器。
[0028]優(yōu)選地,所述底層云存儲服務(wù)子系統(tǒng)還包括故障處理單元;
[0029]所述故障處理單元,用于對發(fā)生故障的服務(wù)監(jiān)控處理器進行修復(fù)或故障告警。
[0030]優(yōu)選地,還包括上層云存儲管理子系統(tǒng);
[0031]所述上層云存儲管理子系統(tǒng),用于通過調(diào)用所述API接口,獲取所述監(jiān)控信息,并對所述監(jiān)控信息進行實時動態(tài)展示。
[0032]與現(xiàn)有技術(shù)相比,本發(fā)明實施例具有如下有益效果:
[0033]本發(fā)明實施例提供的云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法和系統(tǒng),通過在集群節(jié)點中設(shè)置服務(wù)狀態(tài)采集器,同時對服務(wù)運行狀態(tài)和服務(wù)可用性進行監(jiān)控,提高云存儲產(chǎn)品的整體監(jiān)控性能,保證云存儲服務(wù)的高可用性。并將監(jiān)控信息通過相應(yīng)的API接口實時對外發(fā)布,增強了系統(tǒng)監(jiān)控功能的可擴展性。
[0034]進一步地,本發(fā)明實施例提供的云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法和系統(tǒng),當服務(wù)監(jiān)控處理器發(fā)生故障時,還通過Paxos算法動態(tài)決策生成新的服務(wù)監(jiān)控處理器,有效防止了單點故障的發(fā)生,同時無需預(yù)先設(shè)置多個監(jiān)視器,系統(tǒng)資源得到充分利用,避免了從監(jiān)視器閑置造成的資源浪費。
【附圖說明】
[0035]圖1是本發(fā)明提供的云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法一個實施例的流程圖;
[0036]圖2是本發(fā)明提供的云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法另一個實施例的流程圖;
[0037]圖3是本發(fā)明提供的云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控系統(tǒng)一個實施例的系統(tǒng)結(jié)構(gòu)圖。
【具體實施方式】
[0038]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0039]參見圖1,是本發(fā)明提供的云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法一個實施例的流程圖。
[0040]本發(fā)明實施例提供的云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法,每個集群節(jié)點均部署有服務(wù)狀態(tài)采集器。所述方法包括:
[0041]步驟SI,所述服務(wù)狀態(tài)采集器采集所在集群節(jié)點內(nèi)的服務(wù)狀態(tài)信息,并將所述服務(wù)狀態(tài)信息處理成統(tǒng)一格式后,上報給服務(wù)監(jiān)控處理器。所述服務(wù)狀態(tài)信息包括服務(wù)運行狀態(tài)信息和服務(wù)可用性狀態(tài)信息。
[0042]所述集群節(jié)點中設(shè)置有服務(wù)狀態(tài)采集器和存儲器,云存儲系統(tǒng)的服務(wù)部署安裝于集群的存儲器中,所述服務(wù)狀態(tài)采集器不斷采集所在集群節(jié)點內(nèi)(即存儲器)的所有服務(wù)的運行狀態(tài)信息及可用性狀態(tài)信息,將采集到的信息處理成統(tǒng)一格式后主動上報給服務(wù)監(jiān)控處理器。
[0043]步驟S2,所述服務(wù)監(jiān)控處理器收集所有服務(wù)狀態(tài)采集器上報的服務(wù)狀態(tài)信息,對所述服務(wù)狀態(tài)信息進行數(shù)據(jù)封裝,形成監(jiān)控信息,并通過相應(yīng)的API接口將所述監(jiān)控信息對外發(fā)布。其中所述API接口為應(yīng)用程序編程接口,英文全稱為Applicat1n ProgrammingInterface。
[0044]優(yōu)選地,所述API接口為RESTful架構(gòu)樣式的API接口,云存儲產(chǎn)品的上層云存儲管理子系統(tǒng)和第三方應(yīng)用可通過調(diào)用所述API接口,獲取所述服務(wù)監(jiān)控處理器發(fā)布的監(jiān)控信息,以對監(jiān)控信息進行進一步的處理和展示。
[0045]本實施例提供的云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法,通過在集群節(jié)點中部署服務(wù)狀態(tài)采集器,同時對服務(wù)運行狀態(tài)和服務(wù)可用性進行監(jiān)控,提高云存儲產(chǎn)品的整體監(jiān)控性能,保證云存儲服務(wù)的高可用性。并將監(jiān)控信息通過相應(yīng)的API接口實時對外發(fā)布,增強了系統(tǒng)監(jiān)控功能的可擴展性。
[0046]參見圖2,是本發(fā)明提供的云存儲集群節(jié)點服務(wù)狀態(tài)實時監(jiān)控方法另一個實施例的流程圖。
[0047]如圖2所示,本實施例中的步驟SI和步驟S2與圖1所示實施例相同,可參見圖1所示實施例中的描述,在此不再詳述。
[0048]在具體實施當中所述方法還包括:
[0049]步驟S3,若所述服務(wù)監(jiān)控處理器成功接收所述服務(wù)狀態(tài)信息,則所述服務(wù)監(jiān)控處理器向所述服務(wù)狀態(tài)采集器返回確認信息。
[0050]步驟S4,若所述服務(wù)狀態(tài)采集器未收到所述服務(wù)監(jiān)控處理器返回的確認信息,則向集群內(nèi)其他服務(wù)狀態(tài)采集器發(fā)出上報失敗的廣播信息。并且,當發(fā)出所述廣播信息的服務(wù)狀態(tài)采集器的數(shù)量超過指定值時,則判定當前服務(wù)監(jiān)控處理器出現(xiàn)故障。
[0051]步驟S5,若當前服務(wù)監(jiān)控處理器發(fā)生故障時,利用Paxos算法,在所有集群節(jié)點中決策產(chǎn)生新的服務(wù)監(jiān)控處理器,以替換發(fā)生故障的當前服務(wù)監(jiān)控處理器。
[0052]當前服務(wù)監(jiān)控處理器發(fā)生故障時,底層云存儲服務(wù)子系統(tǒng)中的選舉單元將被觸發(fā),通過Paxos算法,從所有集群節(jié)點中選舉決策出新的服務(wù)監(jiān)控處理器,避免了服務(wù)監(jiān)控處理器故障造成整個監(jiān)控功能失效,有效防止了單點故障的發(fā)生。同時,所述Paxos算法被認為是目前最有效的分布式共識算法,通過Paxos算法可快速一致地選舉產(chǎn)生新的服務(wù)監(jiān)控處理器,大大降低了服務(wù)監(jiān)控處理器故障所帶來的影響,有助于保障監(jiān)控功能,提高用戶體驗。
[0053]其中,所述替換發(fā)生故障的當前服務(wù)監(jiān)控處理器具體包括:
[0054]將所述新的服