一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng),涉及到云計(jì)算、docker容器技術(shù)領(lǐng)域,以容器化技術(shù)docker為基礎(chǔ)搭建私有云存儲(chǔ)系統(tǒng),利用Docker容器技術(shù)擴(kuò)充出計(jì)算存儲(chǔ)節(jié)點(diǎn),利用MooseFS文件系統(tǒng)實(shí)現(xiàn)對(duì)單機(jī)資源的有效利用,再結(jié)合Seafile云存儲(chǔ)系統(tǒng)實(shí)現(xiàn)對(duì)松散資源的集中管理,加密存儲(chǔ);其系統(tǒng)架構(gòu)主要包括數(shù)據(jù)存儲(chǔ)層和服務(wù)提供層。本發(fā)明解決了傳統(tǒng)存儲(chǔ)存在空間、加密和共享上的瓶頸;實(shí)現(xiàn)了私有云存儲(chǔ)系統(tǒng),保證了數(shù)據(jù)的隱私性,且易于擴(kuò)展。
【專利說明】一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng)
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及到云計(jì)算、docker容器技術(shù)領(lǐng)域,具體的說是一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng)。
【背景技術(shù)】
[0003]隨著移動(dòng)設(shè)備的興起,數(shù)據(jù)與日劇增,每天都會(huì)產(chǎn)生大量的數(shù)據(jù)。云計(jì)算為中小型企業(yè)或者個(gè)人提供數(shù)據(jù)的存儲(chǔ)與計(jì)算服務(wù),節(jié)省了存儲(chǔ)計(jì)算成本。但是云計(jì)算帶來便利的同時(shí)也存在一定的風(fēng)險(xiǎn),用戶一般將數(shù)據(jù)存儲(chǔ)在公有云中,而公有云系統(tǒng)中多個(gè)用戶共享計(jì)算資源,用戶無法確切地知道可控的資源運(yùn)行在何處,存儲(chǔ)在公有云中的數(shù)據(jù),有極大地風(fēng)險(xiǎn)被非法使用。
[0004]隨著物聯(lián)網(wǎng)進(jìn)程的加快,每個(gè)人每天將產(chǎn)生大量的個(gè)人隱私數(shù)據(jù),這些數(shù)據(jù)可能包括健康數(shù)據(jù)、家電數(shù)據(jù)和個(gè)人移動(dòng)位置信息等等,人們會(huì)對(duì)這些數(shù)據(jù)的安全性更加關(guān)注,而公有云的劣勢(shì)將無限放大。研究開發(fā)私有云系統(tǒng)將會(huì)從本質(zhì)上對(duì)這個(gè)問題進(jìn)行一定的緩解。私有云相比于傳統(tǒng)的公有云有以下幾點(diǎn)好處:
第一點(diǎn),防止數(shù)據(jù)被竊取。公有云存儲(chǔ)服務(wù)往往是和用戶的某些平臺(tái)賬號(hào)綁定在一起的,或者與用戶的某個(gè)郵箱綁定在一起的,一旦平臺(tái)賬號(hào)或郵箱被黑客獲取,所有的數(shù)據(jù)就一覽無余了;第二點(diǎn),防止數(shù)據(jù)被主動(dòng)泄漏。用戶將數(shù)據(jù)托管在第三方的云平臺(tái)上,無法保證云服務(wù)提供商不把用戶數(shù)據(jù)提供給其他人使用;第三點(diǎn),防止數(shù)據(jù)遺失。2009年底微軟的SIDEKICK事件,導(dǎo)致郵件服務(wù)器中斷一周,而用戶數(shù)據(jù)卻未曾備份而丟失。
[0005]從以上幾點(diǎn)可以看到,構(gòu)建家庭私有云是非常必要的,能夠保證自己的私人數(shù)據(jù)與其他互聯(lián)網(wǎng)賬號(hào)無關(guān),不被搜索引擎索引,不被別人監(jiān)視。用戶部署的私有云能夠保證服務(wù)器運(yùn)行并做好數(shù)據(jù)備份。如果僅在家庭或公司內(nèi)部使用可以部署在內(nèi)網(wǎng),安全系數(shù)更高。在私有云的環(huán)境下,用戶的云端服務(wù)器再也不是云服務(wù)商所提供,而是用戶擁有自己的服務(wù)器,用戶可以使用手持終端與自己的私有云服務(wù)器隨時(shí)隨地通信。這種情況下,除了私有云服務(wù)器本身不可抗外力的因素,服務(wù)器與數(shù)據(jù)是百分之百安全的,用戶只需要利用APP登錄自己的云端服務(wù)器就可以實(shí)現(xiàn)私人數(shù)據(jù)的存儲(chǔ)與重要數(shù)據(jù)的同步。但是,需購買價(jià)格昂貴的服務(wù)器,并需要持續(xù)投入維護(hù)成本,對(duì)于個(gè)人來說建立私有云服務(wù)器成本太大,不利于實(shí)現(xiàn)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明針對(duì)目前技術(shù)發(fā)展的需求和不足之處,提供一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng)。
[0007]本發(fā)明所述一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng),解決上述技術(shù)問題采用的技術(shù)方案如下:所述一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng),以容器化技術(shù)docker為基礎(chǔ)搭建私有云存儲(chǔ)系統(tǒng),利用Docker容器技術(shù)擴(kuò)充出計(jì)算存儲(chǔ)節(jié)點(diǎn),利用MooseFS文件系統(tǒng)實(shí)現(xiàn)對(duì)單機(jī)資源的有效利用,再結(jié)合Seafile云存儲(chǔ)系統(tǒng)實(shí)現(xiàn)對(duì)松散資源的集中管理,加密存儲(chǔ);其系統(tǒng)架構(gòu)主要包括數(shù)據(jù)存儲(chǔ)層和服務(wù)提供層。
[0008]優(yōu)選的,所述數(shù)據(jù)存儲(chǔ)層使用MooseFS文件系統(tǒng),主要由Master、Metalogger和Chunkserver這些部分組成。其中,master負(fù)責(zé)在整個(gè)系統(tǒng)中管理數(shù)據(jù),是整個(gè)系統(tǒng)的維護(hù)者;Metalogger做master數(shù)據(jù)備份的節(jié)點(diǎn);chunkserver負(fù)責(zé)存儲(chǔ)MFS系統(tǒng)中的數(shù)據(jù),用戶數(shù)據(jù)按照算法被分成chunk,并分發(fā)到各個(gè)chunkserver上,這樣就保證了數(shù)據(jù)的安全性。
[0009]優(yōu)選的,所述服務(wù)提供層包括與用戶交互的接口,主要使用Seafile服務(wù)端完成。
[0010]優(yōu)選的,Seafile服務(wù)端主要由 Httpserver、Seahub、Seafile、Ccnet 和 TaskDeamon模塊組成;其中:Ccnet主要負(fù)責(zé)通信,是內(nèi)部的RPC服務(wù)進(jìn)程,連接其他幾個(gè)組件;Seahub主要提供網(wǎng)頁頁面,供用戶管理自己在服務(wù)器上的數(shù)據(jù)和賬戶信息;Httpserver主要負(fù)責(zé)網(wǎng)頁端的文件上傳與下載;Seafile是整個(gè)架構(gòu)的核心,負(fù)責(zé)對(duì)原始文件的上傳、下載和同步;Task Deamon主要處理后臺(tái)郵件收發(fā)任務(wù)。
[00?1 ] 優(yōu)選的,所述私有云存儲(chǔ)系統(tǒng)采用Wandboard QuadARM開發(fā)板作為私有云的硬件運(yùn)行環(huán)境。
[0012]本發(fā)明所述一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng)與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明利用Docker容器技術(shù)將計(jì)算資源有效整合,擴(kuò)充出計(jì)算存儲(chǔ)節(jié)點(diǎn),然后在此基礎(chǔ)上利用MooseFS文件系統(tǒng)實(shí)現(xiàn)對(duì)單機(jī)資源的有效利用,實(shí)現(xiàn)對(duì)分塊區(qū)域的高效使用,而且此系統(tǒng)也可與其他系統(tǒng)進(jìn)行動(dòng)態(tài)擴(kuò)展,可以實(shí)現(xiàn)高的容錯(cuò);然后再結(jié)合Seafile云存儲(chǔ)系統(tǒng)實(shí)現(xiàn)對(duì)松散資源的集中管理,加密存儲(chǔ),解決了傳統(tǒng)存儲(chǔ)存在空間、加密和共享上的瓶頸;實(shí)現(xiàn)了私有云存儲(chǔ)系統(tǒng),保證了數(shù)據(jù)的隱私性,且易于擴(kuò)展。
[0013]本系統(tǒng)可以實(shí)現(xiàn)小量級(jí)用戶對(duì)數(shù)據(jù)存儲(chǔ)的需求,而且便攜,占用的面積較少;采用Docker技術(shù),系統(tǒng)的可集成度很高,當(dāng)用戶需要添加某個(gè)應(yīng)用時(shí),可以直接創(chuàng)建一個(gè)Docker容器,直接運(yùn)行,不用考慮兼容性的問題,極大地簡(jiǎn)化了部署服務(wù)的周期。
【具體實(shí)施方式】
[0014]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,對(duì)本發(fā)明所述一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng)進(jìn)一步詳細(xì)說明。
[0015]本發(fā)明提出一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng),以最新的容器化技術(shù)docker為基礎(chǔ)搭建私有云存儲(chǔ)系統(tǒng),利用Docker容器技術(shù)將計(jì)算資源有效整合,擴(kuò)充出計(jì)算存儲(chǔ)節(jié)點(diǎn),然后在此基礎(chǔ)上利用MooseFS文件系統(tǒng)實(shí)現(xiàn)對(duì)單機(jī)資源的有效利用,實(shí)現(xiàn)對(duì)分塊區(qū)域的高效使用,然后再結(jié)合Seafile云存儲(chǔ)系統(tǒng)實(shí)現(xiàn)對(duì)松散資源的集中管理,加密存儲(chǔ),解決了傳統(tǒng)存儲(chǔ)存在空間、加密和共享上的瓶頸;實(shí)現(xiàn)了私有云存儲(chǔ)系統(tǒng),保證了數(shù)據(jù)的隱私性,且易于擴(kuò)展,便于解決家庭、小型公司、個(gè)人環(huán)境中,數(shù)據(jù)存儲(chǔ)的問題。
[0016]實(shí)施例:
本實(shí)施例所述一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng),主要用于數(shù)據(jù)的存儲(chǔ)和管理,以Docker容器為計(jì)算存儲(chǔ)節(jié)點(diǎn),采用MooseFS文件系統(tǒng)構(gòu)建分布式環(huán)境;其系統(tǒng)架構(gòu)主要包括數(shù)據(jù)存儲(chǔ)層和服務(wù)提供層,
以Docker容器為計(jì)算存儲(chǔ)節(jié)點(diǎn),構(gòu)建分布式環(huán)境,采用的分布式文件系統(tǒng)為MooseFS。MooseFS是一款網(wǎng)絡(luò)分布式文件系統(tǒng)。它把數(shù)據(jù)分散在多臺(tái)服務(wù)器上,但對(duì)于用戶來講,看到的只是一個(gè)源。MFS像其他類unix文件系統(tǒng)一樣,包含了層級(jí)結(jié)構(gòu)(目錄樹),存儲(chǔ)著文件屬性(權(quán)限,最后訪問和修改時(shí)間),可以創(chuàng)建特殊的文件(塊設(shè)備、字符設(shè)備、管道和套接字),符號(hào)鏈接,硬鏈接。
[0017]所述數(shù)據(jù)存儲(chǔ)層使用MooseFS文件系統(tǒng),主要由Master、Metalogger和Chunkserver這些部分組成。其中,master負(fù)責(zé)在整個(gè)系統(tǒng)中管理數(shù)據(jù),是整個(gè)系統(tǒng)的維護(hù)者;Metalogger做master數(shù)據(jù)備份的節(jié)點(diǎn);chunkserver負(fù)責(zé)存儲(chǔ)MFS系統(tǒng)中的數(shù)據(jù),用戶數(shù)據(jù)按照算法被分成chunk,并分發(fā)到各個(gè)chunkserver上,這樣就保證了數(shù)據(jù)的安全性。在構(gòu)建分布式環(huán)境時(shí),首先在Docker容器上安裝fuse,使用fuse編寫MooseFS的客戶端程序也就是加載MooseFS磁盤系統(tǒng)的命令,實(shí)現(xiàn)掛載MooseFS的服務(wù)器。
[0018]本實(shí)施例所述基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng)中,在MooseFS文件系統(tǒng)下讀取數(shù)據(jù),其詳細(xì)過程如下:首先應(yīng)用程序向客戶端發(fā)起訪問請(qǐng)求,提交訪問表;然后客戶端將訪問表轉(zhuǎn)換成可以識(shí)別的形式,然后發(fā)給master節(jié)點(diǎn);接下來master節(jié)點(diǎn)返回給客戶端數(shù)據(jù)塊句柄以及數(shù)據(jù)塊的位置;客戶端按照master節(jié)點(diǎn)提供的信息,發(fā)送數(shù)據(jù)塊句柄以及數(shù)據(jù)讀取范圍到相應(yīng)的chunkserver上;chunkserver將所請(qǐng)求的數(shù)據(jù)發(fā)回給客戶端;最后客戶端將數(shù)據(jù)拷貝到應(yīng)用程序中。
[0019]寫入數(shù)據(jù)到MooseFS文件系統(tǒng),其詳細(xì)過程如下:首先,應(yīng)用程序發(fā)起寫入數(shù)據(jù)的請(qǐng)求,將文件名與數(shù)據(jù)發(fā)送給客戶端;接下來客戶端將請(qǐng)求表(文件名,數(shù)據(jù))轉(zhuǎn)換成塊句柄(文件名,塊索引),然后發(fā)送給master節(jié)點(diǎn);master節(jié)點(diǎn)將塊句柄和各個(gè)備份的位置全部返回給客戶端;然后客戶端將數(shù)據(jù)寫到所有待寫Chunkserver的內(nèi)部buffer中;客戶端發(fā)送寫指令到主備份Chunkserver,主備份Chunkserver按照一定的順序依次從buffer中把數(shù)據(jù)寫入到數(shù)據(jù)塊中,主備份Chunkserver寫入操作完成后,由主備份Chunkserver發(fā)送同樣寫操作指令給次備份Chunkserver執(zhí)行寫任務(wù),次備份Chunkserver寫入數(shù)據(jù)完成后,向主備份Chunkserver報(bào)告寫入狀態(tài),然后主備份Chunkserver向客戶端返回寫入狀態(tài)。如果以上任意一個(gè)Chunkserver寫入失敗,客戶端會(huì)建議新的節(jié)點(diǎn)進(jìn)行再次寫入。
[0020]本實(shí)施例所述基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng)中,所述服務(wù)提供層包括與用戶交互的接口,主要使用SeafiIe服務(wù)端完成。SeafiIe服務(wù)端主要由Httpserver、Seahub、Seafile、Ccnet和Task Deamon這幾大模塊組成;其中:Ccnet主要負(fù)責(zé)通信,是內(nèi)部的RPC服務(wù)進(jìn)程,連接其他幾個(gè)組件;Seahub主要提供網(wǎng)頁頁面,供用戶管理自己在服務(wù)器上的數(shù)據(jù)和賬戶信息;Httpserver主要負(fù)責(zé)網(wǎng)頁端的文件上傳與下載;SeafiIe是整個(gè)架構(gòu)的核心,負(fù)責(zé)對(duì)原始文件的上傳、下載和同步,是整個(gè)框架進(jìn)行數(shù)據(jù)處理的實(shí)際執(zhí)行者;Task Deamon主要處理后臺(tái)郵件收發(fā)等任務(wù)。在模塊的實(shí)現(xiàn)方面,Ccnet、Seaf i Ie和HttpServer這三個(gè)模塊,主要使用C語言編寫,架構(gòu)上主要采用Iibevent事件循環(huán)與線程池處理異步任務(wù)。Seahub使用python Django框架實(shí)現(xiàn),主要通過一個(gè)輕量級(jí)的python http服務(wù)器Gunicorn來提供網(wǎng)站支持服務(wù),Seahub是作為Gunicorn—個(gè)進(jìn)程來運(yùn)行。Task Deamon主要采用python 實(shí)現(xiàn)。
[0021]本實(shí)施例所述基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng)中,采用WandboardQuad作為私有云的硬件運(yùn)行環(huán)境,Wandboard Quad是一塊ARM開發(fā)板,支持SATA接口,可以將大容量廉價(jià)的硬盤接入開發(fā)板中做私有云系統(tǒng)的存儲(chǔ)設(shè)備。
[0022]上述【具體實(shí)施方式】?jī)H是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述【具體實(shí)施方式】,任何符合本發(fā)明的權(quán)利要求書的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng),其特征在于,以容器化技術(shù)docker為基礎(chǔ)搭建私有云存儲(chǔ)系統(tǒng),利用Docker容器技術(shù)擴(kuò)充出計(jì)算存儲(chǔ)節(jié)點(diǎn),利用MooseFS文件系統(tǒng)實(shí)現(xiàn)對(duì)單機(jī)資源的有效利用,再結(jié)合Seafile云存儲(chǔ)系統(tǒng)實(shí)現(xiàn)對(duì)松散資源的集中管理,加密存儲(chǔ);其系統(tǒng)架構(gòu)主要包括數(shù)據(jù)存儲(chǔ)層和服務(wù)提供層。2.根據(jù)權(quán)利要求1所述一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng),其特征在于,所述數(shù)據(jù)存儲(chǔ)層使用MooseFS文件系統(tǒng),主要由Master、Metalogger和Chunkserver這些部分組成,其中,master負(fù)責(zé)在整個(gè)系統(tǒng)中管理數(shù)據(jù),是整個(gè)系統(tǒng)的維護(hù)者;Metalogger做master數(shù)據(jù)備份的節(jié)點(diǎn);chunkserver負(fù)責(zé)存儲(chǔ)MFS系統(tǒng)中的數(shù)據(jù),用戶數(shù)據(jù)按照算法被分成chunk,并分發(fā)到各個(gè)chunkserver上,這樣就保證了數(shù)據(jù)的安全性。3.根據(jù)權(quán)利要求2所述一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng),其特征在于,所述服務(wù)提供層包括與用戶交互的接口,主要使用SeafiIe服務(wù)端完成。4.根據(jù)權(quán)利要求3所述一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng),其特征在于,Seafile服務(wù)端主要由Httpserver、Seahub、Seafile、Ccnet和Task Deamon模塊組成;其中:Ccnet主要負(fù)責(zé)通信,是內(nèi)部的RPC服務(wù)進(jìn)程,連接其他幾個(gè)組件;Seahub主要提供網(wǎng)頁頁面,供用戶管理自己在服務(wù)器上的數(shù)據(jù)和賬戶信息;Httpserver主要負(fù)責(zé)網(wǎng)頁端的文件上傳與下載;SeafiIe是整個(gè)架構(gòu)的核心,負(fù)責(zé)對(duì)原始文件的上傳、下載和同步;Task Deamon主要處理后臺(tái)郵件收發(fā)任務(wù)。5.根據(jù)權(quán)利要求4所述一種基于容器化技術(shù)的私有云存儲(chǔ)系統(tǒng),其特征在于,所述私有云存儲(chǔ)系統(tǒng)采用Wandboard QuadARM開發(fā)板作為私有云的硬件運(yùn)行環(huán)境。
【文檔編號(hào)】G06F17/30GK105959416SQ201610517713
【公開日】2016年9月21日
【申請(qǐng)日】2016年7月5日
【發(fā)明人】楊晉博
【申請(qǐng)人】浪潮電子信息產(chǎn)業(yè)股份有限公司