基于閃存的存儲是現代塑化劑中心設計中最顯著的主流發展之一。如今,大多數的企業通過采用運行在存儲解決方案中的閃存技術來支持多個工作負載。事實上,閃存設備如今在某些類型的應用中已經越來越普及。
但是,我們不禁要問,為何閃存僅僅是出現在如今的存儲陣列中,難道其不應該被設計到服務器體系結構中嗎,這樣是不是會更接近服務的應用程序?
要解決這一重要的問題,我們需要先了解下傳統存儲陣列的基本知識,NAS和SAN解決方案,從老牌廠商來說,包括EMC、Netapp、HP、BIM等,這些都是企業級存儲的主宰,這些公司的存儲陣列都是依靠的存儲控制器,并不是基于x86架構的服務區。存儲控制器專用于管理磁盤的多個貨架以及提供數據管理功能,如復制、壓縮、重復數據刪除以及分層。
每個存儲陣列都有多個存儲控制器(通常有兩個)以確保存儲陣列的高可用性,并提供負載均衡功能。共享存儲資源能夠通過網絡或專用光纖電纜連接到服務器集群。這樣的傳統架構,數據的讀取和寫入都是通過虛擬機到物理服務器,然后通過網絡結構到存儲控制器,最終到磁盤。
那么如何快速的適應這個模式呢?相比于磁盤陣列,閃存能夠為應用程序提供更高的性能和低延遲的I/O,提供數據IOPS。數據分層是一個在今天混合存儲解決方案中經常用到的功能,其中同時包含硬盤驅動器和固態硬盤,以實現更高的性能。
為什么不讓SSD更接近CPU?
在這個混合方案中,存儲控制器能夠跟蹤“熱點數據”,識別哪些數據是最常用到的數據,并將該數據送到性能較高的SSD中使用,當數據變為“冷”或不經常被訪問是,他會自動移動到速度較慢的機械硬盤中。
分層存儲可以確保最常用的數據始終運行在最快的存儲介質上,這就與當前出處理器的緩存有相似的功能。由于可存儲在存儲器中的數據量是有限的,所以只有熱數據駐留在DRAM和未使用的數據就會被自動換出,那么為什么不讓SSD更接近CPU?而是基于通過網絡才能夠到達的存儲陣列中呢?畢竟通過PCIE總線的距離總比通過光前通道或以太網交換機能夠提供更多的總吞吐量和更低等待時間。
試想一下,如果將SSD接入到數據中心的服務器中,在新的網絡模型上,將會有更多的計算機爭相訪問磁盤陣列中的SSD,那么專業會出現一個什么瓶頸呢?是網絡、控制器還是閃存驅動器呢?如果這種事情發生,那么是否跟使用一個管子從桶中排水,還是用更多的管排水快呢?當管子太多的化,相信也并不能達到性能的提升。
而且閃存的性能由其架構方面限制,為了保持性能,端至端的基礎設施需要按比例來利用刪的存儲。但是有過數據中心運維經驗的人都知道,數據的容量很難預料。這就是服務器中應用SSD的另一個痛點,存儲管理員很難準確的把我閃存來滿足性能需求和可靠性。
值得高興的是,目前已經有一些IT廠商意識到閃存在基礎設施中的瓶頸問題,他們正在設計推出新型的產品,能夠解決閃存應用在PCIe上的瓶頸,但目前這種方式的效果并不理想,所以當前更多的依然是采用磁盤陣列中搭載閃存,但新型的服務器閃存應用模式可能很快就會出現。