标签: bbwc

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 中并没有真正看到这一点),但同样存在更高的成本。

disaster-recovery storage hardware-raid bbwc

26
推荐指数
2
解决办法
8225
查看次数

SSD 与电池支持的写入缓存

我已经背负了一些带有垃圾戴尔 H310 和 H330 控制器的服务器(它们没有 BBWC 并且在旋转磁盘上提供大约 15mb/sec 的写入性能)。

我可以将控制器升级到 H710(确实有 BBWC,但很可能需要重建,因为它们显然需要 RAID 设置,而我使用的是软件 RAID),切换到 SSD 或两者兼而有之。

在 SSD 上使用 BBWC 时是否有显着的 IO 性能提升?(我注意到我运行 H310 的系统和 SSD 的执行速度要快得多 - 我不确定在该系统上切换到基于 BBWC 的控制器是否会有很大帮助,我正在尝试确定从旋转磁盘升级到的位置SSD 以及在哪里升级控制器)

ssd bbwc

1
推荐指数
1
解决办法
1145
查看次数

标签 统计

bbwc ×2

disaster-recovery ×1

hardware-raid ×1

ssd ×1

storage ×1