无缓存保护的 RAID 1 - ZMCP/备用电池

无缓存保护的 RAID 1 - ZMCP/备用电池

我在 Adaptec 6405 上运行 RAID 1。我正在尝试决定是否需要在卡上安装 ZMCP 以提供缓存保护。Adaptec 的 ZMCP 相当于缓存的 BBU - 电池备份。

我已经在控制器 BIOS 中启用了写入缓存,以确保系统运行良好。

我可以理解剥离需要缓存保护。但是镜像也需要缓存保护吗?

运行没有缓存保护(BBU 或 Adaptec 的 ZMCP)的 RAID 1 的风险是否比运行具有普通 SATA 控制器的机器更大?

如果有人拥有带有 AFM 600 子板的 Adaptec 6405,您能告诉我 AFM 600 是否突出于卡的侧面,如果是,突出多少?

主板只有一个 PCI Gen2 插槽,可容纳 Adaptec 6405 卡,并且在此插槽中,ZMCP 所在的一侧距离机箱侧面仅一厘米左右。

答案1

缓存保护是指在将数据写入磁盘“之前”保护控制器缓存中的内容。因此,如果您在阵列上启用了写入缓存,则数据将写入控制器上的 DDR 内存...然后写入磁盘(当磁盘不太忙时)。无论使用哪种 RAID 级别,此原则都保持不变。因此,如果您想保护操作系统已写入磁盘但控制器尚未物理写入磁盘的数据,则需要缓存保护。顺便说一句:运行任何没有写入缓存的旋转磁盘都像下雨一样慢。N

答案2

我可以理解剥离需要缓存保护。但是镜像也需要缓存保护吗?

从技术上来说,这两者都不是必需的。它只会增加性能和风险。如果你想 100% 确定,那么你:

  1. 请勿在 RAID 卡上使用写入缓存或使用 BBU/flashbackups/ZMCP。
  2. 关闭驱动器本身的写入缓存。

但 RAID 并非 100% 安全。RAID 涉及两个潜在问题:

  1. 即使磁盘发生故障,也能保持数据完整并可访问。(至少直到您可以进行紧急维护。例如,下班后不久)。
  2. 有时它是为了提高性能(例如条带,或 RAID10、50、60,...从 RAID5/6 读取)

总结一下:不是的。必需的作为镜子。

运行没有缓存保护(BBU 或 Adaptec 的 ZMCP)的 RAID 1 的风险是否比运行具有普通 SATA 控制器的机器更大?

不。我猜差不多。
(排除 RAID 卡故障的风险)。

答案3

写缓存是易挥发的操作系统和磁盘用来整合和缓存写入操作的内存(通常是 RAM)。通常,缓存中的所有内容都尚未写入磁盘。如果此缓存断电,它将失去内容,并且由此导致的后果是,您将丢失一些数据。

如果您的控制器有备用电池,则在断电的情况下写入缓存将保留到下次启动,然后写入磁盘。RAID 级别与此无关。

如果没有备用电池,您将丢失仍在缓存中的大量数据。文件系统和 RAID 都不知道缓存中到底有什么,因此您将丢失这些数据。这是每个 RAID 级别都会出现的问题,即使是 RAID1 或 RAID5 也是如此。这个问题通常被称为RAID 写入漏洞

简而言之:如果您使用写入缓存,则需要为该缓存配备备用电池。如果您不使用写入缓存,则不需要。RAID 级别无关。

答案4

在 RAID1 中,如果断电,写入缓存中的某些数据写入一个硬盘驱动器,但未写入另一个硬盘驱动器,则两个驱动器的某些块的数据将不一致。我认为,根据您使用的确切 RAID 系统,系统可能会平衡两个驱动器之间的读取。如果系统在非正常关机后没有在将数据返回给读取器之前“清理”阵列,则它可能会在后续读取中为同一块返回不同的数据。也就是说,您可能会读取一个文件并在一个磁盘上看到数据,刷新读取缓存,然后再次读取同一个文件并从另一个磁盘获取数据,而这些数据可能不同。

我认为(但不确定)当我看到 Linux 的 MD(软件 RAID)在重新启动后,它似乎会自动运行清理,并且实际上拒绝返回特定块,直到它验证每个块都已被清理。但我不确定它是否真的在这么做。另外,我不知道硬件 RAID 控制器如何处理这种情况。

请注意,即使发生了这种清理,如果您的写入缓存没有保留写入每个磁盘的顺序,文件系统也可能被破坏,即使它被记录了。我认为您所指的写入缓存对操作系统撒谎,说写入实际上已经完成,这意味着文件系统对持久性做出的任何假设都被故意违反,以提高性能。似乎电池备份旨在确保文件系统认为已完成的写入确实以这样的方式完成,即当阵列重新组装时,文件系统认为已写入的数据在读取时返回。

抱歉,我没有答案,我提出的只是这种情况下会让我担心的顾虑/问题。

相关内容