处理内存故障的方法与计算机系统技术方案

技术编号:20362764 阅读:35 留言:0更新日期:2019-02-16 16:28
本申请提供了一种处理内存故障的方法,包括:第一控制单元确定第一存储空间中存在故障的内存的地址,第一存储空间能够存储第二控制单元以直接内存访问DMA的方式在第一控制单元中备份的数据;第一控制单元将第一存储空间中存在故障的内存的地址同步至第二控制单元;第二控制单元获取第一存储空间中存在故障的内存的地址;第二控制单元以DMA的方式将缓存的数据存储至所述第一存储空间,并且在存储该数据时隔离该第一存储空间中存在故障的内存,其中,该数据是由处理单元通过第二控制单元进行存储的数据。该方法能够降低镜像访问时由于内存故障导致的OOM发生的概率。

【技术实现步骤摘要】
处理内存故障的方法与计算机系统
本申请涉及信息
,并且更具体地,涉及处理内存故障的方法与计算机系统。
技术介绍
一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像(mirroring),镜像是冗余的一种类型。在存储控制设备上,镜像是由一个控制器将接收到的数据通过镜像通道在另一个控制器做副本。当通过直接内存访问(directmemoryaccess,DMA)方式进行镜像访问时,由于是直接访问内存的物理地址空间,一个控制器中的数据从该控制器的物理地址空间直接复制到另一个控制器中完全相同的地址空间。如果另一个控制器的内存存在故障,当将数据写入该控制器中存在故障的内存时,则会导致内存溢出(outofmemory,OOM)。
技术实现思路
本申请提供一种处理内存故障的方法,能够降低镜像访问时由于内存故障导致的OOM发生的概率。第一方面,提供了一种处理内存故障的方法,应用于计算机系统中,该计算机系统包括处理单元、第一控制单元、第二控制单元,该第一控制单元与该第二控制单元均与该处理单元连接,包括:该第一控制单元确定该第一存储空间中存在故障的内存的地址,该第一存储空间是该第一控制单元中的存储空间,该第一存储空间能够存储该第二控制单元以直接内存访问DMA的方式在该第一控制单元中备份的数据;该第一控制单元将该第一存储空间中存在故障的内存的地址同步至该第二控制单元;该第二控制单元获取该第一存储空间中存在故障的内存的地址;该第二控制单元以DMA的方式将缓存在该第二控制单元中的该数据存储至该第一存储空间,并且在存储该数据时隔离该第一存储空间中存在故障的内存,其中,该数据是由该处理单元通过该第二控制单元进行存储的数据。可选地,该第二控制单元以DMA的方式将缓存在该第二控制单元中的该数据存储至该第一存储空间,并且在存储该数据时隔离该第一存储空间中存在故障的内存,包括:该第二控制单元向该第二控制单元中的第二DMAC发送第二写数据指令,该第二写数据指令用于指示该第二DMAC将缓存在该第二控制单元中的该数据存储至该第一存储空间中,该第二写数据指令携带的目的地址所指示的存储空间为该第一存储空间中存在故障的内存之外的存储空间。通过使本控(例如,第一控制单元)在OS启动之前或启动之后对支持进行DMA的存储空间进行故障检测,并将该存储空间中发生故障的内存的地址通知给对控(例如,第二控制单元),当对控在该存储空间中进行数据备份时,对该存储空间中存在故障的内存进行隔离,即,仅在本控中没有发生内存故障的存储空间中进行数据备份,从而降低发生OOM的概率。结合第一方面,在第一方面的某些实现方式中,在该第二控制单元以DMA的方式将缓存在该第二控制单元中的该数据存储至该第一存储空间之前,该方法还包括:该第二控制单元将缓存在与该第一存储空间中存在故障的内存的地址对应的地址空间的数据,迁移到第二存储空间其它的存储空间中;其中,该第二存储空间是该第二控制单元中的存储空间。在第二控制单元以DMA的方式将缓存在第二控制单元中的数据存储至第一存储空间之前,通过使第二控制单元将缓存在与第一存储空间中存在故障的内存的地址对应的地址空间的数据,迁移到第二存储空间其它的存储空间中,以使第二控制单元在将该数据存储至第一存储空间时,能够实现对第一存储空间中存在故障的内存的隔离,进而降低发生OOM的概率。结合第一方面,在第一方面的某些实现方式中,该第一控制单元将该第一存储空间中存在故障的内存的地址同步至该第二控制单元,包括:该第一控制单元统计该第一存储空间中存在故障的内存的地址的数量;如果该数量小于或等于预设的阈值,该第一控制单元将该第一存储空间中存在故障的内存的地址同步至该第二控制单元。在将第一存储空间中存在故障的内存的地址同步至对控之前,通过对第一存储空间中存在故障的内存的地址的数量进行统计,当该数量小于预设的阈值时,才将第一存储空间中存在故障的内存的地址同步至对控,否则将重新在本控内分配用于进行DMA的存储空间,避免在第一存储空间中的故障情况比较严重时,仍将存在故障的内存地址同步至对控所带来的资源浪费。结合第一方面,在第一方面的某些实现方式中,该第一控制单元包括第一处理器与第一主板管理控制器BMC,该第二控制单元包括第二BMC,该将该第一存储空间中存在故障的内存的地址同步至该第二控制单元,包括:该第一处理器将该第一存储空间中存在故障的内存的地址写入该第一控制单元中预先分配的存储空间中;该第一BMC从该第一控制单元中预先分配的存储空间中获取该第一存储空间内存在故障的内存的地址;该第一BMC向该第二BMC发送第一报文,该第一报文中携带有该第一存储空间中存在故障的内存的地址。结合第一方面,在第一方面的某些实现方式中,该第一控制单元还包括第一平台控制单元PCH与第一复杂可编程逻辑器件CPLD,该第一控制单元中预先分配的存储空间是该第一CPLD中的存储空间,该第一处理器将该第一存储空间中存在故障的内存的地址写入该第一控制单元中预先分配的存储空间中,包括:该第一处理器通过该第一PCH将该第一存储空间中存在故障的内存的地址写入该第一CPLD中的预先分配的存储空间中;该第一BMC从该第一控制单元中预先分配的存储空间中获取该第一存储空间中存在故障的内存的地址,包括:该第一BMC从该第一CPLD中的预先分配的存储空间中获取该第一存储空间中存在故障的内存的地址。结合第一方面,在第一方面的某些实现方式中,该第一控制单元包括第一处理器与第一直接内存访问控制器DMAC,该第二控制单元包括第二处理器,该将该第一存储空间中存在故障的内存的地址同步至该第二控制单元,包括:该第一处理器向该第一DMAC发送第一写数据指令,该第一写数据指令中携带有该第一存储空间中存在故障的内存的地址在第二存储空间中的第一存储子空间中的存储地址,该第二存储空间为该第二控制单元中的存储空间,该第一存储子空间用于存储该第一存储空间中存在故障的内存的地址,该第二存储空间还包括第二存储子空间,该第二存储子空间用于存储该第一控制单元以DMA的方式在该第二控制单元中备份的数据;该第一DMAC根据该第一写数据指令,将该第一存储空间中存在故障的内存的地址存储至该存储地址在该第一存储子空间中对应的存储空间;该第一处理器向该第二处理器发送第二报文,该第二报文中携带有该第一存储空间中存在故障的内存的地址在该第一存储子空间中的存储地址。通过将第一存储空间中存在故障的内存的地址通过DMA的方式同步至对控,从而提高故障同步的速度,使得对控能够及时发现本控中存在故障的内存的地址,在对本控的存储空间进行数据访问时,能够及时对发生故障的内存进行隔离,避免由于故障同步不及时导致对控对本控中存在故障的存储空间进行数据访问,进而导致发生OOM的情况。结合第一方面,在第一方面的某些实现方式中,该第二控制单元包括第二处理器与第二BMC,该第二控制单元获取该第一存储空间中存在故障的内存的地址,包括:该第二BMC接收该第一BMC发送的该第一报文,该第一报文中携带有该第一存储空间中存在故障的内存的地址;该第二BMC对该第一报文进行解析,获取该第一存储空间中存在故障的内存的地址;该第二BMC将该第一存储空间中存在故障的内存的地址写入该第二控制单元中预先分配的存本文档来自技高网...

