LSI Megaraid 控制器为其写入缓存配备了备用电池,在发生意外断电的情况下,它允许保留缓存的、尚未写入的数据,以便在下次启动服务器时将其写入磁盘向上。在完全关闭的情况下,这种备份可能是不必要的,因为完全关闭的一部分将涉及控制器将缓存的数据写入磁盘。
raid 控制器如何得知关机即将发生?据推测,此刷新必须是在其他操作系统关闭代码之后发生的最后一件事,这可能涉及将数据或日志写入 raid。
是否有一些 PCIe 级信号通知外围设备即将断电?Megaraid_sas 内核模块是否通知卡即将关闭?或者是否MegaCli
需要从初始化脚本运行刷新缓存的命令以进行关机?
我已经手动添加了一个 Megaraid 卡和一组额外的驱动器到一个没有安装的 Linux 系统,并且想确保我不需要手动添加一些东西来保证缓存在关机时是一致的。
在关机期间,系统将卸载大部分文件系统。无法卸载的会以只读方式重新安装。Umount 系统调用将通过 VFS 刷新磁盘缓存,并使用块设备后面的驱动程序刷新磁盘缓冲区。在您的情况下,块设备驱动程序是通用 SCSI 驱动程序
sg
。这将使用设备的特定驱动程序和 SCSI 刷新命令将数据发送到 SCSI 设备,以便将数据从内部磁盘缓存写入磁盘存储介质。所有这些都是同步的,直到数据在磁盘上,umount 才会返回。对于重新安装的只读 FS,关闭脚本将只运行同步系统调用。在 LSI 文档中 描述 刷新所选控制器上的控制器缓存