閱讀235 返回首頁    go 阿裏雲 go 技術社區[雲棲]


對象存儲九大關鍵特征

 對象存儲是一個相對較新並且在持續穩步增長的市場部分。對於新手而言,對象存儲用於保存大量非結構化數據,其中每個“對象”實際上是一個沒有特定格式的文件(也稱二進製文件)。實際上,從小的對象(人類可讀取文件)到媒體(音頻和視頻)或其它行業特定格式(石油&天然氣,醫學成像等),對象存儲可以保存任何類型的數據。

對象存儲九大關鍵特征

與傳統存儲相比,采用對象存儲的好處良多。基於塊的係統(例如光纖通道和iSCSI)無法很好地向外擴展,並且沒有真正的了解所存儲的數據。它們是以低延遲和高粒度提供內容的“啞”塊設備。文件係統將一些結構放在數據上,將文件對象放入層級結構(文件夾/目錄)然後將元數據附加到這些對象上。然而,元數據通常隻是基於存儲文件所需的信息(創建時間,時間更新,訪問規則)存儲文件。

對象存儲更進一步消除了文件夾層次結構,具有高度可搜索的可擴展元數據。在規模方麵,對象存儲可以增加到多(即便不是上百)PB容量,通常對數據沒有地域限製。因為對象存儲平台提供了優於傳統存儲的形式,越來越多的企業開始采用它。基於塊的存儲陣列無法很好地擴展,且帶有大量HDD和SSD的數據保護(例如RAID)的問題。基於文件的係統受到係統自身的可擴展性限製,無論是在對象計數、並發、並行訪問或恢複時間方麵,都能檢驗出文件係統結構的一致性。對象存儲代表一種更簡單、更可擴展的解決方案,通過標準的基於網絡的協議可輕鬆訪問。

對於尋求采用對象存儲的IT企業來說,最大的挑戰是如何選用平台以及如何評估供應商的產品。對象存儲使用基於Web的協議,因此需要一定程度的編碼才能使用。這方麵正在發生改變,我們將在後麵討論。

從特性的角度來看,對象存儲在諸多方麵能使某個平台在適用性方麵更加突出。接下來,我們對IT組織在對象存儲平台中的尋找目標來做一下識別分類和描述。

1.可擴展性——大和小

正如我們已討論的那樣,對象存儲的設計比諸如橫向擴展型NAS那樣的傳統數據存儲的可擴展性範圍要更進一步。供應商產品具有多PB級容量,可以存儲數十億個對象。然而,實現高可擴展性不僅僅是簡單地測量對象和數據量。注意事項包括:

  • a.對象大小。對象存儲處理大/小對象方麵的表現如何?處理小對象的方式是什麼?
  • b.容量限製。容量是否真的有限製?容量增長是否需要添加更多的硬件或軟件節點?可以簡單地擴展存儲嗎?
  • c.分層和緩存。對象存儲該如何管理數據分層?隨著容量的增加,大量數據通常是不活躍的,並且存檔到更廉價的介質上。在這一點上,分層能力成為關鍵。閃存介質還可用作緩存或分層時以提高性能。
  • d.元數據管理。隨著對象存儲的發展,元數據該如何管理?對象存儲的容量大小是否影響搜索性能?
  • e.對象訪問。隨著對象存儲的發展,針對對象的單獨訪問時間是否要增加(還是不希望增加)?

最後一點對於構建對象存儲特別重要,為多個對象存儲/檢索請求的提供並行訪問,例如CDN網絡的後端係統服務。在一個對象存儲中增加存儲數量是不應增加檢索時間的,更重要的是“到第一個字節的時間”,這是從接收點開始將對象回流到請求者所花費的時間要求。

當然,我們不應該忘記對象存儲可能需要啟動小的對象,不需要有幾百TB或PB級初始容量。小的初級容量有助於降低進入並采用對象存儲的障礙,隨之而來的需求是,以最小的影響從小到大進行容量擴展。

2.數據保護

數據保護的概念涵蓋了對象存儲中的許多方麵。與傳統的主存儲相比,對象存儲可能用於長期保存數據,因此數據耐久性是一個重要因素。我們可以將耐久性視為需要確保由於一係列錯誤(包括硬件讀取失敗和數據損壞)而不損壞正在存儲中的數據。

與25年前的設備相比,現代硬盤非常可靠。盡管如此,仍然會出現讀取錯誤和其他瞬態問題。對象存儲應執行一係列磁盤管理的功能,包括數據清理、CRC的損壞檢驗,以及對不一致數據的重建。這些後台任務代表了長期保持數據健康的重要性。

