呂啟尤,陸庭輝,吳毅良
(江門供電局,廣東 江門 529000)
無論是直升機(jī)巡檢還是無人機(jī)巡檢,在巡檢過程中都會(huì)產(chǎn)生大量的視頻圖像等數(shù)據(jù),這些非結(jié)構(gòu)化數(shù)據(jù)不能以二進(jìn)制格式存儲(chǔ)在關(guān)系數(shù)據(jù)庫中,因?yàn)檫@樣的讀寫效率和性能極為低下。最初較為普遍的做法是直接以原始視頻圖片形式存于服務(wù)器磁盤,保存在文件系統(tǒng)中,但是隨著時(shí)間的推移,數(shù)據(jù)文件變得越來越多后(隨著智能化設(shè)備接入和無人機(jī)行業(yè)的發(fā)展,正由TB級(jí)向PB級(jí)轉(zhuǎn)變),查找和瀏覽某個(gè)文件將會(huì)逐漸變得效率越來越低,不利于歷史問題的追溯和查看。當(dāng)一個(gè)文件目錄下保存了大量的文件數(shù)據(jù)后,打開這個(gè)目錄通常都會(huì)耗費(fèi)一定時(shí)間,更不要說在這些文件中查找到想要訪問和讀取的文件。因此,設(shè)計(jì)一種合理的存儲(chǔ)方式便成為了一個(gè)亟待解決的問題。
無人機(jī)使用吊艙或云臺(tái)來搭載照相機(jī)和攝像機(jī),一般有可見光照相機(jī)、可見光攝像機(jī)、紅外攝像機(jī)等幾種類型的設(shè)備。
(1)巡檢產(chǎn)生的數(shù)據(jù)一般是大文件的視頻和小文件的圖片,傳統(tǒng)的文件系統(tǒng)存儲(chǔ)方式不適合保存海量的這種歷史數(shù)據(jù),會(huì)造成磁盤的碎片過多,累計(jì)導(dǎo)致空間利用率不高以及訪問效率低下等問題。
(2)巡檢產(chǎn)生的視頻和圖像數(shù)據(jù)都依照國(guó)際標(biāo)準(zhǔn)格式設(shè)計(jì),因此巡檢數(shù)據(jù)的數(shù)據(jù)通用性較好,能夠?yàn)楹罄m(xù)的數(shù)據(jù)分析和訪問提供相對(duì)統(tǒng)一的處理方式。
(3)巡檢數(shù)據(jù)更新相對(duì)不頻繁。巡檢數(shù)據(jù)的更新在巡檢任務(wù)完成后才發(fā)生,巡檢部門會(huì)定期定制巡檢計(jì)劃,周期性的開展無人機(jī)巡檢作業(yè)任務(wù)。每次巡檢結(jié)束后,及時(shí)將任務(wù)設(shè)備的巡檢數(shù)據(jù)導(dǎo)出,匯總整理巡檢結(jié)果并提交。
巡檢數(shù)據(jù)需要有完善合理的存儲(chǔ)方式,能夠方便的進(jìn)行歷史記錄追溯查看和版本管理等操作。
作者簡(jiǎn)介:呂啟尤(1979-),男,廣東鶴山人,碩士,中級(jí)工程師,主要研究方向:數(shù)據(jù)分析,大數(shù)據(jù),云計(jì)算,物聯(lián)網(wǎng)技術(shù)。
分布式文件系統(tǒng)是實(shí)現(xiàn)非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的主要技術(shù)。分布式存儲(chǔ)技術(shù)與傳統(tǒng)的集中式存儲(chǔ)技術(shù)不同,并不是將數(shù)據(jù)存儲(chǔ)在某個(gè)特定的節(jié)點(diǎn)上,而是通過網(wǎng)絡(luò)使用網(wǎng)絡(luò)中多臺(tái)機(jī)器上的磁盤空間,并將這些分散的存儲(chǔ)資源構(gòu)成一個(gè)虛擬的存儲(chǔ)設(shè)備。具有可擴(kuò)展性、高可用性、高可靠性、高性能、數(shù)據(jù)一致性等特點(diǎn)。
根據(jù)無人機(jī)巡檢產(chǎn)生的海量非結(jié)構(gòu)化數(shù)據(jù)的特點(diǎn),可以選擇采用Ceph分布式存儲(chǔ)技術(shù)來解決在當(dāng)前大量視頻圖像存儲(chǔ)上帶來的問題。
Ceph是一個(gè)開源的分布式存儲(chǔ)系統(tǒng),最早是一個(gè)致力于開發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目。近些年,云存儲(chǔ)技術(shù)發(fā)展迅速,Open Stack做為云計(jì)算平臺(tái)支持幾乎所有類型的云環(huán)境,而Ceph對(duì)Open Stack的完美適應(yīng),使其在云時(shí)代的背景下快速更新迭代,發(fā)展迅速。
Ceph可供成千用戶訪問PB乃至EB級(jí)的數(shù)據(jù)。Ceph節(jié)點(diǎn)以普通硬件和智能守護(hù)進(jìn)程作為支撐點(diǎn),Ceph存儲(chǔ)集群組織大量節(jié)點(diǎn),節(jié)點(diǎn)之間靠相互通訊來復(fù)制數(shù)據(jù)、并動(dòng)態(tài)地重分布數(shù)據(jù)。
Ceph的數(shù)據(jù)存儲(chǔ)過程如圖1所示。
圖1 Ceph數(shù)據(jù)的存儲(chǔ)過程
圖1說明了在Ceph中,文件數(shù)據(jù)是如何被存儲(chǔ)到系統(tǒng)中。觀察圖1上面的那張圖,待存儲(chǔ)的視頻或圖片文件(File)會(huì)被切分成一個(gè)或多個(gè)對(duì)象(Objects),每個(gè)對(duì)象的大小可以由管理員設(shè)定,通常為2M或4M,每個(gè)對(duì)象都會(huì)有一個(gè)自己的唯一對(duì)象ID(oid),oid由文件FileID(ino)和分片編號(hào)(ono)組成??梢钥吹?,對(duì)象的oid不僅僅是可以唯一標(biāo)示每個(gè)不同的對(duì)象,并且存儲(chǔ)了對(duì)象與文件的從屬關(guān)系。由于ceph的所有數(shù)據(jù)都虛擬成了整齊劃一的對(duì)象集合,讀寫效率會(huì)比較高。
被分隔成的對(duì)象也是文件系統(tǒng)中的一個(gè)具體文件,他們被存儲(chǔ)在對(duì)象存儲(chǔ)設(shè)備上(OSD),如圖1的下面那張圖所示。然而,每個(gè)對(duì)象是不會(huì)直接存儲(chǔ)進(jìn)對(duì)象存儲(chǔ)設(shè)備中,而是映射到歸置組(PG)中,歸置組是一個(gè)邏輯概念,我們可以在Ceph系統(tǒng)中直接看到被分隔成的對(duì)象,但是不會(huì)直接看到歸置組。Ceph客戶端要存對(duì)象時(shí),CRUSH將把各對(duì)象映射到某個(gè)歸置組。把對(duì)象映射到歸置組在OSD和客戶端間創(chuàng)建了一個(gè)間接層。由于Ceph集群必須能增大或縮小、并動(dòng)態(tài)地重均衡。如果讓客戶端“知道”哪個(gè)OSD有哪個(gè)對(duì)象,就會(huì)導(dǎo)致客戶端和OSD緊耦合;相反,CRUSH算法把對(duì)象映射到歸置組、然后再把各歸置組映射到一或多個(gè)OSD,這一間接層可以讓Ceph在OSD守護(hù)進(jìn)程和底層設(shè)備上線時(shí)動(dòng)態(tài)地重均衡。
Ceph的OSD是強(qiáng)一致性的分布式存儲(chǔ)。它的讀寫流程如下:
圖2 OSD讀寫流程
客戶端把對(duì)象寫入目標(biāo)歸置組的主OSD,然后這個(gè)主OSD再用它的CRUSH圖副本找出用于放對(duì)象副本的第二、第三個(gè)OSD,并把數(shù)據(jù)復(fù)制到適當(dāng)?shù)臍w置組所對(duì)應(yīng)的第二、第三OSD(要多少副本就有多少OSD),最終,確認(rèn)數(shù)據(jù)成功存儲(chǔ)后反饋給客戶端。
基于上面描述的存儲(chǔ)過程,Ceph提供了一個(gè)可無線伸縮的Ceph存儲(chǔ)集群,集群中的OSD節(jié)點(diǎn)可以隨時(shí)輕松的添加或移除,一個(gè)OSD節(jié)點(diǎn)可以是一臺(tái)服務(wù)器的整塊磁盤,也可以是磁盤的某部分目錄結(jié)構(gòu)。
Ceph存儲(chǔ)集群包含兩種類型的守護(hù)進(jìn)程:Ceph監(jiān)視器(Monitors)和CephOSD守護(hù)進(jìn)程(OSDs)。Ceph監(jiān)視器維護(hù)著集群運(yùn)行圖的主副本。一個(gè)監(jiān)視器集群確保了當(dāng)某個(gè)監(jiān)視器失效時(shí)的高可用性。存儲(chǔ)集群客戶端向Ceph監(jiān)視器索取集群運(yùn)行圖的最新副本;CephOSD守護(hù)進(jìn)程檢查自身狀態(tài)、以及其它OSD的狀態(tài),并報(bào)告給監(jiān)視器們。存儲(chǔ)集群的客戶端和各個(gè)CephOSD守護(hù)進(jìn)程使用CRUSH算法高效地計(jì)算數(shù)據(jù)位置,而不是依賴于一個(gè)中心化的查詢表,因此避免了因查詢中心出問題時(shí)導(dǎo)致的整個(gè)系統(tǒng)尋址不可用。
綜上所述,無論是監(jiān)視器節(jié)點(diǎn)還是對(duì)象存儲(chǔ)節(jié)點(diǎn),在系統(tǒng)中都是以集群形式存在的,因此整個(gè)系統(tǒng)的可靠性非常高;每個(gè)節(jié)點(diǎn)都可以非常方便的增加和移除,使得系統(tǒng)靈活性非常高;每個(gè)數(shù)據(jù)文件都會(huì)以對(duì)象以及對(duì)象副本形式存儲(chǔ)在多個(gè)對(duì)象存儲(chǔ)節(jié)點(diǎn)中,使得數(shù)據(jù)的安全性和系統(tǒng)的可用性高;取消了其他分布式系統(tǒng)中的中心查詢節(jié)點(diǎn),存儲(chǔ)集群客戶端直接和各個(gè)OSD守護(hù)進(jìn)程通信,通過CRUSH算法獲取數(shù)據(jù)位置,查找數(shù)據(jù)的效率更高。
常規(guī)的文件系統(tǒng)存儲(chǔ)輸電線路中的巡檢數(shù)據(jù)方式,隨著視頻圖像數(shù)據(jù)的累積會(huì)變得越來越不可用。基于這種需求場(chǎng)景,結(jié)合當(dāng)前云存儲(chǔ)技術(shù)的發(fā)展趨勢(shì),分析當(dāng)前流行的Ceph開源分布式存儲(chǔ)技術(shù),從文件類型、文件大小和數(shù)量、系統(tǒng)穩(wěn)定性、可擴(kuò)展性、數(shù)據(jù)容災(zāi)性等多方面進(jìn)行考慮和研究,從Ceph存儲(chǔ)集群的存儲(chǔ)過程、后臺(tái)進(jìn)程管理方式等方面進(jìn)行闡述,最終定義了適用于輸電線路巡檢數(shù)據(jù)存儲(chǔ)的應(yīng)用模式,也對(duì)今后電力系統(tǒng)中類似海量非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)方案選擇具有較高的參考價(jià)值。