有多種方式將閃存添加到存儲系統中以提高性能,尤其是IOPS。高速緩存和分層將其與傳統的磁盤驅動器結合起來使閃存利用最大化。但對于某些工作負載,這些方法可能導致性能瓶頸,即當所需的數據還在磁盤,而閃存依舊高效工作。對于這些場景,全閃存陣列可能是更好的主意。
全閃存陣列存在縱向擴展和橫向擴展兩種配置。本文將關注這兩種架構的差異,以及如何選擇兩種不同構架的全閃存陣列。
縱向擴展是指使用單個(或雙冗余)控制器對存儲介質進行管控,而存儲容量可擴展的架構。這是最初的企業級磁盤陣列設計,支持了近二十年來企業級存儲從DAS到SAN的發展,至今仍被大多數陣列廠商所采用。然而,隨著陣列的擴展和容量的增長,縱向擴展架構達到了一個瓶頸,因為所有的I / O都要通過相同的控制器。這些控制器的整體性能是有限的,因為它們原是被設計支持那些每秒只能處理幾百IOPS的旋轉磁盤驅動器的。
縱向擴展系統也是低效的,因為用戶發現在遠未到達系統所能支持硬盤驅動器的最大存儲容量前,就已經達到了存儲控制器的性能極限。
橫向擴展體系結構使用一種由模塊或節點所組成的拓撲結構,其中每個節點都具有存儲容量和控制器,從而使性能也能隨著群集中的容量增加而提高。它們還允許I / O通過多個控制器,因此降低了縱向擴展“單控式”架構帶來的瓶頸。然而,即使是低端定位,它們也比縱向擴展系統要貴得多,因為通常至少需要三個節點。他們還需要大量的并行能力以達到它們所聲稱的性能數字。
縱向擴展全閃存陣列
和縱向擴展磁盤陣列一樣,縱向擴展全閃存系統在單獨一組控制器上運行所有I / O。但是全閃存系統的控制器設計是用于支持閃存所能達到的更高IOPS的,因此性能瓶頸不再是一個問題。另外,閃存存儲密度(每機架千兆字節量)比旋轉式磁盤高得多,因此縱向擴展全閃存陣列的容量不太可能像縱向擴展磁盤陣列那樣很快耗盡。
最后,閃存系統通常不用于以容量需求為主的場景,如歸檔和存儲非結構化數據。他們主要應用在虛擬化基礎架構(服務器虛擬化和桌面虛擬化),以及數據庫環境。
橫行擴展全閃存陣列
與橫向擴展旋轉磁盤陣列一樣,橫行擴展全閃存陣列將一個控制器和存儲介質放置在相同的模塊配置當中,使它們可以將系統容量擴展到當前的最高水平。這種分布式控制器架構也使得系統能夠支持更多的工作負載,因為每個模塊都可以獨立處理I/ O。
如何選擇
一般來說,縱向擴展提供最高的單卷IOPS能力,更適用于要求最高性能而工作負荷或應用服務器有限的環境。對很多公司而言,這是一個大的虛擬服務器環境或者是數據庫服務器集群。但考慮到閃存的高性能和高存儲密度,縱向擴展全閃存系統正適用于越來越多的應用場景。據報道,有幾家縱向擴展全閃存系統已能達到半PB的存儲容量,同時保持極高的性能。
橫向擴展全閃存系統適用于那些盡管現有縱向擴展存儲系統的容量已經相當可觀,但依然期望全閃存系統容量繼續增加,或者是對橫向擴展系統的分布式連接感興趣的公司。包括這兩方面需求的一個例子就是多租戶方式的應用承載環境,其上承載了大量客戶端系統并共享全閃存陣列。在這種情況下,最大程度的靈活性優先于動態變化的需求曲線。這種靈活性是擴容,提高處理能力和增加連接的靈活性,這是橫向擴展全閃存陣列與生具有的特征。已有數家橫向擴展全閃存陣列廠商聚焦于這一市場,在他們的軟件中增加特定的多租戶功能。
縱向擴展還是橫向擴展
公司購買閃存產品通常是由于一個關鍵應用存在特定的性能問題。這種場景下,縱向擴展的全閃存系統應該就可以。再次重申,全閃存陣列通常是一個“單點”產品,用于解決特定性能問題,并且縱向擴展系統實施較易。
然而,如果這個全閃存產品成為常規的生產存儲陣列,而且用戶對它的操作愈發舒適習慣,他們通常會放置更多的應用以提高工作效率。這意味著系統會增加更多的工作負荷,更多的物理連接數以及總容量。在這種情況下,如果公司能預見到自己將會添加足夠的系統,需要足夠的容量,那么橫向擴展的全閃存系統可能是一個更好的選擇。
目前市場上已經有可以進行縱向和橫向擴展的產品出現。用戶可以在單一系統內增加容量,然后以橫向擴展的方式將多個系統進行集群,從而同時提供兩種方式的優點。
結論
由于閃存在存儲市場上不斷滲透,眾多企業發現他們需要一種不依賴于緩存或分層的共享式閃存產品。為了滿足這一需求,越來越多的廠商都推出了全閃存陣列,或縱向擴展,或橫向擴展配置。一般來說,縱向擴展全閃存陣列的應用場景比橫向擴展陣列更加廣泛,并有更多的產品選擇。但對于那些真正需要靈活性以擴展容量和顯著提升性能的場景,橫向擴展的全閃存陣列可能是更好的選擇,尤其是當有大量并行工作負載的時候。