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