摘 要:本文從企業(yè)面臨的實際痛點、需求出發(fā),通過闡述光伏制造企業(yè)現(xiàn)有備份方案下存在的風(fēng)險和面對的問題,根據(jù)阿里云推出的阿里云對象存儲oss服務(wù),設(shè)計出一種linux系統(tǒng)環(huán)境下基于云存儲本地掛載技術(shù)以及Rsync算法的文件備份方案。通過現(xiàn)有開源工具如inotify、Rsync、ossfs以及基于現(xiàn)有MES系統(tǒng)查詢追溯功能二次開發(fā),實現(xiàn)了數(shù)據(jù)的實時增量備份,長期備份,按需購買存儲空間,以及海量數(shù)據(jù)快速查詢檢索。利用ossfs工具將云端存儲池掛載為一塊可讀、可寫、可執(zhí)行的本地存儲目錄,利用Rsync算法實現(xiàn)文件自動同步備份,增量備份,減少傳輸數(shù)據(jù),節(jié)省帶寬。項目的順利實施,節(jié)約了企業(yè)投入成本的同時進(jìn)一步提高了數(shù)據(jù)的安全性。
關(guān)鍵詞:對象存儲;備份;ossfs;阿里云
1 背景
隨著信息系統(tǒng)在企業(yè)生產(chǎn)、經(jīng)營過程中發(fā)揮著越來越重要的作用,信息系統(tǒng)的數(shù)據(jù)安全變得至關(guān)重要,系統(tǒng)運行以及數(shù)據(jù)保存是否安全直接決定了企業(yè)業(yè)務(wù)的正常運行。隨著企業(yè)的發(fā)展,會產(chǎn)生大量離散的電子文件數(shù)據(jù),種類繁多并且需要長時間保存。通常企業(yè)會通過搭建文件服務(wù)器的方式,進(jìn)行關(guān)鍵數(shù)據(jù)的備份,在系統(tǒng)或數(shù)據(jù)庫層面雖然可以借助于一些成熟的技術(shù)如raid磁盤陣列、雙活冗余、虛擬化、RAC、dataguard等方式,保障服務(wù)器、數(shù)據(jù)庫的數(shù)據(jù)安全,但是,依然面臨著如硬件損壞、設(shè)備過保、更新?lián)Q代成本過高、火災(zāi)或自然災(zāi)害等問題和風(fēng)險。本著數(shù)據(jù)存儲安全性高、投入成本較低的目的,晶澳太陽能科技股份有限公司將目光投向了云端存儲的方向,結(jié)合公司實際需求,取得了良好的成效。
光伏組件太陽能在生產(chǎn)過程中需要對每一塊電池板進(jìn)行EL檢測,每一塊電池板會生成一張EL測試圖片如圖1所示,該圖片通過施加反向電壓后用專用相機拍攝,可以清晰的呈現(xiàn)出電池板內(nèi)部缺陷,比如隱裂、斷柵、黑心等問題,生產(chǎn)過程中質(zhì)量、工藝等人員需要通過EL圖片對產(chǎn)品抽檢分析,產(chǎn)品發(fā)到客戶手中,客戶也會要求導(dǎo)出該圖片與實物進(jìn)行比對。該圖片每個大小在1MB作用,根據(jù)產(chǎn)能,數(shù)據(jù)日增量達(dá)到數(shù)十GB,根據(jù)晶澳對于產(chǎn)品質(zhì)保25年的承諾,意味著這些圖片數(shù)據(jù)需要保存25年之久,并且可以隨時導(dǎo)出。這就給IT造成了一定壓力,一方面,25年時間里如何保證這些數(shù)據(jù)的存儲安全;另一方面,圖片數(shù)據(jù)增量龐大,現(xiàn)有的存儲設(shè)備存滿后怎么辦,更換新的存儲設(shè)備需要多少容量,新舊存儲設(shè)備更替周期需要幾年,如何快速地將歷史數(shù)據(jù)復(fù)制到新存儲設(shè)備中,面對海量數(shù)據(jù)如何能快速檢索出需要的那一張圖片。鑒于以上幾個問題,我首次向公司提出了圖片數(shù)據(jù)遷移上云的設(shè)想,經(jīng)過反復(fù)實踐,解決了這一棘手的問題,節(jié)約了投入成本、維護(hù)成本的同時也保障了數(shù)據(jù)的安全性。
2 相關(guān)技術(shù)及原理
2.1 對象存儲OSS
對象存儲OSS是阿里云提供的云存儲產(chǎn)品。支持按需購買,自動擴容。簡單的說,就是阿里開通的一個文件存儲的服務(wù)。使用阿里云存儲需要注冊一個賬號,注冊后需要創(chuàng)建Bucket存儲桶即存儲空間的意思,其空間理論上是按需分配的,只要定期支付費用就可以隨著使用量自動擴展,這一方面就解決了企業(yè)內(nèi)部存儲需要不斷加盤柜擴容的問題。要使用這塊存儲空間需要AccessId和AccessKey進(jìn)行授權(quán)。獲取到AccessId和AccessKey后,將其加入配置文件,就可以使用掛載工具掛載這塊存儲空間了,從而可以使本地的Linux服務(wù)器多出一塊像本地目錄一樣的空間。
2.2 OSSFS掛載工具
OSSFS就是基于阿里云對象存儲的fuse客戶端,且OSSFS只支持Linux系統(tǒng)。Fuse即filesystem in userspace,是Linux系統(tǒng)中用于掛載某些網(wǎng)絡(luò)存儲到本地的模塊。OSSFS安裝成功以后,通過掛載命令就能使用了。
2.3 Rsync同步工具
RSYNC是Linux系統(tǒng)下常用的文件備份工具,其與CP命令的不同之處在于只復(fù)制發(fā)生變化的部分而不是整體遍歷覆蓋,并且可以保持文件的原有屬性權(quán)限,從而保持源目錄和目標(biāo)目錄數(shù)據(jù)的完全一致。而實現(xiàn)這種功能是因為其獨有的算法。基于這一特性,我們很容易實現(xiàn)源目錄和目標(biāo)目錄兩個固定目錄下的數(shù)據(jù)備份需求,只需要定期運行RSYNC命令就可以實現(xiàn)兩個目錄的數(shù)據(jù)同步,[1]同時RSYNC加上inotify工具就可以實現(xiàn)監(jiān)聽備份的功能,源目錄一單發(fā)生數(shù)據(jù)的增加、刪除、修改等操作,通過inotify的監(jiān)聽就可以觸發(fā)RSYNC進(jìn)行數(shù)據(jù)同步。[2]
3 項目實施的主要內(nèi)容
3.1 在Linux服務(wù)器上安裝OSSFS工具
ossfs安裝過程中報錯,系統(tǒng)存在老版本的fuse與ossfs軟件包中的沖突。卸載本機自帶的fuse軟件包,具體如下:
rpm-qa| grep fuse //查看rpm
rpm-ev--nodeps fuse-libs-2.8.3-4.el6.x86_64 //卸載
yum localinstall ossfs_1.80.5_centos6.5_x86_64.rpm--nogpgcheck //安裝軟件包
3.2 掛載存儲
ossfs在成功安裝后掛載存儲報錯,ossfs:/usr/lib64/libcrypto.so.10:no version information available(required by ossfs)。仍然是系統(tǒng)內(nèi)核版本過低,軟件包版本低導(dǎo)致的問題,官方要求需要centos7內(nèi)核版本以上,公司服務(wù)器使用redhat6.5系統(tǒng)。因此需要通過yum更新一下依賴包。
yum update openssl //通過yum更新系統(tǒng)openssl軟件包及依賴包
3.2.1 通過ossfs掛載云存儲到本地
echobucketid:secret key > /etc/passwd-ossfs //生成密碼文件
chmod 640 /etc/passwd-ossfs //修改權(quán)限
mkdir /wocloud //建立掛載目錄
ossfsbucketid /wocloud-ourl=http://oss-cn-beijing.aliyuncs.com-o allow_other //掛載云存儲并允許其他用戶訪問掛載目錄
3.2.2 設(shè)置開機自動掛載
Vi /etc/fstab
ossfs#bucketid /wocloud fuse _netdev,url=http://oss-cn-beijing.aliyuncs.com,allow_other 0 0
正常掛載云存儲后如圖所示:
至此服務(wù)器多出一塊256TB實際可按需擴展的存儲空間,如圖2所示。
4 圖片數(shù)據(jù)的自動同步和檢索導(dǎo)出
在云存儲創(chuàng)建備份目錄,編寫shell腳本,加入計劃任務(wù)。結(jié)合inotify實時監(jiān)控指定目錄下文件變化,當(dāng)檢測到有新增文件變化時將發(fā)生變化的文件路徑交給rsync進(jìn)行拷貝,減少rsync循環(huán)遍歷整個目錄的過程,while do循環(huán)執(zhí)行,達(dá)到實時同步的目的。
海量圖片如何能夠快速檢索出需要的那一張?如果采用遍歷查找的方式將會極大地消耗服務(wù)器的資源,我們研發(fā)了圖片上傳程序,即每向服務(wù)器上傳一張圖片,自動向數(shù)據(jù)庫中追加一條數(shù)據(jù),記錄下圖片在服務(wù)器的保存位置信息。每張EL圖片都有唯一ID命名,當(dāng)需要查詢某一塊EL圖片時,輸入該組件ID,后臺通過數(shù)據(jù)庫查找到該圖片的保存路徑信息,并將該路徑信息字符串取出,通過文本替換方式,獲取到其對應(yīng)在云端的保存路徑,最后通過調(diào)用SMB服務(wù)實現(xiàn)在線預(yù)覽和批量導(dǎo)出。[3]
5 結(jié)語
關(guān)于EL圖片備份的問題,即面對數(shù)據(jù)量的不斷遞增,以及數(shù)據(jù)保存25年以上的需求,如何既能保證數(shù)據(jù)存儲的安全性,又能將硬件投入成本降到最低。此前公司有的基地采用了購買大容量存儲服務(wù)器的方式,存儲容量達(dá)到100TB左右,一次性投入幾十到上百萬元;該做法雖然暫時免去了數(shù)據(jù)備份遷移的操作,足夠的空間余量可滿足日益增長的數(shù)據(jù)量需求,但是設(shè)備運行三年以后,官方售后過保,如何保障后續(xù)設(shè)備運轉(zhuǎn)正常,如何保障歷史數(shù)據(jù)的安全,仍然沒有妥善解決。
因此,通過引入阿里云存儲的做法成為解決該問題的最終方案,一方面將硬件投入、維護(hù)成本轉(zhuǎn)移到阿里云,無須考慮空間不足或硬件老化等問題,阿里云具備完善的備份冗余技術(shù),可保障數(shù)據(jù)的安全性。另一方面,實現(xiàn)按需投入,每月定期支付增量數(shù)據(jù)對應(yīng)的費用即可,免去了一次性高投入。
通過ossfs技術(shù),實現(xiàn)服務(wù)器本地掛載阿里云存儲,即服務(wù)器多出一塊沒有空間限制的磁盤,且可以像操作本地硬盤一樣操作遠(yuǎn)程云存儲。該技術(shù)的意義在于,車間客戶端在無法連接外網(wǎng)的情況下依然可以從云端拉取數(shù)據(jù),按原有的方式導(dǎo)出任意一塊組件的圖片數(shù)據(jù)。
參考文獻(xiàn):
[1]彭勇,劉曉潔,鄧洪敏.基于差異的遠(yuǎn)程文件備份與恢復(fù)方法[J].四川大學(xué)學(xué)報,2009(02):348-352.
[2]李夷苒,李濤,胡曉勤,馬曉旭.基于事件的文件備份方法研究與實現(xiàn)[J].計算機工程與設(shè)計,2010(18):3957-3959.
[3]林國慶,王靜,陳汝偉.基于索引的文件備份方案[J].電子設(shè)計工程,2011(19):165-167.
作者簡介:董若旭(1992— ),男,河北邢臺人,本科,制造業(yè)MES系統(tǒng)工程師。