Software-Raid

每週 RAID 檢查會影響我的系統 - 有什麼方法可以緩解?

  • May 12, 2022

我最近讓我的網路主機 (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 速度變慢。

  1. 有必要每週執行這些嗎?
  2. 200MB/秒 * 18 小時意味著它正在處理整個 16TB,而不僅僅是佔用的空間。這可以以任何方式變得更智能/更懶惰,所以它只在佔用的空間上執行嗎?
  3. 這份工作可以是niced 或類似的嗎?我很感激這需要更長的時間,但這可能更可取。 請參閱下面的編輯
  4. 腳本暫停會是一個壞主意嗎?所以我可以(比如說)每晚 3 小時,而不是一次點擊 18 小時?
  5. 這是每個人都會遇到的問題,還是我做了一些錯誤的決定?例如,安裝硬體突襲卡會讓我更快樂嗎?

編輯

我現在已經發現/etc/sysconfig/raid-check並更改NICE=lowNICE=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 卡會讓事情變得更好。

引用自:https://serverfault.com/questions/1100760