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