最好使用 512kb 區塊或更小或更大的區塊將硬碟重新格式化為 exFAT?

最好使用 512kb 區塊或更小或更大的區塊將硬碟重新格式化為 exFAT?

我可以將全新的 2TB WD Passport 硬碟重新格式化為 exFAT,並可選擇多種「分配單元大小」:

128kb
256kb
512kb
1024kb
4096kb
16384kb
32768kb

如果該驅動器主要用於在 Windows 7 上使用 Media Center 錄製 HDTV 節目,那麼哪一款最好?謝謝。

這與問題相關: 是否最好將我們的外部硬碟重新格式化為 exFAT 以與 Mac 相容?

答案1

你首先應該明白什麼

分配單位大小(澳洲)

方法。

它是磁碟上最小的資料塊。您的實際資料在儲存到磁碟時將被分成該大小的單元。例如,如果您有一個大小為512KB你有128KB分配單元大小,您的文件將保存在4 單位在磁碟中(512KB/128KB)。

如果您的檔案大小是500KB你有128KB 澳大利亞,你的文件將仍然可以保存在4個單元中因為如上所述,128KB 是分配單元的最小大小。384KB將被分配在3個單元中,剩餘的116KB將被分配在最後一個單元中,該單元中的12KB將是空的。您可以在 Windows 上的檔案屬性對話方塊中觀察到此行為;您的檔案大小和該檔案在磁碟上實際佔用的空間是兩個不同的概念。作業系統在低階磁碟讀取操作中僅讀取分配單元大小的資料。

話雖如此,由於沒有完全使用最後一個分配單元,使用較大的 AUS 會顯著降低可用空間利用率。副作用是,由於相同的問題,儲存在磁碟上的檔案數量會減少:最後一個 AU 沒有被充分使用。但這裡有一個權衡:使用較大的 AUS 可以顯著提高磁碟讀取效能。作業系統可以一次讀取更多資料。想像一下,如果作業系統只需要進行幾次磁碟讀取就可以完全讀取一個 GB 大小的檔案!

使用較小的 AUS 可提高可用空間利用率,但會降低磁碟讀取效能。想想反向使用大AUS,相同類別的問題和改進,但反過來...

那麼,這裡的結論是什麼呢?如果您要在磁碟上儲存大型(我的意思是大型!)文件,較高的 AUS 將顯著提高讀取效能,同時減少文件數量和可用空間

您應該使用哪一個 AUS?這取決於您的平均檔案大小是多少。您也可以根據檔案大小計算可用空間利用率。

答案2

鑑於高清錄製是大文件,較大的分配單元(16384 或 32768 KB)將提供更好的性能。閒置空間(由於分配單元未完全使用而浪費的空間——檔案儲存在必須作為整個單元使用的分配單元中)的影響將受到少量檔案的限制。另一方面,如果您有許多較小的文件,請使用較小的分配單元來減少浪費的空間。

答案3

對於具有大量小檔案的檔案系統,請使用8 KB簇大小。對於僅包含大檔案(例如媒體)的檔案系統,請使用128KB集群。如果不確定,請使用8 KB簇大小。對於大於 128 KiB 的集群,速度提升可以忽略不計(請參見下面一組圖的左上圖),但如果您使用更大的集群,則可能會出現磁碟使用量增加的情況。

範例:對於我的情況,有大量小文件(剛剛超過 100 萬個文件,包括 74 GB):

  1. 8 KiB 簇大小-->82 GB 儲存空間我的 74 GB 數據已用完。
    1. 338MB寫入速度
  2. 128 KiB 簇大小-->194 GB 儲存空間我的 74 GB 數據已用完
    1. 390MB寫入速度
  3. 32 MiB 簇大小-->32768 GB (32.8 TB)(不!不是錯誤)儲存空間我的 74 GB 數據已用完。
    1. 428MB寫入速度

Microsoft 的簇大小預設值最大值也是 128 KiB。請參閱我的答案末尾的表格,來自 Microsoft。

研究一下我精心製作的這些圖。無論您擁有多少小文件,左上角的圖趨勢都適用,因為我通過將 5.3 GB 文件同步到 exFAT 外部 SSD 來進行這些測試,但其他三個圖因我擁有的小文件數量而加劇。右下角的對數線性趨勢適用於所有人,但其斜率以及 y 軸值取決於您擁有的小檔案數量。

