1.需求
當(dāng)今世界“云概念”大行其道,面對(duì)各種各樣亦真亦假的云產(chǎn)品,企業(yè)該如何選擇?又會(huì)有怎樣的風(fēng)險(xiǎn),這是每一個(gè)企業(yè)需要認(rèn)真考慮的問題。EMC2的Atmos提供了一種解決方案,在提供較強(qiáng)云特性的同時(shí),又大大降低了直接向云遷移可能會(huì)遇到的各種問題。通過查閱了一些官方、非官方的PDF資料,作者對(duì)其有了一些淺薄的認(rèn)識(shí),并加入了自己的理解(因資源限制,作者并未實(shí)際使用)。本文展示了Atmos的特性,如果發(fā)生與官方文檔向沖突的地方,請(qǐng)以官方文檔為主。
實(shí)時(shí)產(chǎn)生的大量非結(jié)構(gòu)化數(shù)據(jù)(包括圖片、EMail、視頻、文檔等),正在以創(chuàng)記錄的速度爆炸式增長,數(shù)據(jù)規(guī)模的描述經(jīng)歷了P-E-Z-Y的改變,迫使我們?nèi)ふ腋行У姆绞剑灾С中畔⒛軌蚋L時(shí)間的存儲(chǔ)。
數(shù)據(jù)周期性的變化增長,需求模式不可預(yù)知,無法制定準(zhǔn)確的存儲(chǔ)規(guī)劃方案。
進(jìn)行存儲(chǔ)的擴(kuò)容、升級(jí)時(shí),需要大量的人工勞動(dòng),容易出現(xiàn)問題且耗時(shí)長,甚至需要停機(jī)倒數(shù)據(jù),進(jìn)行額外的復(fù)制和保護(hù)工作,對(duì)IT部門的壓力非常大。
多種訪問終端的發(fā)展,也需要應(yīng)用程序額外開發(fā)相應(yīng)的HTTP支持
IT部門需要考慮消除信息孤島,優(yōu)化基礎(chǔ)的共享存儲(chǔ)架構(gòu)。
2.簡(jiǎn)介
Atmos提供針對(duì)非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行存儲(chǔ)、歸檔服務(wù)。通常是直接面向企業(yè)和服務(wù)提供商,提供私有云、共有、混合云的使用模式。再由其自行搭建應(yīng)用或者二次開發(fā),來服務(wù)終端用戶。
共享存儲(chǔ)池:存儲(chǔ)資源利用最大化(相對(duì)于云存儲(chǔ)的提供者來說),減少資源的浪費(fèi),從而幫助降低成本。使用者按需獲取自己需要的存儲(chǔ)空間。
統(tǒng)一的訪問空間:提供大規(guī)模數(shù)據(jù)的存儲(chǔ)、整合,中心集中管理;通過一個(gè)接入點(diǎn),即可具有訪問全局?jǐn)?shù)據(jù)的能力。
位置透明:用戶不管關(guān)注存儲(chǔ)所在的實(shí)際位置,也就消除了物理位置、存儲(chǔ)空間的限制
無縫線性擴(kuò)展:易于進(jìn)行容量擴(kuò)展,在添加應(yīng)用、租戶時(shí)無需進(jìn)行任何配置,降低管理時(shí)間,
自動(dòng)化策略:設(shè)置后即可按預(yù)期獲得執(zhí)行,降低管理的復(fù)雜度,例如:副本保護(hù)、位置服務(wù)、數(shù)據(jù)壓縮、數(shù)據(jù)分類等,大大減少了人工干預(yù)的成本,以及可能帶來的不良后果。
多種訪問接口,滿足多設(shè)備訪問需求,支持傳統(tǒng)服務(wù)程序、Web程序、Windows、Linux、移動(dòng)系統(tǒng)的直接訪問。
存儲(chǔ)即服務(wù):在云交付平臺(tái)下,在租戶級(jí)別自動(dòng)記錄其使用量、容量,支持自助管理和計(jì)費(fèi)。因此非常適合服務(wù)提供商搭建共有云平臺(tái),可以省下不少工作。
數(shù)據(jù)安全隔離:多租戶間的數(shù)據(jù)互不可見
配置實(shí)用簡(jiǎn)單,企業(yè)可以將精力集中在關(guān)鍵的業(yè)務(wù)領(lǐng)域
數(shù)據(jù)保護(hù)機(jī)制,異地存儲(chǔ)多副本,保證數(shù)據(jù)可用性,實(shí)現(xiàn)了Active-Active模式
在用戶管理、訪問上,Emc做了很多工作,感覺比較專業(yè),畢竟這是從用戶角度看到的系統(tǒng)的樣子,是最直接的用戶體驗(yàn),后續(xù)會(huì)詳細(xì)說明。
名詞解釋:
Cloud Delivery Platform:在atmos平臺(tái)上的附加服務(wù),云交付平臺(tái),提供存儲(chǔ)即服務(wù)的訪問
GeoMirror:采取同步、異步方式生成的副本
GeoParity:數(shù)據(jù)分塊、壓縮機(jī)制,即Erasuring Code
RMG:Resource Management Group,資源管理組
RMS:Resource management service,管理本地存儲(chǔ)資源,包括監(jiān)控?cái)?shù)據(jù)服務(wù)狀態(tài),分配文件所在的MDS和OSS,
MDLS: meta data location service,記錄對(duì)象元數(shù)據(jù)所在的MDS。只能配置在每個(gè)site的前兩個(gè)node
PM:Policy manager,提供策略管理、查詢,決定對(duì)象寫服務(wù)的處理策略
JS:Job service,執(zhí)行副本任務(wù)
SS:Storage Service,直接存儲(chǔ)數(shù)據(jù)
MDS:存儲(chǔ)用戶、系統(tǒng)、布局的信息
CS:Client service,訪問接口,NFS、CIFS、IFS、WebAPI
DAE:disk array enclosures,后端磁盤陣列,掛載在node上
3.結(jié)構(gòu)
下邊從幾個(gè)方面分析下Atmos的結(jié)構(gòu)
3.1訪問結(jié)構(gòu)
可以看到,在廣域網(wǎng)環(huán)境下,都是通過REST接口接入進(jìn)來的。廣域環(huán)境下也可以使用NFS,但是性能應(yīng)該很差;局域網(wǎng)環(huán)境下,用戶可以通過NFS、CIFS、安裝客戶端(FUSE)方式,最終以Native API進(jìn)行訪問。無論什么方式,都可以訪問到整個(gè)系統(tǒng)的巨大存儲(chǔ)資源池。
3.2部署結(jié)構(gòu)
System:一個(gè)Atmos系統(tǒng)由分散在廣域環(huán)境中的若干個(gè)Site組成。
Site: Site也稱為RMG,資源管理組。每個(gè)Site由若干個(gè)IS組成,所有IS都位于同一個(gè)子網(wǎng)當(dāng)中。Site統(tǒng)一管理和監(jiān)控內(nèi)部的所有節(jié)點(diǎn)。
Install Segment:每個(gè)IS由若干個(gè)Node和DAE組成,通常是一個(gè)機(jī)架
Node:物理或者虛擬節(jié)點(diǎn),保存數(shù)據(jù)和元數(shù)據(jù)。在內(nèi)部會(huì)分配為每個(gè)Node一個(gè)編號(hào),Node之間以千兆網(wǎng)或者萬兆網(wǎng)連接。
DAE:物理的或者虛擬機(jī)存儲(chǔ),每個(gè)node可以接最多4個(gè)DAE,每個(gè)DAE可以包含15個(gè)1或2T的空間,與node以SAS方式連接。
下圖是集中可選的物理設(shè)備:
3.3元數(shù)據(jù)
以對(duì)象為基礎(chǔ)的存儲(chǔ)結(jié)構(gòu),為每個(gè)數(shù)據(jù)分配一個(gè)唯一的對(duì)象ID,用戶根本不需要關(guān)心文件的位置和任何映射關(guān)系。每個(gè)對(duì)象包括元數(shù)據(jù):
系統(tǒng)元數(shù)據(jù):文件信息、長度等常見的文件屬性
用戶元數(shù)據(jù):文件更偏向于專有應(yīng)用的屬性,如歌曲對(duì)應(yīng)的藝術(shù)家、唱片等,也可對(duì)文件添加制定的標(biāo)簽。
根據(jù)這兩類元數(shù)據(jù),可以將文件分成不同的對(duì)象組。在分類之后,對(duì)不同的對(duì)象組實(shí)施不同的管理策略,非常靈活。
元數(shù)據(jù)在Node內(nèi)部有多個(gè)存儲(chǔ)副本,在其他Node上,存儲(chǔ)元數(shù)據(jù)的可讀副本;每個(gè)MDS負(fù)責(zé)一部分元數(shù)據(jù)信息,每個(gè)文件的元數(shù)據(jù)通常會(huì)保存3份副本。從這一點(diǎn)可以看出,Atmos在元數(shù)據(jù)管理上的分區(qū)方式。通常操作會(huì)選取本地就近的MDS進(jìn)行,降低訪問廣域的延遲。
文件的訪問有如下幾種方式:
OID:Object id,即文件在全局的唯一標(biāo)示
Path:文件在文件系統(tǒng)中的路徑
Tag:制定給文件的標(biāo)簽。
3.4數(shù)據(jù)流向
數(shù)據(jù)創(chuàng)建過程如下,只描述主要過程,可能與圖中不符
Client詢問RMS,數(shù)據(jù)在哪個(gè)mds
發(fā)送到主mds
mds生成唯一文件id;并詢問策略服務(wù)PM,獲取文件的布局方式
PM返回xml形式的策略,包括位置、副本數(shù)、副本方式、觸發(fā)條件
mds填寫用戶信息和文件屬性等
查詢RMS,決定在本地的資源存儲(chǔ)方式
生成LSO,分配給SS,會(huì)生成本地副本
Client并發(fā)發(fā)送到多個(gè)ss上
ss創(chuàng)建后臺(tái)數(shù)據(jù),并將對(duì)象ID返回給client
client收集多個(gè)ss的id并發(fā)送給mds
執(zhí)行異步同步策略,mds生成任務(wù)發(fā)送給js
文件讀過程如下:
向RMS查詢,獲取相應(yīng)的MDLS
Client到MDLS查詢文件的主、從MDS、遠(yuǎn)程MDS分布
Client獲得回應(yīng),得到對(duì)象的布局狀況
Client解析后,向最近的ss發(fā)送請(qǐng)求
3.4用戶管理
租 戶:可以擁有自己獨(dú)立的存儲(chǔ)空間、存儲(chǔ)訪問策略、安全控制機(jī)制。不同租戶之前是完全隔離的。租戶主要是起到管理作用,并以節(jié)點(diǎn)為單位分配管理單元 給租戶,即一個(gè)Node只能屬于一個(gè)租戶。通常在一個(gè)系統(tǒng)中,只會(huì)設(shè)置1-2個(gè)租戶。租戶可以被認(rèn)為是對(duì)數(shù)據(jù)和策略進(jìn)行了分組管理。
子租戶:由租戶創(chuàng)建,一個(gè)租戶下可以有多個(gè)子租戶。子租戶有自己獨(dú)立的名字空間,子租戶之前的數(shù)據(jù)也是隔離的。可以為每個(gè)子租戶設(shè)置不同文件管理策略;CIFS和NFS也在子租戶級(jí)別導(dǎo)出。子租戶對(duì)應(yīng)的數(shù)據(jù)擁有者,這可以是某個(gè)部門、應(yīng)用、個(gè)人用戶。
用戶:子租戶下可以創(chuàng)建自己的用戶,也就是最終端使用者
可以看到,Atmos做了一些本該由運(yùn)營提供商或者企業(yè)自己做的事情,這樣可以更快的部署和遷移,運(yùn)用到核心系統(tǒng)中去。
3.5訪問模式
Atmos盡可能全面的提供了一系列訪問接口,不同的使用者選取不同的接口
終端用戶:通常與應(yīng)用直接打交道,不需要直接訪問Atmos;在有需要的情況下,可以通過掛載的方式使用FUSE接入(IFS方式),或者是NFS/CIFS
應(yīng)用:Web接口如SOAT、REST,更好的跨平臺(tái)性
NFS方式:注意,在NFS方式下,每個(gè)Node都是獨(dú)立配置的。但允許使用兩個(gè)Node對(duì)NFS導(dǎo)出做HA
IFS方式:可安裝的文件系統(tǒng)方式,使用FUSE將用戶接入到某個(gè)子租戶上;可自動(dòng)獲得集群化特性,比如可以在某些服務(wù)故障時(shí),自動(dòng)進(jìn)行訪問重定向。
用戶像訪問本地文件系統(tǒng)一樣,訪問整個(gè)Atmos中的數(shù)
提供close-to-open一致性
GeoDrive:為Atmos生成一個(gè)邏輯磁盤驅(qū)動(dòng)器,類似于個(gè)人存儲(chǔ)方式
REST:如果僅僅使用REST接口,可以不建立名字空間,使用專用的創(chuàng)建接口。
3.6策略管理
策略用來對(duì)數(shù)據(jù)分類。在數(shù)據(jù)變化、被訪問時(shí),不同類型的數(shù)據(jù)觸發(fā)不同的動(dòng)作。策略的目的是,降低管理成本,自動(dòng)化。比如可執(zhí)行的策略有:
副本類型、數(shù)量、副本數(shù)、存放位置
執(zhí)行壓縮、重復(fù)數(shù)據(jù)刪除策略
文件鎖定、自動(dòng)清理,在多久時(shí)間內(nèi)鎖定文件、多長時(shí)間后自動(dòng)刪除等
通過數(shù)據(jù)分類和策略執(zhí)行,不同應(yīng)用之間,甚至相同應(yīng)用的不同數(shù)據(jù)、不同時(shí)間,都可以執(zhí)行更合適策略。
3.7副本機(jī)制
副本用來容災(zāi),提高可用性、內(nèi)容分發(fā)、提高讀性能(就近)。副本分為兩類:本地的同步副本,遠(yuǎn)程的異步副本,當(dāng)然也可以在遠(yuǎn)程使用同步副本,但是訪問延遲很大,因此通常不使用此方式
GeoParity機(jī)制,借鑒通訊領(lǐng)域中的Erasure Coding機(jī)制。
編 碼階段,將文件劃分成m塊數(shù)據(jù)和K塊編碼信息,存放在系統(tǒng)中不同的機(jī)柜、不同的Node、不同的site;采用名為Cauchy Reed-Solomon的算法,需要額外的33%存儲(chǔ)空間(對(duì)比:RAID1需要額外100%的空間占用,RAID5 需要25%的空間占用)
解碼階段,只需要獲取m+k的一個(gè)子集,即可恢復(fù)完整文件,同時(shí)用MD5值來驗(yàn)證數(shù)據(jù)正確性
需要注意的是,在編碼和解碼階段可能會(huì)產(chǎn)生額外的開銷。適合保存長久不用的歸檔數(shù)據(jù),只是增加了寫入時(shí)一次的開銷。
3.8擴(kuò)展性
無縫擴(kuò)展。在Site內(nèi)部增加機(jī)柜、node、磁盤數(shù)量,無需任何配置;也可增加新的Site,但需要保證能夠與已有site的MDS建立相應(yīng)的對(duì)稱結(jié)構(gòu)(即需要有足夠的Node存在)。
3.9容災(zāi)
每個(gè)Node內(nèi)部所有的服務(wù)器都是冗余的,部分故障發(fā)生,系統(tǒng)仍然可以正行服務(wù);系統(tǒng)內(nèi)部對(duì)故障的服務(wù)會(huì)不斷重試,其恢復(fù)后能立即對(duì)外服務(wù)。
系統(tǒng)級(jí)的數(shù)據(jù)副本保證,在發(fā)生硬件故障時(shí),數(shù)據(jù)始終是可用的。
后記
云似乎是現(xiàn)代企業(yè)信息存儲(chǔ)的救命稻草,但發(fā)展尚需時(shí)日,目前的服務(wù)狀況無法令人滿意。云產(chǎn)業(yè)還在的一步步成長中,也許對(duì)每個(gè)人來說都是機(jī)會(huì)。