
我瀏覽了維基百科和其他網站,這是我獲得的資訊。
部門:最小可尋址單元(大部分為 512 位元組)
簇:最小分配單元(等於1個或多個磁區,簇數取決於檔案系統)。
讓我們在下面的例子中說:扇區= 512 字節,簇= 8 扇區= 4096 位元組。現在,我很難弄清楚,當我嘗試建立文件時,文件系統會做什麼?它認為4096位元組是最小的寫/讀單元還是512位元組?
如果答案是 4096 位元組: 當磁碟機製造商提供了512位元組作為最小可尋址單元時,為什麼檔案系統會將簇視為最小單元?我的意思是,這樣做有什麼好處?
答案1
將簇/分配單元/區塊視為最小單元的檔案系統的優點是因為對整個磁碟進行尋址每個扇區將需要更多的位元來索引所有內容。位數越多,速度就越慢,因為有更多的地址和需要追蹤的內容。對於設備的每次訪問,使用 48 位元 (2^48 = 2.8e14) 來定址(和索引!)位置比使用 64 或更多位元 (2^64 = 1.8e16) 更有效。
但是,是的,簇大小或分配單元大小(Windows)或區塊大小(Linux)是可以根據定義的檔案系統進行調整的,這是可以的最小大小通常情況下由作業系統存取以儲存檔案資料。 「定義檔案系統」意味著格式化磁碟(或該格式的規格),因此表示擦除磁碟上的所有資料。因此,在簇大小為 4kiB 的磁碟上,一個 1 位元組檔案確實會佔用整個 4k 簇,如您的範例所示。是的,作業系統可以寫入該簇內的某個特定扇區,但該檔案仍將使用該簇的相同扇區(檔案大小始終是簇大小的倍數,無論其中有什麼資料。)簇大小,意味著重新格式化磁碟,這就是必須刪除所有資料的原因。
順便說一句,較小的簇大小可以更有效地儲存小檔案。但是,由於叢集數量增加,磁碟總體運行速度會變慢。當你的電腦長時間坐在磁碟上磨蹭時,這是因為它試圖讀取或寫入如此多的小塊,而它們的數量之多會減慢一切。
例如:100,000 個 768 位元組的文件,儲存在具有 1kiB 簇的磁碟上:
768kB 位元組的實際文件數據
使用 1.024MB 的磁碟空間,因為每個檔案使用 1024 位元組的磁碟空間。
空間效率=0.768/1.024=75%(還不錯…)
同樣,對於磁碟上檔案較少但較大的檔案(如電影、影像和音訊)來說,較大的叢集更好。由於簇較少,磁碟通常速度較快。但要小心在上面放很多小文件:
例如:100,000 個 768 位元組的文件,儲存在具有 64kiB 簇的磁碟上:
768kB 位元組的實際文件數據
使用 6.55GB 的磁碟空間,因為每個檔案使用 65535 位元組的磁碟空間。
空間效率=0.768/6553.5=0.00017%!
具有混合內容的磁碟(例如作業系統)通常具有中到小型的簇/區塊大小,因為大多數檔案的大小都是中到小型的。最終結果是空間利用率和速度之間的折衷。
磁碟本身更喜歡 32kB 到 256kB 的區塊,因為這允許它們每秒傳輸最多的資料。
這一切都與傳統的機械旋轉盤磁存儲硬碟有關。 SSD 或固態硬碟正在快速取代傳統硬碟,並擁有更快的讀/寫/尋道速度。那麼,如今的 SSD 簇大小重要嗎?好吧,我想說這對普通用戶來說不太重要,但這只是因為 SSD(和現代電腦)已經快得多了。當 SSD 已經比磁性硬碟快 5 倍時,誰會注意到 SSD 速度降低了 10%?
對 SSD 上的簇大小影響更大的是吞吐量。您可能會發現(透過格式化和基準測試)特定的叢集大小有效遠的該 SSD 比其他產品更好。例如,某些 SSD 針對 8kiB 或 4kiB 傳輸進行了最佳化。這與內部電子設備準備根據請求傳輸的資料區塊大小有關。將作業系統嘗試使用的內容(叢集大小)與 SSD 的最佳大小相符 = 最快的傳輸速度。
然而,由於 SSD 上的文件「開銷」原因,簇大小仍然很重要。
答案2
扇區大小由製造商定義。
現在我們可以看到兩種磁區大小。 512b 或 4Kb
2010年以前硬碟扇區大小:512b
2010年後製造商開始生產HDD 4K以捍衛品牌。
現在到了 2018 年,超過 70% 的用戶使用 512b 扇區大小。
很少有硬碟製造商提供自己的工具來更改磁區大小。
Cluster(對於FAT)與BLOCK(對於Linux)系統相同。
它包含一個或多個磁區
檔案系統僅處理簇(或區塊)。
由製造商提供的邏輯磁區稱為本機磁區。
使用者只能透過格式或分割工具來變更實體磁區(=簇或區塊大小)。
邏輯磁區/實體磁區=512/4096=製造商磁區/使用者磁區=無法變更/更改