李網(wǎng)燦 趙勇
中國電信股份有限公司江蘇分公司
云計(jì)算的快速發(fā)展使得越來越多的企業(yè)將數(shù)據(jù)存儲放入云端。然而,由于當(dāng)下云存儲在安全性、可用性、便利性、訪問速度等方面存在的問題,傳統(tǒng)應(yīng)用并不能很好地接入云存儲。大部分公共云提供商依賴于互聯(lián)網(wǎng)協(xié)議(IP),通常是HTTP上的RESTAPI API方式,雖然對于創(chuàng)建新應(yīng)用的程序很實(shí)用,但是對于原有系統(tǒng)兼容與適配則有非常高的成本。由于公共云技術(shù)和原有應(yīng)用不兼容,需要在云存儲系統(tǒng)和企業(yè)應(yīng)用之間搭建對象存儲網(wǎng)關(guān)。對象存儲網(wǎng)關(guān)需要具備本地高速緩存、保證數(shù)據(jù)安全、使用便捷等特點(diǎn),云端存儲價(jià)格相比傳統(tǒng)存儲更具有優(yōu)勢,能夠通過對象存儲網(wǎng)關(guān)助力企業(yè)輕松上云。
對象存儲網(wǎng)關(guān)提供基本的協(xié)議轉(zhuǎn)換和簡單的連接性,從而讓不兼容技術(shù)透明交流。網(wǎng)關(guān)可以讓對象存儲顯得像NAS過濾器、區(qū)塊存儲陣列、本地磁盤、備份目標(biāo),甚至是該應(yīng)用本身的一個(gè)擴(kuò)展。
當(dāng)前用戶使用天翼云對象存儲,存在如下問題:(1)很難快速地與現(xiàn)有系統(tǒng)對接,需要對接天翼云對象存儲的SDK,這提高了用戶使用天翼云對象存儲的技術(shù)門檻;(2)對用戶的帶寬要求比較高,網(wǎng)速對對象存儲的讀寫速度影響較大,導(dǎo)致大部分用戶對高昂的帶寬費(fèi)用望而卻步;(3)不支持離線讀寫,當(dāng)業(yè)務(wù)系統(tǒng)和對象存儲網(wǎng)絡(luò)發(fā)生故障后,嚴(yán)重影響業(yè)務(wù)系統(tǒng)的正常使用。本研究根據(jù)上述問題,結(jié)合中國電信天翼云的對象存儲,對用戶快速使用對象存儲進(jìn)行了重新研究與定義,研究如何利用對象存儲網(wǎng)關(guān)讓用戶方便快速地使用天翼云對象存儲。圖1展示了如何通過對象存儲網(wǎng)關(guān)連接用戶和對象存儲。
圖1 在用戶和對象存儲之間建立對象存儲網(wǎng)關(guān)
對象存儲網(wǎng)關(guān)采用B/S+C/S架構(gòu),后臺管理采用B/S架構(gòu)管理對象存儲網(wǎng)關(guān)賬號,客戶端采用C/S架構(gòu),通過本地?cái)?shù)據(jù)緩存機(jī)制提高云存儲服務(wù)的響應(yīng)速度,通過硬件和軟件配置,實(shí)現(xiàn)本地RAID冗余存儲機(jī)制,建立起集本地高速存儲、云端存儲為一體的低成本、可擴(kuò)展、安全便捷的云存儲。
以天翼云對象存儲為后端,依托客戶本地或各地市天翼云IDC節(jié)點(diǎn)作為熱數(shù)據(jù)緩存,通過互聯(lián)網(wǎng)或者專線,利用對象存儲網(wǎng)關(guān)把數(shù)據(jù)通過加密的方式上傳到天翼云對象存儲。用戶可根據(jù)自身的需求配置相應(yīng)的網(wǎng)絡(luò)模式。系統(tǒng)整體架構(gòu)圖如圖2所示。
圖2 對象存儲網(wǎng)關(guān)系統(tǒng)架構(gòu)
存儲網(wǎng)關(guān)系統(tǒng)采用文件加密去重上傳技術(shù),確保數(shù)據(jù)在通信傳輸?shù)倪^程中的安全,防止數(shù)據(jù)在傳輸中被篡改,確保數(shù)據(jù)丟失后不會(huì)造成用戶敏感數(shù)據(jù)泄露,同時(shí)上傳數(shù)據(jù)采用加密去重方式,節(jié)省用戶存儲成本。
結(jié)合天翼云對象存儲實(shí)際情況,設(shè)計(jì)了文件加密去重。文件的數(shù)據(jù)進(jìn)行分塊去重加密,用戶可自定義文件分塊的大小,每一塊采用MD5進(jìn)行校驗(yàn),如果對象存儲服務(wù)器上有該文件塊,則該文件塊不需要再上傳,只記錄該文件塊所在位置,減少文件存儲容量,用戶可以設(shè)置文件是否加密上傳,解決用戶對數(shù)據(jù)上云的安全性擔(dān)憂。在存儲文件時(shí),對象存儲網(wǎng)關(guān)生成用于記錄待存儲文件屬性的索引文件、生成用于記錄文件塊大小及其在原文件中位置的MAP文件,為防止本地磁盤損壞需要將索引文件和MAP加密后上傳到對象存儲服務(wù)器上,防止索引文件和MAP文件丟失。整體流程如圖3所示。
圖3 數(shù)據(jù)加密去重上傳判斷
讀取文件時(shí),首先會(huì)讀取文件索引文件,將索引文件解密,找到對應(yīng)的map文件,根據(jù)map文件找到對應(yīng)的文件塊,將文件塊解密后進(jìn)行重組得到需下載的文件。
上傳的數(shù)據(jù)首先在本地進(jìn)行緩存保存,然后數(shù)據(jù)再進(jìn)行分塊去重上傳,在本地采用一個(gè)SSD緩存磁盤提高讀寫速度,對象存儲網(wǎng)關(guān)采用多線程異步分塊對文件進(jìn)行上傳。本地存儲的副本根據(jù)用戶使用數(shù)據(jù)頻率,對冷數(shù)據(jù)定時(shí)進(jìn)行本地緩存清理,對于經(jīng)常使用的熱數(shù)據(jù),緩存在本地,不到云端實(shí)時(shí)下載,提高讀寫速度并節(jié)省對象存儲請求次數(shù)。特殊情況下,當(dāng)網(wǎng)絡(luò)或者對象存儲后端系統(tǒng)發(fā)生故障時(shí),網(wǎng)關(guān)會(huì)先在本地SSD中存儲數(shù)據(jù),不會(huì)影響用戶正常的業(yè)務(wù)使用,當(dāng)網(wǎng)絡(luò)恢復(fù)后,對象存儲網(wǎng)關(guān)自動(dòng)進(jìn)行數(shù)據(jù)同步。對象存儲網(wǎng)關(guān)按照緩存設(shè)計(jì)規(guī)則自動(dòng)清理過期的緩存數(shù)據(jù),保證本地緩存數(shù)據(jù)都是高頻使用的熱數(shù)據(jù)。具體如圖4所示。
圖4 對象存儲網(wǎng)關(guān)緩存示意圖
圖5 數(shù)據(jù)讀取示意圖
對象存儲網(wǎng)關(guān)通過POSIX、FUSE將云端的對象存儲服務(wù)轉(zhuǎn)化為本地的塊存儲服務(wù),通過協(xié)議轉(zhuǎn)換,掛載到本地,此技術(shù)的數(shù)據(jù)存儲方案沿襲了用戶的使用習(xí)慣,用戶操作更加簡便,不需要改造現(xiàn)有的系統(tǒng),輕松實(shí)現(xiàn)本地?cái)?shù)據(jù)上傳到對象存儲。圖6展示了通過虛擬磁盤技術(shù),在本地直接虛擬一個(gè)磁盤,對用戶而言,與本地普通磁盤操作方式完全一樣。
圖6 虛擬磁盤展示
對象存儲在用戶動(dòng)態(tài)擴(kuò)容時(shí),在管理后臺更改用戶的存儲空間,客戶端進(jìn)行重新掛載,在保留原有數(shù)據(jù)的基礎(chǔ)上,實(shí)現(xiàn)安全的擴(kuò)容??刂婆_獲取擴(kuò)展磁盤容量的信息,而擴(kuò)展磁盤容量的信息包括網(wǎng)絡(luò)磁盤的身份標(biāo)識號碼和虛擬磁盤申請的擴(kuò)容空間的大小。根據(jù)網(wǎng)絡(luò)磁盤申請的擴(kuò)容空間大小,在管理平臺記錄擴(kuò)容相關(guān)信息,管理平臺內(nèi)部解析身份標(biāo)識號碼,查詢到對應(yīng)對象存儲授權(quán)信息,實(shí)現(xiàn)后端對象存儲容量的擴(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ò)容
本研究描述了對象存儲網(wǎng)關(guān)的整體架構(gòu)設(shè)計(jì),并結(jié)合中國電信天翼云對象存儲的特點(diǎn)提出如何利用中國電信天翼云對象存儲網(wǎng)關(guān)進(jìn)行快捷地系統(tǒng)建設(shè)。
目前該研究成果正在江蘇電信對象存儲網(wǎng)關(guān)中運(yùn)行,初步測試結(jié)果表明,搭建在中國電信天翼云上的對象存儲網(wǎng)關(guān)與傳統(tǒng)直接使用對象存儲的方式相比具有以下優(yōu)勢:
(1)降低了客戶使用對象存儲的技術(shù)門檻。由于采用虛擬磁盤技術(shù),使得客戶不需要改造現(xiàn)有系統(tǒng),像普通磁盤一樣直接使用。用戶不需要單獨(dú)進(jìn)行技術(shù)對接,不需要投入相應(yīng)的研發(fā)人員進(jìn)行系統(tǒng)開發(fā),后期維護(hù)人員的數(shù)量、技術(shù)要求也大大降低,節(jié)省了運(yùn)維工作量和成本。
(2)可靠性、安全性更強(qiáng)。文件采用分塊去重加密上傳,與傳統(tǒng)的對象存儲相比,大大降低數(shù)據(jù)被泄露的風(fēng)險(xiǎn)。
(3)讀寫體驗(yàn)速度更高?;诒镜乩錈峋彺鏀?shù)據(jù)的設(shè)計(jì),讀寫速度依賴于本地的緩存設(shè)備,不再依賴于高昂的帶寬,即使網(wǎng)絡(luò)突然中斷,客戶業(yè)務(wù)系統(tǒng)在不超過本地緩存設(shè)備容量的前提下完全不受影響。
(4)降低天翼云對象存儲的并發(fā)壓力。對象存儲網(wǎng)關(guān)的緩存設(shè)計(jì),在一定程度上減少了客戶和對象存儲之間的交互壓力。
需要改進(jìn)和完善的地方:
(1)小文件處理速度有待提高。由于采用虛擬磁盤技術(shù),每個(gè)文件都需要一個(gè)map描述文件,所以針對海量小文件(200KB以下文件)批處理,需要頻繁的IO磁盤,速度還有待提升,后續(xù)需要采用“內(nèi)存+本地磁盤”相結(jié)合的方式進(jìn)行優(yōu)化。
(2)需要增加自動(dòng)同步功能。目前用戶備份需要手動(dòng)復(fù)制數(shù)據(jù),后續(xù)需要支持用戶選擇同步的文件夾進(jìn)行自動(dòng)同步。