微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

LSI Megaraid控制器为其写缓存备份电池,在出现意外停电的情况下,它可以保留缓存的尚未写入的数据,因此可以在下次启动服务器时将其写入磁盘起来.在干净关闭的情况下,这种备份可能不是必需的,因为干净关闭的一部分将涉及控制器将缓存的数据写入磁盘.

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

是否有一些PCIe级别的信令通知外围设备有待下电? Megaraid_sas内核模块是否通知卡挂起关闭?或者是否需要从初始化脚本运行用于刷新缓存的MegaCli命令以进行关闭

我已经手动将一个Megaraid卡和一组额外的驱动器添加到没有安装的Linux系统中,并且希望确保我不需要手动添加内容以确保缓存在关机时保持一致.

解决方法

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

原文地址:https://www.jb51.cc/linux/397836.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