BBWC:理论上是个好主意,但有人保存过你的数据吗?

sym*_*ean 26 disaster-recovery storage hardware-raid bbwc

我熟悉 BBWC(电池支持的写入缓存)的用途 - 并且以前在我的服务器中使用过它们,即使 UPS 良好。显然存在它不提供保护的故障。我很想知道它在实践中是否真的提供了任何真正的好处。

(注意,我特别在寻找有 BBWC 和崩溃/失败的人的回应,以及 BBWC 是否有助于恢复)

更新

在收到这里的反馈后,我越来越怀疑 BBWC 是否会增加任何价值。

为了对数据完整性有任何信心,文件系统必须知道数据何时被提交到非易失性存储(不一定是磁盘 - 我会回到这一点)。值得注意的是,很多磁盘都在数据何时提交到磁盘上撒谎 ( http://brad.livejournal.com/2116715.html )。虽然假设禁用磁盘缓存可能会使磁盘更诚实似乎是合理的,但仍然不能保证情况确实如此。

由于 BBWC 中的缓冲区通常很大,屏障可能需要将更多数据提交到磁盘,因此会导致写入延迟:一般建议是在使用非易失性回写缓存时禁用屏障(并禁用 on-磁盘缓存)。然而,这似乎会破坏写操作的完整性——仅仅因为在非易失性存储中维护更多数据并不意味着它会更加一致。事实上,如果逻辑事务之间没有划分,那么确保一致性的机会似乎比其他方式少。

如果 BBWC 在数据进入它的非易失性存储(而不是提交到磁盘)时确认障碍,那么它似乎满足了数据完整性要求而不会造成性能损失 - 这意味着仍应启用障碍。然而,由于这些设备通常表现出与将数据刷新到物理设备(使用屏障显着慢)以及禁用屏障的广泛建议一致的行为,因此它们不能以这种方式运行。为什么不?

如果操作系统中的 I/O 被建模为一系列流,那么当写缓存由操作系统管理时,有一些范围可以最小化写屏障的阻塞效应 - 因为在这个级别只有逻辑事务(单个流) 需要提交。另一方面,不知道哪些数据位构成事务的 BBWC 必须将其整个缓存提交到磁盘。内核/文件系统是否在实践中真正实现了这一点,需要付出比我目前愿意投入的更多的努力。

磁盘组合告诉 fibs 已提交的内容和突然断电无疑会导致损坏 - 并且日志或日志结构的文件系统在中断后不会执行完整的 fsck 不太可能检测到损坏,更不用说试图修复它。

就故障模式而言,根据我的经验,大多数突然停电是由于市电断电(使用 UPS 和管理关机可轻松缓解)。人们从机架中拉出错误的电缆意味着数据中心卫生(标签和电缆管理)不佳。UPS 无法防止某些类型的突然断电事件 - PSU 或 VRM 中的故障 带有屏障的 BBWC 可以在发生故障时提供数据完整性,但此类事件有多常见?从这里缺乏回应来看,这是非常罕见的。

当然,在堆栈中提高容错能力比 BBWC 的成本要高得多——但是,将服务器实现为集群还有许多其他性能和可用性方面的好处。

减轻突然断电影响的另一种方法是实施 SAN - AoE 使这成为一个实用的提议(我在 iSCSI 中并没有真正看到这一点),但同样存在更高的成本。

eww*_*ite 34

当然。我已经使用电池备份缓存 (BBWC) 和后来的闪存备份写缓存 (FBWC) 在崩溃和突然断电后保护飞行中的数据。

在 HP ProLiant 服务器上,典型的消息是:

POST Error: 1792-Drive Array Reports Valid Data Found in Array Accelerator
Run Code Online (Sandbox Code Playgroud)

这意味着,嘿,写缓存中有数据在重启/断电后幸存下来!!我现在要把它写回磁盘!!

一个有趣的案例是我对在龙卷风期间断电的系统进行事后分析,阵列序列是:

POST Error: 1793-Drive Array - Array Accelerator Battery Depleted - Data Loss
POST Error: 1779-Drive Array Controller Detects Replacement Drives
POST Error: 1792-Drive Array Reports Valid Data Found in Array Accelerator
Run Code Online (Sandbox Code Playgroud)

1793 POST 错误是唯一的。- 当系统正在使用时,当数据在阵列加速器内存中时电源被中断。但由于是龙卷风,四天之内都没有恢复供电,导致阵列电池电量耗尽,数据丢失。服务器有两个 RAID 控制器。另一个控制器有一个 FBWC 装置,它的使用寿命比电池长得多。该驱动器已正确恢复。一些数据损坏导致由空电池支持的阵列。


尽管该设施的电池运行时间充足,但四天没有电源和危险的条件使得任何人都无法安全关闭服务器。 在此处输入图片说明

  • 无论多长时间,都非常有用,能很好地保持这些输出。 (5认同)
  • @GabrielTalavera 是的,自 2010 年左右以来,惠普一直在使用闪存支持(电容器)缓存。没有电池了。 (4认同)

Tom*_*Tom 10

是的,有过这种情况。

数据中心中的“无 UPS”服务器(数据中心有 UPS)。PDU 故障 - 系统严重崩溃。没有数据丢失。

基本上就是这样。BBWC 的好处在于它在机器中。有一个 UPS - 相信我,有时有人会做一些愚蠢的事情(比如拉错了电缆)。UPS 是外部的。哦,那根电缆;)