在此輸入影像描述

如果有興趣的話,我在我的網站上有完整的文章:https://gabrielstaples.com/exfat-clusters/

完整的 Python matplotlib/numpy 繪圖程式碼在這裡:https://github.com/ElectricRCAircraftGuy/eRCaGuy_hello_world/blob/master/stack_exchange/format_exFAT_PLOTS.py


我並不是回答OP關於「錄製高清電視節目」的問題。我正在回答那些擁有大量小文件的人,包括進行完整磁碟備份,因為他們肯定也會登陸此頁面。


如果您有很多小文件,我會選擇盡可能小的分配單元。這可以避免小文件浪費空間。例如:在 exFAT 上使用 4 KiB 分配單元大小而不是 128 KiB。

我剛剛備份了74GB將 Apple APFS 檔案系統中的資料儲存到具有 exFAT 檔案系統的外部 SSD 上128 KB 分配單元大小(顯然是在 Linux Ubuntu 中使用 Gnome 磁碟格式化為 exFAT 時的預設設定),並且在外部磁碟機上,以前-74 GBAPFS 檔案系統上的資料現在佔據了巨大的194GB在 exFAT 檔案系統上!太瘋狂了!那是2.62倍佔用更多空間,毫無意義!

這是因為我有成千上萬的小文件,例如只有幾百個位元組。在具有 APFS 檔案系統的舊磁碟機上,這些將佔用一個512字節集群,並且在具有 exFAT 檔案系統的新外部磁碟機上,這些相同的 90 位元組檔案佔用了巨大的空間128KB簇,即128KiB * 1024 bytes/KiB / 512 bytes=256倍大exFAT 磁碟機上儲存小檔案所需的儲存空間。例如,將 128 KiB 分配單元減少到僅 4 KiB 將佔用 128/4 =空間減少 32 倍!

也可以看看

  1. 我的答案:Unix 和 Linux:從 Linux 建立並格式化 exFAT 分割區mkexfatfs- 我顯示了適用於 Linux Ubuntu 20.04和 Linux Ubuntu 22.04 的命令mkfs.exfat

  2. 我對如何確定您擁有的任何檔案系統的簇大小的回答:伺服器故障:如何找到叢集大小任何檔案系統,無論是 NTFS、Apple APFS、ext4、ext3、FAT、exFAT 等。

  3. [真的很有用]Support.Microsoft.com:NTFS、FAT 和 exFAT 的預設簇大小:

    exFAT 的預設簇大小

    下表描述了 exFAT 的預設簇大小。

    體積大小 Windows 7、Windows Server 2008 R2、Windows Server 2008、
    Windows Vista、Windows Server 2003、Windows XP
    7 MB–256 MB 4KB
    256 MB–32 GB 32KB
    32 GB–256 TB 128KB
    > 256 TB 不支援

答案4

基本上,您打算保留的檔案越大,您可能想要使用的每個分配單元的大小就越大 - 但不能太大或太小!我覺得龍王解釋得很好。

因此,如果浪費空間引起了您的注意,那麼您可能需要考慮使用不同的檔案系統。也許類似於 EXT4。問題是 Microsoft 作業系統(實際上是 Windows)無法與 FAT(vFAT、FAT32 等)或 NTFS 以外的任何檔案一起工作。如果您最終得到的檔案大於 4Gig,您可能會咒罵您可能使用的任何 FAT 類型系統。因此,我建議使用具有建議分配單元大小(我認為是 4K)的 NTFS 檔案系統。這樣,如果您最終得到的文件大於 4Gig,您仍然可以儲存您的巨型文件,至少直到您可以將它們分解或轉碼為更小的文件。 (我假設我們正在談論巨大的多媒體文件,這就是我提出「轉碼」的原因,因為我似乎總是在轉碼時找到使文件變小的方法,特別是如果它們是使用 MCE 錄製的。)

我認為使用 FAT(vFAT、FAT32、FAT16 等)的唯一原因是其他作業系統可以讀取/寫入儲存裝置上的檔案。 FAT 幾乎已被普遍接受。否則,我不建議使用FAT(除非裝置的容量為4Gig或更少)—至少對於Windows使用NTFS。您始終可以使用不同的檔案系統建立另一個分割區,即使它位於同一實體磁碟機上。希望能幫助你。

相關內容