摘要:從特性的角度來(lái)看,對(duì)象存儲(chǔ)有許多方面使得一個(gè)平臺(tái)比另一個(gè)平臺(tái)更合適。在本文的剩余部分,我們將從識(shí)別、分類和描述方面對(duì)適合IT組織的對(duì)象存儲(chǔ)平臺(tái)進(jìn)行尋找。
有評(píng)論表示,對(duì)象存儲(chǔ)是一個(gè)相對(duì)新的市場(chǎng)部分,目前繼續(xù)穩(wěn)步增長(zhǎng),并有更多值得采用的理由。
對(duì)于不了解的人來(lái)說(shuō),對(duì)象存儲(chǔ)用于保存大量的非結(jié)構(gòu)化數(shù)據(jù),其中每個(gè)“對(duì)象”本質(zhì)上是沒(méi)有特定格式的文件(也稱為二進(jìn)制文件)。對(duì)象存儲(chǔ)可以保存任何類型的數(shù)據(jù),從人類可讀的小對(duì)象文件到媒體(音頻和視頻)或其他行業(yè)特定的格式(石油和天然氣,醫(yī)學(xué)成像等)。
與傳統(tǒng)存儲(chǔ)相比,使用對(duì)象存儲(chǔ)的好處是多方面的。基于塊的系統(tǒng)(例如光纖通道和iSCSI)不能很好地向外擴(kuò)展,并且對(duì)存儲(chǔ)的數(shù)據(jù)沒(méi)有真正的理解。它們是以低延遲和高粒度提供內(nèi)容的“啞”塊設(shè)備。文件系統(tǒng)將一些結(jié)構(gòu)放在數(shù)據(jù)上,將文件對(duì)象放入層次結(jié)構(gòu)(文件夾/目錄)中并將元數(shù)據(jù)附加到這些對(duì)象上。然而,元數(shù)據(jù)通常僅基于存儲(chǔ)文件所需要的信息(創(chuàng)建時(shí)間、時(shí)間更新、訪問(wèn)規(guī)則)。
對(duì)象存儲(chǔ)進(jìn)一步進(jìn)行并刪除文件夾層次結(jié)構(gòu)。對(duì)象存儲(chǔ)有通常可高度搜索的可擴(kuò)展元數(shù)據(jù)。在規(guī)模方面,對(duì)象存儲(chǔ)可以增長(zhǎng)到多個(gè)(即使不是幾百個(gè))PB,通常對(duì)數(shù)據(jù)地理沒(méi)有限制。對(duì)象存儲(chǔ)的使用正在企業(yè)中被采用,因?yàn)槠脚_(tái)提供了優(yōu)于傳統(tǒng)形式的存儲(chǔ)優(yōu)點(diǎn)。基于塊的存儲(chǔ)陣列不能很好地進(jìn)行擴(kuò)展,并且具有大量的HDD和SSD數(shù)據(jù)保護(hù)(例如RAID)問(wèn)題。
基于文件的系統(tǒng)受到文件系統(tǒng)本身可擴(kuò)展性的限制,無(wú)論是在對(duì)象計(jì)數(shù)、并發(fā)或并行訪問(wèn)以及恢復(fù)時(shí)間方面,以檢查文件系統(tǒng)結(jié)構(gòu)的一致性。對(duì)象存儲(chǔ)代表一種更簡(jiǎn)單,更可擴(kuò)展的解決方案,并且可以通過(guò)標(biāo)準(zhǔn)的基于網(wǎng)絡(luò)的協(xié)議輕松訪問(wèn)。
對(duì)于尋求采用對(duì)象存儲(chǔ)的IT組織來(lái)說(shuō),最大的挑戰(zhàn)是選擇如何使用平臺(tái)以及如何評(píng)估供應(yīng)商的產(chǎn)品。對(duì)象存儲(chǔ)使用基于Web的協(xié)議,因此需要一定程度的編碼才能使用。這正在發(fā)生改變,我們將在后面進(jìn)行討論。
從特性的角度來(lái)看,對(duì)象存儲(chǔ)有許多方面使得一個(gè)平臺(tái)比另一個(gè)平臺(tái)更合適。在本文的剩余部分,我們將從識(shí)別、分類和描述方面對(duì)適合IT組織的對(duì)象存儲(chǔ)平臺(tái)進(jìn)行尋找。
可擴(kuò)展性 - 大和小
如已經(jīng)討論的,對(duì)象存儲(chǔ)被設(shè)計(jì)為比諸如橫向擴(kuò)展NAS的傳統(tǒng)數(shù)據(jù)存儲(chǔ)個(gè)更進(jìn)一步的擴(kuò)展。供應(yīng)商產(chǎn)品具有多個(gè)PB級(jí)的功能,可以存儲(chǔ)數(shù)十億個(gè)對(duì)象。然而,實(shí)現(xiàn)高可擴(kuò)展性不僅僅是簡(jiǎn)單地測(cè)量對(duì)象計(jì)數(shù)和數(shù)據(jù)量。 注意事項(xiàng)包括:
對(duì)象大小。對(duì)象存儲(chǔ)如何處理小和大對(duì)象?如何處理小對(duì)象?
容量限制。容量是否有真正的限制? 容量增長(zhǎng)是否需要添加更多的硬件或軟件節(jié)點(diǎn)? 我可以簡(jiǎn)單地?cái)U(kuò)展存儲(chǔ)嗎?
分層和緩存。對(duì)象存儲(chǔ)如何管理數(shù)據(jù)分層?隨著容量的增長(zhǎng),自然地大量數(shù)據(jù)將是非活動(dòng)的,并且提供了存檔到更廉價(jià)的媒介的機(jī)會(huì)。在這一點(diǎn)上,分層成為一個(gè)關(guān)鍵的能力。閃存介質(zhì)還可用于在用作緩存或分層時(shí)提高性能。
元數(shù)據(jù)管理。隨著對(duì)象存儲(chǔ)的增長(zhǎng),元數(shù)據(jù)管理得如何?對(duì)象存儲(chǔ)的大小是否影響搜索的性能?
對(duì)象訪問(wèn)。隨著對(duì)象存儲(chǔ)的增長(zhǎng),任何單獨(dú)對(duì)象的訪問(wèn)時(shí)間是否增加(希望不是所有)?
最后一點(diǎn)對(duì)于構(gòu)建可以并行地提供對(duì)許多對(duì)象存儲(chǔ)/檢索請(qǐng)求的訪問(wèn)的對(duì)象存儲(chǔ)(例如用作CDN網(wǎng)絡(luò)的后端系統(tǒng))特別重要。增加對(duì)象存儲(chǔ)中的對(duì)象數(shù)量,而不應(yīng)顯著增加檢索時(shí)間,或更重要的是“到第一個(gè)字節(jié)的時(shí)間”,這是從接收點(diǎn)開始將對(duì)象流回請(qǐng)求者所花費(fèi)的時(shí)間請(qǐng)求。
當(dāng)然,我們不應(yīng)該忘記對(duì)象存儲(chǔ)可能啟動(dòng)時(shí)需要的規(guī)模很小,不需要具有幾百TB或PB級(jí)的初始占用。 具有小型入門級(jí)功能的能力,有助于減少對(duì)象存儲(chǔ)采用的進(jìn)入障礙,增加的需求是能夠以最小的操作影響提供從小到大的線性擴(kuò)展。
數(shù)據(jù)保護(hù)
數(shù)據(jù)保護(hù)的概念涵蓋了對(duì)象存儲(chǔ)中的許多方面。與傳統(tǒng)的“主”存儲(chǔ)相比,對(duì)象存儲(chǔ)可能用于長(zhǎng)期保留數(shù)據(jù),因此數(shù)據(jù)持久性成為一個(gè)重要因素。我們可以將持久性視為需要確保由于一系列錯(cuò)誤(包括硬件讀取失敗和數(shù)據(jù)損壞)而對(duì)正在存儲(chǔ)的數(shù)據(jù)不發(fā)生邏輯損壞。
與四分之一個(gè)世紀(jì)前使用的設(shè)備相比,現(xiàn)代硬盤驅(qū)動(dòng)器非常可靠。盡管如此,驅(qū)動(dòng)器仍然遭受讀取錯(cuò)誤和其他的瞬態(tài)問(wèn)題。對(duì)象存儲(chǔ)應(yīng)該執(zhí)行一系列磁盤管理功能,包括數(shù)據(jù)清理、CRC檢查和損壞或不一致數(shù)據(jù)的重建。這些后臺(tái)任務(wù)表示,在需要長(zhǎng)期保留至關(guān)重要的情況下保持?jǐn)?shù)據(jù)健康的過(guò)程。
第二個(gè)要考慮的是硬件故障保護(hù)。大多數(shù)現(xiàn)代存儲(chǔ)陣列實(shí)現(xiàn)RAID(廉價(jià)磁盤冗余陣列)作為從硬件故障導(dǎo)致的丟失中恢復(fù)數(shù)據(jù)的方法,隨著數(shù)據(jù)量開始上升,RAID存在可擴(kuò)展性問(wèn)題。存儲(chǔ)供應(yīng)商已實(shí)現(xiàn)雙重甚至三重奇偶校驗(yàn),以防止大型硬盤容量的多個(gè)驅(qū)動(dòng)器故障。但是,延長(zhǎng)的驅(qū)動(dòng)器重建時(shí)間使得RAID對(duì)于對(duì)象存儲(chǔ)中的大量數(shù)據(jù)不切實(shí)際。
替代方案是使用擦除編碼方案來(lái)保護(hù)數(shù)據(jù)。擦除編碼描述了將數(shù)據(jù)劃分和變換為多個(gè)冗余片段的過(guò)程,其中恢復(fù)原始信息所需為最小計(jì)數(shù)。例如,編碼方案可以將數(shù)據(jù)翻譯成12個(gè),重建原始數(shù)據(jù)所需為任意8個(gè)。這12個(gè)可以分布在多個(gè)驅(qū)動(dòng)器,服務(wù)器/節(jié)點(diǎn)或甚至地理上以提供高彈性。在12/8方案中,跨越三個(gè)位置的分布數(shù)據(jù)意味著可以容忍任何一個(gè)位置的丟失。
對(duì)象存儲(chǔ)應(yīng)根據(jù)客戶需要提供具有可變保護(hù)值的擦除編碼。由于擦除編碼具有能夠顯著的處理開銷,因此RAID還可以用于保護(hù)較小的對(duì)象并改善訪問(wèn)性能。如果數(shù)據(jù)在地理上分布的情況下,重建對(duì)網(wǎng)絡(luò)的影響變得重要。因此,擦除編碼系統(tǒng)的具體實(shí)現(xiàn)(以及在WAN上檢索數(shù)據(jù)的需要)將直接影響恢復(fù)時(shí)間和客戶SLA(服務(wù)水平協(xié)議)。當(dāng)本地LAN延遲較高時(shí),也會(huì)發(fā)生此問(wèn)題 - 任何基于分布式網(wǎng)絡(luò)的恢復(fù)將始終受到網(wǎng)絡(luò)性能的影響。快速恢復(fù)非常重要,因?yàn)椴皇鼙Wo(hù)的數(shù)據(jù)需要快速重新保護(hù),以避免潛在的數(shù)據(jù)丟失。
搜索、索引和元數(shù)據(jù)
在對(duì)象存儲(chǔ)中搜索和檢索數(shù)據(jù)的能力是最關(guān)鍵的要求之一。與結(jié)構(gòu)化數(shù)據(jù)(如數(shù)據(jù)庫(kù)和文件系統(tǒng))相比,對(duì)象存儲(chǔ)將數(shù)據(jù)保存在平面層次結(jié)構(gòu)中,只有少量的邏輯或物理分隔(例如存儲(chǔ)桶或池)。這意味著存儲(chǔ)的每個(gè)對(duì)象都需要有大量的信息,以便于數(shù)據(jù)檢索。
對(duì)象存儲(chǔ)通常使用兩種方法之一存儲(chǔ)數(shù)據(jù);最終用戶設(shè)置對(duì)象的名稱(可能看起來(lái)像標(biāo)準(zhǔn)文件名),或者使用系統(tǒng)生成的對(duì)象ID(OID)存儲(chǔ)和訪問(wèn)對(duì)象。 OID通常是字符和數(shù)字的長(zhǎng)字符串,由對(duì)象存儲(chǔ)庫(kù)本身隨機(jī)生成。
在使用OID的情況下,元數(shù)據(jù)是關(guān)鍵的。 對(duì)象存儲(chǔ)用戶還可以維護(hù)對(duì)象ID及其使用的單獨(dú)數(shù)據(jù)庫(kù)。元數(shù)據(jù)提供關(guān)于對(duì)象本身(系統(tǒng)元數(shù)據(jù))的信息,例如對(duì)象大小、訪問(wèn)權(quán)限、創(chuàng)建對(duì)象的用戶等。用戶元數(shù)據(jù)擴(kuò)展每個(gè)對(duì)象存儲(chǔ)的信息,并且是用于傳遞搜索和索引能力的應(yīng)用程序特定信息。
元數(shù)據(jù)搜索的性能應(yīng)該獨(dú)立于存儲(chǔ)在對(duì)象存儲(chǔ)本身中的數(shù)據(jù)量。這是管理可擴(kuò)展性的關(guān)鍵要求。
性能
在我們對(duì)需求的討論中,性能是實(shí)現(xiàn)可擴(kuò)展性、數(shù)據(jù)保護(hù)和搜索的主題。當(dāng)對(duì)象存儲(chǔ)首次開發(fā)時(shí),性能的想法不是一個(gè)關(guān)鍵考慮,因?yàn)樵S多對(duì)象存儲(chǔ)只是用作長(zhǎng)期存檔或備份存儲(chǔ)庫(kù)。越來(lái)越多的對(duì)象平臺(tái)被用于更活躍的數(shù)據(jù),作為活動(dòng)存檔或用于媒體和其他流式內(nèi)容的存儲(chǔ)庫(kù)。
結(jié)果是需要對(duì)象存儲(chǔ)平臺(tái)提供高吞吐量、線性擴(kuò)展性能和處理高水平的并發(fā)請(qǐng)求。在將對(duì)象平臺(tái)用作CDN(內(nèi)容交付網(wǎng)絡(luò))或其他軟件即服務(wù)(SaaS)解決方案的后備存儲(chǔ)時(shí),并發(fā)性的需要尤為重要。并發(fā)意味著能夠同時(shí)傳輸許多對(duì)象,并能夠每秒處理大量的單獨(dú)請(qǐng)求。在度量方面,典型的測(cè)量基于IOPS(每秒I / O)和吞吐量(MB/sec or GB/sec)。
安全
與任何數(shù)據(jù)存儲(chǔ)一樣,安全是一個(gè)關(guān)鍵特性。在對(duì)象存儲(chǔ)中,安全特性涵蓋了許多方面。
由于數(shù)據(jù)量可能保留在對(duì)象存儲(chǔ)中,多租戶變得非常重要。業(yè)務(wù)用戶(組織中的單獨(dú)部門或單獨(dú)的組織)希望知道他們的數(shù)據(jù)與其他人的訪問(wèn)隔離。這意味著具有單獨(dú)的安全憑證,并為每個(gè)客戶或?qū)ο筇峁┘用苊荑€。
對(duì)象存儲(chǔ)通常通過(guò)在對(duì)對(duì)象存儲(chǔ)本身的HTTP調(diào)用上提供的認(rèn)證密鑰來(lái)提供對(duì)數(shù)據(jù)的訪問(wèn)。這些密鑰是憑據(jù),而不是典型的用戶/密碼組合,因?yàn)閿?shù)據(jù)可以通過(guò)公共互聯(lián)網(wǎng)傳遞。管理憑證的更廣泛的任務(wù)是身份管理功能的一部分,也可以集成到標(biāo)準(zhǔn)平臺(tái),如LDAP和Microsoft Active Directory。
將通過(guò)訪問(wèn)控制列表分配對(duì)單個(gè)對(duì)象或存儲(chǔ)的訪問(wèn),這些列表確定對(duì)數(shù)據(jù)的單個(gè)或組級(jí)訪問(wèn)。許多對(duì)象存儲(chǔ)將允許通過(guò)用于存儲(chǔ)和檢索數(shù)據(jù)的相同的基于Web的REST接口來(lái)設(shè)置和管理訪問(wèn)控制。
除了管理身份之外,必須通過(guò)數(shù)據(jù)加密提供安全性,無(wú)論是在飛行還是在休息。通常,使用TLS(例如HTTPS)在協(xié)議級(jí)實(shí)現(xiàn)飛行中保護(hù)。休息時(shí),應(yīng)對(duì)數(shù)據(jù)進(jìn)行加密,以防止在物理服務(wù)器級(jí)別或驅(qū)動(dòng)器/設(shè)備級(jí)別直接訪問(wèn)。加密的具體點(diǎn)或?qū)崿F(xiàn)可以取決于最終用戶想要如何管理加密密鑰。數(shù)據(jù)可以在添加到對(duì)象存儲(chǔ)之前或同時(shí)進(jìn)行加密。
合規(guī)性和審計(jì)
合規(guī)性是數(shù)據(jù)安全的另一個(gè)方面,重點(diǎn)是滿足特定受控行業(yè)(如醫(yī)療保健和金融)中保留數(shù)據(jù)的監(jiān)管要求。 通常,兼容系統(tǒng)需要能夠提供數(shù)據(jù)的不可變性,提供對(duì)象版本控制(因此可以跟蹤改變),實(shí)現(xiàn)對(duì)象鎖定或WORM(一次讀取多次),再次用于不可變數(shù)據(jù)。與塊和基于文件的系統(tǒng)相比,大多數(shù)對(duì)象庫(kù)不更新數(shù)據(jù)。這提供了一定程度的控制,符合合規(guī)性的要求。
審計(jì)對(duì)合規(guī)性進(jìn)行了補(bǔ)充,提供了一個(gè)顯示數(shù)據(jù)如何存儲(chǔ)在對(duì)象存儲(chǔ)系統(tǒng)中的跟蹤。審計(jì)跟蹤還可以提供附加信息,例如層之間的數(shù)據(jù)遷移,內(nèi)容的校驗(yàn)和驗(yàn)證(以確保沒(méi)有篡改)以及對(duì)單個(gè)數(shù)據(jù)對(duì)象或桶的所有訪問(wèn)。
部署模型
對(duì)象存儲(chǔ)已經(jīng)走向軟件定義存儲(chǔ)或SDS的前沿。 大型橫向擴(kuò)展部署的性質(zhì)意味著對(duì)象庫(kù)與商品硬件和供應(yīng)商提供的軟件的成本模型能夠進(jìn)行很好地協(xié)作。 因此,我們看到許多基于軟件的對(duì)象存儲(chǔ)的實(shí)現(xiàn)。
使用商品硬件,當(dāng)然不適合所有要求。許多潛在客戶可能不愿或無(wú)法管理采購(gòu)和構(gòu)建定制對(duì)象存儲(chǔ)解決方案的過(guò)程,而寧愿從供應(yīng)商處獲取組合的硬件和軟件解決方案。在這種情況下,供應(yīng)商需要提供設(shè)備以滿足客戶的需求,可能與已經(jīng)在客戶的數(shù)據(jù)中心中的服務(wù)器和存儲(chǔ)供應(yīng)商進(jìn)行了合作。為什么? 因?yàn)橹С帜P停瑑?nèi)部技能和部署藍(lán)圖需要基于首選的硬件供應(yīng)商。為了最大的靈活性,供應(yīng)商可能提供三種選擇:
僅軟件 - 作為VSA(虛擬存儲(chǔ)設(shè)備)或本地部署到硬件上。
設(shè)備 - 專用硬件設(shè)備,構(gòu)建為白盒或與主要硬件提供商之一所進(jìn)行配合使用。
云 - 作為公共云中的實(shí)例部署。 對(duì)于每個(gè)選項(xiàng),客戶應(yīng)該期望完全的互操作性和一致的管理接口。
協(xié)議支持和標(biāo)準(zhǔn)
初始對(duì)象存儲(chǔ)基于HTTP(S)協(xié)議,使用基于REST的API調(diào)用來(lái)存儲(chǔ)和檢索數(shù)據(jù)。HTTP的使用是靈活的,因?yàn)榭梢詮木W(wǎng)絡(luò)上的任何地方(局部或廣域)訪問(wèn)數(shù)據(jù),然而,與訪問(wèn)存儲(chǔ)在橫向擴(kuò)展文件系統(tǒng)中的數(shù)據(jù)相比,應(yīng)用程序必須被編碼以使用對(duì)象存儲(chǔ)。 因此,供應(yīng)商已開始向其產(chǎn)品添加NFS和SMB支持,允許通過(guò)標(biāo)準(zhǔn)的基于文件的協(xié)議存儲(chǔ)和檢索數(shù)據(jù)。為了完全支持向外擴(kuò)展功能,支持應(yīng)包括并行文件系統(tǒng)。
擴(kuò)展協(xié)議支持意味著可以輕松地移植或修改現(xiàn)有應(yīng)用程序,以便為其數(shù)據(jù)使用對(duì)象存儲(chǔ)。還值得考慮的是,與橫向擴(kuò)展文件存儲(chǔ)相比,通過(guò)使用模擬文件存儲(chǔ)的對(duì)象存儲(chǔ)提供的體系結(jié)構(gòu)之間的差異。 底層數(shù)據(jù)不是使用基于inode和目錄的結(jié)構(gòu)存儲(chǔ)的,因此系統(tǒng)崩潰后FSCK(文件系統(tǒng)掃描)的概念不適用。與傳統(tǒng)文件系統(tǒng)相比,這對(duì)支持文件系統(tǒng)的對(duì)象存儲(chǔ)的可擴(kuò)展性和性能有很大的影響。
協(xié)議支持還需要擴(kuò)展到實(shí)際采用的情況或行業(yè)標(biāo)準(zhǔn)。對(duì)于對(duì)象存儲(chǔ),這意味著使用S3和Swift,這兩個(gè)已經(jīng)獲得廣泛流行的"標(biāo)準(zhǔn)"。亞馬遜早在2006年就發(fā)布了S3(簡(jiǎn)單存儲(chǔ)服務(wù))平臺(tái)進(jìn)入對(duì)象市場(chǎng),使得S3 API成為許多供應(yīng)商選擇遵循的標(biāo)準(zhǔn),因?yàn)樗呀?jīng)成熟和全面。Swift從OpenStack項(xiàng)目的對(duì)象存儲(chǔ)組件中進(jìn)行開發(fā)。
總擁有成本
沒(méi)有對(duì)價(jià)格和TCO的討論,對(duì)象存儲(chǔ)的摘要是完不完整的。 最明顯的許可模式是基于容量的模式 - 向平臺(tái)添加更多可用或原始容量,并以實(shí)際增量支付更多許可證。供應(yīng)商還可以選擇為每個(gè)節(jié)點(diǎn)收費(fèi),這意味著最終用戶需要確保他們部署的硬件提供盡可能大的容量。
還有一個(gè)按功能收費(fèi)的選項(xiàng),雖然一些供應(yīng)商將看到創(chuàng)建一個(gè)全面的收費(fèi)結(jié)構(gòu),包括所有功能選項(xiàng)的機(jī)會(huì)。從終端用戶的角度來(lái)看,這顯然更具競(jìng)爭(zhēng)力,但是隱藏的額外成本可能是一個(gè)問(wèn)題。
計(jì)算TCO提出了一個(gè)關(guān)于對(duì)象存儲(chǔ)平臺(tái)效率的有趣問(wèn)題。 橫向擴(kuò)展節(jié)點(diǎn)設(shè)計(jì)采用計(jì)算,系統(tǒng)內(nèi)存和磁盤或閃存存儲(chǔ)來(lái)提供一定量的用戶容量。當(dāng)構(gòu)建白盒硬件時(shí),軟件的效率與構(gòu)建解決方案的成本直接相關(guān)。到目前為止,沒(méi)有實(shí)際的基準(zhǔn)來(lái)比較對(duì)象存儲(chǔ)的效率,這仍然是一個(gè)需要一些發(fā)展的領(lǐng)域。
結(jié)論
我們強(qiáng)調(diào)了對(duì)象存儲(chǔ)的九個(gè)關(guān)鍵特性。供應(yīng)商將以補(bǔ)充其產(chǎn)品架構(gòu)的方式實(shí)現(xiàn)這些功能。在決定哪些平臺(tái)是您的業(yè)務(wù)中使用的平臺(tái)時(shí),其中一些關(guān)鍵功能的評(píng)級(jí)將高于其他平臺(tái)。 這里列出的列表沒(méi)有特定的順序。 然而,作為一個(gè)潛在客戶,目標(biāo)應(yīng)該是通過(guò)這個(gè)列表,確定那些重要的功能,值得投入更多的調(diào)查。