CN116991331B - 日志文件的存储方法及装置、存储介质及电子装置 - Google Patents

日志文件的存储方法及装置、存储介质及电子装置 Download PDF

Info

Publication number
CN116991331B
CN116991331B CN202311242770.2A CN202311242770A CN116991331B CN 116991331 B CN116991331 B CN 116991331B CN 202311242770 A CN202311242770 A CN 202311242770A CN 116991331 B CN116991331 B CN 116991331B
Authority
CN
China
Prior art keywords
bmc
log
operating system
storage channel
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311242770.2A
Other languages
English (en)
Other versions
CN116991331A (zh
Inventor
郝林伟
刘宝阳
陈瑾
孙明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311242770.2A priority Critical patent/CN116991331B/zh
Publication of CN116991331A publication Critical patent/CN116991331A/zh
Application granted granted Critical
Publication of CN116991331B publication Critical patent/CN116991331B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请实施例提供了一种日志文件的存储方法及装置、存储介质及电子装置,其中,该方法包括:通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志,其中,第一操作系统是运行在BMC芯片的多核处理器中的第一处理器核心上的操作系统;通过第一操作系统将待存储的目标BMC日志经由指定存储通道传输给第二操作系统,其中,第二操作系统是运行在多核处理器中的第二处理器核心上的操作系统,第二处理器核心与第一处理器核心为不同处理器核心,指定存储通道为第一操作系统和第二操作系统之间传输BMC日志的存储通道;通过第二操作系统将待存储的目标BMC日志写入到外接存储设备中,其中,外接存储设备是BMC芯片所在服务器所外接的存储设备。

Description

日志文件的存储方法及装置、存储介质及电子装置
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种日志文件的存储方法及装置、存储介质及电子装置。
背景技术
随着云计算、大数据、移动互联网、人工智能等技术的发展,对于服务器的处理能力、可靠性、可扩展性等提出了更高的需求。服务器设备类型越来越丰富,作为监控的BMC(Baseboard Management Controller,基板管理控制器)的功能也越来越复杂。BMC在监控服务器主机的过程中会生成BMC日志,这些重要的日志信息需要有效保存。
目前,收集的BMC日志可以由BMC通过与服务器的主机操作系统之间的通信连接发送给带内OS(Operating System,操作系统),由主机操作系统将其保存到闪存(FLASH)中。一旦闪存损坏,则BMC日志极易丢失,严重影响运维效率。由此可见,相关技术中的日志文件的存储方法,存在BMC日志易丢失的问题。
发明内容
本申请实施例提供了一种日志文件的存储方法及装置、存储介质及电子装置,以至少解决相关技术中的日志文件的存储方法存在BMC日志易丢失的问题。
根据本申请的一个实施例,提供了一种日志文件的存储方法,包括:通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志,其中,所述第一操作系统是运行在BMC芯片的多核处理器中的第一处理器核心上的操作系统;通过所述第一操作系统将待存储的所述目标BMC日志经由指定存储通道传输给第二操作系统,其中,所述第二操作系统是运行在所述多核处理器中的第二处理器核心上的操作系统,所述第二处理器核心与所述第一处理器核心为不同的处理器核心,所述指定存储通道为所述第一操作系统和所述第二操作系统之间传输BMC日志的存储通道;通过所述第二操作系统将待存储的所述目标BMC日志写入到外接存储设备中,其中,所述外接存储设备是所述BMC芯片所在的服务器所外接的存储设备。
根据本申请的另一个实施例,还提供了一种日志文件的存储装置,包括:执行单元,用于通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志,其中,所述第一操作系统是运行在BMC芯片的多核处理器中的第一处理器核心上的操作系统;传输单元,用于通过所述第一操作系统将待存储的所述目标BMC日志经由指定存储通道传输给第二操作系统,其中,所述第二操作系统是运行在所述多核处理器中的第二处理器核心上的操作系统,所述第二处理器核心与所述第一处理器核心为不同的处理器核心,所述指定存储通道为所述第一操作系统和所述第二操作系统之间传输BMC日志的存储通道;写入单元,用于通过所述第二操作系统将待存储的所述目标BMC日志写入到外接存储设备中,其中,所述外接存储设备是所述BMC芯片所在的服务器所外接的存储设备。
根据本申请的又一个实施例,还提供了一种服务器,包括:基板管理控制器BMC芯片,指定存储通道,外接存储设备,其中,所述服务器还包括:第一操作系统,运行在所述BMC芯片的第一处理器核心上,用于执行预设的BMC业务,得到待存储的目标BMC日志,并将待存储的所述目标BMC日志经由所述指定存储通道传输给第二操作系统,其中,所述指定存储通道为所述第一操作系统和所述第二操作系统之间传输BMC日志的存储通道;所述第二操作系统,运行在所述BMC芯片的第二处理器核心上,用于将待存储的所述目标BMC日志写入到所述外接存储设备中,其中,所述第二处理器核心与所述第一处理器核心为不同的处理器核心。
根据本申请的又一个实施例,还提供了一种基板管理控制器BMC芯片,包括:运行有第一操作系统的第一处理器核心和运行有第二操作系统的第二处理器核心,其中,所述第二处理器核心与所述第一处理器核心为不同的处理器核心,其中,第一操作系统,用于执行预设的BMC业务,得到待存储的目标BMC日志,并将待存储的所述目标BMC日志经由指定存储通道传输给所述第二操作系统,所述指定存储通道为所述第一操作系统和所述第二操作系统之间传输BMC日志的存储通道;所述第二操作系统,用于将待存储的所述目标BMC日志写入到外接存储设备中,其中,所述外接存储设备是所述BMC芯片所在的服务器所外接的存储设备。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请实施例,采用第一操作系统通过指定存储通道将BMC日志传输到第二操作系统、第二操作系统将接收到的BMC日志存储到外接存储设备的方式,通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志,其中,第一操作系统是运行在BMC芯片的多核处理器中的第一处理器核心上的操作系统;通过第一操作系统将待存储的目标BMC日志经由指定存储通道传输给第二操作系统,其中,第二操作系统是运行在多核处理器中的第二处理器核心上的操作系统,第二处理器核心与第一处理器核心为不同的处理器核心,指定存储通道为第一操作系统和第二操作系统之间传输BMC日志的存储通道;通过第二操作系统将待存储的目标BMC日志写入到外接存储设备中,其中,外接存储设备是上述BMC芯片所在的服务器所外接的存储设备,由于设置了第一操作系统和第二操作系统之间传输BMC日志的指定存储通道,并通过该指定存储通道将第一操作系统执行BMC业务得到的待存储的BMC日志传输到第二操作系统进行BMC日志的存储备份,在保存BMC日志的闪存损坏等情况下,运维人员可以获取第二操作系统备份的BMC日志,提高运维效率,达到提高BMC日志文件内容的可靠性和完整性的技术效果,进而解决了相关技术中的日志文件的存储方法存在BMC日志易丢失的问题。
附图说明
图1是根据本申请实施例的一种日志文件的存储方法的硬件结构框图;
图2是根据本申请实施例的一种日志文件的存储方法的流程示意图;
图3是根据本申请实施例的一种日志文件的存储方法的示意图;
图4是根据本申请实施例的另一种日志文件的存储方法的示意图;
图5是根据本申请实施例的另一种日志文件的存储方法的流程示意图;
图6是根据本申请实施例的又一种日志文件的存储方法的流程示意图;
图7是根据本申请实施例的又一种日志文件的存储方法的流程示意图;
图8是根据本申请实施例的又一种日志文件的存储方法的流程示意图;
图9是根据本申请实施例的又一种日志文件的存储方法的流程示意图;
图10是根据本申请实施例的一种日志文件的存储装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法实施例可以在服务器、计算机终端、设备终端或者类似的运算装置中执行。以运行在服务器上为例,图1是根据本申请实施例的一种日志文件的存储方法的硬件环境示意图。如图1所示,服务器可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器的结构造成限定。例如,服务器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的日志文件的存储方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个NIC(NetworkInterface Controller,网络适配器),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为RF(Radio Frequency,射频)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种日志文件的存储方法,应用于上述服务器,图2是根据本申请实施例的一种日志文件的存储方法的流程示意图,如图2所示,该流程包括如下步骤:
步骤S202,通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志,其中,第一操作系统是运行在BMC芯片的多核处理器中的第一处理器核心上的操作系统。
本实施例中的日志文件的存储方法可以应用到基于BMC监控服务器主机的场景,BMC在监控服务器主机的过程中会生成BMC日志,这里,BMC日志为用于记录服务器主机各种操作产生的日志,包括但不限于安全认证信息、定时任务信息、内核日志、守护进程日志、用户等级信息、syslog(一种标准的日志消息传输协议,用于记录操作系统、网络设备和应用程序的日志信息)服务信息、本地使用预留服务信息、邮件信息等,上述日志信息可以用于指示开机自检信息、用户成功登陆时间和相应IP(Internet Protocol,互联网协议)、登陆失败的用户时间以及远程IP、安全日志、用户和用户组变化情况、用户登陆认证情况、系统和服务错误信息、记录用户登陆注销以及系统启动停机事件、当前登陆的每个用户的信息。这些重要的日志信息需要有效保存。
相关技术中,收集的BMC日志可以由BMC通过与服务器的主机操作系统之间的通信连接发送给带内OS,由主机操作系统将其保存到闪存中。然而,一旦闪存损坏,则BMC日志极易丢失,严重影响运维效率。由此可见,相关技术中的日志文件的存储方法,存在BMC日志易丢失的问题。
为了至少部分解决上述问题,在本实施例中,通过第一操作系统执行BMC业务,在第一操作系统将BMC日志存储到闪存的同时,第一操作系统通过指定存储通道将BMC日志传输到第二操作系统,第二操作系统执行BMC日志的存储备份操作,这里,指定存储通道可以是第一操作系统与第二操作系统进行数据交互的通道,第一操作系统和第二操作系统运行在BMC芯片的多核处理器中的不同处理器核心上。通过本实施例,实现了BMC日志的备份存储,在BMC宕机、闪存损坏的情况下也能获取到BMC日志,提高了运维效率,从而解决了相关技术中的日志文件的存储方法存在BMC日志易丢失的问题,提高了BMC日志文件内容的可靠性和完整性。
这里,第一操作系统可以一般采用公平任务调度算法,线程/进程数量增加时,就需要分享CPU(Central Processing Unit,中央处理器)时间,任务调试具有不确定性,可称为非实时操作系统,例如,contiki、HeliOS、Linux(全称GNU/Linux,是一套可自由传播的类Unix操作系统)等,还可以是其他的非实时操作系统,其中,Linux系统是一个基于POSIX(Portable Operating System Interface,可移植操作系统接口)的多用户、多任务、支持多线程和多CPU的操作系统。
第二操作系统可以是具有明确固定的时间约束的操作系统,所有处理过程(任务调度)需要在固定的时间约束内完成,否则系统会出错,其可以是RTOS(Real TimeOperating System,实时操作系统),例如,FreeRTOS(Free Real-Time Operating System,自由实时操作系统)、RTLinux(Real-Time Linux,实时Linux)等,还可以是其他的实时操作系统。
在本实施例中,BMC芯片的多核处理器核心中的不同处理器核心上可以运行不同的操作系统。在基于BMC对服务器主机的运行过程进行监测时,可以通过运行在BMC芯片的多核处理器核心中的一个处理器核心上的操作系统(例如,第一操作系统)执行预设的BMC业务,得到待存储的目标BMC日志,这里,预设的BMC业务可以包括但不限于传感器监测、告警、电源管理等程序,待存储的目标BMC日志包括但不限于审计日志、IDL(InterfaceDefinition Language,接口定义语言)日志、系统事件日志。
可选的,在通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志的情况下,可以通过第一操作系统将待存储的目标BMC日志记录到闪存中。
例如,在本实施例中,在BMC芯片的第一处理器核心运行Linux系统的情况下,Linux系统正常执行BMC业务,例如传感器监测、告警、电源管理等程序,在用户登入、登出、WEB(World Wide Web,万维网)设置,IPMI(Intelligent Platform ManagementInterface,智能平台管理接口)设置,传感器变化等事件发生时生成日志信息。每当生成新的日志信息,通过Linux系统自身进行记录,即,通过Linux系统将生成的日志信息记录到BMC芯片连接的FLASH上。
可选的,在通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志之前,可以将BMC芯片的多核处理器核心上运行的操作系统启动。
在本实施例中,在系统上电之后,可以首先唤醒处理器的指定处理器核心,由该指定处理器核心通过引导加载程序引导各个操作系统启动。引导加载程序是用于引导操作系统加载的程序,例如,BootRom(Boot Read Only Memory,引导只读存储器,CPU片上的只读存储器)里的固有程序,固有程序指的是引导操作系统启动的代码,属于引导加载程序BootLoader。
如图3所示,以BMC芯片是ARM(Advanced RISC Machine,高级精简指令集计算机)架构的双核CPU,在第一处理器核心上运行第一操作系统Linux系统,在第二处理器核心上运行第二操作系统RTOS系统为例,异构双系统启动可以包括以下步骤:
步骤1,上电唤醒第二处理器;
步骤2,第二处理器运行BootRom;
步骤3,BootRom加载SPL(Second Program Loader,二级程序加载器),SPL执行两个功能:首先启动RTOS系统;
这里,可以通过SPL进行操作系统的启动引导,SPL属于Uboot(UniversalBootloader,通用引导程序)第一阶段执行的代码,可以搬移Uboot第二阶段代码到内存中运行,主要负责装载操作系统到RAM(Random Access Memory,随机存取存储器)中的程序代码。这里,Uboot是一种用于嵌入式系统的引导加载程序,主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构,例如,PPC(Power Personal Computer,功率个人计算机)、ARM、AVR32、MIPS(Microprocessor without Interlocked Pipeline Stages,无互锁流水线级别的微处理器)、x86(Intel Architecture, 32-bit,32位英特尔体系结构)、68k(Motorola 68000,摩托罗拉68000)、Nios与MicroBlaze等。
步骤4,SPL接着唤醒第一处理器,引导Uboot启动;
步骤5,Uboot阶段加载Linux内核,并启动BMC业务程序。
步骤S204,通过第一操作系统将待存储的目标BMC日志经由指定存储通道传输给第二操作系统,其中,第二操作系统是运行在多核处理器中的第二处理器核心上的操作系统,第二处理器核心与第一处理器核心为不同的处理器核心,指定存储通道为第一操作系统和第二操作系统之间传输BMC日志的存储通道。
在本实施例中,为了实现BMC日志的备份存储,在第一操作系统将待存储的目标BMC日志记录到闪存的同时,还可以通过第一操作系统将待存储的BMC日志经由指定存储通道传输给第二操作系统,在一个示范性实施例中,第一操作系统可以是用于运行BMC业务的操作系统,第二操作系统可以是用于进行BMC日志收集和存储的实时操作系统。
这里,第二操作系统可以是运行在多核处理器中的第二处理器核心上的操作系统,第二处理器核心与第一处理器核心为不同的处理器核心,指定存储通道为第一操作系统和第二操作系统之间传输BMC日志的存储通道。
在一个示范性实施例中,指定存储通道可以为以下至少之一:视频图形阵列显存,共享内存,通过通用串行总线连接的存储部件,第一操作系统和第二操作系统之间传输的BMC日志被存储在指定存储通道最后的指定大小的存储空间内。
这里,共享内存可以是一种用于多个进程或线程之间共享数据的机制,它是指在内存中创建一个可被多个进程或线程同时访问的共享区域,这样不同的进程或线程可以通过读写该共享内存来实现数据的共享和通信;VGA(Video Graphics Array,视频图形阵列)具有分辨率高、显示速率快、颜色丰富等优点,VGA接口不但是CRT(Cathode Ray Tube,阴极射线管)显示设备的标准接口,同样也是LCD(Liquid Crystal Display,液晶显示器)液晶显示设备的标准接口,具有广泛的应用范围;USB(Universal Serial Bus,通用串行总线)是一种串口总线标准,也是一种输入输出接口的技术规范,通过USB连接的存储部件可以包括但不限于外部硬盘、U盘等。
可选的,在本申请的部分实施例中,以指定存储通道为共享内存作为示例。如图4所示,在本实施例中,ARM双核可以在内存中分出一部分作为Linux系统和RTOS数据交互使用的共享内存,Linux系统将数据写入共享内存,RTOS可以从共享内存中读取Linux系统写入的数据,这里,共享内存可以是在内存高地址段那一块分配一块地址。
步骤S206,通过第二操作系统将待存储的目标BMC日志写入到外接存储设备中,其中,外接存储设备是BMC芯片所在的服务器所外接的存储设备。
在第二操作系统接收到第一操作系统经由指定存储通道传输的待存储的目标BMC日志的情况下,第二操作系统可以将待存储的目标BMC日志写入到外接存储设备中,这里,外接存储设备可以是BMC芯片所在的服务器所外接的存储设备,可选的,外接存储设备可以是与第二操作系统关联的备份存储设备,外接存储设备的类型可以但不限于是TF卡(Trans-flash Card,传输闪存卡)、SD卡(Secure Digital Card,安全数码卡)、FLASH等,该外接存储设备与BMC芯片连接的、第一操作系统记录BMC日志的(主)闪存(FLASH)是不同的存储设备。
通过上述步骤,通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志,其中,第一操作系统是运行在BMC芯片的多核处理器中的第一处理器核心上的操作系统;通过第一操作系统将待存储的目标BMC日志经由指定存储通道传输给第二操作系统,其中,第二操作系统是运行在多核处理器中的第二处理器核心上的操作系统,第二处理器核心与第一处理器核心为不同的处理器核心,指定存储通道为第一操作系统和第二操作系统之间传输BMC日志的存储通道;通过第二操作系统将待存储的目标BMC日志写入到外接存储设备中,其中,外接存储设备是BMC芯片所在的服务器所外接的存储设备,解决了相关技术中的日志文件的存储方法存在BMC日志易丢失的问题,通过备份存储提高了BMC日志文件内容的可靠性和完整性。
在一个示范性实施例中,通过第一操作系统将待存储的目标BMC日志经由指定存储通道传输给第二操作系统,包括:
S11,通过第一操作系统将待存储的目标BMC日志存储到指定日志目录下,其中,指定日志目录为指定的、用于存储BMC日志的目录;
S12,在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统将一组BMC日志写入到指定存储通道中,其中,一组BMC日志为指定日志目录中未向指定存储通道传输过的BMC日志,一组BMC日志包括目标BMC日志;
S13,通过第二操作系统读取指定存储通道中存储的一组BMC日志,以将一组BMC日志传输给第二操作系统。
在第一操作系统执行BMC业务,得到待存储的目标BMC日志的情况下,可以通过第一操作系统将待存储的目标BMC日志存储到指定日志目录下,为了实现BMC日志的备份存储,在BMC宕机、FLASH损坏的情况下也能获取到BMC日志,可以在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统将一组BMC日志写入到指定存储通道中,这里,一组BMC日志为指定日志目录中未向指定存储通道传输过的BMC日志,一组BMC日志包括目标BMC日志。
这里,指定日志目录可以是用于存储BMC日志的目录,例如,在本实施例中,指定日志目录可以是extlog,(/)extlog目录是一个文件目录,可以用于存储系统或应用程序的日志文件。这些日志文件可以记录系统或应用程序的运行状态、错误信息、警告信息等,可以用于故障排查和系统性能优化。“/”符号可以用来表示一个文件或文件夹的路径。第一操作系统可以是Linux系统。/extlog下日志可以是BMC业务程序生成的,Linux系统启动后可以运行基本的BMC业务程序。需要说明的是,BMC宕机时,不会再往/extlog下记录日志,BMC宕机、主FLASH损坏后/extlog下的日志会被损坏。
通过第二操作系统读取指定存储通道中存储的一组BMC日志,可以实现将一组BMC日志传输给第二操作系统。以第二操作系统为RTOS系统为例,RTOS系统可以读取Linux系统写入指定存储通道中的一组BMC日志,这里,指定存储通道可以与前述实施例类似,在此不做赘述。
通过本实施例,通过指定日志目录存储BMC日志,在指定日志目录中存储的BMC日志有新增时,通过第一操作系统将新增的BMC日志同步到指定存储通道,通过第二操作系统读取指定存储通道中存储的新增的BMC日志,可以提高日志备份的及时性。
在一个示范性实施例中,在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统将一组BMC日志写入到指定存储通道中,包括:
S21,在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统基于一组BMC日志对预设结构体执行赋值操作,得到目标结构体,其中,预设结构体为格式化的、用于传输BMC日志的结构体,目标结构体中携带有一组BMC日志;
S22,通过第一操作系统将目标结构体发送到指定存储通道,以将一组BMC日志写入到指定存储通道中。
在指定日志目录中存在新增的一组BMC日志的情况下,为了便于传输和存储,可以以预设结构体的形式传输BMC日志。在本实施例中,可以通过第一操作系统基于一组BMC日志对预设结构体执行赋值操作,得到目标结构体,这里,预设结构体为格式化的、用于传输BMC日志的结构体,预设结构体中的字段可以包括但不限于是文件传输标识、文件名称、文件大小、文件内容等,本实施例中对于预设结构体中的字段、每个字段对应的字节大小不做限定。
通过第一操作系统将目标结构体发送到指定存储通道,可以实现将一组BMC日志写入到指定存储通道中,以便第二操作系统从指定存储通道中读取携带有一组BMC日志的目标结构体。
通过本实施例,通过预设结构体进行BMC日志传输,可以提高传输数据的组织性和可扩展性。
在一个示范性实施例中,在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统基于一组BMC日志对预设结构体执行赋值操作,得到目标结构体,包括:
S31,在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统对预设结构体中的不同字段执行以下的赋值操作,得到目标结构体:
使用预设的文件传输标识为预设结构体中的文件传输标识字段进行赋值,其中,文件传输标识用于表示目标结构体的开始位置;
依次读取一组BMC日志中的每个BMC日志,并基于读取到的每个BMC日志为预设结构体中的一个文件信息组进行赋值,直到读取完全部的BMC日志,其中,在一个文件信息组中,第一长度的文件名字段用于存储对应的BMC日志的文件名,第二长度的文件大小字段用于存储对应的BMC日志的文件大小信息,第三长度的文件内容字段用于存储对应的BMC日志的文件内容;
在预设结构体的尾部添加文件传输结束标识,得到目标结构体,其中,文件传输结束标识用于标识目标结构体的结束位置。
在本实施例中,预设结构体的字段可以包括:文件传输标识、至少一个文件信息组、文件传输结束标识。这里,一个文件信息组中的字段可以用于依次存储对应的一个BMC日志的文件名、一个BMC日志的文件大小信息、一个BMC日志的文件内容。
例如,本实施例中的日志文件传输结构(预设结构体)定义可以如表1所示。
结构体第一个位置为文件传输标识,4字节,固定为0xaa44aa44;
在新增的一组BMC日志包括第一日志文件、第二日志文件、……的情况下,基于读取到的每个BMC日志为预设结构体中的一个文件信息组进行赋值可以依次是第一长度的文件名字段用于存储对应的BMC日志的文件名:第一日志文件名称,16字节;第二长度的文件大小字段用于存储对应的BMC日志的文件大小信息:第一日志文件大小,4字节;第三长度的文件内容字段用于存储对应的BMC日志的文件内容:第一日志文件内容;第二日志文件名称,16字节;第二日志文件大小,4字节;第二日志文件内容,有多个日志文件时依次填充结构体中相应位置。
在末尾添加文件传输结束标识,4字节,结束标志为0xaa55aa55。
表1
通过本实施例,通过第一操作系统对预设结构体中的不同字段基于新增的一组BMC日志执行赋值操作,可以提高传输数据的可读性和可扩展性。
在一个示范性实施例中,在使用预设的文件传输标识为预设结构体中的文件传输标识字段进行赋值之后,上述方法还包括:
S41,使用最新的文件更新标识为预设结构体中的文件更新标识字段进行赋值,其中,第一操作系统在向指定存储通道传输一组BMC日志的同时,还向指定存储通道传输最新的文件更新标识;
其中,文件更新标识是第一操作系统在每次向指定存储通道传输BMC日志时以递增的方式进行更新的、用于标识指定日志目录中是否存在未向指定存储通道传输过的BMC日志的标识。
为了提高备份效率,可以在预设结构体中加入文件更新标识字段,在本实施例中,第一操作系统在向指定存储通道传输一组BMC日志的同时,还可以向指定存储通道传输最新的文件更新标识,这里,文件更新标识是第一操作系统在每次向指定存储通道传输BMC日志时以递增的方式进行更新的、用于标识指定日志目录中是否存在未向指定存储通道传输过的BMC日志的标识。
例如,本实施例中的日志文件传输结构(预设结构体)定义可以如表2所示。这里,文件更新标识,占4字节,初始为0,每次日志变化则递增该数据。本实施例中对于文件更新标识字段在预设结构体中所处的位置不做限定。
表2
通过本实施例,在预设结构体中加入文件更新标识字段,可以提高日志备份的效率。
在一个示范性实施例中,指定日志目录每次向指定存储通道传输的BMC日志同步存储到第一日志文件夹中,其中,第一日志文件夹用于同步存储指定日志目录中的BMC日志;上述方法还包括:
S51,通过第一操作系统比较指定日志目录中的BMC日志和第一日志文件夹中的BMC日志;
S52,在指定日志目录中的BMC日志相对于第一日志文件夹中的BMC日志存在差异项的情况下,通过第一操作系统确定指定日志目录中的BMC日志与第一日志文件夹中的BMC日志之间所有的差异项,得到新增的一组BMC日志;
S53,通过第一操作系统将指定日志目录中新增的一组BMC日志同步到第一日志文件夹中。
在本实施例中,为了确定是否存在新增的BMC日志,可以新建第一日志文件夹,第一日志文件夹可以用于同步存储指定日志目录中的BMC日志。将指定日志目录每次向指定存储通道传输的BMC日志同步存储到第一日志文件夹中,通过第一操作系统比较指定日志目录中的BMC日志和第一日志文件夹中的BMC日志,在指定日志目录中的BMC日志相对于第一日志文件夹中的BMC日志存在差异项的情况下,通过第一操作系统确定指定日志目录中的BMC日志与第一日志文件夹中的BMC日志之间所有的差异项,得到新增的一组BMC日志,通过第一操作系统将指定日志目录中新增的一组BMC日志同步到第一日志文件夹中,可以保证指定日志目录下记录的为最新的BMC日志,第一文件夹中存储的为已写入指定存储通道进行备份存储的次新BMC日志,从而通过比较最新日志(extlog)与次新日志(HIST1)得到新增的一组待存储的目标BMC日志。
例如,以第一操作系统为Linux系统,指定日志目录为extlog,指定存储通道为共享内存为例,BMC业务执行过程中,会不定时将日志记录到extlog,新增的日志信息可以以追加的形式写入extlog,每次extlog都会更新,Linux系统启动后首先拷贝/extlog下日志到第一日志文件夹(简称HIST1),文件更新标识(初始为0)递增,按照规定格式(预设结构体)发送日志文件和文件更新标识到共享内存,通过Linux系统比较最新日志(extlog)与次新日志(HIST1)中文件是否存在差异,如果有差异,说明产生了新日志,通过Linux系统将新增日志写入共享内存的同时,使用extlog文件更新HIST1,此时,HIST1中存储的BMC日志与extlog下记录的BMC日志一致,在extlog下记录的BMC日志又有更新的情况下,通过比较HIST1中存储的BMC日志与更新后的extlog下记录的BMC日志,可以确定新增的一组BMC日志。
通过本实施例,通过比较指定日志目录下的BMC日志和第一日志文件夹中的BMC日志,确定是否存在新增的BMC日志,可以提高日志备份的效率。
在一个示范性实施例中,第一操作系统定时将指定日志目录中的BMC日志传输到指定存储通道;通过第一操作系统比较指定日志目录中的BMC日志和第一日志文件夹中的BMC日志,包括:
S61,在当前的定时时间到达时,通过第一操作系统比较指定日志目录中的BMC日志和第一日志文件夹中的BMC日志,以确定指定日志目录中是否存在差异项,其中,差异项是指定日志目录中当前的BMC日志相对于上一次定时时间到达时指定日志目录中的BMC日志新增的BMC日志。
在本实施例中,为了降低系统负载,BMC日志的同步可以是定时执行的,第一操作系统可以定时将指定日志目录中的BMC日志传输到指定存储通道,可选的,第一操作系统可以定时将指定日志目录中新增的BMC日志(差异项)传输到指定存储通道。在当前的定时时间到达时,通过第一操作系统比较指定日志目录中的BMC日志和第一日志文件夹中的BMC日志,可以实现确定指定日志目录中是否存在差异项,这里,差异项是指定日志目录中当前的BMC日志相对于上一次定时时间到达时指定日志目录中的BMC日志新增的BMC日志。
可选的,在通过第一操作系统比较指定日志目录中的BMC日志和第一日志文件夹中的BMC日志,确定指定日志目录中不存在差异项的情况下,可以返回等待下一个定时时间到达时,继续执行通过第一操作系统比较指定日志目录中的BMC日志和第一日志文件夹中的BMC日志,以确定指定日志目录中是否存在差异项的操作。
例如,在本实施例中,定时比较extlog下日志文件与HIST1中文件是否不同可以是每三分钟执行一次的,在前一个三分钟到达时(例如到达14:03时),将extlog下日志文件同步到HIST1中,在后一个三分钟到达时(例如到达14:06时),通过Linux系统比较extlog下的BMC日志和HIST1中的BMC日志,在确定14:06时extlog下的BMC日志相对于HIST1中的BMC日志文件(与14:03时extlog下日志文件相同)存在差异项(新增的BMC日志)时,将extlog下新增的BMC日志文件写入共享内存,同时,将14:06时extlog下的BMC日志同步到HIST1中;没有不同则继续等待下一个定时时间(例如,14:09)到达。
通过本实施例,定时比较指定日志目录下的BMC日志和第一日志文件夹中的BMC日志,可以降低系统负载,提高资源利用率。
在一个示范性实施例中,通过第一操作系统将指定日志目录中新增的一组BMC日志同步到第一日志文件夹中,包括:
S71,通过第一操作系统使用指定日志目录中新增的一组BMC日志更新第一日志文件夹中的BMC日志,以将一组BMC日志同步到第一日志文件夹中;或者,
S72,通过第一操作系统使用指定日志目录中全部的BMC日志更新第一日志文件夹中的BMC日志,以将一组BMC日志同步到第一日志文件夹中。
在本实施例中,在通过第一操作系统将指定日志目录中BMC日志同步到第一日志文件夹的过程中,可以是将指定日志目录中新增的一组BMC日志同步到第一日志文件夹中,以在第一日志文件夹中新增一组BMC日志,也可以是将指定日志目录中全部的BMC日志同步到第一日志文件夹中,以覆盖(替换)第一日志文件夹中原有的BMC日志,进而实现指定日志目录中BMC日志与第一日志文件夹中的BMC日志的同步,即,同步后指定日志目录与第一日志文件夹中记录的BMC日志相同,确定指定日志目录中新增的一组BMC日志的方式可以与前述实施例类似,在此不做赘述。
通过本实施例,以不同方式同步指定日志目录和第一日志文件夹中的BMC日志,可以提高BMC日志同步的灵活性,以指定日志目录中新增的一组BMC日志更新第一日志文件夹中的BMC日志,可以提高BMC日志同步的效率,以指定日志目录中全部的BMC日志更新第一日志文件夹中的BMC日志,可以提高BMC日志同步的准确性。
在一个示范性实施例中,在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统将一组BMC日志写入到指定存储通道中,包括:
S81,在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统将一组BMC日志写入到第二日志文件夹中,其中,第二日志文件夹用于存储指定日志目录中新增的BMC日志;
S82,通过第一操作系统将第二日志文件夹中的一组BMC日志发送到指定存储通道,并清空第二日志文件夹中的BMC日志。
在本实施例中,为了提高日志备份的准确性,可以新建第二日志文件夹,第二日志文件夹可以用于存储指定日志目录中新增的BMC日志,在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统将新增的一组BMC日志写入到第二日志文件夹中,通过第一操作系统将第二日志文件夹中的一组BMC日志发送到指定存储通道,并清空第二日志文件夹中的BMC日志,这里,确定在指定日志目录中存在新增的一组BMC日志的方式可以与前述实施例类似,在此不作赘述。
例如,在本实施例中,可以定时比较extlog下日志文件与HIST1中文件是否不同,有不同则生成差异项到第二日志文件夹HIST2,差异项可以以原文件名进行命名,通过Linux系统发送HIST2中文件到共享内存,并清空HIST2,没有不同则返回等待下一个定时时间到了继续执行。
可选的,在通过第一操作系统将第二日志文件夹中的一组BMC日志发送到指定存储通道的同时,第一操作系统可以使用指定日志目录下文件更新第一日志文件夹,并清空第二日志文件夹中的BMC日志。例如,通过Linux系统发送HIST2中文件到共享内存,同时使用extlog文件更新HIST1,清空HIST2。
需要说明的是,在更新第一日志文件夹时,需要访问指定日志目录,此时会对指定日志目录进行加锁操作,更新完成再释放,避免同步操作,其他访问指定日志目录的程序获取到锁之后方可操作。
通过本实施例,通过第二日志文件夹存储指定日志目录中新增的BMC日志,将第二日志文件夹中的BMC日志写入指定存储通道中,可以提高BMC日志备份存储的效率和准确性,节约系统资源。
在一个示范性实施例中,通过第一操作系统将第二日志文件夹中的一组BMC日志发送到指定存储通道,包括:
S91,通过第一操作系统基于第二日志文件夹中的一组BMC日志对预设结构体执行赋值操作,得到目标结构体,其中,预设结构体为格式化的、用于传输BMC日志的结构体,目标结构体中携带有一组BMC日志;
S92,通过第一操作系统将目标结构体发送到指定存储通道,以将一组BMC日志写入到指定存储通道中。
与前述在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统对预设结构体中的不同字段执行赋值操作,得到目标结构体类似的,在本实施例中,在第二日志文件夹用于存储指定日志目录中新增的BMC日志的情况下,可以通过第一操作系统基于第二日志文件夹中的一组BMC日志对预设结构体执行赋值操作,得到携带有一组BMC日志的目标结构体,这里,预设结构体与前述实施例类似,在此不做赘述,通过第一操作系统将目标结构体发送到指定存储通道,可以实现将指定日志目录中新增的一组BMC日志写入到指定存储通道中。
例如,在本实施例中,目标结构体第一个位置为文件传输标识,4字节,固定为0xaa44aa44;第一日志文件名称,16字节;日志大小,4字节;日志内容;第二日志文件名称,16字节;日志大小,4字节;日志内容,有多个日志文件则填充结构体中相应位置;在末尾添加文件传输结束标识,4字节,结束标志为0xaa55aa55。
如图5所示,通过第一操作系统将第二日志文件夹(HIST2)中的一组BMC日志发送到指定存储通道,实现传输数据组包可以包括以下步骤:
步骤S502,读取HIST2中的文件;
步骤S504,判断是否已经全部读取完HIST2中的文件,若是,则执行步骤S514,否则执行步骤S506;
步骤S506,读取HIST2中的第n个文件;
步骤S508,将文件名赋值给传输数据中文件n名称字段;
步骤S510,将文件大小赋值给传输数据中文件n大小字段;
步骤S512,将文件内容赋值给传输数据中文件n内容字段,返回步骤S502;
步骤S514,传输数据中文件传输标识、文件更新标识赋值;
步骤S516,传输数据中第n个(最后一个)文件内容字段后添加传输结束标志;
步骤S518,传输数据组包完成。
通过本实施例,在第二日志文件夹用于存储指定日志目录中新增的BMC日志的情况下,基于第二日志文件夹中的BMC日志对预设结构体执行赋值操作,可以实现BMC日志传输。
在一个示范性实施例中,在通过第一操作系统将第二日志文件夹中的一组BMC日志发送到指定存储通道之前,上述方法还包括:
S101,在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统以递增的方式更新文件更新标识,得到更新的文件更新标识;
在第一操作系统启动时,可以首先往指定存储通道写一次日志信息,是初始的日志,此时的文件更新标识可以是初始值递增,例如初始值为0,此次为1,后续依次为2、3、4……逐级递增,在本实施例中,文件更新标识也可以是字母、符合等标志形式,本实施例中对此不做限定。
在通过第一操作系统将第二日志文件夹中的一组BMC日志发送到指定存储通道之前,在指定日志目录中存在新增的一组BMC日志的情况下,可以通过第一操作系统以递增或者其他可以用于表示更新次数变化的方式更新文件更新标识,得到更新的文件更新标识。
这里,文件更新标识可以是第一操作系统在每次向指定存储通道传输BMC日志时以递增的方式进行更新的,文件更新标识可以用于标识指定日志目录中是否存在未向指定存储通道传输过的BMC日志的标识。
例如,在本实施例中,Linux系统启动后,首先拷贝extlog下日志到第一日志文件夹(HIST1),文件更新标识(初始为0)递增为1,发送日志文件和文件更新标识1到共享内存,在通过比较extlog下日志与HIST1中BMC日志确定存在差异项(新增的一组BMC日志)的情况下,可以通过Linux系统将文件更新标识递增为2。
对应地,通过第一操作系统将第二日志文件夹中的一组BMC日志发送到指定存储通道,包括:
S102,通过第一操作系统将更新的文件更新标识以及第二日志文件夹中的一组BMC日志发送到指定存储通道;
例如,在前述通过比较extlog下日志与HIST1中BMC日志确定存在差异项(新增的一组BMC日志)的情况下,通过Linux系统将文件更新标识递增为2的同时,可以将差异项生成第二日志文件夹(HIST2),差异项以文件名命名,然后,通过Linux系统将文件更新标识2和HIST2(第二日志文件夹)中的BMC日志文件发送到共享内存中,同时,可以使用extlog文件更新HIST1,清空HIST2。
如图6所示,日志传输过程可以包括如下步骤:
步骤S602,启动系统;
步骤S604,拷贝extlog下日志到第一日志文件夹(以下简称HIST1),将文件更新标识(初始为0)递增;
步骤S606,发送日志文件和文件更新标识到共享内存;
步骤S608,定时比较extlog下日志文件和HIST1中文件是否相同,若是,则等待到达下一个定时时间之后,再次执行步骤S608,否则执行步骤S610;
步骤S610,将文件更新标识递增,将extlog下日志文件与HIST1中文件之间的差异项拷贝到HIST2,差异项以文件名命名;
步骤S612,发送文件更新标识和HIST2中文件到共享内存;
步骤S614,使用extlog下文件更新HIST1文件,清空HIST2。
通过本实施例,将文件更新标识和新增的BMC日志写入指定存储通道,可以提高BMC日志备份存储的效率和准确性。
在一个示范性实施例中,通过第二操作系统读取指定存储通道中存储的一组BMC日志,包括:
S111,通过第二操作系统比较从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识;
S112,在从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识不一致的情况下,通过第二操作系统使用从指定存储通道读取的文件更新标识更新第二操作系统本地存储的文件更新标识;
S113,通过第二操作系统对从指定存储通道读取的数据进行解析,得到一组BMC日志;
其中,文件更新标识是第一操作系统在每次向指定存储通道传输BMC日志时以递增的方式进行更新的、用于标识指定日志目录中是否存在未向指定存储通道传输过的BMC日志的标识。
在通过第一操作系统将一组BMC日志写入到指定存储通道中之后,可以通过第二操作系统读取指定存储通道中存储的一组BMC日志,为了简化程序,可以先通过第二操作系统比较从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识,在从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识不一致的情况下,通过第二操作系统使用从指定存储通道读取的文件更新标识更新第二操作系统本地存储的文件更新标识,通过第二操作系统对从指定存储通道读取的数据进行解析,得到一组BMC日志;可选的,对读取的文件数据进行解析可以是按照第一操作系统写入指定存储通道的格式进行的。
在从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识一致的情况下,可以确定指定存储通道中不存在新增数据,第二操作系统本地存储的BMC日志与指定日志目录下记录的一致,此时,可以不执行后续的更新读取操作。
可选的,通过第二操作系统读取指定存储通道、比较从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识是否一致可以是定时循环执行的。
与前述实施例类似的,文件更新标识可以是第一操作系统在每次向指定存储通道传输BMC日志时以递增的方式进行更新的、用于标识指定日志目录中是否存在未向指定存储通道传输过的BMC日志的标识。
例如,在本实施例中,在通过Linux系统将一组BMC日志写入到共享内存中之后,RTOS系统可以接收存储日志,RTOS系统启动后,文件更新标识可以默认为初始值0,循环检查共享内存中文件更新标识与本地存储的是否一致,如果不一致则刷新本地存储的文件更新标识,以使本地存储的文件更新标识与共享内存中的文件更新标识一致,同时读取共享内存中全部文件或者读取共享内存中新增的文件,按照格式对读取的文件数据进行解析,可以得到一组BMC日志。解析后的BMC日志文件可以通过RTOS系统写入外接存储设备中。
如图7所示,RTOS系统接收存储日志可以包括以下步骤:
步骤S702,启动系统;
步骤S704,定时读取共享内存;
步骤S706,检查文件更新标识与上次是否一致,即,检查共享内存中文件更新标识与RTOS系统本地存储的文件更新标识是否一致,若是,则执行步骤S704,否则执行步骤S708;
步骤S708,刷新RTOS系统本地存储的文件更新标识;
步骤S710,读取共享内存中日志文件;
步骤S712,按照格式解析日志文件,写入存储设备。
通过本实施例,通过第二操作系统比较指定存储通道和第二操作系统本地存储的文件更新标识,以确定指定存储通道中是否存在新的BMC日志,在确定指定存储通道中存在新的BMC日志时,从指定存储通道中读取BMC日志,可以简化程序,节约系统资源。
在一个示范性实施例中,通过第二操作系统对从指定存储通道读取的数据进行解析,得到一组BMC日志,包括:
S121,通过第二操作系统按照目标结构体的结构体格式对从指定存储通道读取的数据进行解析,得到一组BMC日志,其中,目标结构体为指定存储通道中存储一组BMC日志所使用的结构体。
由于通过第一操作系统写入指定存储通道的数据是按照目标结构体的格式,在通过第二操作系统对从指定存储通道读取的数据进行解析时,可以通过第二操作系统按照目标结构体的格式对从指定存储通道读取的数据进行解析,进而得到一组BMC日志,这里,与前述实施例类似的,目标结构体可以为指定存储通道中存储一组BMC日志所使用的结构体,其可以是通过第一操作系统对预设结构体中的不同字段执行赋值操作得到的。
通过本实施例,按照目标结构体的结构体格式对从指定存储通道读取的数据进行解析可以提高数据读取的准确性和成功率。
在一个示范性实施例中,在目标结构体中,一组BMC日志中的每个BMC日志分别以一个文件信息组的形式进行存储,在一个文件信息组中,第一长度的文件名字段用于存储对应的BMC日志的文件名,第二长度的文件大小字段用于存储对应的BMC日志的文件大小信息,第三长度的文件内容字段用于存储对应的BMC日志的文件内容;
通过第二操作系统按照目标结构体的结构体格式对从指定存储通道读取的数据进行解析,得到一组BMC日志,包括:
S131,对从指定存储通道读取的数据循环执行以下的解析操作,直到从指定存储通道读取的数据中解析到文件传输结束标识,得到一组BMC日志,其中,文件传输结束标识用于标识目标结构体的结束位置:从指定存储通道读取的数据中依次读取第一长度的文件名、第二长度的文件大小信息以及第三长度的文件内容,得到一个BMC日志。
在本实施例中,与前述实施例类似的,在目标结构体中,一组BMC日志中的每个BMC日志可以分别以一个文件信息组的形式进行存储,在一个文件信息组中,第一长度的文件名字段可以用于存储对应的BMC日志的文件名,第二长度的文件大小字段可以用于存储对应的BMC日志的文件大小信息,第三长度的文件内容字段可以用于存储对应的BMC日志的文件内容,一组BMC日志中可以包括至少一个BMC日志。
通过第一操作系统将携带在目标结构体中的一组BMC日志写入指定存储通道之后,第二操作系统从指定存储通道读取数据,按照目标结构体的格式对从指定存储通道读取的数据进行解析可以是:在对从指定存储通道读取的数据循环执行以下的解析操作,直到从指定存储通道读取的数据中解析到文件传输结束标识,得到一组BMC日志,这里,文件传输结束标识用于标识目标结构体的结束位置:
从指定存储通道读取的数据中依次读取第一长度的文件名、第二长度的文件大小信息以及第三长度的文件内容,得到一个BMC日志。
例如,在本实施例中,RTOS系统从共享内存中读取数据,可以按照特定的结构体格式从读取的数据中解析出BMC日志,如图8所示,具体解析读取流程可以包括以下步骤:
步骤S802,读取共享内存中的日志文件;
步骤S804,读取16字节的文件名称;
步骤S806,读取4字节的文件大小len(length,长度);
步骤S808,读取len字节长度的文件内容;
步骤S810,将文件内容写入存储设备;
步骤S812,判断是否读取到文件传输标识,若是,返回步骤S802,若否,返回步骤S804。
通过本实施例,通过第二操作系统按照格式对从指定存储通道读取的数据进行解析,可以提高数据读取效率和成功率。
在一个示范性实施例中,在通过第二操作系统比较从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识之前,上述方法还包括:
S141,通过第二操作系统在从指定存储通道读取的数据中查找文件传输标识,其中,文件传输标识用于表示目标结构体的开始位置;
S142,在查找到文件传输标识的情况下,从指定存储通道读取的数据中读取文件传输标识之后的指定长度的文件更新标识,得到从指定存储通道读取的文件更新标识。
考虑到在本实施例中的目标结构体是按照文件传输标识、文件更新标识、一组BMC日志、文件传输结束标识的顺序赋值的,在通过第二操作系统比较从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识之前,可以先通过第二操作系统在从指定存储通道读取的数据中查找文件传输标识,这里,文件传输标识用于表示目标结构体的开始位置,例如,4字节的0xaa44aa44。在查找到文件传输标识的情况下,可以从指定存储通道读取的数据中读取文件传输标识之后的指定长度的文件更新标识,例如,4字节的0xaa44aa44之后的4字节,从而得到从指定存储通道读取的文件更新标识。这里,文件传输标识和文件更新标识可以与前述实施例类似,在此不做赘述。
例如,如图9所示,在步骤S804之前,还可以包括以下步骤:
步骤S902,读取共享内存中的数据;
步骤S904,查找文件传输标识,在查找到文件传输标识的情况下,执行步骤S906,未查找到的情况下,返回步骤S902;
步骤S906,读取文件更新标识;
可选的,在步骤S906之后,还可以执行以下步骤:
步骤S908,判断共享内存中存储的文件更新标识与RTOS系统本地存储的文件更新标识相比是否发生变化,若是,则执行步骤S910,否则执行步骤S902;
步骤S910,刷新RTOS系统本地存储的文件更新标识;
通过本实施例,先解析用于表示目标结构体的开始位置的文件传输标识,可以确定是否存在目标结构体,再解析文件传输标识之后的指定长度的文件更新标识,可以确定是否存在未写入的BMC日志,在确定存在的情况下,进行BMC日志文件的读取解析,可以提高读取解析指定存储通道中的数据的智能性,简化程序,提高系统资源利用率。
下面结合可选示例对本实施例中的日志文件的存储方法进行解释说明。本可选示例中提供的是一种基于异构双系统的BMC日志收集存储方案,在本可选示例中,第一操作系统为Linux系统,第二操作系统为RTOS系统,指定存储通道为共享内存,指定日志目录为extlog。
目前,日志文件的存储方法是将BMC日志存储于FLASH之上。日志保存位置单一,没有备份存储,一旦FLASH损坏则日志极易丢失,严重影响运维效率。在本实施例中,为BMC日志提供了一种存储备份的方法,系统上电启动后生成的BMC日志,通过共享内存、VGA显存等通道传输到异构双系统之RTOS端,RTOS系统负责将日志存储到TF卡、SD卡、FALSH等存储设备上。
本可选示例中的日志文件的存储的流程可以包括以下步骤:
步骤1,异构双系统启动。
BMC芯片是ARM架构的双核CPU,在第一处理器核心上运行Linux系统,在第二处理器核心上运行RTOS系统。第二处理器是主核,首先启动,经过BootRom-SPL-Uboot-kernel(内核)阶段后运行Linux系统;SPL阶段同时唤醒第一处理器,运行RTOS系统。
步骤2,BMC日志汇总传输。
Linux系统启动后首先拷贝/extlog下日志到第一日志文件夹(以下简称HIST1),文件更新标识(初始为0)递增,按照规定格式发送日志文件和文件更新标识到共享内存。接着定时比较/extlog下日志文件与HIST1中文件是否不同,有不同则生成差异项到HIST2,差异项以文件名命名,文件更新标识递增。按照规定格式发送文件更新标识和HIST2中文件到共享内存,同时使用/extlog下文件更新HIST1,清空HIST2;没有不同则返回等待定时时间到了继续执行。
共享内存中写入数据时使用格式化的日志文件传输结构。具体数据定义如下。结构体第一个位置为文件传输标识,4字节,固定为0xaa44aa44;文件更新标识,占4字节,初始为0,每次日志变化则递增该数据;第一日志文件名称,16字节;日志大小,4字节;日志内容;第二日志文件名称,16字节;日志大小,4字节;日志内容,有多个日志文件则填充结构体中相应位置;在末尾添加文件传输结束标识,4字节,结束标志为0xaa55aa55。对比最新日志(extlog)与次新日志(HIST1)中文件差异,如果有差异,说明产生了新日志,开始发送差异内容,此时发送文件更新标识,待差异内容发送完成后,发送文件传输结束标识,标志此次传输完成。
步骤3,BMC日志存储。
RTOS系统启动后,文件更新标识默认为0。循环检查共享内存中文件更新标识与本地存储的是否一致,如果不一致则刷新本地文件更新标识,同时读取共享内存中全部文件,解析读取的文件,写入外接存储设备中。
通过本实施例,提供了一种基于异构双系统的BMC日志存储方法装置和介质,提供了BMC日志的备份存储,在BMC宕机、FLASH损坏的情况下也能获取到BMC日志。且运维人员查看BMC日志时无需经过主机,可以释放查看日志时的主机资源占用。在出现意外情形如:启动失败、宕机等情况下,运维人员依然可以获取日志,可以快速进行故障分析定位,提高运维效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。最后,前述各方法实施例中的描述内容和定义只是为了便于理解本发明的实施方式,并非用以限定本发明,任何在不脱离本发明精神和范围前提下所做的修改与变化,特别是对传输方式、传输数据存储和解析方式的修改与变化,均在本发明的保护范围之内。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
根据本申请实施例的又一方面,还提供了一种日志文件的存储装置,该装置用于实现上述实施例中所提供的日志文件的存储方法,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是根据本申请实施例的一种日志文件的存储装置的结构框图,如图10所示,该装置包括:
执行单元1002,用于通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志,其中,第一操作系统是运行在BMC芯片的多核处理器中的第一处理器核心上的操作系统;
传输单元1004,用于通过第一操作系统将待存储的目标BMC日志经由指定存储通道传输给第二操作系统,其中,第二操作系统是运行在多核处理器中的第二处理器核心上的操作系统,第二处理器核心与第一处理器核心为不同的处理器核心,指定存储通道为第一操作系统和第二操作系统之间传输BMC日志的存储通道;
写入单元1006,用于通过第二操作系统将待存储的目标BMC日志写入到外接存储设备中,其中,外接存储设备是上述BMC芯片所在的服务器所外接的存储设备。
通过本申请实施例,通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志,其中,第一操作系统是运行在BMC芯片的多核处理器中的第一处理器核心上的操作系统;通过第一操作系统将待存储的目标BMC日志经由指定存储通道传输给第二操作系统,其中,第二操作系统是运行在多核处理器中的第二处理器核心上的操作系统,第二处理器核心与第一处理器核心为不同的处理器核心,指定存储通道为第一操作系统和第二操作系统之间传输BMC日志的存储通道;通过第二操作系统将待存储的目标BMC日志写入到外接存储设备中,其中,外接存储设备是上述BMC芯片所在的服务器所外接的存储设备,可以解决相关技术中的日志文件的存储方法存在BMC日志易丢失的问题,通过备份存储提高了BMC日志文件内容的可靠性和完整性。
可选地,传输单元包括:
存储模块,用于通过第一操作系统将待存储的目标BMC日志存储到指定日志目录下,其中,指定日志目录为指定的、用于存储BMC日志的目录;
写入模块,用于在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统将一组BMC日志写入到指定存储通道中,其中,一组BMC日志为指定日志目录中未向指定存储通道传输过的BMC日志,一组BMC日志包括目标BMC日志;
读取模块,用于通过第二操作系统读取指定存储通道中存储的一组BMC日志,以将一组BMC日志传输给第二操作系统。
可选地,写入模块包括:
第一执行子模块,用于在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统基于一组BMC日志对预设结构体执行赋值操作,得到目标结构体,其中,预设结构体为格式化的、用于传输BMC日志的结构体,目标结构体中携带有一组BMC日志;
发送子模块,用于通过第一操作系统将目标结构体发送到指定存储通道,以将一组BMC日志写入到指定存储通道中。
可选地,第一执行子模块包括:
第一执行子单元,用于在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统对预设结构体中的不同字段执行以下的赋值操作,得到目标结构体:
使用预设的文件传输标识为预设结构体中的文件传输标识字段进行赋值,其中,文件传输标识用于表示目标结构体的开始位置;
依次读取一组BMC日志中的每个BMC日志,并基于读取到的每个BMC日志为预设结构体中的一个文件信息组进行赋值,直到读取完全部的BMC日志,其中,在一个文件信息组中,第一长度的文件名字段用于存储对应的BMC日志的文件名,第二长度的文件大小字段用于存储对应的BMC日志的文件大小信息,第三长度的文件内容字段用于存储对应的BMC日志的文件内容;
在预设结构体的尾部添加文件传输结束标识,得到目标结构体,其中,文件传输结束标识用于标识目标结构体的结束位置。
可选地,上述装置还包括:
赋值单元,用于在使用预设的文件传输标识为预设结构体中的文件传输标识字段进行赋值之后,使用最新的文件更新标识为预设结构体中的文件更新标识字段进行赋值,其中,第一操作系统在向指定存储通道传输一组BMC日志的同时,还向指定存储通道传输最新的文件更新标识;
其中,文件更新标识是第一操作系统在每次向指定存储通道传输BMC日志时以递增的方式进行更新的、用于标识指定日志目录中是否存在未向指定存储通道传输过的BMC日志的标识。
可选地,指定日志目录每次向指定存储通道传输的BMC日志同步存储到第一日志文件夹中,其中,第一日志文件夹用于同步存储指定日志目录中的BMC日志;上述装置还包括:
比较单元,用于通过第一操作系统比较指定日志目录中的BMC日志和第一日志文件夹中的BMC日志;
确定单元,用于在指定日志目录中的BMC日志相对于第一日志文件夹中的BMC日志存在差异项的情况下,通过第一操作系统确定指定日志目录中的BMC日志与第一日志文件夹中的BMC日志之间所有的差异项,得到新增的一组BMC日志;
同步单元,用于通过第一操作系统将指定日志目录中新增的一组BMC日志同步到第一日志文件夹中。
可选地,第一操作系统定时将指定日志目录中的BMC日志传输到指定存储通道;比较单元包括:
比较模块,用于在当前的定时时间到达时,通过第一操作系统比较指定日志目录中的BMC日志和第一日志文件夹中的BMC日志,以确定指定日志目录中是否存在差异项,其中,差异项是指定日志目录中当前的BMC日志相对于上一次定时时间到达时指定日志目录中的BMC日志新增的BMC日志。
可选地,同步单元包括:
第一更新模块,用于通过第一操作系统使用指定日志目录中新增的一组BMC日志更新第一日志文件夹中的BMC日志,以将一组BMC日志同步到第一日志文件夹中;或者,
第二更新模块,用于通过第一操作系统使用指定日志目录中全部的BMC日志更新第一日志文件夹中的BMC日志,以将一组BMC日志同步到第一日志文件夹中。
可选地,写入模块包括:
写入子模块,用于在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统将一组BMC日志写入到第二日志文件夹中,其中,第二日志文件夹用于存储指定日志目录中新增的BMC日志;
第二执行子模块,用于通过第一操作系统将第二日志文件夹中的一组BMC日志发送到指定存储通道,并清空第二日志文件夹中的BMC日志。
可选地,第二执行子模块包括:
第二执行子单元,用于通过第一操作系统基于第二日志文件夹中的一组BMC日志对预设结构体执行赋值操作,得到目标结构体,其中,预设结构体为格式化的、用于传输BMC日志的结构体,目标结构体中携带有一组BMC日志;
第一发送子单元,用于通过第一操作系统将目标结构体发送到指定存储通道,以将一组BMC日志写入到指定存储通道中。
可选地,上述装置还包括:
更新单元,用于在通过第一操作系统将第二日志文件夹中的一组BMC日志发送到指定存储通道之前,在指定日志目录中存在新增的一组BMC日志的情况下,通过第一操作系统以递增的方式更新文件更新标识,得到更新的文件更新标识;
对应地,第二执行子模块包括:第二发送子单元,用于通过第一操作系统将更新的文件更新标识以及第二日志文件夹中的一组BMC日志发送到指定存储通道;
其中,文件更新标识是第一操作系统在每次向指定存储通道传输BMC日志时以递增的方式进行更新的、用于标识指定日志目录中是否存在未向指定存储通道传输过的BMC日志的标识。
可选地,读取模块包括:
比较子模块,用于通过第二操作系统比较从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识;
更新子模块,用于在从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识不一致的情况下,通过第二操作系统使用从指定存储通道读取的文件更新标识更新第二操作系统本地存储的文件更新标识;
解析子模块,用于通过第二操作系统对从指定存储通道读取的数据进行解析,得到一组BMC日志;
其中,文件更新标识是第一操作系统在每次向指定存储通道传输BMC日志时以递增的方式进行更新的、用于标识指定日志目录中是否存在未向指定存储通道传输过的BMC日志的标识。
可选地,解析子模块包括:
解析子单元,用于通过第二操作系统按照目标结构体的结构体格式对从指定存储通道读取的数据进行解析,得到一组BMC日志,其中,目标结构体为指定存储通道中存储一组BMC日志所使用的结构体。
可选地,在目标结构体中,一组BMC日志中的每个BMC日志分别以一个文件信息组的形式进行存储,在一个文件信息组中,第一长度的文件名字段用于存储对应的BMC日志的文件名,第二长度的文件大小字段用于存储对应的BMC日志的文件大小信息,第三长度的文件内容字段用于存储对应的BMC日志的文件内容;
解析子单元包括:
执行次子单元,用于对从指定存储通道读取的数据循环执行以下的解析操作,直到从指定存储通道读取的数据中解析到文件传输结束标识,得到一组BMC日志,其中,文件传输结束标识用于标识目标结构体的结束位置:从指定存储通道读取的数据中依次读取第一长度的文件名、第二长度的文件大小信息以及第三长度的文件内容,得到一个BMC日志。
可选地,上述装置还包括:
查找单元,用于在通过第二操作系统比较从指定存储通道读取的文件更新标识和第二操作系统本地存储的文件更新标识之前,通过第二操作系统在从指定存储通道读取的数据中查找文件传输标识,其中,文件传输标识用于表示目标结构体的开始位置;
读取单元,用于在查找到文件传输标识的情况下,从指定存储通道读取的数据中读取文件传输标识之后的指定长度的文件更新标识,得到从指定存储通道读取的文件更新标识。
可选地,指定存储通道为以下至少之一:视频图形阵列VGA显存,共享内存,通过通用串行总线连接的存储部件,第一操作系统和第二操作系统之间传输的BMC日志被存储在指定存储通道最后的指定大小的存储空间内。
可选地,第一操作系统是用于运行BMC业务的操作系统,第二操作系统是用于进行BMC日志收集和存储的实时操作系统。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
根据本申请实施例的又一个方面,还提供了一种服务器,该服务器可以是前述任一实施例中的服务器,其硬件结构可以如图1所示,在该服务器上可以部署有上述任一实施例中的BMC芯片,指定存储通道,外接存储设备,以通过部署的BMC芯片,指定存储通道,外接存储设备实施上述任一项方法实施例中的步骤。可选的,该服务器还可以包括:
第一操作系统,运行在上述BMC芯片的第一处理器核心上,用于执行预设的BMC业务,得到待存储的目标BMC日志,并将待存储的目标BMC日志经由指定存储通道传输给第二操作系统,其中,指定存储通道为第一操作系统和第二操作系统之间传输BMC日志的存储通道;
第二操作系统,运行在上述BMC芯片的第二处理器核心上,用于将待存储的目标BMC日志写入到外接存储设备中,其中,第二处理器核心与第一处理器核心为不同的处理器核心。
根据本申请实施例的又一个方面,还提供了一种BMC芯片,该BMC芯片可以包括:运行有第一操作系统的第一处理器核心和运行有第二操作系统的第二处理器核心,其中,第二处理器核心与第一处理器核心为不同的处理器核心,其中,
第一操作系统,用于执行预设的BMC业务,得到待存储的目标BMC日志,并将待存储的目标BMC日志经由指定存储通道传输给第二操作系统,指定存储通道为第一操作系统和第二操作系统之间传输BMC日志的存储通道;
第二操作系统,用于将待存储的目标BMC日志写入到外接存储设备中,其中,外接存储设备是上述BMC芯片所在的服务器所外接的存储设备。
根据本申请实施例的又一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
根据本申请实施例的又一方面,还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述输入输出资源池连接,该输入输出设备和上述输入输出资源池连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请实施例,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请实施例的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。

Claims (21)

1.一种日志文件的存储方法,其特征在于,包括:
通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志,其中,所述第一操作系统是运行在BMC芯片的多核处理器中的第一处理器核心上的操作系统;
通过所述第一操作系统将待存储的所述目标BMC日志经由指定存储通道传输给第二操作系统,其中,所述第二操作系统是运行在所述多核处理器中的第二处理器核心上的操作系统,所述第二处理器核心与所述第一处理器核心为不同的处理器核心,所述指定存储通道为所述第一操作系统和所述第二操作系统之间传输BMC日志的存储通道;
通过所述第二操作系统将待存储的所述目标BMC日志写入到外接存储设备中,其中,所述外接存储设备是所述BMC芯片所在的服务器所外接的存储设备;
其中,所述指定存储通道为以下至少之一:视频图形阵列VGA显存,共享内存,通过通用串行总线连接的存储部件,所述第一操作系统和所述第二操作系统之间传输的BMC日志被存储在所述指定存储通道最后的指定大小的存储空间内。
2.根据权利要求1所述的方法,其特征在于,所述通过所述第一操作系统将待存储的所述目标BMC日志经由指定存储通道传输给第二操作系统,包括:
通过所述第一操作系统将待存储的所述目标BMC日志存储到指定日志目录下,其中,所述指定日志目录为指定的、用于存储BMC日志的目录;
在所述指定日志目录中存在新增的一组BMC日志的情况下,通过所述第一操作系统将所述一组BMC日志写入到所述指定存储通道中,其中,所述一组BMC日志为所述指定日志目录中未向所述指定存储通道传输过的BMC日志,所述一组BMC日志包括所述目标BMC日志;
通过所述第二操作系统读取所述指定存储通道中存储的所述一组BMC日志,以将所述一组BMC日志传输给所述第二操作系统。
3.根据权利要求2所述的方法,其特征在于,所述在所述指定日志目录中存在新增的一组BMC日志的情况下,通过所述第一操作系统将所述一组BMC日志写入到所述指定存储通道中,包括:
在所述指定日志目录中存在新增的所述一组BMC日志的情况下,通过所述第一操作系统基于所述一组BMC日志对预设结构体执行赋值操作,得到目标结构体,其中,所述预设结构体为格式化的、用于传输BMC日志的结构体,所述目标结构体中携带有所述一组BMC日志;
通过所述第一操作系统将所述目标结构体发送到所述指定存储通道,以将所述一组BMC日志写入到所述指定存储通道中。
4.根据权利要求3所述的方法,其特征在于,所述在所述指定日志目录中存在新增的所述一组BMC日志的情况下,通过所述第一操作系统基于所述一组BMC日志对预设结构体执行赋值操作,得到目标结构体,包括:
在所述指定日志目录中存在新增的所述一组BMC日志的情况下,通过所述第一操作系统对所述预设结构体中的不同字段执行以下的赋值操作,得到所述目标结构体:
使用预设的文件传输标识为所述预设结构体中的文件传输标识字段进行赋值,其中,所述文件传输标识用于表示所述目标结构体的开始位置;
依次读取所述一组BMC日志中的每个BMC日志,并基于读取到的所述每个BMC日志为所述预设结构体中的一个文件信息组进行赋值,直到读取完全部的BMC日志,其中,在一个所述文件信息组中,第一长度的文件名字段用于存储对应的BMC日志的文件名,第二长度的文件大小字段用于存储对应的BMC日志的文件大小信息,第三长度的文件内容字段用于存储对应的BMC日志的文件内容;
在所述预设结构体的尾部添加文件传输结束标识,得到所述目标结构体,其中,所述文件传输结束标识用于标识所述目标结构体的结束位置。
5.根据权利要求4所述的方法,其特征在于,在所述使用预设的文件传输标识为所述预设结构体中的文件传输标识字段进行赋值之后,所述方法还包括:
使用最新的文件更新标识为所述预设结构体中的文件更新标识字段进行赋值,其中,所述第一操作系统在向所述指定存储通道传输所述一组BMC日志的同时,还向所述指定存储通道传输最新的文件更新标识;
其中,所述文件更新标识是所述第一操作系统在每次向所述指定存储通道传输BMC日志时以递增的方式进行更新的、用于标识所述指定日志目录中是否存在未向所述指定存储通道传输过的BMC日志的标识。
6.根据权利要求2所述的方法,其特征在于,所述指定日志目录每次向所述指定存储通道传输的BMC日志同步存储到第一日志文件夹中,其中,所述第一日志文件夹用于同步存储所述指定日志目录中的BMC日志;所述方法还包括:
通过所述第一操作系统比较所述指定日志目录中的BMC日志和所述第一日志文件夹中的BMC日志;
在所述指定日志目录中的BMC日志相对于所述第一日志文件夹中的BMC日志存在差异项的情况下,通过所述第一操作系统确定所述指定日志目录中的BMC日志与所述第一日志文件夹中的BMC日志之间所有的所述差异项,得到新增的所述一组BMC日志;
通过所述第一操作系统将所述指定日志目录中新增的所述一组BMC日志同步到所述第一日志文件夹中。
7.根据权利要求6所述的方法,其特征在于,所述第一操作系统定时将所述指定日志目录中的BMC日志传输到所述指定存储通道;所述通过所述第一操作系统比较所述指定日志目录中的BMC日志和所述第一日志文件夹中的BMC日志,包括:
在当前的定时时间到达时,通过所述第一操作系统比较所述指定日志目录中的BMC日志和所述第一日志文件夹中的BMC日志,以确定所述指定日志目录中是否存在所述差异项,其中,所述差异项是所述指定日志目录中当前的BMC日志相对于上一次定时时间到达时所述指定日志目录中的BMC日志新增的BMC日志。
8.根据权利要求6所述的方法,其特征在于,所述通过所述第一操作系统将所述指定日志目录中新增的所述一组BMC日志同步到所述第一日志文件夹中,包括:
通过所述第一操作系统使用所述指定日志目录中新增的所述一组BMC日志更新所述第一日志文件夹中的BMC日志,以将所述一组BMC日志同步到所述第一日志文件夹中;或者,
通过所述第一操作系统使用所述指定日志目录中全部的BMC日志更新所述第一日志文件夹中的BMC日志,以将所述一组BMC日志同步到所述第一日志文件夹中。
9.根据权利要求2所述的方法,其特征在于,所述在所述指定日志目录中存在新增的一组BMC日志的情况下,通过所述第一操作系统将所述一组BMC日志写入到所述指定存储通道中,包括:
在所述指定日志目录中存在新增的所述一组BMC日志的情况下,通过所述第一操作系统将所述一组BMC日志写入到第二日志文件夹中,其中,所述第二日志文件夹用于存储所述指定日志目录中新增的BMC日志;
通过所述第一操作系统将所述第二日志文件夹中的所述一组BMC日志发送到所述指定存储通道,并清空所述第二日志文件夹中的BMC日志。
10.根据权利要求9所述的方法,其特征在于,所述通过所述第一操作系统将所述第二日志文件夹中的所述一组BMC日志发送到所述指定存储通道,包括:
通过所述第一操作系统基于所述第二日志文件夹中的所述一组BMC日志对预设结构体执行赋值操作,得到目标结构体,其中,所述预设结构体为格式化的、用于传输BMC日志的结构体,所述目标结构体中携带有所述一组BMC日志;
通过所述第一操作系统将所述目标结构体发送到所述指定存储通道,以将所述一组BMC日志写入到所述指定存储通道中。
11.根据权利要求9所述的方法,其特征在于,
在所述通过所述第一操作系统将所述第二日志文件夹中的所述一组BMC日志发送到所述指定存储通道之前,所述方法还包括:在所述指定日志目录中存在新增的所述一组BMC日志的情况下,通过所述第一操作系统以递增的方式更新文件更新标识,得到更新的所述文件更新标识;
所述通过所述第一操作系统将所述第二日志文件夹中的所述一组BMC日志发送到所述指定存储通道,包括:通过所述第一操作系统将更新的所述文件更新标识以及所述第二日志文件夹中的所述一组BMC日志发送到所述指定存储通道;
其中,所述文件更新标识是所述第一操作系统在每次向所述指定存储通道传输BMC日志时以递增的方式进行更新的、用于标识所述指定日志目录中是否存在未向所述指定存储通道传输过的BMC日志的标识。
12.根据权利要求2所述的方法,其特征在于,所述通过所述第二操作系统读取所述指定存储通道中存储的所述一组BMC日志,包括:
通过所述第二操作系统比较从所述指定存储通道读取的文件更新标识和所述第二操作系统本地存储的所述文件更新标识;
在从所述指定存储通道读取的所述文件更新标识和所述第二操作系统本地存储的所述文件更新标识不一致的情况下,通过所述第二操作系统使用从所述指定存储通道读取的所述文件更新标识更新所述第二操作系统本地存储的所述文件更新标识;
通过所述第二操作系统对从所述指定存储通道读取的数据进行解析,得到所述一组BMC日志;
其中,所述文件更新标识是所述第一操作系统在每次向所述指定存储通道传输BMC日志时以递增的方式进行更新的、用于标识所述指定日志目录中是否存在未向所述指定存储通道传输过的BMC日志的标识。
13.根据权利要求12所述的方法,其特征在于,所述通过所述第二操作系统对从所述指定存储通道读取的数据进行解析,得到所述一组BMC日志,包括:
通过所述第二操作系统按照目标结构体的结构体格式对从所述指定存储通道读取的数据进行解析,得到所述一组BMC日志,其中,所述目标结构体为所述指定存储通道中存储所述一组BMC日志所使用的结构体。
14.根据权利要求13所述的方法,其特征在于,在所述目标结构体中,所述一组BMC日志中的每个BMC日志分别以一个文件信息组的形式进行存储,在一个所述文件信息组中,第一长度的文件名字段用于存储对应的BMC日志的文件名,第二长度的文件大小字段用于存储对应的BMC日志的文件大小信息,第三长度的文件内容字段用于存储对应的BMC日志的文件内容;
所述通过所述第二操作系统按照目标结构体的结构体格式对从所述指定存储通道读取的数据进行解析,得到所述一组BMC日志,包括:
对从所述指定存储通道读取的数据循环执行以下的解析操作,直到从所述指定存储通道读取的数据中解析到文件传输结束标识,得到所述一组BMC日志,其中,所述文件传输结束标识用于标识所述目标结构体的结束位置:从所述指定存储通道读取的数据中依次读取所述第一长度的文件名、所述第二长度的文件大小信息以及所述第三长度的文件内容,得到一个BMC日志。
15.根据权利要求13所述的方法,其特征在于,在所述通过所述第二操作系统比较从所述指定存储通道读取的文件更新标识和所述第二操作系统本地存储的所述文件更新标识之前,所述方法还包括:
通过所述第二操作系统在从所述指定存储通道读取的数据中查找文件传输标识,其中,所述文件传输标识用于表示所述目标结构体的开始位置;
在查找到所述文件传输标识的情况下,从所述指定存储通道读取的数据中读取所述文件传输标识之后的指定长度的所述文件更新标识,得到从所述指定存储通道读取的所述文件更新标识。
16.根据权利要求1至15中任一项所述的方法,其特征在于,所述第一操作系统是用于运行BMC业务的操作系统,所述第二操作系统是用于进行BMC日志收集和存储的实时操作系统。
17.一种日志文件的存储装置,其特征在于,包括:
执行单元,用于通过第一操作系统执行预设的基板管理控制器BMC业务,得到待存储的目标BMC日志,其中,所述第一操作系统是运行在BMC芯片的多核处理器中的第一处理器核心上的操作系统;
传输单元,用于通过所述第一操作系统将待存储的所述目标BMC日志经由指定存储通道传输给第二操作系统,其中,所述第二操作系统是运行在所述多核处理器中的第二处理器核心上的操作系统,所述第二处理器核心与所述第一处理器核心为不同的处理器核心,所述指定存储通道为所述第一操作系统和所述第二操作系统之间传输BMC日志的存储通道;
写入单元,用于通过所述第二操作系统将待存储的所述目标BMC日志写入到外接存储设备中,其中,所述外接存储设备是所述BMC芯片所在的服务器所外接的存储设备;
其中,所述指定存储通道为以下至少之一:视频图形阵列VGA显存,共享内存,通过通用串行总线连接的存储部件,所述第一操作系统和所述第二操作系统之间传输的BMC日志被存储在所述指定存储通道最后的指定大小的存储空间内。
18.一种服务器,其特征在于,包括:基板管理控制器BMC芯片,指定存储通道,外接存储设备,其中,所述服务器还包括:
第一操作系统,运行在所述BMC芯片的第一处理器核心上,用于执行预设的BMC业务,得到待存储的目标BMC日志,并将待存储的所述目标BMC日志经由所述指定存储通道传输给第二操作系统,其中,所述指定存储通道为所述第一操作系统和所述第二操作系统之间传输BMC日志的存储通道,所述指定存储通道为以下至少之一:视频图形阵列VGA显存,共享内存,通过通用串行总线连接的存储部件,所述第一操作系统和所述第二操作系统之间传输的BMC日志被存储在所述指定存储通道最后的指定大小的存储空间内;
所述第二操作系统,运行在所述BMC芯片的第二处理器核心上,用于将待存储的所述目标BMC日志写入到所述外接存储设备中,其中,所述第二处理器核心与所述第一处理器核心为不同的处理器核心。
19.一种基板管理控制器BMC芯片,其特征在于,包括:运行有第一操作系统的第一处理器核心和运行有第二操作系统的第二处理器核心,其中,所述第二处理器核心与所述第一处理器核心为不同的处理器核心,其中,
第一操作系统,用于执行预设的BMC业务,得到待存储的目标BMC日志,并将待存储的所述目标BMC日志经由指定存储通道传输给所述第二操作系统,所述指定存储通道为所述第一操作系统和所述第二操作系统之间传输BMC日志的存储通道,所述指定存储通道为以下至少之一:视频图形阵列VGA显存,共享内存,通过通用串行总线连接的存储部件,所述第一操作系统和所述第二操作系统之间传输的BMC日志被存储在所述指定存储通道最后的指定大小的存储空间内;
所述第二操作系统,用于将待存储的所述目标BMC日志写入到外接存储设备中,其中,所述外接存储设备是所述BMC芯片所在的服务器所外接的存储设备。
20.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序可被终端设备或计算机运行时执行所述权利要求1至16任一项中所述的方法。
21.一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至16任一项中所述的方法的步骤。
CN202311242770.2A 2023-09-25 2023-09-25 日志文件的存储方法及装置、存储介质及电子装置 Active CN116991331B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311242770.2A CN116991331B (zh) 2023-09-25 2023-09-25 日志文件的存储方法及装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311242770.2A CN116991331B (zh) 2023-09-25 2023-09-25 日志文件的存储方法及装置、存储介质及电子装置

Publications (2)

Publication Number Publication Date
CN116991331A CN116991331A (zh) 2023-11-03
CN116991331B true CN116991331B (zh) 2024-01-26

Family

ID=88525147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311242770.2A Active CN116991331B (zh) 2023-09-25 2023-09-25 日志文件的存储方法及装置、存储介质及电子装置

Country Status (1)

Country Link
CN (1) CN116991331B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360347A (zh) * 2021-06-30 2021-09-07 南昌华勤电子科技有限公司 一种服务器及其控制方法
CN114490554A (zh) * 2022-02-14 2022-05-13 中国工商银行股份有限公司 数据同步方法及其装置、电子设备及存储介质
CN115422004A (zh) * 2022-08-30 2022-12-02 苏州浪潮智能科技有限公司 一种服务器操作系统日志收集方法、装置、设备及介质
CN115509815A (zh) * 2022-09-29 2022-12-23 苏州浪潮智能科技有限公司 一种服务器中数据保护的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360347A (zh) * 2021-06-30 2021-09-07 南昌华勤电子科技有限公司 一种服务器及其控制方法
CN114490554A (zh) * 2022-02-14 2022-05-13 中国工商银行股份有限公司 数据同步方法及其装置、电子设备及存储介质
CN115422004A (zh) * 2022-08-30 2022-12-02 苏州浪潮智能科技有限公司 一种服务器操作系统日志收集方法、装置、设备及介质
CN115509815A (zh) * 2022-09-29 2022-12-23 苏州浪潮智能科技有限公司 一种服务器中数据保护的方法和装置

Also Published As

Publication number Publication date
CN116991331A (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
US8549543B2 (en) Virtualize, checkpoint, and restart POSIX IPC objects during checkpointing and restarting of a software partition
CN112367246A (zh) 消息推送方法、装置、电子设备及存储介质
CN113448837B (zh) 开发及测试环境部署方法、系统、电子设备及介质
CN112527310A (zh) 多租户数据隔离方法、装置、计算机设备及存储介质
CN112416425B (zh) App构建方法、装置、计算机设备及存储介质
CN111669284A (zh) OpenStack自动化部署方法、电子设备、存储介质及系统
US20220179711A1 (en) Method For Platform-Based Scheduling Of Job Flow
CN114064190A (zh) 一种容器启动方法及装置
CN115640143A (zh) 微服务处理方法、装置、电子设备及存储介质
CN114328097A (zh) 一种文件监控方法、装置、电子设备和存储介质
CN116991331B (zh) 日志文件的存储方法及装置、存储介质及电子装置
CN112256989A (zh) 基于离线包的页面加载方法、装置、终端设备及存储介质
CN110908644A (zh) 状态节点的配置方法、装置、计算机设备和存储介质
CN109976881B (zh) 事务识别方法和装置、存储介质以及电子装置
CN113286014B (zh) 基础域名的动态配置方法、装置及相关设备
CN116257320A (zh) 一种基于dpu虚拟化配置管理方法、装置、设备及介质
EP4102367A1 (en) Message format indicator for resource-constrained devices
CN114385458A (zh) 一种基于事件总线模型的传感器监控的方法和装置
US9710298B2 (en) Information processing system, storage apparatus, and program
CN117290321A (zh) 日志文件存储方法及装置、存储介质及电子装置
CN114371962A (zh) 数据采集方法、装置、电子设备及存储介质
US20210044449A1 (en) Control system and control method
CN116501552B (zh) 数据备份的方法、装置、系统及存储介质
CN115390912B (zh) 资源发现方法、装置、计算机设备和存储介质
CN116737690A (zh) 数据迁移方法、系统及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant