本發(fā)明涉及云計算領(lǐng)域,特別是涉及一種openstack平臺對ceph進行監(jiān)控和管理的裝置及方法。
背景技術(shù):
openstack是一種云計算管理平臺,通過各種服務(wù)提供了iaas(基礎(chǔ)設(shè)施即服務(wù))的解決方案。
ceph是致力于提供高擴展性、高可靠性、高性能的分布式存儲系統(tǒng),ceph的底層實現(xiàn)是rados(reliableautonomicdistributedobejectstorage),rados是ceph的基石,包含了osd(對象存儲設(shè)備)設(shè)備,mon(監(jiān)視器)服務(wù)等重要的組件。其中osd設(shè)備提供存儲資源,可以是一塊disk(硬盤),分區(qū)等,mon服務(wù)維護整個ceph的全局狀態(tài),包含各種map信息。對于ceph的部署,通常采用官方提供的cephdeploy工具實現(xiàn),即管理員通過預(yù)先規(guī)劃的mon服務(wù)和osd設(shè)備信息,借助于deploy工具進行mon服務(wù)以及osd設(shè)備的部署,進而實現(xiàn)ceph的部署。但是在云計算領(lǐng)域,通常采用openstack平臺作為基礎(chǔ)框架同時提供管理客戶端界面,使用ceph作為底層存儲模塊,在這種情況下,在openstack平臺的管理客戶端界面很難實現(xiàn)對ceph業(yè)務(wù)的有效監(jiān)控和管理。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于,提供一種openstack平臺對ceph進行監(jiān)控和管理的裝置及方法,實現(xiàn)在openstack平臺的客戶端界面實現(xiàn)對ceph存儲系統(tǒng)業(yè)務(wù)的有效管控。
為解決上述技術(shù)問題,本發(fā)明提供一種openstack平臺對ceph進行監(jiān)控和管理的裝置,包括:
處理控制模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)分析模塊;
所述處理控制模塊對openstack平臺的應(yīng)用程序編程接口和ceph的應(yīng)用程序編程接口進行初始化處理,形成一一對應(yīng)關(guān)系;
所述數(shù)據(jù)采集模塊采集獲取所述ceph的狀態(tài)信息和磁盤使用信息;
所述數(shù)據(jù)分析模塊對獲取的所述ceph的狀態(tài)信息和磁盤使用信息進行分析統(tǒng)計。
可選的,對于所述的openstack平臺對ceph進行監(jiān)控和管理的裝置,所述初始化處理基于rest框架進行。
可選的,對于所述的openstack平臺對ceph進行監(jiān)控和管理的裝置,所述狀態(tài)信息包括各個集群的狀態(tài)信息、mon/osd服務(wù)狀態(tài)信息、osd資源使用率信息;所述磁盤使用信息包括磁盤和osd設(shè)備的使用率。
可選的,對于所述的openstack平臺對ceph進行監(jiān)控和管理的裝置,還包括報警模塊,所述報警模塊監(jiān)控判斷ceph是否處于異常狀態(tài)并向用戶發(fā)出報警信息。
可選的,對于所述的openstack平臺對ceph進行監(jiān)控和管理的裝置,所述報警模塊監(jiān)控ceph的磁盤使用率、osd資源使用率、mon服務(wù)狀態(tài)、osd服務(wù)狀態(tài)。
可選的,對于所述的openstack平臺對ceph進行監(jiān)控和管理的裝置,還包括mongodb數(shù)據(jù)庫,存儲所述數(shù)據(jù)采集模塊采集的信息。
本發(fā)明還提供一種openstack平臺對ceph進行監(jiān)控和管理的方法,包括:
步驟一、處理控制模塊對openstack平臺的應(yīng)用程序編程接口和ceph的應(yīng)用程序編程接口進行初始化處理,形成一一對應(yīng)關(guān)系;
步驟二、數(shù)據(jù)采集模塊采集獲取所述ceph的狀態(tài)信息和磁盤使用信息;
步驟三、數(shù)據(jù)分析模塊對獲取的所述ceph的狀態(tài)信息和磁盤使用信息進行分析統(tǒng)計。
可選的,對于所述的openstack平臺對ceph進行監(jiān)控和管理的方法,步驟一中,初始化監(jiān)控管理服務(wù),注冊基于rest框架的應(yīng)用程序編程接口,以路徑名和方法名的對應(yīng)關(guān)系保存為一個字典,當接收到openstack平臺發(fā)出的http協(xié)議請求后,根據(jù)url路徑進行解析通過正則匹配找到并調(diào)用對應(yīng)的方法;
步驟二中,數(shù)據(jù)采集模塊調(diào)用基于rest框架的應(yīng)用程序編程接口的處理集獲取各個集群的狀態(tài)信息、mon/osd服務(wù)狀態(tài)信息、osd資源使用率信息;讀取linux操作系統(tǒng)信息文件來獲取磁盤和osd設(shè)備的使用率,作為原始數(shù)據(jù)保存到mongodb數(shù)據(jù)庫中進行存儲;
步驟三中,數(shù)據(jù)分析模塊定時讀取mongodb數(shù)據(jù)庫的原始數(shù)據(jù),并對所述原始數(shù)據(jù)進行統(tǒng)計和分析,將分析結(jié)果保存到mongodb數(shù)據(jù)庫。
可選的,對于所述的openstack平臺對ceph進行監(jiān)控和管理的方法,所述統(tǒng)計和分析包括:對原始數(shù)據(jù)取1天、1周、1月的平均值,統(tǒng)計當月超過閾值的監(jiān)控項的時間段和總時間。
可選的,對于所述的openstack平臺對ceph進行監(jiān)控和管理的方法,還包括報警模塊,實時讀取mongodb數(shù)據(jù)庫的信息,監(jiān)控ceph的磁盤使用率、osd資源使用率、mon服務(wù)狀態(tài)、osd服務(wù)狀態(tài)。
與現(xiàn)有技術(shù)相比,本發(fā)明提供的openstack平臺對ceph進行監(jiān)控和管理的裝置,包括:處理控制模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)分析模塊;所述處理控制模塊對openstack平臺的應(yīng)用程序編程接口和ceph的應(yīng)用程序編程接口進行初始化處理,形成一一對應(yīng)關(guān)系;所述數(shù)據(jù)采集模塊采集獲取所述ceph的狀態(tài)信息和磁盤使用信息;所述數(shù)據(jù)分析模塊對獲取的所述ceph的狀態(tài)信息和磁盤使用信息進行分析統(tǒng)計。由此把ceph的監(jiān)控和管理整合到openstack平臺后,擴展了openstack平臺的功能,提高了openstack平臺對存儲資源的管控;實現(xiàn)了openstack平臺上ceph存儲資源和磁盤資源的可視化;實現(xiàn)了openstack平臺上,對ceph進行快速有效的管理;實現(xiàn)了保留歷史數(shù)據(jù)趨勢,方便排查問題。以上功能方便了運維人員對ceph的監(jiān)控和管理。
附圖說明
圖1為本發(fā)明一實施例中openstack平臺對ceph進行監(jiān)控和管理的裝置及方法的示意圖;
圖2為本發(fā)明一實施例中openstack平臺對ceph進行監(jiān)控和管理的方法的示意圖。
具體實施方式
下面將結(jié)合示意圖對本發(fā)明的openstack平臺對ceph進行監(jiān)控和管理的裝置及方法進行更詳細的描述,其中表示了本發(fā)明的優(yōu)選實施例,應(yīng)該理解本領(lǐng)域技術(shù)人員可以修改在此描述的本發(fā)明,而仍然實現(xiàn)本發(fā)明的有利效果。因此,下列描述應(yīng)當被理解為對于本領(lǐng)域技術(shù)人員的廣泛知道,而并不作為對本發(fā)明的限制。
為了清楚,不描述實際實施例的全部特征。在下列描述中,不詳細描述公知的功能和結(jié)構(gòu),因為它們會使本發(fā)明由于不必要的細節(jié)而混亂。應(yīng)當認為在任何實際實施例的開發(fā)中,必須做出大量實施細節(jié)以實現(xiàn)開發(fā)者的特定目標,例如按照有關(guān)系統(tǒng)或有關(guān)商業(yè)的限制,由一個實施例改變?yōu)榱硪粋€實施例。另外,應(yīng)當認為這種開發(fā)工作可能是復(fù)雜和耗費時間的,但是對于本領(lǐng)域技術(shù)人員來說僅僅是常規(guī)工作。
在下列段落中參照附圖以舉例方式更具體地描述本發(fā)明。根據(jù)下面說明和權(quán)利要求書,本發(fā)明的優(yōu)點和特征將更清楚。需說明的是,附圖均采用非常簡化的形式且均使用非精準的比例,僅用以方便、明晰地輔助說明本發(fā)明實施例的目的。
本發(fā)明的核心思想在于,提供一種openstack平臺對ceph進行監(jiān)控和管理的裝置,包括處理控制模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)分析模塊;
所述處理控制模塊對openstack平臺的應(yīng)用程序編程接口和ceph的應(yīng)用程序編程接口進行初始化處理,形成一一對應(yīng)關(guān)系;
所述數(shù)據(jù)采集模塊采集獲取所述ceph的狀態(tài)信息和磁盤使用信息;
所述數(shù)據(jù)分析模塊對獲取的所述ceph的狀態(tài)信息和磁盤使用信息進行分析統(tǒng)計。
如圖1所示,所述的openstack平臺對ceph進行監(jiān)控和管理的裝置,包括:
處理控制模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)分析模塊;
所述處理控制模塊對openstack平臺的應(yīng)用程序編程接口(api接口)和ceph的應(yīng)用程序編程接口進行初始化處理,形成一一對應(yīng)關(guān)系;
所述數(shù)據(jù)采集模塊采集獲取所述ceph的狀態(tài)信息和磁盤使用信息;
所述數(shù)據(jù)分析模塊對獲取的所述ceph的狀態(tài)信息和磁盤使用信息進行分析統(tǒng)計。
在一個實施例中,所述初始化處理基于rest框架進行。
在一個實施例中,所述狀態(tài)信息包括各個集群的狀態(tài)信息、mon/osd服務(wù)狀態(tài)信息、osd資源使用率信息;所述磁盤使用信息包括磁盤和osd設(shè)備的使用率。
在一個實施例中,還包括報警模塊,所述報警模塊監(jiān)控判斷ceph是否處于異常狀態(tài)并向用戶發(fā)出報警信息。
在一個實施例中,所述報警模塊監(jiān)控ceph的磁盤使用率、osd資源使用率、mon服務(wù)狀態(tài)、osd服務(wù)狀態(tài)。
在一個實施例中,還包括mongodb數(shù)據(jù)庫,存儲所述數(shù)據(jù)采集模塊采集的信息。
下面提供本發(fā)明的方法,如圖1和圖2所示,本發(fā)明提供的openstack平臺對ceph進行監(jiān)控和管理的方法,包括:
步驟一、處理控制模塊對openstack平臺的應(yīng)用程序編程接口和ceph的應(yīng)用程序編程接口進行初始化處理,形成一一對應(yīng)關(guān)系。具體的,在本步驟一中,初始化監(jiān)控管理服務(wù),注冊基于rest框架的應(yīng)用程序編程接口,以路徑名和方法名的對應(yīng)關(guān)系保存為一個字典,當接收到openstack平臺發(fā)出的http協(xié)議請求后,根據(jù)url路徑進行解析通過正則匹配找到并調(diào)用對應(yīng)的方法。
在一個實施例中,注冊基于rest框架的應(yīng)用程序編程接口(rest-api接口),該接口包含很多處理集,每一個業(yè)務(wù)需求(例如:啟停ceph服務(wù)、增刪osd等等)都會有一個處理集與之對應(yīng),每個處理集又包括調(diào)用ceph本身自帶api、linux系統(tǒng)信息文件、數(shù)據(jù)庫dao和shell腳本等參數(shù)。
例如:啟動osd的處理集,先通過ceph的api接口,查看osd的狀態(tài),如果osd已經(jīng)啟動,就返回操作成功;如果osd處于關(guān)閉狀態(tài),就調(diào)用啟動osd的shell腳本,shell腳本內(nèi)會調(diào)用ceph的client中的啟動osd的方法,返回操作成功;如果osd處于異常狀態(tài),就會返回操作失敗,并上報異常狀態(tài);調(diào)用數(shù)據(jù)庫dao,保存操作記錄到數(shù)據(jù)庫dao。
獲取ceph集群信息的處理集,調(diào)用ceph的rados庫(或radosblockdevice,rbd)的get_cluster_stats方法,提取整理需要的信息,返回json格式的ceph集群信息。
新增osd的處理集,調(diào)用osd_create.sh的shell腳本,腳本里實現(xiàn)了磁盤的分區(qū)和格式化,和通過ceph命令創(chuàng)建osd的過程,shell腳本返回0表示成功,非0表示失??;返回操作的結(jié)果,并記錄到數(shù)據(jù)庫dao。
獲取osdtree信息的處理集,調(diào)用cephclient中的方法獲取cephosdtree的查詢結(jié)果,提取整理需要的信息,返回json格式的osdtree信息。
步驟二、數(shù)據(jù)采集模塊采集獲取所述ceph的狀態(tài)信息和磁盤使用信息。具體的,數(shù)據(jù)采集模塊調(diào)用基于rest框架的應(yīng)用程序編程接口的處理集獲取各個集群的狀態(tài)信息、mon/osd服務(wù)狀態(tài)信息、osd資源使用率信息;讀取linux操作系統(tǒng)信息文件來獲取磁盤和osd設(shè)備的使用率,作為原始數(shù)據(jù)保存到mongodb數(shù)據(jù)庫的original_data集合中進行存儲。
步驟三、數(shù)據(jù)分析模塊對獲取的所述ceph的狀態(tài)信息和磁盤使用信息進行分析統(tǒng)計。具體的,數(shù)據(jù)分析模塊定時讀取mongodb數(shù)據(jù)庫的原始數(shù)據(jù),并對所述原始數(shù)據(jù)進行統(tǒng)計和分析,將分析結(jié)果保存到mongodb數(shù)據(jù)庫的history_data集合進行存儲。
所述統(tǒng)計和分析包括:對原始數(shù)據(jù)取1天、1周、1月的平均值,統(tǒng)計當月超過閾值的監(jiān)控項的時間段和總時間。
在一個實施例中,還包括報警模塊,實時讀取mongodb數(shù)據(jù)庫的信息,監(jiān)控ceph的磁盤使用率、osd資源使用率、mon服務(wù)狀態(tài)、osd服務(wù)狀態(tài)等信息狀態(tài),每個監(jiān)控項的警戒閾值都可以在管理界面上設(shè)置,采集到的數(shù)據(jù)將與閾值進行比較,超過閾值的監(jiān)控項,監(jiān)控報警模塊通過郵件的方式向管理員報警,同時將報警記錄保存到mongodb數(shù)據(jù)庫的alarm_record集合。
在openstack平臺客戶端能夠形成一個ceph監(jiān)控管理界面。監(jiān)控界面會定時獲取ceph運行狀態(tài)的數(shù)據(jù),包括實時數(shù)據(jù)和歷史趨勢數(shù)據(jù),并以圖表的形式展示;管理界面會以表格形式顯示mon和osd服務(wù)的運行狀態(tài),并可以進行啟停和增刪等操作。
本發(fā)明提供的openstack平臺對ceph進行監(jiān)控和管理的裝置,包括:處理控制模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)分析模塊;所述處理控制模塊對openstack平臺的應(yīng)用程序編程接口和ceph的應(yīng)用程序編程接口進行初始化處理,形成一一對應(yīng)關(guān)系;所述數(shù)據(jù)采集模塊采集獲取所述ceph的狀態(tài)信息和磁盤使用信息;所述數(shù)據(jù)分析模塊對獲取的所述ceph的狀態(tài)信息和磁盤使用信息進行分析統(tǒng)計。由此把ceph的監(jiān)控和管理整合到openstack平臺后,擴展了openstack平臺的功能,提高了openstack平臺對存儲資源的管控;實現(xiàn)了openstack平臺上ceph存儲資源和磁盤資源的可視化;實現(xiàn)了openstack平臺上,對ceph進行快速有效的管理;實現(xiàn)了保留歷史數(shù)據(jù)趨勢,方便排查問題。以上功能方便了運維人員對ceph的監(jiān)控和管理。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。