Ext4
Ext4 文件系統上的碎片整理選項
我有以下設備,筆記型電腦上有Linux Mint 18.1 ,伺服器上有GNU/Linux Debian 9。
(所有都是 64 位和 Cinnamon 桌面。)
所有驅動設備都使用ext4 文件系統格式化;RAID 1是利用
mdadm
.
- 帶 1 個SSHD的筆記型電腦(不要與 HDD 混淆)。
- 帶 3 個驅動器的筆記型電腦:2 個RAID 1中的消費類 HDD和 1 個 SSD。
- 帶 5 個驅動器的伺服器:4 個企業級 HDD,2 個RAID 1和 1 個 SSD。
我在這些 SSD 上有系統,我永遠不會對 SSD 進行碎片整理。
問題是關於 HHD 和 SSHD。
我發現了一個舊的 PDF,其中概述了
e4defrag
.
- 為什麼必須安裝文件系統,在嘗試對未安裝的文件系統進行碎片整理時根據此錯誤消息?我想了解為什麼會這樣:
Filesystem is not mounted
- 我想實施可用空間碎片整理。AFAIK 現在正在審查中。我是否可以
e4defrag
使用這些可用選項或無論如何從原始碼編譯?e4defrag -f /deviceOrDirectory
- 我還想使用相關數據功能:
e4defrag -r /deviceOrDirectory
我有很多相關的理由相信這些機器上的碎片會降低讀取速度,例如:
- 從帶有RAID 1硬碟的伺服器獲取:
[2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100% extents: 16 -> 1 [ OK ]
- 取自帶有RAID 1硬碟的筆記型電腦:
[29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4: 100% extents: 31 -> 6 [ OK ]
如您所見,碎片整理甚至無法將 31 個塊文件合併為 1 個。當然你可能會說它是一個電影文件,所以沒關係。沒錯,但僅在這種情況下。
我用來啟動碎片整理的命令:
- 在伺服器上:
sudo e4defrag -v /dev/md1
- 在筆記型電腦上:
sudo e4defrag -v /raid1/
我是否使用設備名稱或目錄呼叫命令似乎並不重要。
你能指出我正確的方向嗎?
e4defrag
需要掛載文件系統,因為它要求核心的文件系統驅動程序執行碎片整理,它自己不會這樣做。至於空閒空間碎片整理和相關文件碎片整理,更新檔從未完成;相關郵件列表中的最後一次提及可以追溯到 2014 年:
在
e4defrag
中e2fsprogs
,並且程式碼仍在得到維護和改進。Dmitry Monakhov 特別添加了許多“酷刑測試”,並在底層核心程式碼中發現了許多競爭條件。他最近還發送了核心程式碼的程式碼重構,顯著改進了它並且(將 ext4 的大小縮減了 550 行程式碼)。
e4defrag
話雖如此,在相當長的一段時間內還沒有任何真正的功能開發 。已經有一些關於核心 API 可能支持此功能的討論,但從來沒有最終的 API 提案,更不用說實現了。所以我懷疑目前有什麼值得測試的。