李網(wǎng)燦 趙勇
中國(guó)電信股份有限公司江蘇分公司
云計(jì)算的快速發(fā)展使得越來(lái)越多的企業(yè)將數(shù)據(jù)存儲(chǔ)放入云端。然而,由于當(dāng)下云存儲(chǔ)在安全性、可用性、便利性、訪問(wèn)速度等方面存在的問(wèn)題,傳統(tǒng)應(yīng)用并不能很好地接入云存儲(chǔ)。大部分公共云提供商依賴于互聯(lián)網(wǎng)協(xié)議(IP),通常是HTTP上的RESTAPI API方式,雖然對(duì)于創(chuàng)建新應(yīng)用的程序很實(shí)用,但是對(duì)于原有系統(tǒng)兼容與適配則有非常高的成本。由于公共云技術(shù)和原有應(yīng)用不兼容,需要在云存儲(chǔ)系統(tǒng)和企業(yè)應(yīng)用之間搭建對(duì)象存儲(chǔ)網(wǎng)關(guān)。對(duì)象存儲(chǔ)網(wǎng)關(guān)需要具備本地高速緩存、保證數(shù)據(jù)安全、使用便捷等特點(diǎn),云端存儲(chǔ)價(jià)格相比傳統(tǒng)存儲(chǔ)更具有優(yōu)勢(shì),能夠通過(guò)對(duì)象存儲(chǔ)網(wǎng)關(guān)助力企業(yè)輕松上云。
對(duì)象存儲(chǔ)網(wǎng)關(guān)提供基本的協(xié)議轉(zhuǎn)換和簡(jiǎn)單的連接性,從而讓不兼容技術(shù)透明交流。網(wǎng)關(guān)可以讓對(duì)象存儲(chǔ)顯得像NAS過(guò)濾器、區(qū)塊存儲(chǔ)陣列、本地磁盤、備份目標(biāo),甚至是該應(yīng)用本身的一個(gè)擴(kuò)展。
當(dāng)前用戶使用天翼云對(duì)象存儲(chǔ),存在如下問(wèn)題:(1)很難快速地與現(xiàn)有系統(tǒng)對(duì)接,需要對(duì)接天翼云對(duì)象存儲(chǔ)的SDK,這提高了用戶使用天翼云對(duì)象存儲(chǔ)的技術(shù)門檻;(2)對(duì)用戶的帶寬要求比較高,網(wǎng)速對(duì)對(duì)象存儲(chǔ)的讀寫(xiě)速度影響較大,導(dǎo)致大部分用戶對(duì)高昂的帶寬費(fèi)用望而卻步;(3)不支持離線讀寫(xiě),當(dāng)業(yè)務(wù)系統(tǒng)和對(duì)象存儲(chǔ)網(wǎng)絡(luò)發(fā)生故障后,嚴(yán)重影響業(yè)務(wù)系統(tǒng)的正常使用。本研究根據(jù)上述問(wèn)題,結(jié)合中國(guó)電信天翼云的對(duì)象存儲(chǔ),對(duì)用戶快速使用對(duì)象存儲(chǔ)進(jìn)行了重新研究與定義,研究如何利用對(duì)象存儲(chǔ)網(wǎng)關(guān)讓用戶方便快速地使用天翼云對(duì)象存儲(chǔ)。圖1展示了如何通過(guò)對(duì)象存儲(chǔ)網(wǎng)關(guān)連接用戶和對(duì)象存儲(chǔ)。

圖1 在用戶和對(duì)象存儲(chǔ)之間建立對(duì)象存儲(chǔ)網(wǎng)關(guān)
對(duì)象存儲(chǔ)網(wǎng)關(guān)采用B/S+C/S架構(gòu),后臺(tái)管理采用B/S架構(gòu)管理對(duì)象存儲(chǔ)網(wǎng)關(guān)賬號(hào),客戶端采用C/S架構(gòu),通過(guò)本地?cái)?shù)據(jù)緩存機(jī)制提高云存儲(chǔ)服務(wù)的響應(yīng)速度,通過(guò)硬件和軟件配置,實(shí)現(xiàn)本地RAID冗余存儲(chǔ)機(jī)制,建立起集本地高速存儲(chǔ)、云端存儲(chǔ)為一體的低成本、可擴(kuò)展、安全便捷的云存儲(chǔ)。
以天翼云對(duì)象存儲(chǔ)為后端,依托客戶本地或各地市天翼云IDC節(jié)點(diǎn)作為熱數(shù)據(jù)緩存,通過(guò)互聯(lián)網(wǎng)或者專線,利用對(duì)象存儲(chǔ)網(wǎng)關(guān)把數(shù)據(jù)通過(guò)加密的方式上傳到天翼云對(duì)象存儲(chǔ)。用戶可根據(jù)自身的需求配置相應(yīng)的網(wǎng)絡(luò)模式。系統(tǒng)整體架構(gòu)圖如圖2所示。