【技术保护点】
1.一种处理内存故障的方法,应用于计算机系统中,其特征在于,所述计算机系统包括处理单元、第一控制单元、第二控制单元,所述第一控制单元与所述第二控制单元均与所述处理单元连接,包括:所述第一控制单元确定第一存储空间中存在故障的内存的地址,所述第一存储空间是所述第一控制单元中的存储空间,所述第一存储空间能够存储所述第二控制单元以直接内存访问DMA的方式在所述第一控制单元中备份的数据;所述第一控制单元将所述第一存储空间中存在故障的内存的地址同步至所述第二控制单元;所述第二控制单元获取所述第一存储空间中存在故障的内存的地址;所述第二控制单元以DMA的方式将缓存在所述第二控制单元中的所述数据存储至所述第一存储空间,并且在存储所述数据时隔离所述第一存储空间中存在故障的内存,其中,所述数据是由所述处理单元通过所述第二控制单元进行存储的数据。

【技术特征摘要】
1.一种处理内存故障的方法,应用于计算机系统中,其特征在于,所述计算机系统包括处理单元、第一控制单元、第二控制单元,所述第一控制单元与所述第二控制单元均与所述处理单元连接,包括:所述第一控制单元确定第一存储空间中存在故障的内存的地址,所述第一存储空间是所述第一控制单元中的存储空间,所述第一存储空间能够存储所述第二控制单元以直接内存访问DMA的方式在所述第一控制单元中备份的数据;所述第一控制单元将所述第一存储空间中存在故障的内存的地址同步至所述第二控制单元;所述第二控制单元获取所述第一存储空间中存在故障的内存的地址;所述第二控制单元以DMA的方式将缓存在所述第二控制单元中的所述数据存储至所述第一存储空间,并且在存储所述数据时隔离所述第一存储空间中存在故障的内存,其中,所述数据是由所述处理单元通过所述第二控制单元进行存储的数据。2.根据权利要求1所述的方法,其特征在于,在所述第二控制单元以DMA的方式将缓存在所述第二控制单元中的所述数据存储至所述第一存储空间之前,所述方法还包括:所述第二控制单元将缓存在与所述第一存储空间中存在故障的内存的地址对应的地址空间的数据,迁移到第二存储空间其它的存储空间中;其中,所述第二存储空间是所述第二控制单元中的存储空间。3.根据权利要求1或2所述的方法,其特征在于,所述第一控制单元包括第一处理器与第一主板管理控制器BMC,所述第二控制单元包括第二BMC,所述将所述第一存储空间中存在故障的内存的地址同步至所述第二控制单元,包括:所述第一处理器将所述第一存储空间中存在故障的内存的地址写入所述第一控制单元中预先分配的存储空间中;所述第一BMC从所述第一控制单元中预先分配的存储空间中获取所述第一存储空间中存在故障的内存的地址;所述第一BMC向所述第二BMC发送第一报文,所述第一报文中携带有所述第一存储空间中存在故障的内存的地址。4.根据权利要求3所述的方法,其特征在于,所述第一控制单元还包括第一平台控制单元PCH与第一复杂可编程逻辑器件CPLD,所述第一控制单元中预先分配的存储空间是所述第一CPLD中的存储空间,所述第一处理器将所述第一存储空间中存在故障的内存的地址写入所述第一控制单元中预先分配的存储空间中,包括:所述第一处理器通过所述第一PCH将所述第一存储空间中存在故障的内存的地址写入所述第一CPLD中的预先分配的存储空间中;所述第一BMC从所述第一控制单元中预先分配的存储空间中获取所述第一存储空间中存在故障的内存的地址,包括:所述第一BMC从所述第一CPLD中的预先分配的存储空间中获取所述第一存储空间中存在故障的内存的地址。5.根据权利要求1或2所述的方法,其特征在于,所述第一控制单元包括第一处理器与第一直接内存访问控制器DMAC,所述第二控制单元包括第二处理器,所述将所述第一存储空间中存在故障的内存的地址同步至所述第二控制单元,包括:所述第一处理器向所述第一DMAC发送第一写数据指令,所述第一写数据指令中携带有所述第一存储空间中存在故障的内存的地址在第二存储空间中的第一存储子空间中的存储地址,所述第二存储空间为所述第二控制单元中的存储空间,所述第一存储子空间用于存储所述第一存储空间中存在故障的内存的地址,所述第二存储空间还包括第二存储子空间,所述第二存储子空间用于存储所述第一控制单元以DMA的方式在所述第二控制单元中备份的数据;所述第一DMAC根据所述第一写数据指令,将所述第一存储空间中存在故障的内存的地址存储至所述存储地址在所述第一存储子空间中对应的存储空间;所述第一处理器向所述第二处理器发送第二报文,所述第二报文中携带有所述第一存储空间中存在故障的内存的地址在所述第一存储子空间中的存储地址。6.根据权利要求3或4所述的方法,其特征在于,所述第二控制单元包括第二处理器与第二BMC,所述第二控制单元获取所述第一存储空间中存在故障的内存的地址,包括:所述第二BMC接收所述第一BMC发送的所述第一报文,所述第一报文中携带有所述第一存储空间中存在故障的内存的地址;所述第二BMC对所述第一报文进行解析,获取所述第一存储空间中存在故障的内存的地址;所述第二BMC将所述第一存储空间中存在故障的内存的地址写入所述第二控制单元中预先分配的存储空间中;所述第二处理器从所述第二控制单元中预先分配的存储空间中获取所述第一存储空间中存在故障的内存的地址。7.根据权利要求6所述的方法,其特征在于,所述第二控制单元还包括第二PCH与第二CPLD,所述第二控制单元中预先分配的存储空间是所述第二CPLD中的存储空间,所述第二BMC将所述第一存储空间中存在故障的内存的地址写入所述第二控制单元中预先分配的存储空间中,包括:所述第二BMC将所述第一存储空间中存在故障的内存的地址写入所述第二CPLD中的预先分配的存储空间中;所述第二处理器从所述第二控制单元中的预先分配的存储空间中获取所述第一存储空间中存在故障的内存的地址,包括:所述第二处理器通过所述第二PCH从所述第二CPLD中的预先分配的存储空间中获取所述第一存储空间中存在故障的内存的地址。8.根据权利要求5所述的方法,其特征在于,所述第二控制单元包括第二处理器,所述第二控制单元获取所述第一存储空间中存在故障的内存的地址,包括:所述第二处理器接收所述第一处理器发送的所述第二报文,所述第二报文中携带有所述第一存储空间中存在故障的内存的地址在所述第一存储子空间中的存储地址;所述第二处理器根据所述第二报文,从所述存储地址在所述第一存储子空间中对应的存储空间获取所述第一存储空间中存在故障的内存的地址。9.根据权利要求1至8中任一项所述的方法,其特征在于,所述第二控制单元以DMA的方式将缓存在所述第二控制单元中的所述数据存储至所述第一存储空间,并且在存储所述数据时隔离所述第一存储空间中存在故障的内存,包括:所述第二控制单元向所述第二控制单元中的第二DMAC发送第二写数据指令,所述第二写数据指令用于指示所述第二DMAC将缓存在所述第二控制单元中的所述数据存储至所述第一存储空间中,所述第二写数据指令携带的目的地址...

【专利技术属性】
技术研发人员:邓誉春尹泽生
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1