LVM2 與 MDADM 性能
我在很多機器上使用 MDADM + LVM2 已經有一段時間了。MDADM 用於 RAID0 和 RAID1 陣列,而 LVM2 用於 MDADM 之上的邏輯卷。
最近我發現 LVM2 可以在沒有 MDADM 的情況下使用(因此減去一層,結果 - 更少的成本)用於鏡像和剝離。
但是,有些人聲稱,鏡像陣列的 LVM2 上的讀取性能不如 MDADM(RAID1)之上的 LVM2(線性)快,因為 LVM2 一次不會從 2 個以上的設備讀取,而是在第一個設備故障的情況。MDADM 一次從 2 個設備讀取(即使在鏡像模式下)。
誰能證實?
我敢打賭,即使是 LVM 作者也不使用 LVM 的 RAID 工具。MD 效率更高、更成熟、更完整;並且有更多的開發致力於它。
“更少的層 - 更少的成本”通常是不正確的。即使 CPU 可能需要更長的時間才能到達磁碟,這也將完全被 MD 的任何與磁碟相關的小改進所克服,其中很多。
我已經修改了 LVM2 的鏡像支持,我可以說:它並不是真的要取代 RAID1。
LVM2 鏡像的真正用途是在卷之間傳輸數據。假設您有一個驅動器發生故障,並且您想從 A 點(處於危險之中)獲取數據到 B 點(這是安全的)。LVM2 鏡像功能的重點是自動將數據複製到其他部分,同時允許正常 I/O 繼續進行。在“鏡像”被捕穫後,您打破鏡像並將數據重新安裝到新的安全位置。
它執行此操作的速度不及一流。就像,比直接 RAID1 慢 50% 以上。事實上,它太慢了,我可以看到屬於 LVM2 鏡像的兩個驅動器在不同時間閃動活動燈。但是如果您需要在物理位置之間轉移數據,它會透明地完成這項工作,這就是 LVM 的真正意義所在——在文件系統處於活動狀態時對儲存層進行透明管理。RAID 更多的是關於避免由於單點硬體故障而導致的數據失去。
“成本”的問題確實不存在。您將遇到的唯一真正問題是recovery,這本身就是一個文章。從損壞的文件系統中恢復數據很困難,從三層文件系統 (RAID/LVM/Ext4) 中恢復數據是 PITA。因此,確保驅動器正常 (SMART)、陣列正常 (mdadm)、卷組正常 (LVM2) 以及文件系統正常 (fsck) 非常重要。我已經經歷過一次,我寧願不再這樣做。