圖2 對(duì)象存儲(chǔ)網(wǎng)關(guān)系統(tǒng)架構(gòu)
存儲(chǔ)網(wǎng)關(guān)系統(tǒng)采用文件加密去重上傳技術(shù),確保數(shù)據(jù)在通信傳輸?shù)倪^(guò)程中的安全,防止數(shù)據(jù)在傳輸中被篡改,確保數(shù)據(jù)丟失后不會(huì)造成用戶敏感數(shù)據(jù)泄露,同時(shí)上傳數(shù)據(jù)采用加密去重方式,節(jié)省用戶存儲(chǔ)成本。
結(jié)合天翼云對(duì)象存儲(chǔ)實(shí)際情況,設(shè)計(jì)了文件加密去重。文件的數(shù)據(jù)進(jìn)行分塊去重加密,用戶可自定義文件分塊的大小,每一塊采用MD5進(jìn)行校驗(yàn),如果對(duì)象存儲(chǔ)服務(wù)器上有該文件塊,則該文件塊不需要再上傳,只記錄該文件塊所在位置,減少文件存儲(chǔ)容量,用戶可以設(shè)置文件是否加密上傳,解決用戶對(duì)數(shù)據(jù)上云的安全性擔(dān)憂。在存儲(chǔ)文件時(shí),對(duì)象存儲(chǔ)網(wǎng)關(guān)生成用于記錄待存儲(chǔ)文件屬性的索引文件、生成用于記錄文件塊大小及其在原文件中位置的MAP文件,為防止本地磁盤損壞需要將索引文件和MAP加密后上傳到對(duì)象存儲(chǔ)服務(wù)器上,防止索引文件和MAP文件丟失。整體流程如圖3所示。

圖3 數(shù)據(jù)加密去重上傳判斷
讀取文件時(shí),首先會(huì)讀取文件索引文件,將索引文件解密,找到對(duì)應(yīng)的map文件,根據(jù)map文件找到對(duì)應(yīng)的文件塊,將文件塊解密后進(jìn)行重組得到需下載的文件。
上傳的數(shù)據(jù)首先在本地進(jìn)行緩存保存,然后數(shù)據(jù)再進(jìn)行分塊去重上傳,在本地采用一個(gè)SSD緩存磁盤提高讀寫(xiě)速度,對(duì)象存儲(chǔ)網(wǎng)關(guān)采用多線程異步分塊對(duì)文件進(jìn)行上傳。本地存儲(chǔ)的副本根據(jù)用戶使用數(shù)據(jù)頻率,對(duì)冷數(shù)據(jù)定時(shí)進(jìn)行本地緩存清理,對(duì)于經(jīng)常使用的熱數(shù)據(jù),緩存在本地,不到云端實(shí)時(shí)下載,提高讀寫(xiě)速度并節(jié)省對(duì)象存儲(chǔ)請(qǐng)求次數(shù)。特殊情況下,當(dāng)網(wǎng)絡(luò)或者對(duì)象存儲(chǔ)后端系統(tǒng)發(fā)生故障時(shí),網(wǎng)關(guān)會(huì)先在本地SSD中存儲(chǔ)數(shù)據(jù),不會(huì)影響用戶正常的業(yè)務(wù)使用,當(dāng)網(wǎng)絡(luò)恢復(fù)后,對(duì)象存儲(chǔ)網(wǎng)關(guān)自動(dòng)進(jìn)行數(shù)據(jù)同步。對(duì)象存儲(chǔ)網(wǎng)關(guān)按照緩存設(shè)計(jì)規(guī)則自動(dòng)清理過(guò)期的緩存數(shù)據(jù),保證本地緩存數(shù)據(jù)都是高頻使用的熱數(shù)據(jù)。具體如圖4所示。

圖4 對(duì)象存儲(chǔ)網(wǎng)關(guān)緩存示意圖

圖5 數(shù)據(jù)讀取示意圖
對(duì)象存儲(chǔ)網(wǎng)關(guān)通過(guò)POSIX、FUSE將云端的對(duì)象存儲(chǔ)服務(wù)轉(zhuǎn)化為本地的塊存儲(chǔ)服務(wù),通過(guò)協(xié)議轉(zhuǎn)換,掛載到本地,此技術(shù)的數(shù)據(jù)存儲(chǔ)方案沿襲了用戶的使用習(xí)慣,用戶操作更加簡(jiǎn)便,不需要改造現(xiàn)有的系統(tǒng),輕松實(shí)現(xiàn)本地?cái)?shù)據(jù)上傳到對(duì)象存儲(chǔ)。圖6展示了通過(guò)虛擬磁盤技術(shù),在本地直接虛擬一個(gè)磁盤,對(duì)用戶而言,與本地普通磁盤操作方式完全一樣。

