一般來說,當人們考慮對象存儲時,只考慮一件事——每TB/GB的價格。盡管這是一個不錯的成本指標,但它的作用是使對象存儲一維化,并將其降級為存檔用例。此外,它扭曲了企業技術堆棧中這一日益重要的部分的價值。
坦率地說,這應該歸咎于傳統對象存儲廠商。多年來,它們在技術方面創新不足,轉而提供更便宜的產品。它們還會說這就是顧客想要的,但它們錯了。
AWS去年收入達250億美元可作為證據——其中絕大多數是高性能的主要對象存儲。如果我們保守地將S3存儲服務的規模算為200億美元,可以說,S3的規模是其他廠商的總和。再加上價格相似、增長迅速的Azure Blob和Google Cloud,情況就明朗了——成本只是一個考慮因素。
這就是為什么現代企業關注的是更廣泛的一系列指標——強調性能、運維效率、靈活性和價格的指標,而不僅僅是價格。他們認識到將數據放在“冰上”會降低其價值。在目標是最大化組織數據的價值的時候,供應商的方法似乎與之背道而馳。
企業應該考慮什么?這分為五大類:性能、可擴展性、S3兼容性、故障響應、一致性。成本之外,這五個要素定義了對象存儲中的新指標。
性能
傳統上,對象存儲并不以性能著稱。在價格競爭中,廠商不斷犧牲性能。現代對象存儲改變了這一點。
從Amazon到Minio,我們都看到了接近甚至超過Hadoop的速度。新的對象存儲指標涉及到讀寫速度(HDD為10GB/s,NVMe為35+GB/s)。對于Spark、Presto、Tensorflow、Teradata、Vertica、Splunk和分析堆棧中的其他現代計算框架來說,這種吞吐量非常快。MPP數據庫以對象存儲為目標這一事實證明,對象存儲越來越成為主要存儲。
如果對象存儲系統無法提供這些速度,則無法與所有數據交互,也無法從中提取價值。即使你將數據從傳統對象存儲中提取到內存中的處理框架中,你仍然需要吞吐量來將數據往返于該內存中——你根本無法從傳統對象設備獲得這樣的吞吐量。
這是一個關鍵點。新的性能指標是吞吐量,而不是延遲。這是大規模數據所需要的——這是現代數據基礎設施中的一個標準。
應該注意的是,雖然性能基準是一個很好的代理,但是只有在該環境中運行了特定的應用程序之后,才能真正知道性能是什么樣子的。只有這樣,它們才能理解瓶頸到底是什么,是存儲軟件、驅動器、網絡還是計算層。
可伸縮性
可伸縮性通常指一個命名空間中的PB數。每個供應商都聲稱zeta規模,但隱藏了這樣一個事實:隨著規模的擴大,龐大的、單體的系統變得脆弱、復雜、不穩定和昂貴。
可伸縮性的新指標是你可以處理多少個不同的命名空間或租戶。
這個指標是直接從hyper-scaler中獲取的,其中,構建塊很小,但可以擴展到數十億個。簡而言之,這是云原生的方式。
當構建塊很小時,一切都可以更有效地理解和優化——安全性、訪問控制、策略管理、生命周期管理、無中斷升級和更新以及最終的性能。構建塊的大小是故障域可管理性的函數。這就是高彈性系統的架構。
多租戶在現代企業中具有多個維度。當然,它指的是企業如何組織對數據和應用程序的訪問,它也指應用程序本身以及它們在邏輯上如何相互隔離。
現代多租戶方法具有以下特點:
——租戶可以在短時間內從幾百個發展到幾百萬個。
——租戶之間完全隔離,使它們能夠運行具有不同配置、權限、功能、安全性和服務級別的同一對象存儲軟件的不同版本。當擴展新服務器、更新和地理位置時,這是一個實際的運維問題。
——有彈性和按需。
——每個操作都是API驅動的,自動化的,沒有人看儀表板。
——軟件足夠輕量,可以進行容器化,并利用Kubernetes等行業標準的編排服務。
S3兼容性
Amazon S3 API是對象存儲的事實標準,以至于每個對象存儲軟件供應商都聲稱與之兼容。也就是說,AWS S3的兼容性實際上是二元的。S3兼容性的指標是1。
這意味著,有成百上千的“角落”用例并沒有如你所愿發生。這對專有軟件或設備供應商來說尤其具有挑戰性。原因是,它們的大多數用例都是直接存檔或備份,因此API調用的多樣性很低,而且用例非常同質。顯然,這是一個開源軟件具有顯著優勢的領域。考慮到應用程序、操作系統和硬件架構的大小和多樣性,足以覆蓋大多數“角落”用例。
對應用程序創建者來說,這很重要。你需要測試應用程序。開源使評估供應商聲明和確定平臺對應用程序性能的影響變得容易。如果你的供應商足夠好,可以作為一個門戶,并被其他人作為一個門戶,那么你可以有信心,它能滿足你的需要。關于開源和S3的最后一點是,開源意味著企業避免了供應商鎖定,提高了透明度。
關于S3兼容,如果你正在運行大數據應用程序,S3 SELECT通過用SQL從對象存儲中只提取所需的內容,可以大大提高性能和效率。
另外,對bucket通知的支持也是關鍵。bucket通知有助于無服務器計算——這是任何基于微服務的功能即服務中的關鍵組件。假設對象存儲是云中存儲的事實標準,那么當將對象服務器公開給云原生應用程序時,此功能是必須的。
最后,S3實現需要支持Amazon S3服務器端加密API(SSE-C、SSE-S3、SSE-KMS)。更棒的是,它應該支持可證明足夠安全的防篡改。
故障
在對象存儲中,最容易被忽略的指標可能是系統如何處理故障。故障會發生,有多種形式。對象存儲系統需要優雅地處理所有這些問題。
例如,如果存在單點故障,那么這個指標是零。
不幸的是,許多對象存儲系統將使用“特殊”節點,這些節點必須啟動才能使集群正常工作。其中包括名稱節點或元數據服務器。這就會造成單點故障。
即使有多個故障點,承受災難性失敗的能力也是至關重要的。驅動器會出現故障,服務器會壞。關鍵是采用將故障視為正常情況的軟件。這意味著,當磁盤或節點關閉時,軟件可以不受影響地繼續運行。
inline erasure coding和bitrot protection帶來的革命確保在軟件返回數據之前,你可以丟失與奇偶校驗塊一樣多的磁盤或節點(這通常是驅動器的一半)。
故障很少大規模測試,但應該是強制性的。模擬負載下的故障將提供故障總成本(數據丟失、時間和技能)的準確消息。
一致性
一致性的指標是100%。一致性是任何存儲系統中的一個關鍵組件,但嚴格的一致性很少。例如,Amazon S3 ListObject不是嚴格一致的,它只是最終一致的。
嚴格一致性是什么意思?對于確認的PUT操作之后的所有操作,必須保持以下狀態:更新的值在從任何節點讀取時都可見;更新帶有冗余,免受節點故障的影響。
這意味著,如果在寫入過程中拔出插頭,不會丟失任何內容。結果是系統永遠不會返回損壞或過時的數據。這是一個很高的標準,對交易型應用程序到備份和恢復用例都有影響。
結論
這些是對象存儲中的新指標,反映了現代企業的使用模式,其中性能、一致性、可伸縮性、故障域和S3兼容性是云原生應用程序和大數據分析的基礎。在構建現代數據堆棧時,除了考慮成本之外,別忘了這幾個指標。
責任編輯:zl
-
驅動器
+關注
關注
52文章
8236瀏覽量
146355 -
存儲
+關注
關注
13文章
4314瀏覽量
85842 -
API
+關注
關注
2文章
1500瀏覽量
62013
發布評論請先 登錄
相關推薦
評論