Ext4

Ext4 文件系統上的碎片整理選項

  • April 3, 2017

我有以下設備,筆記型電腦上有Linux Mint 18.1 ,伺服器上有GNU/Linux Debian 9

(所有都是 64 位和 Cinnamon 桌面。)

所有驅動設備都使用ext4 文件系統格式化;RAID 1是利用mdadm.

  1. 帶 1 個SSHD的筆記型電腦(不要與 HDD 混淆)。
  2. 帶 3 個驅動器的筆記型電腦:2 個RAID 1中的消費類 HDD和 1 個 SSD。
  3. 帶 5 個驅動器的伺服器:4 個企業級 HDD,2 個RAID 1和 1 個 SSD。

我在這些 SSD 上有系統,我永遠不會對 SSD 進行碎片整理。

問題是關於 HHD 和 SSHD。

我發現了一個舊的 PDF,其中概述了e4defrag.

  1. 為什麼必須安裝文件系統,在嘗試對未安裝的文件系統進行碎片整理時根據此錯誤消息?我想了解為什麼會這樣:
Filesystem is not mounted
  1. 我想實施可用空間碎片整理。AFAIK 現在正在審查中。我是否可以e4defrag使用這些可用選項或無論如何從原始碼編譯?
e4defrag -f /deviceOrDirectory
  1. 我還想使用相關數據功能:
e4defrag -r /deviceOrDirectory

我有很多相關的理由相信這些機器上的碎片會降低讀取速度,例如:

  1. 從帶有RAID 1硬碟的伺服器獲取:
[2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100%  extents: 16 -> 1  [ OK ]
  1. 取自帶有RAID 1硬碟的筆記型電腦:
[29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4:  100%  extents: 31 -> 6  [ OK ]

如您所見,碎片整理甚至無法將 31 個塊文件合併為 1 個。當然你可能會說它是一個電影文件,所以沒關係。沒錯,但僅在這種情況下。

我用來啟動碎片整理的命令:

  1. 在伺服器上:
sudo e4defrag -v /dev/md1
  1. 在筆記型電腦上:
sudo e4defrag -v /raid1/

我是否使用設備名稱或目錄呼叫命令似乎並不重要。

你能指出我正確的方向嗎?

e4defrag需要掛載文件系統,因為它要求核心的文件系統驅動程序執行碎片整理,它自己不會這樣做。

至於空閒空間碎片整理和相關文件碎片整理,更新檔從未完成;相關郵件列表中的最後一次提及可以追溯到 2014 年

e4defrage2fsprogs,並且程式碼仍在得到維護和改進。Dmitry Monakhov 特別添加了許多“酷刑測試”,並在底層核心程式碼中發現了許多競爭條件。他最近還發送了核心程式碼的程式碼重構,顯著改進了它並且(將 ext4 的大小縮減了 550 行程式碼)。

e4defrag話雖如此,在相當長的一段時間內還沒有任何真正的功能開發 。已經有一些關於核心 API 可能支持此功能的討論,但從來沒有最終的 API 提案,更不用說實現了。

所以我懷疑目前有什麼值得測試的。

引用自:https://unix.stackexchange.com/questions/355530