SSD核心設計
2019/11/23
我們發現SSD性能和生命周期對工作負載非常敏感,并且通常較高的復雜系統問題出現在存儲堆棧中甚至在分布式系統中,與設備固件相關。
SSD性能研究點:
延長和帶寬:
讀寫可以多快
隨機寫會慢
永久行:
最快多久可以代替傳統硬盤
Flash塊受磨損影響
Introduction
SSD設計中出現的許多問題似乎都模仿了以前在存儲堆棧中出現的問題。在解決這些難題時,設計選擇有相當大的自由度。我們表明以下系統問題與SSD性能有關:
data placement:在SSD的芯片上仔細放置數據不僅對負載平衡至關重要,而且對于實現耗損均衡至關重要
parallelism: 任何給定閃存芯片的帶寬和操作速率都不足以實現最佳性能。因此,存儲器組件必須協調以便實行并行操作。
write ordering:Nand閃存的屬性給SSD設計者帶來了難題。小的,隨機排序的寫入尤其棘手。
workload management: 性能高度依賴于工作負載。例如,在順序工作負載下產生良好性能的設計決策可能不會使非順序工作負載受益,反之亦然。
隨著SSD復雜性的增加,現有的磁盤模型將不足以預測性能。特別是,由于磁盤寫入操作的位置,隨機寫入性能和磁盤壽命會有很大差異。我們引入了一種基于清除效率來表征這種行為的新模型,并提出了一種新的耗損均衡算法來延長SSD壽命。
正如我們所示,SSD有許多設計權衡因素會影響性能。硬件和軟件組件以及工作負載之間也存在顯著的相互作用。我們的工作可以深入了解所有這些組件必須如何合作才能生成滿足目標工作負載性能目標的SSD設計。從硬件角度來看,SSD接口(SATA,IDE,PCI-Express)和封裝組織決定了理論上的最大I / O性能。在軟件方面,分配池的屬性,負載平衡,數據放置和塊管理(耗損均衡和清理)與工作負載特性相結合,可確定整體SSD性能。此外,我們已經證明所有設計都可以受益于平面交錯和某種程度的過度配置,我們已經演示了一種基于仿真的技術,用于對從真實硬件中提取的跡線驅動的SSD性能建模。在某些情況下,跟蹤系統需要的存儲組件對于大多數組織來說太昂貴,無法提供實驗目的。我們的仿真框架已證明具有彈性和靈活性,我們期望繼續添加我們可以建模的行為集。共享控制組合和精確的磨損均衡數據是感興趣的特定主題。
沒有固定的規則將NAND閃存作為磁盤存儲集成到計算機系統中。然而,NAND的塊訪問性質表明面向塊的接口通常是合適的。雖然超出了這項工作的范圍,但我們懷疑我們的仿真技術將適用于獨立于架構的NAND閃存塊存儲,因為仍會出現相同的問題(例如清潔,耗損均衡)。
基于閃存的存儲肯定會在未來的存儲架構中發揮重要作用。我們的仿真結果的一個必然結果是,支持大量TPC-C工作負載所需的存儲系統(過去涉及數百個主軸)將來可能會被少量類似SSD的設備所取代。我們的工作代表了理解和優化此類系統性能的一步。