![RAID10 无 BBU,带 UPS](https://linux22.com/image/619654/RAID10%20%E6%97%A0%20BBU%EF%BC%8C%E5%B8%A6%20UPS.png)
我的数据中心说每个机架都有主电源和备用电源。我猜这意味着每台服务器都有一个 UPS。因此,我是否需要为以下设置购买 BBU?
英特尔 Cherry 520 SSD x 4 RAID 10 LSI-9260,启用回写缓存
我听说如果没有 BBU,缓存中的数据可能会丢失。由于我的需求不是关键任务,我可以承受丢失一些数据。但硬盘上的其余数据会损坏吗?
答案1
文件系统不仅向 HDD 写入数据,还写入元数据。数据丢失的危险不在于您最近的结果文件丢失,而在于元数据损坏,导致文件系统不一致且无法挂载。损坏的文件系统在进行 fsck 时可能会丢失更多数据。
通常情况下,人们会选择日志文件系统来尽量减少这种危险,但对于写缓存 RAID 硬件,这可能无济于事,因为硬件基本上对操作系统撒了谎,告知其实际写入磁盘的内容(认为写入缓存就足够了)。断电意味着您最终仍可能得到一个不一致的文件系统,因此稍后会出现问题。
据我所知,没有哪个 RAID 阵列认为无备份写缓存是个好主意,而且大多数 RAID 阵列在缓存电池没电时都会禁用写回缓存。他们可能说得有道理。
答案2
由于我的需求不是关键任务,我可以承受丢失一些数据。但是硬盘上的其他数据会被损坏吗?
如果你能承受损失,请在所有挂载上启用文件系统屏障一些数据在这种情况下的最大损失将是您的缓存大小,但平均而言应该会少很多。
请注意,障碍会降低 I/O 性能,但会大大提高文件系统的完整性 - 尤其是在使用尝试重新排序写入的磁盘时。
从man 8 mount
barrier=0 / barrier=1 / barrier / nobarrier
This enables/disables the use of write barriers in the jbd code.
barrier=0 disables, barrier=1 enables. This also requires an IO
stack which can support barriers, and if jbd gets an error on a
barrier write, it will disable again with a warning. Write bar‐
riers enforce proper on-disk ordering of journal commits, making
volatile disk write caches safe to use, at some performance
penalty. If your disks are battery-backed in one way or
another, disabling barriers may safely improve performance. The
mount options "barrier" and "nobarrier" can also be used to
enable or disable barriers, for consistency with other ext4
mount options.
The ext4 filesystem enables write barriers by default.
理论上,日志可以防止由于突然断电而导致的文件系统损坏,因为元数据将保证有序。
答案3
数据中心电源和电池在设施/房间级别配置。假设您位于商业共置设施中...
因此,您确实在机架的 A 和 B 电源上安装了 UPS 保护。电池保护是在机架上游完成的。
现在,对于您的存储情况,您有在 RAID 控制器上运行的 SSD。您通常不需要将 BBU 的缓存功能与固态驱动器结合使用。最好禁用读取缓存。如果您确实使用缓存,请将比率设置为有利于写入。请参阅这个文件了解一些细节。针对您的具体情况进行基准测试,但您可能不需要此设置的缓存。
由于您使用的是 LSI 控制器,因此最佳的 SSD 性能解决方案是利用LSI Fastpath 软件。此修改禁用了旋转磁盘所需的传统逻辑,并优化了仅 SSD 阵列的数据路径。