免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: humjb_1983

[硬件及驱动] 绕过pagecache/块设备/scsi/驱动,直接读写磁盘的方法 [复制链接]

论坛徽章:
0
发表于 2014-07-25 09:27 |显示全部楼层
1.记录内核关键的异常信息,信息量小

2.
对系统IO性能影响问题。我们知道磁盘IO的时间大部分花在寻道上,而块设备层的各种合并和优化算法,其实就是为了减少寻道时间,
而如果系统正常IO期间,穿插了定制驱动的直接IO操作的话,应该会对系统的IO产生影响。
----------------------

又说只是关键记录,又说正常的情况会影响到磁盘io。  不是矛盾了么。   正常情况下的系统日志会丢啊?   如果说是系统崩溃之后那个oops信息那有的说。
不知道楼主这个应用场合设想的是什么场景下的, 普通的pc还是手机那些嵌入式linux ?
现在的kdump和netoops之类的已经能够满足大部分要求了吧。

系统崩溃了,调用bios也是不安全的吧? 中断还能正常工作?












论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
发表于 2014-07-25 09:45 |显示全部楼层
这个帖子太高端了,不懂,我是来围观高手的

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
发表于 2014-07-26 12:03 |显示全部楼层
瀚海书香 发表于 2014-07-25 08:20
按照你黑匣子的思路来说,驱动的方式貌似也有问题了。
因为你希望的是两个驱动同时工作(一个是自带驱动,一个是绕过操作系统层的驱动)。


抛开写磁盘这个问题不说,实现黑匣子功能的最好方式,应该是双kernel更简单一些吧。一个主系统,一个检测系统。检测系统可以就跑在一个低功耗的芯片上,甚至都没有操作系统。

感谢!!
是的,需要保留原有的驱动,否则磁盘上的其他IO就无法正常了。
这确实存在冲突,但理论上应该可以解决的,因为简化的驱动只做最简单的读写操作,甚至可以不依赖中断或DMA(暂时还没有去研究相关驱动~)

您说的双系统应该是AMP模式吧,这种方式就像您说的一样,需要单独设计硬件,在通用的硬件平台上无法直接使用,使用范围比较局限。
之前我们也考虑过使用AMP方式,在通用平台上跑两个不同的OS,一个检测系统,一个主系统,这个应该是可行的,但实现起来比较麻烦,需要对内核做不小的修改,可靠性不好保证,而且比较浪费硬件资源,但这个确实一种不错的思路。。

其实最通常的黑匣子的实现方式是使用保留内存,即在物理内存中保留一块出来做黑匣子用,但这需要修改BIOS支持,另一方面,由于普通内存的易失行,在硬件致命故障导致死机后,通常需要掉电重启才能恢复,此时黑匣子又没用了。。。

当然,黑匣子还有其他实现方式,比如硬件上设计单独的非易失性内存,或者通过带外的IPMC等设备,但这些都需要特殊的硬件设计才行,并不通用。

所以,想设计一种通用硬件平台上的黑匣子,想到了直接操作硬盘的方式。。。

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
发表于 2014-07-26 12:06 |显示全部楼层
hmsghnh 发表于 2014-07-25 09:27
又说只是关键记录,又说正常的情况会影响到磁盘io。  不是矛盾了么。   正常情况下的系统日志会丢啊?   如果说是系统崩溃之后那个oops信息那有的说。
不知道楼主这个应用场合设想的是什么场景下的, 普通的pc还是手机那些嵌入式linux ?
现在的kdump和netoops之类的已经能够满足大部分要求了吧。

系统崩溃了,调用bios也是不安全的吧? 中断还能正常工作?


感谢!!
考虑了,如果只记录系统死机前的关键信息,实际可以不考虑对io性能影响的问题。
应用场景通常考虑服务器等对高可用性要求高的场景。
kdump确实比较有用,但是仅能捕获到有限的异常情况,比如panic,但实际上导致死机或其他严重故障的原因有很多,panic只是其中一种,所以其应用场景也比较有限。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP