為什麼將分割區限制設為整個 MB 值似乎是一個好習慣?

為什麼將分割區限制設為整個 MB 值似乎是一個好習慣?

最近,我搬到了一個新的硬件,帶著學習事情如何改變和現在工作的所有樂趣和瑣事。

當我遇到使用 gparted 重新/分區任務自動選擇將分割區限制設為整個 MB 值,因此偶爾會在分區之間留下小間隙。

現在我想知道:

因為它只是我的分區開始或結束的任意數字(特別是當考慮內部帶有低階儲存控制器的 SSD 時),

為什麼在驅動器上留下這些間隙似乎是一個不錯的選擇

乾杯

答案1

這與分區對齊有關。本質上,在幕後,您的硬碟被分成多個磁區。每當硬碟執行一項操作時,它都會立即作用於整個磁區;也就是說,當它讀取某個磁區中儲存的任何資料時,它必須讀取整個磁區。如果資料分為多個磁區,則必須讀取每個磁區的全部內容。分區上的檔案系統還將可用空間分配為區塊(區塊的大小通常是檔案系統建立時的可調參數;對於主要由小檔案組成的FS,您將使用較小的區塊大小,主要用於某些目的)如果檔案大小小於區塊大小,則區塊的其餘部分將被浪費,但是區塊大小越小,尋址所有檔案的表就越大。

現在本質上您需要檔案系統區塊和磁碟區對齊 - 一個應該適合另一個而沒有剩餘,最重要的是它們應該從同一位置開始,因此不存在部分重疊。假設您的磁碟區大小為 4kb,檔案系統的區塊大小為 1kb。如果您的分割區從磁區開頭的一個小偏移處開始- 即使它只有幾個位元組- 檔案系統中的每四個區塊實際上都會分成兩個磁區,因此每次互動時都必須在磁碟上讀/寫這兩個磁區與那個區塊。這相當於 25% 的開銷,很快就會導致效能大幅下降。如果您的FS 分配區塊大小與HD 磁區大小相同(兩者都為4k 並不是不合理)且您有此偏移量,則每次讀取/寫入都會遇到此問題,這將對效能產生巨大影響。

為了避免這種情況,我們保守地將分割區的開頭與兆位元組邊界對齊(因為即使在幾年後,無論我們擁有多大的驅動器,兆位元組仍然應該是區塊/磁區大小的好倍數)。如果分割區大小不完全匹配並且完全在兆位元組邊界上結束,這可能會導致磁碟上出現微小的「間隙」。磁碟的開頭總是留有一個間隙,因為磁碟上的前幾個磁區被保留用於其他目的。

https://www.thomas-krenn.com/en/wiki/Partition_Alignment更具體地描述了該問題。然而,正如所指出的,與現代磁碟的大小相比,損失的空間非常小。

答案2

為什麼在驅動器上留下這些間隙似乎是一個不錯的選擇?

這似乎是“保護帶”的使用。
有時我會看到(故意的?)分區末尾的最後一兩個磁軌未分配。
理論上它們應該不是必需的。

對於硬碟驅動器,分區過去被分配為在柱面邊界上開始。這種分配將最大限度地減少分區內的查找次數,從而改善整體訪問時間。
但如今,HDD 使用區域位記錄,分區程式實際上不知道實際的驅動器幾何形狀以及物理柱面的位置,因此任何「柱面對齊」本質上都是毫無意義的。

對於固態硬碟來說,需要分配分區來佔據整數個擦除區塊。由於NAND 快閃記憶體晶片以2 的冪來調整其R/W 磁區和頁面以及擦除區塊的大小,因此以2 的大冪(例如1 兆位元組)為單位調整SSD 分割區的大小和對齊方式,假定包含整數個此類頁面/區塊。

相關內容