tft每日頭條

 > 科技

 > 固态硬盤真有那麼好

固态硬盤真有那麼好

科技 更新时间:2024-09-27 08:56:12

[PConline資訊]對于上班一族來說,每天離不開的估計是電腦跟手機,而電腦當中存儲文檔跟數據重要介質則是硬盤,随着固态硬盤普及,估計有不少上班一族的辦公電腦換上固态硬盤,固态硬盤作為大家常接觸“小夥伴”,大家真的了解嗎?

自從2005年開始,三星作為第一個進入固态硬盤市場的巨頭。直到現在短短的15年間,固态硬盤已經成為消費級的主流儲存介質。相對于傳統的機械硬盤,固态硬盤的性能能達到機械硬盤的十倍甚至更多。

不管是普通的SATA固态硬盤,還是NVMe固态硬盤,對于普通消費者來說,隻是介質和性能上的變化,甚至有人會簡單的認為,隻要使用了固态硬盤,讀寫速度會有非常大的提升,但這真得是這樣嗎?

固态硬盤真有那麼好(固态硬盤普及的今天)1

固态硬盤構成知多少?

對于固态硬盤來說,最主要的兩個部分就是硬盤顆粒和主控部分,如今的主流固态硬盤使用的基本都是NAND顆粒來存儲數據。每個顆粒可以存儲1bit(SLC),2bit(MLC),3bit(TLC)和4bit(QLC)數據。存儲顆粒的位數越多,就代表密度越高,制造成本更低。但相對而言,顆粒的使用壽命也會更低。硬盤的擦寫次數就更少。

而固态硬盤讀取和寫入的最小單元并不是顆粒而是由一組顆粒組成的頁(Page)。典型的頁的大小是4KB。固态硬盤有一個重要特性,是顆粒一旦被寫入,就無法類似于機械硬盤一樣直接覆蓋寫入,所以為了能反複使用,固态硬盤就需要對已經寫入過的顆粒進行發出操作。而擦除的最小單元既不是顆粒也不是頁,而是由若幹個頁組成的塊(塊)。塊的典型大小是512KB或者1MB,也就是128Page。所以固态硬盤的優化手段,都跟這些基本的特性有着密切的關系。

固态硬盤真有那麼好(固态硬盤普及的今天)2

硬盤中數據操作和垃圾回收(GC)到底是什麼?

任何硬盤數據操作包括讀和寫,其中讀延時相對穩定,而寫延時會發生一些變化,具體情況取決于磁盤的使用情況。正常情況下都是幾十微秒。與傳統的機械硬盤相比,固态硬多了一個擦除的操作。固态硬盤中的垃圾回收就是用于回收那些已經使用過的,但是數據不再有效的那些塊。硬盤的主控中會設置一個可用塊數量的阈值,當可用塊低于這個阈值的時候就會啟動垃圾回收。

損耗均衡(WearLeveling)和寫放大(WriteAmplification)。固态硬盤block可執行有限次數的擦除操作,也稱之為編程/擦寫(P/E)周期,當寫入非常頻繁時,擦除操作發生得更頻繁。一旦達到P/E最大數量,這個block就不再能寫入了。

對于SLC,可擦除次數通常是10萬次,MLC通常是1萬多次,而對于TLC塊,則是幾千。為了确保容量可用和寫延時性能,固态硬盤控制器需要平衡各個block的擦除次數,這是固态硬盤控制器的核心工作之一,也稱為“損耗均衡”機制。

在損耗均衡期間,數據會在各個block之間移動,然後進行擦除。由于擦除的是不再有效的數據,而移動的是有效數據,因此固态硬盤中有效數據通常會大于實際寫入的數據,這稱之為寫放大WA(WriteAmplification)。

固态硬盤真有那麼好(固态硬盤普及的今天)3

