目前市面上最主要的公有云服務(wù)供應(yīng)商包括AWS、Google Cloud Platform、Microsoft Azure,以及IBM SoftLayer,他們都提供了云存儲(chǔ)服務(wù),具體又該如何選擇?
此時(shí)必須針對(duì)每個(gè)應(yīng)用程序工作負(fù)載的具體需求來(lái)決定,但考慮因素很多,例如功能、成本、位置、安全與合規(guī)、性能、私有云現(xiàn)有數(shù)據(jù)中心所用的技術(shù),以及簽署過(guò)的企業(yè)協(xié)議或折扣價(jià)格等。
本文將詳細(xì)談?wù)劜煌性乒?yīng)商在云存儲(chǔ)方面的差異。
云存儲(chǔ)的不同類型
大部分云供應(yīng)商都提供了不同類型的數(shù)據(jù)存儲(chǔ)選項(xiàng),例如:
對(duì)象存儲(chǔ)(Object storage) 塊存儲(chǔ)(Block storage) 實(shí)例/服務(wù)器存儲(chǔ)("短暫"存儲(chǔ)) 歸檔存儲(chǔ)(Archival storage) 內(nèi)容交付網(wǎng)絡(luò)(CDN) 隊(duì)列服務(wù)(Queue service) 數(shù)據(jù)庫(kù)服務(wù) 緩存服務(wù) 導(dǎo)入/導(dǎo)出服務(wù)本文將重點(diǎn)介紹兩種最常用的核心存儲(chǔ)服務(wù):對(duì)象存儲(chǔ)和塊存儲(chǔ),因?yàn)檫@兩種類型幾乎是所有公有云服務(wù)的用戶都會(huì)用到的。
對(duì)象存儲(chǔ):AWS Simple Storage Service (S3)
存儲(chǔ)抽象:“Bucket” 每個(gè) Bucket 可存儲(chǔ)無(wú)限數(shù)量的對(duì)象,每個(gè)對(duì)象最大5TBSLA: Standard(標(biāo)準(zhǔn)):-- 可用性:年均99.99%
-- 持久性:年均99.99999999999%(11個(gè)9) Infrequent(不頻繁):
-- 可用性:年均99.9%
-- 持久性:年均99.99999999999%(11個(gè)9)加密:傳輸中和存儲(chǔ)后 多種加密選項(xiàng):AWS控制的密鑰,用戶控制的密鑰
S3使用“Bucket”描述用于存儲(chǔ)對(duì)象的存儲(chǔ)抽象。每個(gè)Bucket可保存無(wú)限數(shù)量的對(duì)象,每個(gè)對(duì)象最大可達(dá)到5TB。S3分為標(biāo)準(zhǔn)和不頻繁兩種服務(wù)級(jí)別:標(biāo)準(zhǔn)級(jí)服務(wù)可用性為年均99.99%,持久性為11個(gè)9,簡(jiǎn)單來(lái)說(shuō),對(duì)于標(biāo)準(zhǔn)級(jí)S3中存儲(chǔ)的每10,000個(gè)對(duì)象,每10,000年才會(huì)丟失一個(gè)。
S3的另一個(gè)服務(wù)級(jí)別Infrequent access(不頻繁訪問(wèn)),99.9%的可用性略低,持久性同樣為11個(gè)9。不頻繁訪問(wèn)級(jí)別定價(jià)略低。
這些存儲(chǔ)級(jí)別都可通過(guò)SSL和TLS加密傳輸中的數(shù)據(jù),同時(shí)可加密存儲(chǔ)后的數(shù)據(jù)。此外還可以在客戶端自行加密數(shù)據(jù),并將加密后的數(shù)據(jù)上傳至Amazon S3。
Google Cloud Storage
存儲(chǔ)抽象:“Bucket” 每個(gè)Bucket可存儲(chǔ)無(wú)限數(shù)量的對(duì)象,每個(gè)對(duì)象最大5TBSLA: Standard(標(biāo)準(zhǔn)):月均99.9% Durable reduced availability(低可用持久,DRA):月均99.0% 上述兩種級(jí)別的延遲均為毫秒級(jí)。加密:與AWS相同,但目前為Alpha測(cè)試階段Google的對(duì)象存儲(chǔ)服務(wù)也使用“Bucket”作為抽象,具體局限與AWS相同:每個(gè)Bucket可存儲(chǔ)無(wú)限數(shù)量的對(duì)象,每個(gè)對(duì)象體積上限為5TB。Google提供了三種服務(wù)級(jí)別:標(biāo)準(zhǔn)、低可用持久(DRA),以及近線(Nearline)。
Google存儲(chǔ)服務(wù)的SLA按月計(jì)算。對(duì)于標(biāo)準(zhǔn)級(jí)存儲(chǔ),具備月均99.9%的持續(xù)運(yùn)行時(shí)間保證,對(duì)象訪問(wèn)延遲為毫秒級(jí)別。對(duì)于DRA,具備月均99%的持續(xù)運(yùn)行時(shí)間,延遲同樣為毫秒級(jí)。近線級(jí)別的持續(xù)運(yùn)行時(shí)間保證與DRA同為99%,但延遲約為3秒,這更像是一種歸檔存儲(chǔ)。
默認(rèn)情況下,Google Cloud Storage會(huì)使用自己的服務(wù)器端加密密鑰加密傳輸中和存儲(chǔ)后的數(shù)據(jù),但也可以在客戶端對(duì)數(shù)據(jù)進(jìn)行加密,隨后將加密后的數(shù)據(jù)寫(xiě)入Google Cloud Storage。
Azure Storage
存儲(chǔ)抽象:“容器”和“Blob” 無(wú)限數(shù)量的對(duì)象,每個(gè)存儲(chǔ)賬戶最大500TB,可使用多個(gè)存儲(chǔ)賬戶服務(wù)級(jí)別: Locally Redundant Storage(本地冗余存儲(chǔ),LRS),Zone Redundant Storage(區(qū)域冗余存儲(chǔ),ZRS),Geographically Redundant Storage(地域冗余存儲(chǔ),GRS)(更加接近于AWS和Google的服務(wù)),Read-Access Geo-Redundant(讀取訪問(wèn)地域冗余,RA-GRS)加密:均通過(guò)Azure Encryption Extensions(在您的虛擬機(jī)內(nèi)運(yùn)行)加密,可配合Azure密鑰保管庫(kù)(Azure Key Vault)使用Azure存儲(chǔ)服務(wù)使用“容器”代替“Bucket”,使用“Blob”稱呼塊存儲(chǔ)。Azure每個(gè)容器可存儲(chǔ)無(wú)限數(shù)量的對(duì)象,每個(gè)存儲(chǔ)賬戶最大容量500TB,但可同時(shí)使用多個(gè)存儲(chǔ)賬戶。
Azure提供了本地冗余(LRS)、區(qū)域冗余(ZRS)、地域冗余(GRS),以及讀取訪問(wèn)地域冗余(RA-GRS)選項(xiàng)。LRS會(huì)在同一數(shù)據(jù)中心內(nèi)部多次復(fù)制,ZRS會(huì)在同一區(qū)域(即同一地理位置的多個(gè)數(shù)據(jù)中心間)多次復(fù)制,GRS會(huì)在本地復(fù)制的同時(shí)復(fù)制到距離數(shù)百英里之外的輔助數(shù)據(jù)中心。RA-GRS為備份數(shù)據(jù)中心的其他地域冗余副本提供了讀取訪問(wèn)的能力。
Azure存儲(chǔ)支持對(duì)傳輸中的數(shù)據(jù)進(jìn)行加密,存儲(chǔ)后的數(shù)據(jù)可使用Azure Encryption Extensions加密,同時(shí)可將密鑰存儲(chǔ)在Azure密鑰保管庫(kù)中。Azure Encryption Extensions是一種在虛擬機(jī)內(nèi)部運(yùn)行的工具,需要消耗虛擬機(jī)的CPU資源。
SoftLayer Object Storage
基于OpenStack Swift平臺(tái) 存儲(chǔ)抽象:“容器” 每個(gè)容器可存儲(chǔ)無(wú)限量的對(duì)象,每個(gè)對(duì)象最大5GB,但可將數(shù)據(jù)分為多個(gè)Chunk保存,存儲(chǔ)服務(wù)可創(chuàng)建清單文件,借此將文件重新拼接到一起。該服務(wù)可并行上傳/下載,因此這個(gè)體積局限有些誤導(dǎo)用戶。單一服務(wù)級(jí)別 持久性99.99999999999%(11個(gè)9)可在群集內(nèi)部復(fù)制,但非地域冗余 加密:第三方工具或客戶自行實(shí)施的工具,非內(nèi)建SoftLayer Object Storage基于OpenStack Swift平臺(tái),也使用“容器”代表存儲(chǔ)抽象。每個(gè)容器可支持存儲(chǔ)無(wú)限數(shù)量的對(duì)象,每個(gè)對(duì)象體積最大為5GB,但可將巨型對(duì)象拆分為多個(gè)Chunk存儲(chǔ),并創(chuàng)建清單文件,這樣在下載文件時(shí)就可以自動(dòng)將其重新拼接到一起。
SoftLayer只提供一個(gè)服務(wù)級(jí)別,持久性包含11個(gè)9,可在(本地?cái)?shù)據(jù)中心)群集內(nèi)部進(jìn)行復(fù)制,但目前不支持地域復(fù)制,也沒(méi)有內(nèi)建的加密功能。
塊存儲(chǔ)
對(duì)象存儲(chǔ)服務(wù)很適合需要以自包含“對(duì)象”方式存儲(chǔ)并檢索數(shù)據(jù)的場(chǎng)景,如果需要更標(biāo)準(zhǔn)的文件系統(tǒng)配置(并且需要兼容POSIX),此時(shí)更適合使用塊存儲(chǔ)。
AWS Elastic Block Storage (EBS)
卷容量:1GB至16TB(以1GB為增量) 卷類型: Magnetic:平均IOPS為100,可迸發(fā)至數(shù)百I(mǎi)OPS(主要用于存儲(chǔ)/快照創(chuàng)建) General Purpos (SSD):3 IOPS/GB,最高10,000 IOPS。吞吐率限制為128MB/秒,更大型(<170GB)卷最高為160MB/秒 Provisioned IOPS (SSD):最高為20,000 IOPS/卷。最大吞吐率為320MB/秒(配合EBS優(yōu)化實(shí)例使用時(shí))可跨越可用性區(qū)域(Availability Zone, AZ)使用快照,但不可跨地域 所有類型的卷均支持EBS加密EBS卷體積范圍從1GB至16TB,以1GB為增量,因此可以逐步獲得一個(gè)非常大的卷。AWS提供三種不同類型的卷,分別叫做Magnetic、General Purpose,以及Provisioned IOPS。
Magnetic使用傳統(tǒng)機(jī)械磁盤(pán),據(jù)稱該服務(wù)平均可實(shí)現(xiàn)100 IOPS,可迸發(fā)至數(shù)百I(mǎi)OPS,因此這種類型的卷并不適合高事務(wù)量的工作負(fù)載,但最適合保存希望存儲(chǔ)并創(chuàng)建快照,同時(shí)不需要快速訪問(wèn)的數(shù)據(jù)。
General Purpose是一種基于SSD的存儲(chǔ)機(jī)制,可為每GB數(shù)據(jù)提供3 IOPS,最高10,000 IOPS。例如對(duì)于一個(gè)3,334 GB (3.3TB)的卷,可獲得10,000 IOPS。雖然該類型最高提供16TB容量,但I(xiàn)OPS的最大值10,000封頂,吞吐率范圍從128MB/秒至最高160MB/秒。
EBS的第三種類型為Provisioned IOPS (PIOPS),這種類型同樣基于SSD。PIOPS最高20,000 IOPS/卷。如果使用EBS優(yōu)化過(guò)的實(shí)例,最大吞吐率可進(jìn)一步增至320MB/秒。
所有EBS卷均可創(chuàng)建快照并跨AZ使用。舉例來(lái)說(shuō),如果在US-East-1A創(chuàng)建一個(gè)卷并為其創(chuàng)建快照,隨后便可自動(dòng)在US-East的任何區(qū)域(US-East-A、B、C、D,和E)訪問(wèn)該快照,但該快照無(wú)法在US-West使用。AWS提供了跨地域復(fù)制快照的工具,但復(fù)制操作無(wú)法自動(dòng)進(jìn)行。
所有EBS卷均可加密。在創(chuàng)建卷時(shí)可以看到加密選項(xiàng),此時(shí)可選擇使用AWS管理的密鑰,或自行管理的密鑰。
Google Block Storage (Persistent Disk, "PD")
卷容量:1GB至10TB 卷類型: HDD (標(biāo)準(zhǔn)磁介質(zhì)存儲(chǔ))?! ?br /> -- IOPS:最高3,000讀取IOPS/15,000寫(xiě)入IOPS-- 吞吐率:180MB/秒讀取,120MB/秒寫(xiě)入 SSD
-- IOPS:最高15,000 IOPS
-- 吞吐率:最高240MB/秒快照可在區(qū)域內(nèi)所有數(shù)據(jù)中心使用,但無(wú)法跨地域 所有卷上傳輸中和存儲(chǔ)后的數(shù)據(jù)均被加密
Google提供了HDD和SSD這兩種類型的卷。HDD據(jù)稱最高可實(shí)現(xiàn)3,000 IOPS讀取和15,000 IOPS寫(xiě)入,以及180MB/秒讀取和120MB/秒寫(xiě)入的吞吐率。SSD則可實(shí)現(xiàn)最高15,000 IOPS和高達(dá)240MB/秒的吞吐率。
快照可在區(qū)域內(nèi)所有數(shù)據(jù)中心使用,但無(wú)法跨地域。如有必要可自行跨地域復(fù)制快照。默認(rèn)情況下,Google Persistent Disk會(huì)加密對(duì)傳輸中和存儲(chǔ)后的數(shù)據(jù)。
Azure Block Storage
卷容量:1GB至1TB 以“Page Blob”形式實(shí)施,讀寫(xiě)操作要在后端轉(zhuǎn)換為GET/PUT操作 卷類型: 標(biāo)準(zhǔn)存儲(chǔ)-- IOPS:500 IOPS/直連磁盤(pán)
-- 吞吐率:60MB/秒 高級(jí)存儲(chǔ):基于SSD(僅適用于Azure虛擬機(jī),無(wú)法用于其他服務(wù))
-- IOPS:最高80,000 IOPS
-- 吞吐率:2,000MB/秒快照可跨越區(qū)域內(nèi)多個(gè)數(shù)據(jù)中心復(fù)制,并提供了跨地域復(fù)制的選項(xiàng) 傳輸中和存儲(chǔ)后的數(shù)據(jù)均可使用Azure Encryption Extensions加密
Azure卷可提供1GB至1TB容量,作為一種高端服務(wù),這樣的容量實(shí)在非常小,但這一局限源自Azure后端的實(shí)現(xiàn)方式。該服務(wù)使用Page blob而非Block blob,可為讀寫(xiě)操作創(chuàng)建兼容POSIX的文件系統(tǒng),所執(zhí)行的freads和fwrites操作會(huì)在后端轉(zhuǎn)換為GET和PUT操作。這種方法使得Azure能夠?qū)⑼惶缀蠖嘶A(chǔ)結(jié)構(gòu)應(yīng)用于所有存儲(chǔ)服務(wù),但正是因此,卷的大小存在1TB的局限。
Azure提供標(biāo)準(zhǔn)和高級(jí)兩種類型的卷。對(duì)于標(biāo)準(zhǔn)存儲(chǔ),每個(gè)直連磁盤(pán)可實(shí)現(xiàn)500 IOPS,及大約60MB/秒的吞吐率,這樣的性能表現(xiàn)尚可,但并非最優(yōu)秀的。不過(guò)高級(jí)存儲(chǔ)就相當(dāng)驚人了,可提供最高80,000 IOPS和讓人驚嘆的2,000MB/秒吞吐率。這是一種基于SSD的存儲(chǔ),目前只能用于Azure虛擬機(jī),無(wú)法將其用于其他Azure服務(wù)。
Azure提供了額外的快照選項(xiàng)??煺湛煽缭酵粎^(qū)域的多個(gè)數(shù)據(jù)中心復(fù)制,還可通過(guò)GRS進(jìn)行跨地域復(fù)制。
所有傳輸中的數(shù)據(jù)會(huì)被加密,同時(shí)也可以通過(guò)Azure Encryption Extensions加密存儲(chǔ)后的數(shù)據(jù)。
SoftLayer Block Storage
卷容量:20GB至12TB 卷類型: Endurance Storage(持久存儲(chǔ)):-- IOPS:每GB 0.25、2.0,或4.0 IOPS,最高可實(shí)現(xiàn)48,000 IOPS Performance Storage(性能存儲(chǔ)):
-- IOPS:最高6,000 IOPS。100GB的卷可支持6,000 IOPS
-- 相同IOPS的速率需要具備1.5TB的持久存儲(chǔ)快照可在區(qū)域內(nèi)多個(gè)數(shù)據(jù)中心復(fù)制,并提供跨地域復(fù)制的選項(xiàng)(僅適用于持久存儲(chǔ)) 加密功能需要使用第三方工具和/或客戶自行實(shí)施
SoftLayer Block Storage可提供容量20GB至12TB的卷,分為Endurance(持久)和Performance(性能)兩種級(jí)別。持久存儲(chǔ)可為每GB卷提供0.25、2.0,或4.0的IOPS,因此如果有一個(gè)12TB的卷,最高可獲得48,000的IOPS。
性能存儲(chǔ)最高提供6,000的IOPS,該IOPS要求卷容量至少100GB。對(duì)于100GB以上的卷,性能存儲(chǔ)的IOPS上限為6,000。如果使用持久存儲(chǔ),需要容量為1.5TB的卷才能實(shí)現(xiàn)相同的6,000 IOPS。因此持久存儲(chǔ)更適用于事務(wù)量不是非常高,但可能需要較大存儲(chǔ)容量的工作負(fù)載。性能存儲(chǔ)適合需要以很高速度執(zhí)行非常高讀寫(xiě)事務(wù)的工作負(fù)載。性能存儲(chǔ)的不足之處在于無(wú)法為其創(chuàng)建快照。您可以為持久存儲(chǔ)卷創(chuàng)建快照,并在區(qū)域內(nèi)部或跨地域復(fù)制,但是對(duì)于性能存儲(chǔ)卷,只能自行執(zhí)行相關(guān)操作。
加密工作只能通過(guò)第三方工具或自行實(shí)施的工具實(shí)現(xiàn)。
云存儲(chǔ)的定價(jià)
每個(gè)云供應(yīng)商都提供了類似的存儲(chǔ)服務(wù),但由于服務(wù)之間存在諸多差異,往往很難進(jìn)行嚴(yán)格的“同類”服務(wù)對(duì)比。價(jià)格方面,最恰當(dāng)?shù)淖龇ㄊ鞘紫葟拇紤]的云供應(yīng)商中確定最適合的服務(wù),隨后根據(jù)相關(guān)定價(jià)確定每種服務(wù)的最終成本。