RAID1主要使用磁盘

RAID1主要使用磁盘

我对 raid 驱动器的设置有点陌生。所以我当前的设置如下所示:

  • 磁盘 1:1x NVMe DataCenter Edition 960GB(“低” IOPS)
  • 磁盘2:1x NVMe Octane 480GB(高IOPS)

磁盘 1 有 3 个分区:

  • D1P1:交换16GB
  • D1P2:主( /) 400GB
  • D1P3:RAID镜像450GB

磁盘 2 有 1 个分区:

  • D2P1:EXT4 450GB

现在我已经设置了一个软件突袭使用mdadm

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/d2p1 /dev/d1p3

现在真正的问题是:

  • 我是否做了正确的事情来获得高的使用时来自 Octane 磁盘的 IOPS md0
  • 或者我必须改变什么才能获得高 IOPS?

在我的场景中,服务器用作数据库,数据应该跨2个磁盘保存,以防万一无法避免数据丢失。

答案1

您可以使用该选项创建数组--write-mostly,这使得 md 驱动程序避免从命令行上跟随它的设备读取:

mdadm --create --level=1 --raid-devices=2 /dev/md0 \
  /dev/d2p1 --write-mostly /dev/d1p3

阵列的读取性能将是较快磁盘的读取性能。然而,写入仍会受到较慢磁盘性能的限制。

您还可以使用以下选项部分解决此限制--write-behind

mdadm --create --level=1 --raid-devices=2 --bitmap=internal /dev/md0 \
  /dev/d2p1 --write-mostly --write-behind=1024 /dev/d1p3

但请注意,使用--write-behindwill降低数据保护的可靠性由 RAID1 阵列提供,因为写操作将在数据块成功写入之前返回两个都驱动器。

我建议使用--write-mostly和避免--write-behind.

答案2

我对 raid 驱动器的设置有点陌生。

您声明您正在 NVME 磁盘上实施 RAID 概念。

快速搜索使用 NVME 进行软件袭击确实返回了一些有趣的文章。

我目前的理解是RAID,最好是硬件raid,仅限于SATA和SAS连接的磁盘。没有人发布过可以插入 PCI-e 总线的硬件 raid 卡,然后可以连接到NVME 存储设备。 NVME 太新了...并且基本上直接连接到 PCIE 总线,因此在 RAID 中使用它们当前唯一的选择是使用软件设置,例如mdadm.

服务器作为数据库,数据应跨2个磁盘保存,以防万一数据丢失

如果这在工作和业务相关而不是在家里与个人相关,和/或数据库很重要,我建议不要使用软件袭击。由操作系统和某些软件(例如 mdadm)处理的软件 raid 确实有效并且有其用途,但它也有其缺陷。只需拔掉服务器电源(断电),RAID 中所有磁盘的数据就会损坏,从而否定您最初设置 raid 的全部原因。建议您尽可能多地阅读有关 RAID 和 RAID 最佳实践的内容。

通常您使用相同的品牌和型号尺寸磁盘。我不熟悉 mdadm 的当前功能,但 RAID 通常是在创建分区之前在磁盘级别完成的。然后,在 RAID 中的所有磁盘上布置一种分区方案。然后,使用相同品牌和型号的磁盘的重要性在于,一个磁盘不会比另一个慢很多,从而否定了更快磁盘的目的。 RAID 性能仅与阵列中最慢且最小的设备一样好。您尝试在 2 个 NVME 上执行 RAID-1 操作磁盘,虽然我确信可能,但在我看来不好......不是如果数据应跨 2 个磁盘保存,以防万一无法避免数据丢失。还要认识到数据丢失可能以多种方式发生,而不仅仅是磁盘故障。我遇到过的问题更多是由于简单的文件系统损坏(无论出于何种原因)而不是磁盘故障造成的,因此 RAID 是无关紧要的。 RAID 并不是保护数据的全部目的。

始终在完全独立的设备上保留数据的备份副本。假设您拥有的任何两个磁盘 RAID-1 都可能完全损坏且无法使用。

相关内容