操作系统IO hung恢复?

因为断网或存储问题等导致的操作系统IO hung问题,在网络或存储等IO设备恢复后,系统是否能自动恢复,而不需要重启恢复?这里面深层的原理是什么,还请帮忙解答,谢谢。

参与10

3同行回答

三虎三虎联盟成员系统运维工程师中国邮政储蓄银行
看操作系统hang检测时间,比如120秒,可能就触发core dump文件系统探测读写,失败多次后会挂起应用看自己探测机理如果中断时间短,再测检测过去,就恢复所以看时长密集交易,中断肯定导致部分交易失败,表现为交易抖动...显示全部

看操作系统hang检测时间,比如120秒,可能就触发core dump

文件系统探测读写,失败多次后会挂起

应用看自己探测机理

如果中断时间短,再测检测过去,就恢复

所以看时长

密集交易,中断肯定导致部分交易失败,表现为交易抖动

收起
2024-02-28
浏览190
数字视界数字视界技术潮流前线xxlinux
有些系统会有自动恢复功能,但是往往并不可靠,特别是遇到硬件故障或系统级的错误,自动恢复的成功率很低,还是要多种手段避免数据丢失和服务中断显示全部

有些系统会有自动恢复功能,但是往往并不可靠,特别是遇到硬件故障或系统级的错误,自动恢复的成功率很低,还是要多种手段避免数据丢失和服务中断

收起
IT其它 · 2024-02-27
浏览208
朱向东朱向东课题专家组高级工程师某银行
在日常运维过程中,操作系统IO hung是较为常见的故障现象。一般情况下,当操作系统遇到IO设备(如网络或存储)的故障导致IO操作挂起时,操作系统会尝试进行恢复,并在IO设备恢复后自动继续执行。这样可以避免系统重启或进程终止,提高系统的可用性和稳定性。但是在交易敏感的应用系统...显示全部

在日常运维过程中,操作系统IO hung是较为常见的故障现象。
一般情况下,当操作系统遇到IO设备(如网络或存储)的故障导致IO操作挂起时,操作系统会尝试进行恢复,并在IO设备恢复后自动继续执行。这样可以避免系统重启或进程终止,提高系统的可用性和稳定性。
但是在交易敏感的应用系统中,这种IO hung的情况可能导致交易延时、交易失败、操作系统重启或业务服务中断等风险,所以,建议要加强操作系统的状态监控,当出现hung的情况时及时发出告警,提醒运维工程师紧急介入处理。
以下是涉及操作系统IO相关机制的原理:
1、挂起和超时:当IO设备发生故障或连接中断时,对应的IO操作会被标记为挂起状态。同时,操作系统会设置一个超时时间,如果在超时时间内未能恢复,则会触发相应的处理机制。
2、故障恢复:操作系统会尝试恢复IO设备的故障或连接中断。具体的恢复过程取决于设备和驱动程序的实现。例如,对于网络设备,操作系统可以重新建立连接或重新配置网络参数。对于存储设备,操作系统可以重新初始化设备或尝试重新建立连接。
3、重试和轮询:一旦IO设备恢复,操作系统会重新尝试挂起的IO操作。这可能涉及重新发送请求、重新建立连接或执行其他必要的步骤。操作系统会定期轮询设备状态,以便及时发现设备的恢复并执行相应的操作。
4、错误处理:在恢复过程中,如果操作系统发现无法成功恢复IO设备或IO错误无法修复,它可能会选择终止相应的IO操作,并通知相关进程或应用程序。这样可以防止无限等待或错误的结果。
所以,从总体上来说,操作系统在遇到IO设备故障时,会尝试自动恢复,而不需要重启整个系统,但有些应用系统对IO敏感时可能会主动发出操作系统重启的指令(如oracle)。但具体的会采取什么行为和何种恢复能力取决于操作系统的自身内核实现和具体参数配置,以及设备和驱动程序的特性。

收起
银行 · 2024-02-22
浏览378
  • 感谢解答。 -------------------------------- 从总体上来说,操作系统在遇到IO设备故障时,会尝试自动恢复,而不需要重启整个系统 -------------------------------- 实际我这边遇到过的case情况是,虚拟化集群存储路径中断6min,路径恢复后,有一部分虚拟机操作系统hung仍无法自动恢复,还是需要手动重启解决。
    2024-02-22
  • 对于FC架构的虚拟化平台来说,出现IO中断时,个别虚机hung是必然的,肯定要手动介入处理的。
    2024-02-22

ChatGPT 回答

在证券行业中,操作系统IOhung问题通常是由于磁盘I/O操作过于频繁或者磁盘出现故障等原因导致的。当操作系统发现I/O操作超时或者失败时,会将进程挂起,这就是IOhung问题。

当网络或存储等IO设备恢复后,操作系统会尝试重新进行I/O操作,如果操作成功,则进程会继续执行。如果操作失败,则操作系统会将进程继续挂起,直到I/O操作成功为止。

在大多数情况下,操作系统可以自动恢复IOhung问题,而不需要重启恢复。这是因为操作系统会自动检测I/O操作的超时和失败,并尝试重新进行I/O操作,直到成功为止。如果操作系统无法自动恢复IOhung问题,则可能需要手动重启系统或者进行其他故障排除操作。

深层的原理是,操作系统中有一个I/O调度器,它负责管理所有的I/O操作。当一个进程发起I/O操作时,I/O调度器会将该操作加入到I/O队列中,并按照一定的策略进行调度。当I/O操作完成后,I/O调度器会将结果返回给进程。如果I/O操作超时或者失败,则I/O调度器会将进程挂起,并尝试重新进行I/O操作,直到成功为止。

提问者

jasonwln
系统工程师兴业证券股份有限公司
擅长领域: 云计算主机私有云

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2024-02-22
  • 关注会员:4 人
  • 问题浏览:1554
  • 最近回答:2024-02-28
  • X社区推广