Answers:
它不会为磁盘供电,它只会将数据保留在缓存中长达72小时(在这种情况下),直到您使计算机恢复联机为止。备份计算机电源后,它将把高速缓存的内容写回到磁盘上。
它所做的只是防止电源故障。如果(由于某种原因)机器断电而没有将数据干净地刷新到磁盘上,则电池将使缓存内容保持活动状态,直到您可以重新启动机器为止。
它不是磁盘的UPS,因为磁盘可能位于外部磁盘阵列中,甚至位于不同的电源电路中。即使是UPS也可能会失败。
它是这样的:
大多数操作系统都有一个系统调用,该调用允许进行所谓的“同步写入”。这意味着在写操作期间,如果写已完成,则可以确保已将其提交到磁盘。
因此,同步写是非缓存的。它将阻止应用程序,直到完成。这种操作显然比缓存写入慢,后者将数据保留在OS内存中,直到磁盘足够空闲,然后再写入数据。
某些关键软件(例如数据库软件)对关键数据执行同步写入,因为在断电的情况下进行半写入更新可能会损害数据库的完整性。
众所周知,RAID控制器的RAID-5写入速度很慢,因此如果您的应用程序软件使用大量同步写入,则这将成为一个问题。因此,RAID-5控制器配备了自己的缓存。
RAID控制器执行的操作是将数据写入其缓存,然后将LIES写入操作系统,告诉它已将数据提交到磁盘,而数据实际上仍在RAID缓存中。
但是,如果数据仍在RAID控制器的缓冲区中而断电了怎么办?您的磁盘上将写入一半且可能不一致的数据。
您可能会说这种行为违背了同步写入的目的……如果可以缓存写入,则应用程序软件首先不会要求进行同步写入。
折衷方案是:RAID控制器仍然位于将数据提交到磁盘的OS上,但是为了在电源故障的情况下保护此关键数据,RAID控制器具有一个电池,可以使高速缓存保持活动状态一段时间,直到可以断电为止。恢复。
因此,在电源恢复并且磁盘旋转并初始化之后,由于电池的缘故,控制器仍在缓存中保留该数据,并且可以完成将事务写入磁盘的操作。
大家都开心
这就是为什么RAID控制器通常不允许您启用写缓存的原因,除非您具有正常运行且已充电的电池单元。
proper shutdown
如果发出刷新请求时RAID对它说谎,操作系统如何发送请求?
proper
或improper
关机。在关闭电源后,操作系统会发出掉电信号,PSU会发出该信号。关闭电源后,易失性存储器及其所有内容也会丢失!
值得一提的是,一些较新的磁盘控制器现在带有高速闪存缓存,可将数据保留的时间远远超过典型的72小时,而且通常也要大得多(〜1GB)。如果您需要零件详细信息,请告诉我。
可以将BBU高速缓存视为与日记文件系统提供的保护级别相似的保护级别。此处是为了允许事务(在这种情况下为简单写入)在电源中断的情况下完成。一旦掉电,控制器将无法继续写入,因为这将导致完全不可预测的结果。取而代之的是,它会尽可能长时间地保存数据,并且如果/当电源恢复时,将完成写入操作。它不做的是像驱动器的UPS。
RAID卡可以具有1 GB的缓存;即使通常不会全部将其用于写缓存,也可以假定它将存储相当长的未写数据队列。
文件系统和数据库假定即使在电源故障的情况下,其同步写入也不会重新排序。通常,同步写入仅在数据存储在磁盘上之后才返回,但这相对较慢。RAID卡通过将较小的写入分组并重新排序以减少随机性来提高性能。
如果没有BBU,则负载下的电源故障将造成灾难性的结果,并且RAID卡已承诺会丢失(例如,在使用文件系统的情况下,您可能引用了新文件或目录,但缺少)文件或目录,即使文件系统在引用任何文件之前专门创建了新文件(以避免这种情况),也要求您从备份中还原,或者只是希望您的数据不会被严重弄乱。更糟的是,如果有人删除了一个秘密文件,而其他人创建了一个世界可读文件,则可能会在世界可读文件中找到该秘密文件的某些内容。一旦打破了建立文件系统的假设,一切皆有可能。
假设UPS确保不间断电源是幼稚的;如果机器崩溃并且您需要拉电源线或有人绊倒怎么办?
消费者SATA磁盘(和SSD)有时也缓存同步写入,但是它们的缓存要小得多,消费者使用的要求也较低,因此通常可以避免这种情况。
现代RAID控制器还具有闪存,如果发生电源故障,它们会将写缓存的内容复制到闪存中,因此电池的使用时间不必超过几秒钟。