Software-Raid
每週 RAID 檢查會影響我的系統 - 有什麼方法可以緩解?
我最近讓我的網路主機 (Hetzner) 為我的網路伺服器添加了一個付費的 16TB SATA 驅動器。目前使用其中的 2.5TB。它們是 RAID 1 鏡像的。
我還有兩個 4TB nVME 驅動器,目前有 700GB,也鏡像了 RAID 1。
每週 CentOS 都會啟動一個 cronjob 來對我的兩個 md 陣列執行“檢查”。它們同時發生,nVME 在 5 小時後完成。SATA 需要痛苦的 18 小時,全程 200MB/秒。
# Run system wide raid-check once a week on Sunday at 1am by default 0 1 * * Sun root /usr/sbin/raid-check
我的伺服器非常強大,具有 32 核 EPYC 和 128GB 記憶體,但我確實注意到執行此檢查時 IO 速度變慢。
- 有必要每週執行這些嗎?
- 200MB/秒 * 18 小時意味著它正在處理整個 16TB,而不僅僅是佔用的空間。這可以以任何方式變得更智能/更懶惰,所以它只在佔用的空間上執行嗎?
- 這份工作可以是
nice
d 或類似的嗎?我很感激這需要更長的時間,但這可能更可取。 請參閱下面的編輯- 腳本暫停會是一個壞主意嗎?所以我可以(比如說)每晚 3 小時,而不是一次點擊 18 小時?
- 這是每個人都會遇到的問題,還是我做了一些錯誤的決定?例如,安裝硬體突襲卡會讓我更快樂嗎?
編輯
我現在已經發現
/etc/sysconfig/raid-check
並更改NICE=low
為NICE=idle
. 我想我要到下週才能知道這有什麼不同。
不,MD RAID 再聰明不過了。如果您只想檢查已使用的區域,請使用 ZFS,或者 BTRFS。
每週檢查太頻繁了。每月執行一次,甚至每隔一個月執行一次。
我不知道這個 NICE 到底做了什麼。如果它正在設置 I/O nice
$$ mdX_resync $$核心程序,很好用
idle
。您可以限制檢查的頻寬:它在/sys/block/mdX/md/sync_speed_max
文件中以 kB/s 為單位設置。這是一個虛擬文件,例如它會在系統重啟後被重置。 順便說一句,預設情況下它被限制在 200 MB/s,你似乎達到了這個限制。您可以提高 SSD 的速度(設置為 5000000 並查看何時檢查它們)。而不是為硬碟“暫停”它,我會玩限制(例如,在高負載期間我會設置下限,在空閒時間我會設置 600000 - SATA 6 Gb/S 介面最大頻寬)。我懷疑硬體 RAID 卡會讓事情變得更好。