4k對齊和SSD寫入放大

2021-09-23 19:40:00 字數 2753 閱讀 1601

前段時間學習了一下linux下io排程,突然想起4k對齊和寫入放大,就合一起作個筆記。

4k對齊

早期硬碟每個扇區以512位元組為標準,新一代硬碟扇區容量為4096個位元組,也就是所說的4k扇區。

硬碟標準更新,但作業系統一直使用的是512位元組扇區的標準,所以硬碟廠商為了保證相容性,把4k扇區模擬成512位元組扇區。

通常檔案系統的塊(簇)是512位元組的倍數,新的系統基本上都設成了4k的倍數。比如linux的簇一般也是4k。

簇到扇區的對映關係變成了簇(4k)->512b扇區->4k扇區

這就可能造成簇到扇區對映錯位。

圖中,顏色相同的8個塊對應現在的4k扇區,每塊512b,系統塊為16k,圖中的對映方式明顯讓塊讀取需要的扇區多出了乙個。(對齊時只需要4個扇區)

顯然,錯位會造成讀取檔案時需要硬碟讀取更多的扇區。所以才有了4k對齊一說。

如何檢視系統是否4k對齊:

windows下,開始-執行-「msinfo32」-進入系統資訊

展開 組建-儲存-磁碟,檢視裡面的分割槽起始偏移。

如果起始便宜正好是4k(4096位元組)的倍數,說明4k對齊。

linux下,使用fdisk -lu命令。

1disk/dev/xvda: 21.5 gb, 21474836480 bytes

2255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors

3units = sectors of 1 * 512 = 512 bytes

4sector size (logical/physical): 512 bytes / 512 bytes

5i/osize (minimum/optimal): 512 bytes / 512 bytes

6disk identifier: 0x0007ce89

7

8device boot      start         end      blocks   id  system

9/dev/xvda1*        2048    41943039    20970496   83  linux

可以看到start的值,這顯示的是對應扇區的起始位置。這裡的扇區指的是512b大小的扇區。所以,如果起始扇區值是8的倍數,則說明磁碟4k對齊。

命令中u是讓分割槽表用扇區值

when listing partition tables, give sizes in sectors instead of cylinders.

寫入放大(write amplification)

由於快閃儲存器必須先擦除才能再寫入的特性,如果需要在寫入錢清理被刪除的資料,則需要把整個分塊讀出,然後擦除整個塊,再寫回去。

舉個最簡單的例子:當要寫入乙個4kb的資料時,最壞的情況是乙個塊裡已經沒有乾淨空間了,但有無效的資料可以擦除,所以主控就把所有的資料讀到快取,擦除塊,快取裡更新整個塊的資料,再把新資料寫回去,這個操作帶來的寫入放大就是:實際寫4k的資料,造成了整個塊(共1024kb)的寫入操作,那就是放大了256倍。同時還帶來了原本只需要簡單一步寫入4kb的操作變成:快閃儲存器讀取 (1024kb)→快取改(4kb)→快閃儲存器擦除(1024kb)→快閃儲存器寫入(1024kb),共四步操作,造成延遲大大增加,速度變慢。所以說wa是影響 ssd隨機寫入效能和壽命的關鍵因素。

為什麼寫可以4k,而擦除只能乙個塊得擦:

快閃儲存器的基本單元電路,與eeprom類似,也是由雙層浮空柵mos管組成。但是第一層柵介質很薄,作為隧道氧化層。寫入方法與eeprom相同,在第二級浮空柵加以正電壓,使電子進入第一級浮空柵。讀出方法與eprom相同。擦除方法是在源极加正電壓利用第一級浮空柵與源極之間的隧道效應,把注入至浮空柵的負電荷吸引到源極。由於利用源極加正電壓擦除,因此各單元的源極聯在一起,這樣,快擦儲存器不能按位元組擦除,而是全片或分塊擦除。 到後來,隨著半導體技術的改進,快閃儲存器也實現了單電晶體(1t)的設計,主要就是在原有的電晶體上加入了浮動柵和選擇柵,

為什麼ssd會越用越慢?ssd的特性決定了它的寫入方式,不能直接覆寫資料使得ssd多了擦除的操作,而寫入單位與擦除單位的不統一又讓ssd不停地在各個block區塊之間折騰。通常寫入資料的延遲約為0.2ms,但擦除操作需要2ms左右,ssd用久了需要擦除的區塊就會越多,效能自然也會變慢。

SSD固態硬碟 4K對齊

揭秘4k對齊 和機械硬碟不同,固態硬碟 ssd 不能直接在乙個已有資料的儲存區內覆蓋寫入,而是先將原位置的資料擦除,再寫入新資料。因此它的日常流程,其實就是 讀 擦 寫 在固態硬碟中,最小的讀寫單位被稱為 頁 最小的擦除單位被稱為 塊 通常乙個頁的尺寸就是 4k。由於分割槽偏移尺寸一直是從63扇區開...

什麼叫4K對齊 如何進行硬碟4K對齊?

什麼是叫做4k對齊?其實 4k對齊 相關聯的是乙個叫做 高階格式化 的分割槽技術。高階格式化 是國際硬碟裝置與材料協會為新型資料結構格式所採用的名稱。這是主要鑑於目前的硬碟容量不斷擴充套件,使得之前定義的每個扇區512位元組不再是那麼的合理,於是將每個扇區512位元組改為每個扇區4096 個位元組,...

硬碟4k對齊教程總結

4k對齊概念 4k對齊相關聯的是乙個叫做 高階格式化 的分割槽技術。首先先來了解一下什麼是叫做 4k 對齊 其實 4k對齊 相關聯的是乙個叫做 高階格式化 的分割槽技術。高階格式化 是國際硬碟裝置與材料協會為新型資料結構格式所採用的名稱。這是主要鑑於隨著時代發展,硬碟容量不斷擴充套件,使得之前定義的...