Linux 如何告诉 LSI Megaraid 卡在关机前刷新其缓存?

bk.*_*bk. 5 linux megaraid

LSI Megaraid 控制器有一个备用电池用于其写入缓存,它允许在意外断电的情况下保留缓存的、尚未写入的数据,以便下次启动服务器时将其写入磁盘向上。在干净关闭的情况下,此备份可能是不必要的,因为干净关闭的一部分将涉及控制器将缓存数据写入磁盘。

raid 控制器如何获知关闭即将发生?据推测,此刷新必须是其他操作系统关闭代码之后发生的最后一件事,这可能涉及将数据或日志写入raid。

是否有一些 PCIe 级别的信号通知外设即将断电?Megaraid_sas 内核模块是否通知卡挂起关闭?或者是否MegaCli需要从关闭的初始化脚本运行刷新缓存的命令?

我手动添加了一张 Megaraid 卡和一组额外的驱动器到一个没有安装的 Linux 系统,并想确保我不需要手动添加一些东西来保证关闭时缓存的一致性。

Mir*_*ici 6

在关闭期间,系统将卸载大部分文件系统。那些无法卸载的会以只读方式重新安装。Umount 系统调用将通过 VFS 刷新磁盘缓存,并使用块设备后面的驱动程序刷新磁盘缓冲区。您的情况下的块设备驱动程序是通用 SCSI 驱动程序sg。这将使用设备的特定驱动程序和 SCSI 刷新命令将数据发送到 SCSI 设备,以便将数据从内部磁盘缓存写入磁盘存储介质。所有这些都是同步的,直到数据在磁盘上之后,umount 才会返回。对于重新安装的只读 FS,关闭脚本将只运行同步系统调用。