第二個要考慮的是對硬件故障的保護。當今,大多數的存儲陣列將RAID(獨立磁盤冗餘陣列)作為一種從硬件故障導致的丟失中恢複數據的方法。隨著數據量的上升,RAID在可擴展性方麵出現問題。存儲供應商已經實現了雙重甚至三重奇偶校驗,以防止載有大硬盤容量的多個驅動器發生故障。然而,延長驅動器重建時間對RAID對象存儲中的大量數據而言是不切實際的。

替代方案是用糾刪碼的方式來保護數據。糾刪碼是對數據劃分和變換為多個冗餘片段的描述過程,恢複原始信息所需的最小計數。例如,編碼方案可以將數據翻譯成12條數據,重建原始數據所需的其中的任何8條數據。這12條數據可以分布在多個驅動器上,服務器/節點甚至在地理上提供高彈性。在12/8方案中,跨越三個位置分布數據意味著任何一個位置的丟失都是允許的。

對象存儲應根據客戶需要提供具有可變保護值的糾刪碼。由於糾刪碼有處理開銷,因此RAID還可以用於保護較小的對象並改善訪問性能。當數據在地理上分布時,重建對網絡的影響變得尤其重要。因此,糾刪碼係統的具體實現(以及需要通過WAN檢索數據)將直接影響恢複時間和客戶SLA(服務水平協議)。當本地LAN延遲較高時,也會發生此問題——任何基於分布式網絡的恢複都將一直受到網絡性能的影響。快速恢複非常重要,因為不受保護的數據需要快速重新保護,以避免潛在的數據丟失。

3.搜索、索引和元數據

在對象存儲中搜索和檢索數據的能力是最關鍵的要求之一。與結構化數據(如數據庫和文件係統)相比,對象存儲將數據保存在平麵層次結構中,隻有少量的邏輯或物理分隔(例如存儲段或池)。這意味著存儲的每個對象都需要有大量的信息,以便於數據檢索。

對象存儲通常使用的兩種方法的其中之一——終端用戶設置對象的名稱(可能看起來像標準文件名),或者使用係統生成的對象ID(OID)存儲和訪問對象。對象ID通常是由象存儲本身隨機生成的長字符串和數字。

在使用OID的情況下,元數據很關鍵。對象存儲用戶還可以維護對象ID及其使用的單獨數據庫。元數據提供關於對象本身(係統元數據)的信息,例如對象大小、訪問權限、創建對象的用戶等。用戶元數據的擴展是與對象存儲信息相對應的,用於傳遞搜索和有索引能力的應用程序。

元數據的搜索性能應該與存儲在對象存儲自身的數據量相互獨立,這是管理可擴展性的關鍵要求。

4.性能

目前,在我們討論的需求中,性能是實現可擴展性,數據保護和搜索的一個主題。但在對象存儲第一次開發時,性能理念卻並非主要因素,因為很多對象存儲隻是用作長期存檔或是備份數據庫。隨著越來越多的對象平台適用於更加活躍的數據——用作主動存檔,或媒體及其他流式內容的資源庫。

因此,我們需要對象存儲平台提供高吞吐量,線性可擴展功能以及處理高級並發請求。在將對象平台用作CDN(內容交付網絡)或其他軟件即服務(SaaS)解決方案的後備存儲時,對並發性的需求尤其重要。並發就意味著能夠同時傳輸多個對象,每秒處理大量的單個數據請求。在衡量標準方麵,通常基於IOPS和吞吐量。

5.安全性

和任何數據存儲一樣,安全是一個關鍵特性。在對象存儲中,安全特性則涵蓋了許多方麵。

因為數據可能保存到對象存儲區域,多租戶變得非常重要。業務用戶(企業中的獨立部門或獨立企業)都希望自己的數據與其他人訪問的數據隔離開。這表示擁有了獨立的安全憑證,並為每位客戶提供了加密密鑰。

對象存儲通常是憑借HTTP調用對象存儲本身提供的認證密鑰來提供數據訪問。因為數據可能通過公共互聯網傳輸,這些密鑰就是憑證,而非普通的用戶/密碼組合。管理憑證更大的任務是身份管理功能的部分,它還能夠提供標準化平台集成,如LDAP和Microsoft Active Directory。

訪問單個對象或存儲段是通過訪問控製列表進行分配,這些列表決定或單個或組級數據訪問。許多對象存儲會允許通過用於存儲和檢索數據,同樣基於Web的REST接口來設置和管理訪問控製。

除身份管理以外,不論在傳輸還是保存狀態都必須要通過數據加密來提供安全性。通常在數據傳輸狀態使用TLS(如HTTPS)實現數據保護。

而數據保存狀態時,為了防止物理服務器或驅動器/設備直接訪問,應對數據進行加密。加密的具體點或實現可取決於終端用戶想要管理加密密鑰的方式。數據可以在被添加到對象存儲之前或同時被加密。