以上這些操作基本上都是通過主控芯片來實現,主控芯片絕對不是很多人想象的找個顆粒把數據寫入,需要的時候再讀取那麼簡單。讀寫尋址、數據塊的擦除、寫放大的控制、損耗如何均衡等等,這些都是通過主控芯片實現的,這背後的具體原理都是通過很多邏輯電路實現的,具體原理就不做過多解釋了。

固态硬盤對比機械硬盤有何差異?

固态硬盤這種存儲介質和傳統的機械硬盤有着典型差異,存儲系統也要針對固态硬盤有針對性的優化,這些優化效果體現在很多仿麥呢,包括性能的提上、硬盤使用效率的提升、硬盤使用壽命的延長等方面都是通過主控實現的。

在機械硬盤時代,機械硬盤的延時在毫秒級别,幾乎可以抹殺掉網絡延時帶來的影響,所以隻要保證網絡協議、網絡交互的優化,應用程序大可以訪問遠端的機械硬盤,但是固态硬盤的延時已經到了微秒級别,除非使用極低延時的高性能網絡,否則訪問遠端的固态硬盤數據的延時會明顯收到影響。

對于分布式存儲而言,必須一方面在數據分散放置的同時,盡可能地利用本地固态硬盤的能力,即在數據放置策略上做權衡。在這方面,我們結合元數據放置算法和策略,對YRCloudFile分布式文件系統的元數據采用了一部分的本地化固态硬盤訪問,還将推出智能緩存技術,這将大量熱數據緩存在指定的固态硬盤本地設備中,進一步降低訪問延時。

固态硬盤真有那麼好(固态硬盤普及的今天)4

控制硬盤存儲使用量。再垃圾回收期間,需要擦除擦除存儲塊後創建空閑的存儲塊。擦除block需要保留在block内保存着有效數據的page,才能獲得空閑block。創建一個空閑block可能需要壓縮和挪動多個block内的page,具體數量取決于block的存儲度。

假設固态硬盤容量已使用A%,為了擦除一個block,需要挪動和壓縮1/1-A個block。顯然,固态硬盤的使用率越高,将需要移動更多的block以釋放一個block,這将占用更多資源并導緻更長的IO等待時間。例如,如果A=50%,則僅壓縮2個block以釋放一個block。如果A=80%,則大約移動5個block數據以釋放一個block。如果考慮上block的page,需要操作的數據則更加驚人,假設每個塊都有P個page,并且所有page都包含有效數據,則每次GarbagedCollected都需要複制PA/1-A個page。如果每個block包含128個page,當A=50%時,每個blcok都需要複制128個page,而當A=80%時,則為512個page,當A=95%時,則達到2432page。

使用多線程進行小I/O訪問。因為固态硬盤具有多個級别的内部并行處理機制。單個I/O線程是無法充分利用這些并行特性額,使用單個線程進行I/O訪問,會導緻整體訪問時間延時更長。而使用多個線程并發訪問,則可以利用固态硬盤内部這些并發特性。

固态硬盤上對本機命令隊列的支持可以有效地再多個channel之間分配讀寫操作,從而提高内部I/O并發性。所以上層應用活存儲系統盡可能并發訪問小I/O是能提升讀寫性能的。如果針對單個應用很難進行多線程并發,則可以考慮多個應用對數據的并發訪問,從而充分利用硬盤的并發特性。

固态硬盤真有那麼好(固态硬盤普及的今天)5

總結

據悉,固态硬盤已經被存儲系統大量使用通常采用固态硬盤的存儲系統會比使用機械硬盤的存儲系統具有更好的性能。但是在不經過針對性優化時,單純地将固态硬盤視為一個普通的存儲設備使用,不能充分發揮出固态硬盤,尤其是NVMe的極緻性能。這是因為固态硬盤的工作原理與普通的機械硬盤有較大的差異,訪問特性上也不同。為了充分利用固态硬盤帶來的性能優勢,現代的存儲系統,尤其是分布式存儲系統都需要對固态硬盤做針對性的優化。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved