Centos

CentOS 7、RAID-1 和 SSD 性能下降

  • June 30, 2018

我正在準備在 Gigabyte AORUS X299-GAMING-3 主機板上使用 64GB RAM 建構的 PC,訂購用於 Cent OS 7,在一對英特爾 545 系列 SSDSC2KW512G8X1 SSD 上使用 RAID-1。該配置沒有 PCIe RAID 硬體控制器,因此我將使用 Intel 的 RST。

由於 CentOS 停止記錄 v7,我訪問了 Red Hat 文件,並能夠在https://access.redhat.com/solutions/2801341找到一個與我有關的警告:

不建議在 SSD 上使用軟體 RAID 級別 1、4、5 和 6。在這些 RAID 級別的初始化階段,一些 RAID 管理實用程序(例如 mdadm)寫入儲存設備上的所有塊以確保校驗和正常執行。這將導致 SSD 的性能迅速下降。

使用英特爾的 RST RAID 的 RAID-1 是否也會遇到這個問題?

RST/TRIM 研究

我沒有這方面的第一手經驗,但我能夠找到這篇文章,其中討論了在 RAID-1 配置中設置 SSD 時,TRIM 是問題/關注的一部分。

您可能會注意到 RAID 1 配置中固態驅動器 (SSD) 的讀/寫速度會隨著時間的推移而降低。如果重新安裝作業系統或重新映像系統,問題將暫時解決。

垃圾收集的過程涉及到快閃記憶體的讀取和重寫數據。這意味著來自主機的新寫入將首先需要讀取整個塊,寫入仍然包含有效數據的塊部分,然後寫入新數據。隨著時間的推移,這會顯著降低系統的性能。如果您需要確認 TRIM 是導致 RAID 1 中 SSD 寫入速度下降的原因,您可以重新映像驅動器(在 RAID 卷之外)並重新測試寫入速度。所有 SSD 的預期寫入速度因型號而異。

… 在 Linux 中,fstrim 提供了此功能,使驅動器為要寫入的新數據做好準備,並長期延長驅動器的使用壽命。由於在我使用的 Linux 發行版上修整 SSD 不是自動的,因此必須對其進行調度,否則 SSD 的性能會隨著時間的推移而下降。

然後文章繼續展示如何做到這一點:

$ mount -t ext4 -o discard /dev/sda2 /mnt
$ sudo fstrim / -v

然後可以使用這種方法將這種修整合併到 CRON 作業中。搜尋更多內容讓我找到了 Arch Linux 的 SSD 維基。有fstrim.service提到。

util-linux 包提供 fstrim.service 和 fstrim.timer systemd 單元文件。啟用計時器將每週啟動服務。該服務在支持丟棄操作的設備上的所有已安裝文件系統上執行 fstrim(8)。

假設這些服務正常工作,我會假設正在針對系統上支持 TRIM 的任何 SSD 正確完成修整。

MD RAID TRIM 支持

為了嘗試在棺材中放置更明確的釘子,我搜尋了“raid linux trim support”,這使我找到了這個 AU Q&A,標題為:如何設置 SSD raid 和 TRIM 支持

那裡的答案有點過時,但仍然包含一些關於如何進行的有用線索。看看 MD RAID 是否支持 DISCARD 和 TRIM 支持引導我了解下一個技巧。

MD RAID 確實支持 DISCARD/TRIM

SU 問答題為:在 SSD 上使用軟體 md-raid 實現 Linux fstrim,Michael Hampton 的回答指出:

大約一年前,mdraid RAID 1 和 10 支持 TRIM 的更新檔增加了。

然後他繼續展示如何確認對此的支持:

您可以通過使用丟棄選項(啟用自動 TRIM)掛載文件系統來測試核心的支持。如果支持,您將在 syslog 或 dmesg 中看到如下消息:

EXT4-fs (md1): re-mounted. Opts: discard,data=ordered

否則你會得到這個:

EXT4-fs warning (device md1): ext4_issue_discard:2619: discard not supported, disabling

您無需重新啟動即可查看它是否正常工作:

mount /dir -o remount 

結論

因此,假設您的 SSD 支持 TRIM/DISCARD,該警告似乎在這些更新檔之前已過時並且不再適用。

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