本發(fā)明涉及計(jì)算機(jī)云計(jì)算存儲(chǔ)領(lǐng)域,具體的說(shuō)是基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng)。
背景技術(shù):
在云計(jì)算、大數(shù)據(jù)、存儲(chǔ)管理等方面,數(shù)據(jù)總量急劇增長(zhǎng),同時(shí),數(shù)據(jù)作為企業(yè)、研究機(jī)構(gòu)、政府的核心資產(chǎn),如果數(shù)據(jù)損壞或者丟失,將會(huì)帶來(lái)極大的損失。為了解決gb級(jí)至tb級(jí)之間的數(shù)據(jù)的安全存儲(chǔ)問(wèn)題,本發(fā)明提出了一種基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng),利用開(kāi)源云計(jì)算平臺(tái)openstack的對(duì)象存儲(chǔ)服務(wù)swift和身份認(rèn)證服務(wù)keystone聯(lián)合構(gòu)建云存儲(chǔ)系統(tǒng),來(lái)實(shí)現(xiàn)安全的訪問(wèn)控制機(jī)制。
openstack是一個(gè)旨在為公共及私有云的建設(shè)與管理提供軟件的開(kāi)源項(xiàng)目。它支持幾乎所有類(lèi)型的云環(huán)境,其首要任務(wù)是簡(jiǎn)化云的部署過(guò)程并為其帶來(lái)良好的可擴(kuò)展性。openstack覆蓋了網(wǎng)絡(luò)、虛擬化、操作系統(tǒng)、服務(wù)器等各個(gè)方面,因open而開(kāi)放,因組件而靈活,因包容而博大,擁有計(jì)算、網(wǎng)絡(luò)、對(duì)象存儲(chǔ)、塊存儲(chǔ)、身份、鏡像服務(wù)、門(mén)戶、測(cè)量、部署編排、數(shù)據(jù)庫(kù)服務(wù)等組件。
openstack的子項(xiàng)目swift是由rackspace公司開(kāi)發(fā)的分布式對(duì)象存儲(chǔ)服務(wù),使得openstack云計(jì)算平臺(tái)提供虛擬機(jī)鏡像存儲(chǔ)服務(wù),具有強(qiáng)大的擴(kuò)展性、冗余性和持久性。swift通過(guò)在軟件層引入一致性散列技術(shù)和數(shù)據(jù)冗余技術(shù)犧牲一定程度的數(shù)據(jù)一致性,在廉價(jià)的硬件設(shè)備上構(gòu)建高可用性和可伸縮性的分布式對(duì)象存儲(chǔ)服務(wù)。swift是一個(gè)對(duì)象存儲(chǔ)系統(tǒng),所以數(shù)據(jù)以“對(duì)象”的形式組織。
keystone用于對(duì)openstack的其他服務(wù)提供授權(quán)服務(wù),它主要包含兩個(gè)功能:管理用戶以及用戶權(quán)限,提供服務(wù)的目錄和它們的端點(diǎn)url。keystone身份認(rèn)證服務(wù)中,1)用戶(user)代表訪問(wèn)openstack云服務(wù)的人或程序;(2)租戶(tenant)代表各個(gè)服務(wù)中的可以訪問(wèn)的資源集合,租戶可以是一個(gè)組織、一個(gè)消費(fèi)者、一個(gè)項(xiàng)目,租戶可以包含一個(gè)或多個(gè)用戶,在swift中資源時(shí)以租戶為單位進(jìn)行劃分的;(3)角色(role)代表一組用戶可以訪問(wèn)的資源權(quán)限。角色是在keystone中定義。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)目前技術(shù)發(fā)展的需求和不足之處,提供基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng)。
本發(fā)明所述基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng),解決上述技術(shù)問(wèn)題采用的技術(shù)方案如下:所述基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng),利用openstack的對(duì)象存儲(chǔ)服務(wù)swift和身份認(rèn)證服務(wù)keystone聯(lián)合構(gòu)建云存儲(chǔ)系統(tǒng),其系統(tǒng)架構(gòu)主要包括服務(wù)端和客戶端,所述服務(wù)端分為swift資源層和keystone服務(wù)層,swift資源層和keystone服務(wù)層分別用于提供數(shù)據(jù)存儲(chǔ)和身份認(rèn)證服務(wù);客戶端分為表示層和邏輯層;所述swift資源層、keystone服務(wù)層、表示層和邏輯層協(xié)同工作,共同組成完整的云存儲(chǔ)系統(tǒng)。
優(yōu)選的,所述基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng),提供了容器-目錄-對(duì)象三級(jí)資源管理;其中,所述容器管理包括查詢?nèi)萜髁斜怼?chuàng)建容器以及刪除容器;所述目錄管理包括新建目錄以及刪除目錄;所述對(duì)象管理包括新建對(duì)象-上傳文件、讀取對(duì)象的數(shù)據(jù)-下載文件、刪除對(duì)象以及更新對(duì)象的數(shù)據(jù);通過(guò)該云存儲(chǔ)系統(tǒng)的keystone服務(wù)層能夠進(jìn)行身份認(rèn)證和授權(quán)操作。
優(yōu)選的,所述keystone服務(wù)層進(jìn)行身份認(rèn)證和授權(quán)的具體過(guò)程包括:
步驟一,客戶端通過(guò)post請(qǐng)求將用戶名、密碼、租戶名提交到keystone服務(wù)層;
步驟二,keystone服務(wù)層對(duì)這些信息進(jìn)行驗(yàn)證,通過(guò)驗(yàn)證后將授權(quán)信息(包括tokenid、token有效期、租戶信息、用戶信息和用戶的角色)和服務(wù)信息(注冊(cè)到keystone上的各個(gè)服務(wù)的名稱、類(lèi)型、端點(diǎn)url)發(fā)送給客戶端;
步驟三,用戶根據(jù)服務(wù)信息獲得swift對(duì)象存儲(chǔ)服務(wù)的url,該url和用戶的賬號(hào)一一對(duì)應(yīng),客戶端發(fā)送攜帶token的請(qǐng)求到該url來(lái)操作云存儲(chǔ)端的資源(容器或?qū)ο螅?/p>
步驟四,swift資源層收到請(qǐng)求后,請(qǐng)求keystone服務(wù)層驗(yàn)證token是否正確以及此用戶是否有訪問(wèn)權(quán)限;
步驟五,keystone服務(wù)層驗(yàn)證并返回驗(yàn)證信息;
步驟六,swift資源層根據(jù)其內(nèi)部的策略來(lái)驗(yàn)證請(qǐng)求,然后執(zhí)行請(qǐng)求;
步驟七,swift資源層將執(zhí)行的結(jié)構(gòu)返回給客戶端。
本發(fā)明所述基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng),與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明通過(guò)結(jié)合swift和keystone構(gòu)建存儲(chǔ)系統(tǒng),提供了安全的訪問(wèn)控制機(jī)制,從而解決了gb級(jí)大文件的存儲(chǔ)問(wèn)題,適于存儲(chǔ)任意大小的數(shù)據(jù),同時(shí)設(shè)計(jì)實(shí)現(xiàn)了符合用戶使用習(xí)慣的資源管理模式。
附圖說(shuō)明
附圖1為通過(guò)keystone服務(wù)層進(jìn)行身份認(rèn)證和授權(quán)的示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,對(duì)本發(fā)明所述基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng)進(jìn)一步詳細(xì)說(shuō)明。
為了解決gb級(jí)至tb級(jí)之間的數(shù)據(jù)的安全存儲(chǔ)問(wèn)題,本發(fā)明提出了基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng),以開(kāi)源云計(jì)算平臺(tái)openstack的對(duì)象存儲(chǔ)服務(wù)swift和身份認(rèn)證服務(wù)keystone為基礎(chǔ),利用對(duì)象存儲(chǔ)服務(wù)swift和身份認(rèn)證服務(wù)keystone聯(lián)合構(gòu)建云存儲(chǔ)系統(tǒng),通過(guò)客戶端和服務(wù)器的不同設(shè)計(jì),來(lái)實(shí)現(xiàn)安全的訪問(wèn)控制機(jī)制;解決了gb級(jí)大文件的存儲(chǔ)問(wèn)題,適用于存儲(chǔ)任意大小的數(shù)據(jù),同時(shí)實(shí)現(xiàn)了符合用戶使用習(xí)慣的資源管理模式。
實(shí)施例:
本實(shí)施例所述基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng),其系統(tǒng)架構(gòu)主要包括服務(wù)端和客戶端,所述服務(wù)端分為swift資源層和keystone服務(wù)層,swift資源層和keystone服務(wù)層分別用于提供數(shù)據(jù)存儲(chǔ)和身份認(rèn)證服務(wù);客戶端分為表示層和邏輯層;所述swift資源層、keystone服務(wù)層、表示層和邏輯層協(xié)同工作,共同組成完整的云存儲(chǔ)系統(tǒng)。
上述基于openstack實(shí)現(xiàn)的云存儲(chǔ)系統(tǒng),提供了容器-目錄-對(duì)象三級(jí)資源管理;其中,所述容器管理包括查詢?nèi)萜髁斜?、?chuàng)建容器以及刪除容器;所述目錄管理包括新建目錄以及刪除目錄;所述對(duì)象管理包括新建對(duì)象-上傳文件、讀取對(duì)象的數(shù)據(jù)-下載文件、刪除對(duì)象以及更新對(duì)象的數(shù)據(jù)。在該云存儲(chǔ)系統(tǒng)中,查詢資源,包括查詢?nèi)萜鲀?nèi)的目錄和對(duì)象列表、查詢目錄內(nèi)的子目錄和對(duì)象列表;通過(guò)其keystone服務(wù)層能夠進(jìn)行身份認(rèn)證和授權(quán)操作。
在該云存儲(chǔ)系統(tǒng)中,通過(guò)keystone服務(wù)層進(jìn)行身份認(rèn)證和授權(quán)的具體過(guò)程,附圖1所示,包括如下步驟:
步驟一,客戶端通過(guò)post請(qǐng)求將用戶名、密碼、租戶名提交到keystone服務(wù)層;
步驟二,keystone服務(wù)層對(duì)這些信息進(jìn)行驗(yàn)證,通過(guò)驗(yàn)證后將授權(quán)信息(包括tokenid、token有效期、租戶信息、用戶信息和用戶的角色)和服務(wù)信息(注冊(cè)到keystone上的各個(gè)服務(wù)的名稱、類(lèi)型、端點(diǎn)url)發(fā)送給客戶端;
步驟三,用戶根據(jù)服務(wù)信息獲得swift對(duì)象存儲(chǔ)服務(wù)的url,該url和用戶的賬號(hào)一一對(duì)應(yīng),客戶端發(fā)送攜帶token的請(qǐng)求到該url來(lái)操作云存儲(chǔ)端的資源(容器或?qū)ο螅?/p>
步驟四,swift資源層收到請(qǐng)求后,請(qǐng)求keystone服務(wù)層驗(yàn)證token是否正確以及此用戶是否有訪問(wèn)權(quán)限;
步驟五,keystone服務(wù)層驗(yàn)證并返回驗(yàn)證信息;
步驟六,swift資源層根據(jù)其內(nèi)部的策略來(lái)驗(yàn)證請(qǐng)求,然后執(zhí)行請(qǐng)求;
步驟七,swift資源層將執(zhí)行的結(jié)構(gòu)返回給客戶端。
具體實(shí)施方式僅是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的權(quán)利要求書(shū)的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。