6.合規性&審計

合規性是數據安全的另一個方麵,側重於滿足特定受控的行業(如醫療保健和金融)保存數據的監管要求。

通常,兼容係統需要能規定數據的不可變性,提供對象版本控製(以便可以追蹤更改的數據),實現對象鎖定或WORM(一寫多讀),再次用於不可變的數據。相比塊係統和基於文件的係統,大多數對象存儲不更新數據。這一點提供了一定程度的控製權,符合合規性要求。

審計與合規性互補,能對數據如何在對象存儲係統中存儲進行追蹤。審計追蹤還可以提供附加信息,例如層之間的數據遷移,內容校驗和驗證(確保無篡改)以及對單個數據對象存儲段的所有訪問。

7.部署模型

對象存儲一直在走向軟件定義存儲(SDS)的前列。大型向外擴展型部署的本質意味著對象存儲與商用硬件和供應商所提供軟件的成本模式能夠進行很好地協作。最終,我們看到許多基於純軟件的對象存儲實現。

當然,商用硬件的采用無法滿足所有的要求。很多潛在客戶可能不情願或無法管理采購和構建一個定製對象存儲解決方案的過程,而寧願從供應商那裏拿到一個軟硬件的組合解決方案。

在這種情況下,供應商為了滿足客戶需求要提供設備,可能會與已經進入客戶數據中心的服務器和存儲供應商合作。

為什麼?因為支持模式,內部技術和部署藍圖都已經是基於首選硬件供應商的了。為了最大的靈活性,供應商可能提供以下三種選項:

  • 純軟件——用作VSA(虛擬存儲設備)或本地部署到硬件上。
  • 設備——專用硬件設備,構建為一個白盒子或與要硬件提供商之一配合使用。
  • 雲——在公有雲中作為一個實例部署。

每一個選項,客戶應該希望完全的互操作性和一致的管理接口。

8.協議支持和標準

初期的對象存儲是基於HTTP(S)協議,采用基於REST的API調用存儲和檢索數據。 HTTP的使用很靈活,可以在網絡((局部或廣域網)上的任何地方訪問數據,然而,相比在橫向擴展型文件係統中訪問數據,為了使用對象存儲,應用程序必須進行編碼。

因此,供應商已經開始對其產品增加NFS和SMB支持,允許通過基於文件的標準協議來存儲和檢索數據。為了完全支持向外擴展型功能,其中還應包括支持並行文件係統。

擴展協議支持意味著數據采用了對象存儲,現有應用程序能夠輕鬆地進行移植或修改。而值得我們深思的是,與橫向擴展型文件存儲相比,對象存儲的架構差異在於,它是通過使用模擬了文件存儲的對象存儲提供。

基本數據並不是用基於inode(索引節點)和目錄架構進行存儲,因此係統崩潰後,FSCK(文件係統掃描)的概念並不適用。與傳統文件係統相比,這對(支持文件係統的)對象存儲的可擴展性和性能有很大的影響。

協議支持還需要擴展到采用業界標準。對對象存儲而言,這意味著要使用Amazon S3和Swift——兩個已經獲得廣泛普及的“標準”。亞馬遜憑借2006年發布的S3平台進入對象市場,因為S3 API經曆了成長,成熟以及完善的過程,所以成為了許多供應商選擇遵循的標準。Swift已經發展成OpenStack項目的對象存儲組件。

9.成本

沒有價格和總擁有成本討論的對象存儲,不是完整的對象存儲。最顯而易見的認證模式是基於容量的——向平台增加更多可用或原始容量,並以實際增量為認證支付更多的錢。供應商還可以選擇針對每個節點收費,那麼終端用戶就要確保它們部署的硬件能夠提供盡可能大的容量。

還有一個選擇就是按功能收費,一些供應商看準了這個機會,構建了一個包含所有功能選項的收費結構。從終端用戶的角度來看,這顯然更具競爭力,但隱藏的額外成本可能是一個問題。

計算TCO(總擁有成本)提出了關於對象存儲平台效率的一個有趣的問題。橫向擴展節點設計采用計算,係統內存和磁盤或閃存存儲來提供一定的用戶容量。

一旦在白盒硬件上構建,軟件的效率與構建解決方案的成本直接相關。到目前為止,沒有實際的標準來對比對象存儲的效率,這是需要行業發展的一個領域。

結論

以上就是對象存儲的九大主要特征。供應商將以實現這些功能的方式來使其產品架構更具吸引力。

 
 
 作者:崔歡歡,張妮娜
來源:51CTO

最後更新:2017-09-06 14:32:40

  上一篇:go  手機支付陷阱成安全“軟肋” 信息泄露致人均損失1.8萬元
  下一篇:go  智能家庭本周鋒聞:家電聯網路漫漫