圖6 虛擬磁盤展示
對(duì)象存儲(chǔ)在用戶動(dòng)態(tài)擴(kuò)容時(shí),在管理后臺(tái)更改用戶的存儲(chǔ)空間,客戶端進(jìn)行重新掛載,在保留原有數(shù)據(jù)的基礎(chǔ)上,實(shí)現(xiàn)安全的擴(kuò)容。控制臺(tái)獲取擴(kuò)展磁盤容量的信息,而擴(kuò)展磁盤容量的信息包括網(wǎng)絡(luò)磁盤的身份標(biāo)識(shí)號(hào)碼和虛擬磁盤申請(qǐng)的擴(kuò)容空間的大小。根據(jù)網(wǎng)絡(luò)磁盤申請(qǐng)的擴(kuò)容空間大小,在管理平臺(tái)記錄擴(kuò)容相關(guān)信息,管理平臺(tái)內(nèi)部解析身份標(biāo)識(shí)號(hào)碼,查詢到對(duì)應(yīng)對(duì)象存儲(chǔ)授權(quán)信息,實(shí)現(xiàn)后端對(duì)象存儲(chǔ)容量的擴(kuò)容;同時(shí)根據(jù)網(wǎng)絡(luò)磁盤空間的屬性修改并保存網(wǎng)絡(luò)磁盤的配置信息,將網(wǎng)絡(luò)磁盤的新增空間在操作系統(tǒng)中進(jìn)行刷新展示。圖7展示了用戶動(dòng)態(tài)擴(kuò)容流程。

圖7 用戶動(dòng)態(tài)擴(kuò)容
本研究描述了對(duì)象存儲(chǔ)網(wǎng)關(guān)的整體架構(gòu)設(shè)計(jì),并結(jié)合中國(guó)電信天翼云對(duì)象存儲(chǔ)的特點(diǎn)提出如何利用中國(guó)電信天翼云對(duì)象存儲(chǔ)網(wǎng)關(guān)進(jìn)行快捷地系統(tǒng)建設(shè)。
目前該研究成果正在江蘇電信對(duì)象存儲(chǔ)網(wǎng)關(guān)中運(yùn)行,初步測(cè)試結(jié)果表明,搭建在中國(guó)電信天翼云上的對(duì)象存儲(chǔ)網(wǎng)關(guān)與傳統(tǒng)直接使用對(duì)象存儲(chǔ)的方式相比具有以下優(yōu)勢(shì):
(1)降低了客戶使用對(duì)象存儲(chǔ)的技術(shù)門檻。由于采用虛擬磁盤技術(shù),使得客戶不需要改造現(xiàn)有系統(tǒng),像普通磁盤一樣直接使用。用戶不需要單獨(dú)進(jìn)行技術(shù)對(duì)接,不需要投入相應(yīng)的研發(fā)人員進(jìn)行系統(tǒng)開(kāi)發(fā),后期維護(hù)人員的數(shù)量、技術(shù)要求也大大降低,節(jié)省了運(yùn)維工作量和成本。
(2)可靠性、安全性更強(qiáng)。文件采用分塊去重加密上傳,與傳統(tǒng)的對(duì)象存儲(chǔ)相比,大大降低數(shù)據(jù)被泄露的風(fēng)險(xiǎn)。
(3)讀寫(xiě)體驗(yàn)速度更高。基于本地冷熱緩存數(shù)據(jù)的設(shè)計(jì),讀寫(xiě)速度依賴于本地的緩存設(shè)備,不再依賴于高昂的帶寬,即使網(wǎng)絡(luò)突然中斷,客戶業(yè)務(wù)系統(tǒng)在不超過(guò)本地緩存設(shè)備容量的前提下完全不受影響。
(4)降低天翼云對(duì)象存儲(chǔ)的并發(fā)壓力。對(duì)象存儲(chǔ)網(wǎng)關(guān)的緩存設(shè)計(jì),在一定程度上減少了客戶和對(duì)象存儲(chǔ)之間的交互壓力。
需要改進(jìn)和完善的地方:
(1)小文件處理速度有待提高。由于采用虛擬磁盤技術(shù),每個(gè)文件都需要一個(gè)map描述文件,所以針對(duì)海量小文件(200KB以下文件)批處理,需要頻繁的IO磁盤,速度還有待提升,后續(xù)需要采用“內(nèi)存+本地磁盤”相結(jié)合的方式進(jìn)行優(yōu)化。
(2)需要增加自動(dòng)同步功能。目前用戶備份需要手動(dòng)復(fù)制數(shù)據(jù),后續(xù)需要支持用戶選擇同步的文件夾進(jìn)行自動(dòng)同步。