傳統的存儲方案SAN或NAS無法滿足容量和性能的高并發需求,集成式的組件和接口限制了動態擴展能力,自然也就難以做到按需服務,這恰恰是DaaS的主要優勢。概括來說,云存儲就是存儲的虛擬化+自動化,并且網絡在其中起到了不可或缺的作用。實現過程中,像數據塊、磁盤、磁帶庫、文件系統等都可以被虛擬化。
網絡之于云存儲是重要的,但其只是存儲虛擬化的一個功能。存儲虛擬化可以在系統架構的各個層實現,而在網絡層可以做到橫跨異構磁盤陣列,相當于在數據中心內部構建了一個大型的資源池。需要注意的是,池化時的異構管理要確保存儲的標準化,原因是在多云多租戶的環境下,只有各家采用相同的規范才能做到被統一調用。
作為云存儲的基礎,虛擬化存儲的本質是實現了從物理存儲到邏輯存儲的轉變。在物理介質和服務器之間,虛擬化的對象既可以是前文提到的網絡,也可以是主機或存儲設備。當然,這些方式各有利弊,例如在主機層虛擬化便于部署,但與存儲有關的軟件要運行在同一個主機上,越權管理增加了核心數據的安全風險,而把功能集中在存儲設備上則會過度消耗存儲控制器的資源。
以虛擬磁盤為例,通常的服務器擴展存儲方案包括DAS、SAN、NAS。在虛擬化環境中,首先要把物理資源劃分為虛擬磁盤,之后“虛擬機管理員”會為多個虛擬化分配存儲空間。從物理層面來看,DAS直連虛擬機滿足不了磁盤的數量需求。從虛擬層面來看,邏輯單元也難以支撐大規模的虛擬機運行。考慮到云環境的虛擬機要被隨時創建、銷毀、共享,傳統的存儲擴展方式并不適用。
隨著x86系統性能的不斷提升,以此來構建大規模存儲集群變為可能。事實上,分布式存儲早在云計算之前就出現了,在云時代又煥發了新顏。借助分布式文件系統,不僅可以提供彈性存儲資源,還能根據應用需求提供各類接口,例如分布式對象存儲的http接口讓用戶無需操心文件的存放位置或是否丟失,像AWS的S3就有多層驗證機制。
對象存儲、塊存儲、文件存儲是分布式存儲的三大利器,三者的接口是不一樣的,因此適用的業務形態也不同。塊存儲可以直接掛在主機上,直接讀寫磁盤空間的某段地址即可訪問數據,資源調取效率較高,像一些大規模數據庫多采用這種部署;文件存儲通常用于應用層,通過TCP/IP協議訪問,需要使用者專門對文件寫腳本,因此延時要高于塊存儲,可借助NAS虛擬化處理非結構化數據;對象存儲具備二者的優點,兼顧高速、共享、智能,并且引入了容器技術,打包交付和擴展能力較強。
當然,考慮到部署成本和某些特定場景,對象存儲并不能完全取代塊存儲或文件存儲。例如數據庫有時要直接向裸盤映射,更適合塊存儲的方案。此外,如果對數據量的存儲要求不高,只是想實現共享數據,文件存儲就可以滿足要求。不管怎樣,分布式存儲要比傳統的虛擬化存儲方案更加靈活,適用范圍也更廣。
如今,存儲方案已經從傳統架構向云架構演變,企業客戶在業務部署時要基于業務的實際需求,結合數據結構和規模的特點,選擇相對應的存儲方案,不能冒進全面替換新架構而加大額外的成本支出。不過從長期來看,基于x86的分布式存儲,以其集群架構實現的橫向擴展能力將成為云存儲領域的主角。