我有一台带 UPS 的服务器,电池续航时间约为 20-30 分钟,服务器有 2405/128MB 内存,不带 BBU,我只是感到困惑,我真的需要 BBU 卡吗?当然,如果 UPS 工作正常,在断电期间,应该有足够的时间让缓存写入?还是我错过了什么?我真的不想为了 BBU 而花一大笔钱买一张卡,应用程序更倾向于读取,而不是写入,比例约为 5-1,即使有好的 UPS,没有 BBU 工作真的有这么大的风险吗?
答案1
尽管这涵盖了 August 重复提出的一些内容,但我不会再次关闭这个问题,因为那里的答案相当差。
BBU 磁盘控制器确实提供了针对断电的保护 - 但它还(与日志或日志结构文件系统结合)提供了针对服务器操作系统崩溃和磁盘硬件故障的保护 - 而您的 UPS 却没有。这不是解决可用性问题的唯一方法 - 另一种方法是复制服务器、UPS 和磁盘并使用适当的集群工具。
此外,有了更大的非易失性缓存,操作系统就可以更快地将写入操作安全地卸载到磁盘上 - 操作系统不必等待磁盘子系统确认写入已提交那么长时间。有了更大的缓冲区,将扇区写入磁盘的程序(在本例中是磁盘控制器)就有更大的空间来安排操作以优化它们,从而带来进一步的性能优势。如果你使用的是固态硬盘,那么运行大型编组缓冲区在减少写入磨损方面会给你带来一些好处。
应用程序更倾向于读取,而不是写入,比例约为 5-1
真的吗?我想说这写起来有点费劲。
我真的不想花一大笔钱
虽然我上次查看时,低端 UPS 仍然比基本 BBU 磁盘控制器便宜,但后者的价格约为 100 英镑(150 美元)。你只需要四处寻找一下。我宁愿拥有一个 BBU 磁盘控制器和便宜的磁盘,而不是昂贵的磁盘和没有 BBU - 无论是性能还是可用性。
答案2
RAID 卡上的 BBU 和 UPS 有不同的用途。
BBU 的设计目的是在断电时保持缓存内存处于活动状态,以便在磁盘处于活动状态时将数据刷新到磁盘。
UPS 旨在在短时间停电期间保持服务器正常运行,或者在电源完全断电之前有序关闭服务器。它旨在最大限度地减少停机时间。大多数 UPS 可使服务器运行 30 分钟或更长时间(取决于电池容量和负载)。大多数停电时间相对较短,因此 UPS 很有用。
然而,UPS 本身并不能防止断电前数据未被完全写入。
如果服务器没有完全关闭,UPS 在长时间停电时将毫无用处。因此,您始终需要让 UPS 向服务器发出断电信号,并在功率降至一定水平以下时让服务器完全关闭。
BBU 将在断电时保持缓存内存处于活动状态,并且不依赖于您是否正确设置了 UPS 和 UPS 电池电量不足时关机。如果您真的想防止损坏,请为 RAID 卡配备 BBU。
答案3
这取决于所使用的操作系统、您的读/写模式以及您的风险承受能力。
我倾向于尽可能使用 BBU/BBWC,因为如果没有 BBU/BBWC,写入性能通常会受到影响。您应该能够将控制器配置为在没有电池的情况下运行,同时仍提供加速写入缓存。但这存在风险。
答案4
您可以运行 ZFS - 然后通过适当的设置,您可以最大限度地减少 BBU 的缺失。ZFS 现在可用于 Linux,我强烈推荐它用于某些工作负载。