我想在 Linux KVM 主机上设置一个包含 3 个 1TB 驱动器的 RAID 5。该 RAID 将用作 VM 磁盘的 LVM 精简存储。
关于硬件 RAID 与软件 RAID 的比较,已经有很多讨论 [1]。根据这些讨论,对于虚拟机磁盘存储,不应使用软件 RAID,而应使用带缓存和 BBU 的硬件 RAID,因为其写入性能更佳。
我想知道的是,在读/写性能和数据安全性方面,以下设置在读/写性能和数据安全性方面是否可以与具有缓存和 BBU 的硬件 raid(例如 HP P410 512 MB + BBU)相媲美:
- Linux 软件 RAID/mdadm RAID 5
- 512 MB RAM 磁盘上的 LVM 写回缓存
- 主机由 UPS 支持,以防止数据丢失,如硬件 raid 上的 BBU
答案1
以上均无!您确实需要查看 Linux 上的 ZFS。
https://www.reddit.com/r/zfs/comments/514k2r/kvm_zfs_best_practices/
完美的讨论,大量的链接。
答案2
这是一个古老但仍然有意义的问题。
Linux 软件 RAID/mdadm RAID 5
“普通” MD RAID5 硬盘或消费级 SSD 会比较慢。为了获得良好的性能,有使用具有断电保护的写回缓存 SSD 或使用 RAID 日志设备(本身位于快速、具有断电保护的 SSD 上)。
512 MB RAM 磁盘上的 LVM 写回缓存
在 RAM DISK 上写回将是一个坏主意:如果断电,您将完全损坏卷。更好的方法是简单地禁用屏障/同步写入,将内核置于“写入”模式(参见这里描述write_cache
)。 断电将要导致数据丢失,但希望不会像丢失整个写回设备那样造成灾难性后果。
主机由 UPS 支持,以防止数据丢失,如硬件 raid 上的 BBU
电力流失将要会发生这种情况。UPS 是第一道防线,但不应成为唯一防线。
你可以做什么:
- 使用
lvmcache
快速、企业级、断电保护的 SSD 来缓存您的慢速池。如果使用单个 SSD,请选择 LVMwritethrough
,而如果使用 SSD RAID1 对,则可以选择 LVMwriteback
(但请务必了解您正在做什么)。注意:您可能希望使用 LVMcache
而不是 LVMwritecache
(后者适用于更具体的用例); - 使用带有 L2ARC 和 SLOG 设备的 ZFS。这是我推荐的设置:您可以为 L2ARC 使用以读取为中心、快速但便宜的设备,为 SLOG 使用更昂贵、具有断电保护的 SSD(镜像对为了实现最大可靠性,使用此类 SLOG 设备是一个好主意。
不管怎样,我运行了许多具有上述 ZFS 设置的系统,并且我对它们的性能、可靠性和数据正确性保证感到非常满意。